What runs the site

  • Hugo. After running dynamic CMSs for years (see below), I got on the static site generator bandwagon in 2013. Of all the ones I’ve tried, Hugo is the only one that can handle 5,000 posts.

  • FreeBSD: Still my OS weapon of choice since I started hacking on it in high school. I run it in the Joviam cloud with ZFS, pf and the tirelessly maintained ports system.

  • nginx: Fast, simple to configure web server and reverse proxy. Thanks to the maintainers of the nginx-devel FreeBSD port.

  • Let’s Encrypt: I bought HTTPS certs in the past, but Let’s Encrypt makes the process so simple there’s no point not using it. It can also handle subdomains without having to pay extra (or at all).

  • Ansible: All the site configuration, package installs and updates are carried out with Ansible playbooks.

  • Bourne shell scripts: These are the glue for everything else, for podcast pages, encoding audio, scaling Retina™ images, uploading generated assets, and other tasks.


What used to run the site

  • Jekyll (2013-15): My return to static-site generation after nearly a decade. Rubénerd was being delivered faster, used less resources, and had full revision history and tracking in a Git repo! Alas it took over 20 minutes to generate all my posts.

  • WordPress (2006-13): The Mac Daddy of blogging software. Movable Type had gone commercial at that stage, and Radio UserLand looked to be in its last throes, so I followed the pack to WordPress. For all the security issues and poorly written plugins, it served me surprisingly well for many years.

  • RapidWeaver (2005): An intruiging and pleasent Mac application that generated static pages, but I soon ran into its limitations.

  • Perl CGI scripts (2004): I wrote my first site engine when at my first job out of high school, before university started. It used CGI, which was a terrible idea but not enough people went to it to spawn too many threads, so I avoided disaster!


How I write posts

  • Vim: I’ve used nano, joe, emacs (albeit briefly), TextMate, Sublime Text and Atom, but I keep coming back to this inexplicably wonderful mode of typing each time. I’m still learning new things with it, while likely forgetting other things.

  • nvALT: A fantastic note-taking tool that splits ideas into separate, searchable text files. It’s akin to having your own text-based wiki.

  • 11” MacBook Air: I’m still surprised how versitile this machine is. It fits on every coffee shop and aeroplane table, but still packs enough punch for photo editing and dev work with a docking station and peripherals. All I miss is Parallels working fast enough for games, and the Retina screen from my work machine.

  • Microsoft Sculpt Ergonomic Keyboard: I prefer mechanical keyboards, but went the split-keyboard route when I started getting upper-arm pain. It’s surprisingly snappy, especially compared to the mushy plastic feel of the previous models.

  • Michael Franks: My jam since I was a kid. He’s a jazzy singler/songwriter with witty lyrics and albums for every mood and time of day stretching over his half-century career. Incidently, I wrote all but two of his albums on Wikipedia!

  • AKG K551: I bought these headphones as per Marco Arment’s recommendation. I’m not all about the bass (sorry Meghan Trainor) so these headphones sound amazing. The level of midrange detail continues to blow my socks off, and the giant pads are soft and comfortable.