Alex Plescan

Choose colour theme

Posts

I first made this site back in 2016, and since then it hasn’t had any substantial updates to its design or overall structure. Here we are now in 2024, and I find myself to be a developer with a blog that doesn’t have a dark theme.

A while back my friend recommended that I try WezTerm. I’d been an iTerm 2 stalwart for the better part of a decade, but not to be too narrow-minded I conceded, started it up, and saw this:

I was recently trying to figure out how likely a bunch of end-to-end tests were to be flaky, and wanted to gather some stats about their pass/fail rates on my local machine before including them in a broader test suite.

After publishing Easy SVG Sparklines last week, I received a couple of questions about how the timeseries data displayed on Mailgrip’s charts is generated.

Sparkline charts are compact, simple charts showing a general trend without getting into the nitty-gritty of a more complete solution.

Recently, I worked on embedding HTML emails into a web page for Mailgrip. I’d done something similar in the past using iFrames, but this time used the Declarative Shadow DOM instead. It resulted in a much easier implementation, with less reliance on client-side JavaScript.

As part of my recent work on building Mailgrip, I decided to experiment with using Gumroad to manage payments and subscriptions. This post documents the minimum viable Gumroad integration I implemented, in case you are looking at doing the same thing!

A little while back I wanted to print a poster of Jack Barker’s Conjoined Triangles of Success (as featured in the Silicon Valley TV show).

If you’re reading this you probably already know what Metabase and Fly.io are. This is guide on how to get the two working together in minutes.

💁‍♂️ Here's a tip for a quick way to manage private files in a git repository, using nothing but your shell and git.

In the projects I work on I usually want to have some private files on my local machine that don’t get committed and pushed up to git remotes (i.e. Github) to be seen by my teammates.

Xcode 8 introduced managed code signing, which automatically generates the App IDs, signing certificates, and provisioning profiles you’d usually need to set up manually for your app. This covers most aspects of getting your app ready for distribution, but one thing that still isn’t automatic is Xcode’s handling of devices UUIDs manually added in the Developer Portal; when new device UUIDs are added you still need to generate a fresh provisioning profile which includes them.

After reading Brian Jordan’s post Emojify your Wi-Fi where he adds emoji to his Wi-Fi SSID, I decided to blatantly rip him off I got inspired to do the same on my Netgear R6300 router.

Apple’s new San Francisco Mono typeface comes bundled in with the latest Xcode 8 beta, and it’s beautiful! If you’re impatient like me and want to use San Francisco Mono in your other apps before macOS Sierra is released, you can grab its otf files from the Xcode 8 Beta app package and install them manually:

iOS 9 introduced App Transport Security, which by default forces apps to communicate over HTTPS instead of HTTP. This is a great default for production apps, but it can get in the way of connecting to development servers which are less likely to be configured with a HTTPS connection, especially when running on your local machine.

Often while working on an iOS app there’s functionality that you want exposed only when the app is running in a Debug build configuration. Previously I would use build environment variables and preprocessor macros to determine this, but thanks to the great answer on this Stack Overflow question I now use a runtime check to tell whether the app is running in Debug or Release mode:

While building this website using Jekyll I found that there were a few places where I needed to override config variables when the site is running in a development environment. Some examples of dev only overrides I wanted to do are:

SwiftLint is a great tool for enforcing code conventions in your Swift projects.