Free software contributions

I enjoy contributing to free and open source software; here is a selection of my work.


permissible A resource-based permissions system for building web APIs in Python.


I've contributed several patches to the static site generator kiln, which which this site is built. These include the addition of functions to the template languate, and improving the template resolution logic.

Alpine packages

I maintain (at the time of writing) 16 packages for the Alpine distribution. These incliude scientific computing libraries, desktop shell components, task management software, and a music downloader program.


Fedora packages

Before switching to Alpine, I used to contribute packages on Fedora's COPR. These included iwyu, sniproxy, swayfade, tmux-xdg, and swaylock-effects.

I also worked towards making builds possible for OpenRCT2 and jellyfin.


Vibing Cat synchroniser

Having fun synchronising animated images to the beat of music! Discussed in this blog post.



Responsible for the Python 2-to-3 transition for a major forensics tool, through this issue and these patches.


I contributed systemd service files for running hydroxide, an unofficial ProtonMail bridge, on a server. Nowadays I use Migadu as my mail provider.


Submitted proofreading improvements to the guide.


khinsider_downloader A script to download albums and album art from, a video game soundtrack archive website. Archived, as it has been superseded by Marcus Crane's khinsider.

gremlins-photobot A simple web server for collaboratively building photo albums.


budgeter A command-line budget tracker which automatically categorises your transactions from your online bank. Works via CSV import.

Articles from blogs I read

In praise of Plan 9

Plan 9 is an operating system designed by Bell Labs. It’s the OS they wrote after Unix, with the benefit of hindsight. It is the most interesting operating system that you’ve never heard of, and, in my opinion, the best operating system design to date. Even …

via Drew DeVault's blog November 12, 2022

Do I still remember how to blog?

I haven’t written a blog post for a couple of months now, which is a good indicator I should probably document my workflow before I forget how to do it…

via Not Just Serendipity October 9, 2022

Github Copilot: The future of programming?

My thoughts on GitHub Copilot and the future of AI assistants in writing code.

via Josh Smailes April 15, 2022

Generated by openring