7 minutes to read — 1307 words

Adding a list of related posts to web pages is a great way to help users find new content and keep visitors engaged on your website. I was recently adding this feature to website built on WordPress. There are several WordPress plugins that implement related posts functionality, but I wanted precise control over the function and styling of the related posts. I also didn’t want the overhead and hassle of installing a new plugin, so I implemented the related posts feature myself.

Transit Passes on Google Wallet Are a Disaster

5 minutes to read — 881 words

Transit Passes on Google Wallet Are a Disaster

Expanding public transit in the United States is crucial, and integrating technology into existing public transit systems is important, too. Over the past couple of years, many of America’s public transit systems have been integrating digital wallets—namely Apple’s and Google’s—by permitting riders to use virtual transit passes rather than physical plastic or paper ones. That seems like a great idea: it cuts down on waste, you don’t have to worry about losing or forgetting a physical card, and they should be easy to manage right in the wallet app. Unfortunately, the implementations so far are terrible, and I’m switching back to plastic.

Development on Windows is... Good?

3 minutes to read — 586 words

Not that long ago, most people would laugh if you told them you did any serious software or web development on Windows. All the serious coders used Macs, except for the handful who ran Linux. I was in the latter camp; as someone who’s never liked Apple products, I installed Debian on a clunky Compaq laptop in 2003 and was immediately hooked by the idea of running an open source operating system. I don’t really run Linux much any more, though, because in the past few years, Windows has become a functional, even good, development platform.

ProtonAOSP on Pixel 6 Pro

5 minutes to read — 1032 words

One of the best things about Android, the world’s most popular operating system for mobile devices, has always been its customizability. For the truly adventurous, that’s often meant ditching your manufacturer’s preinstalled software and installing a custom ROM, essentially a third-party operating system. In recent years, it feels like the popularity of custom ROMs has declined as manufacturers and carriers have made it harder to install them, and improvements to Android have made the advantages of a custom ROM less obvious.

Snap Apps Crash Silently Due to Cross-Filesystem Symlinks

4 minutes to read — 716 words

This won’t mean much to many, but there seems to be a small number of people stymied by a weird problem: some Snap apps won’t work on Linux. You install a Snap app, and it might work the first time you launch it. But every subsequent time you launch the app, nothing happens. There’s no error message or indication that anything is wrong; your app just won’t start. If you run snap run appname in your terminal, you won’t see anything, either, but the app still won’t launch.

HEY Email

12 minutes to read — 2527 words

Hey email launched in mid-June to generally positive reviews, but coverage of the product itself was largely overshadowed by a fight between HEY and Apple regarding HEY’s monetization strategy.1 I’ve been using HEY now for about a month, and it’s a fantastic product, great enough to justify its $99 per year price tag (and I hate subscription apps). So what exactly is HEY, and why is it worth paying for email when there are so many free email products out there?

Static Site Search with Gatsby and Algolia

6 minutes to read — 1166 words

About a month ago, I wrote about developing a static website with server-side Javascript. As I discovered, there are a lot of advantages to a static site. But one of the disadvantages to the lack of a database is that it isn’t obvious how to make the site searchable. With no database to pull from, generating search results can be a challenge. Rather than pull search results from a database and generating results pages with server-side scripts, static sides tend to opt for storing results in a single file or external database and relying on AJAX to submit queries of the search index.