Engine room
This page lists the tech that makes this blog possible.
How I write posts
- Vim
-
I’ve tried everything, and keep coming back to this legendary editor. I’m still learning new things with it even after a decade. NERDTree is still my favourite plugin.
- Emacs
-
Wait, Emacs too? Yes! I fell in love with org-mode as a cross-platform alternative to nvALT for managing notes, research, tasks, and snippets of text; and have starting finding more uses for it. I should probably choose a single editor one day, but for now I’m enjoying both.
- Kensington Orbit Trackball
-
The only trackball mouse I’ve found with a scroll wheel. Once you use a trackball, you never want to go back to inferior pointing devices.
- Git for version control
-
Each blog post and site asset is version controlled with Git, which makes updates easier. I far prefer Subversion, and even Mercurial is better, but the industry has spoken.
- Michael Franks
-
I’m often writing while listening to my favourite singer/songwriter of all time. His over half a century career include albums for every mood and time of day. Incidently, I wrote all but two of his albums on Wikipedia.
- Coffee shops
-
If there’s an environment more conducive to positive thought and writing, I don’t want to know.
What runs the site
- OrionVM
-
The world’s easiest cloud. It’s written and maintained by people who actually answer the phone, and care about the details. It’s designed for wholesale infrastructure and white-labelling, but ping the sales guys and I’m sure they could hook you up. Disclosure, I’m one of the engineers!
- Hugo
-
This is the Porsche of static site generators; it’s difficult to handle at times with Go’s inscrutable templating, but it’s the only one around that can handle 7,000+ posts without taking the heat death of several universes to render.
- FreeBSD
-
It’s still my preferred server operating system since trying it in high school. It’s fast, Unixy, and has the best OpenZFS integration for snapshotting, updates, optimisation, and data integrity. I use cloud instances with jails to keep things secure and easy to update.
- nginx
-
The 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 this makes the process so simple. It can also now handle subdomains with little fuss.
- 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. No bashisms.
What used to run the site
- Hand-coded HTML, 1998–04
-
This was a general-interest site before a blog, and was written with Notepad back in my Windows days. Some may have also been prototyped in Frontpage back in the day too. I kinda miss it.
- Perl CGI scripts, 2004–05
-
I wrote my first site engine while learning Perl at a job between high school and university. It used CGI, but fortunately it was so obscure and rarely visited it didn’t spawn too many threads!
- RapidWeaver, 2005
-
An intriguing and pleasant Mac application that generated static pages, but I soon ran into limitations with updating sites from different places. Thesedays you could probably use a Dropbox-like service.
- Blosxom, 2005
-
Another short-lived CMS before making the jump to WordPress. I loved how simple its file structure was, and being written in Perl was a plus.
- WordPress, 2006–13
-
This was the Mack Daddy of blogging software for years, before it lost its focus becoming a general-purpose CMS. Radio UserLand was on the way out by 2006, and I couldn’t afford Movable Type. It served me well for many years depite it’s shortcomings.
- Jekyll, 2013–15
-
I still think Liquid is the nicest templating system I’ve used, but alas Jekyll simply couldn’t handle thousands of posts well. I recommend it wholeheartedly for other use cases.