Python Hacks Tools DevOps

Building Python fat RPMs with nfpm and some magic

Published · updated · 4min

I’d an awkward problem to solve recently: how do you build a relatively cross-platform fat RPM for a Python application without having to build out a bunch of extra build infrastructure.

On the face of it, this is easy, and this is something I’ve partially solved before. I …

Retrocomputing Agon Light

Initial explorations of the Agon Light

Published · 3min

The Agon Light doesn’t have an equivalent of the “programmer’s reference guides” of old, so I’ve been doing some poking around in different places to see what information I can gather together.

There’s an agon-light tag on Github that lists a few interesting repositories. In particular …

Retrocomputing Agon Light

The Agon Light 2

Published · 1min

I ordered an Agon Light 2 recently from Olimex, which is a modification of Bernardo Kastrup’s original Agon Light.

A still-bagged Agon Light 2

It’s a small, inexpensive Z80-based board with a GPIO port, allowing it to be used as a microcontroller board, but it can also be used similarly to an …


Notes from Real World OCaml, chapter 7, part 2

Published · 4min

Covering the second part of chapter 7, which deal with exceptions and backtraces.


Notes from Real World OCaml, chapter 7, part 1

Published · 4min

Covers the first prat of chapter 7: error-aware datatypes and exceptions.


Notes from Real World OCaml, chapters 4 and 5

Published · 2min

Covers records and program structure (files, modules, and programs).


Notes from Real World OCaml, chapter 3

Published · 2min

Covers lists and patterns.


Notes from Real World OCaml, first edition

Published · updated · 17min

Because it’s been so long since I’ve done anything in OCaml, I’m going through Real World OCaml. I have the first edition, and though the second edition came out earlier this month, it’s the original that I’m going through. I’m hoping this is useful …


Starting 2023

Published · 3min

It’s been a while since I did one of these. The world imploded a few months after the last one.

I think we can agree that the last three years have been a total shitfest for everyone. Things certainly haven’t been getting much better, and it doesn’t …


Hi! Long time, no see!

Published · 3min

I haven’t posted here for quite some time. However, I’ve been doing some work on restoring some old content such as my Aonsdát Éireann page, fixing up a bunch of missing redirects, and so on. There are a number of entries I want to restore from my old …


A homebrew computer project

Published · 4min

I’ve always wanted to build electronics for myself, but I’ve never had the chance. That’s something I’d like to fix.

I’ve a few projects that have been banging around my head for a while, which are all related in some way or another.

The first …



Published · 1min

I haven’t posted anything here in a very long time. I figure I’d might as well share a small tool I knocked together.

Here it is:


set -eu

usage () {
    echo "usage: ${0##*/} [-h] [MESSAGE]"

# Ensure data directory exists
: "${DOING_ROOT:=${XDG_DATA_HOME:-$HOME/.local/share}/doing}"
mkdir -p …
Planet Mercury Projects Go Slow Web

Introducing Planet Mercury

Published · 3min

Planet Mercury is a Planet-style feed aggregator I’ve been writing in Go over the past few days.

It’s now at the Minimal Viable Product stage, so I figure there’s no harm in announcing its existence to the world. If you want to poke around the currenty …

Projects Spectrum Next NetBSD Retrocomputing

A time server for the ZX Spectrum Next

Published · 3min

I recently received my Spectrum Next. I’d been waiting three years for it, and they started sending them out just as the lockdown started. Thankfully, even though I wasn’t able to update the address, they were able to receive it at the office, and drop it over, which …


Awkwardly flailing around to get sshguard working on NetBSD

Published · 4min

When I previously configured NetBSD 9, I’d forgotten that I should configure sshguard and a firewall on the Raspberry Pi. It’s time to fix that.

I figured that I’d install the package:

# pkgin install sshguard
calculating dependencies...done.

1 package to install:

0 to refresh …
Raspberry PI

Configuring a Raspberry Pi 4 as a desktop replacement

Published · 4min

I gave in to getting a Raspberry Pi 4 last month, and I’ve tried using it as a desktop replacement over the past week or so. It hasn’t been going so badly! After some initial issues finding a working SD card, I found the one I’d originally …


This site has moved

Published · 2min

I have to apologise to anybody who follows my feed as you have no doubt just been flooded with a hundred or so additional entries.

I’ll explain.

I’ve moved this site to I intend for this to be its final location. I’ve added permanent …


Leaving Twitter

Published · 4min

I made a decision, unconsciously, a couple of months back, to stop using Twitter. I still kept using it, but my use became more sporadic. This morning I deleted the last remaining client I had installed.

I’ve been using it for quite a while. My initial reason for joining …


RIP, spinning rust…

Published · 2min

Last time, I got my old Dell Mini 12 up and running again. Well, the fates did not smile kindly on me, and through my own clumsiness, it ended up slipping off my lap, leaving it with some very, very unhappy spinning rust.

And yes, it contains a regular HDD …


Notes on breathing life back into a Dell Mini 12

Published · 8min

(These are some rough, unedited notes from when I was rebuilding the machine today.)

I have a Dell Mini 12, and while I’m pretty sure it’s never going to be of much practical use, I’d like to restore it to a state where it might be useful …

continue   →