Below are the five most recent posts in my weblog. You can also see a chronological list of all posts, dating back to 1999.

Screenshot of Virtua Racing

I don't play many video games any more, and I certainly don't consider myself a gamer. If I have time and brain power, I like to write code or work on my PhD; if I don't have brain power I read, watch movies or TV. However last Summer, lured by the launch titles Super Mario Odyssey and The Legend of Zelda: Breath of the Wild, I bought a Nintendo Switch. I've actually played some games on it now, although I surprised myself by playing lesser-known and indie titles rather than the AAA names. My favourite games are ones I can pick up and play for 5-10 minutes at a time without losing time to tutorials, introductory videos, and other such nonsense. I thought I'd recommend some games. First up, Virtua Racing.

I actually bought this for the office Switch before I had my own. It's re-release of the 1992 arcade racer. I have fond memories of Arcades in the 90s (although I don't think I played this game). It's conceptually simple: three tracks, few options (you can choose manual or automatic transmission). But there's some hidden depth in there: it models slipstream, tyre wear and other effects.

The fun of it for me is trying to beat my personal best and that of my colleagues. But I haven't actually placed above 3rd on the intermediate course or even finished the advanced one, so despite its simplicity, there's plenty of mileage in it for me. It also looks great, rending at a smooth 60fps. The large untextured polygons were once a design decision due to the limitations of the hardware in 1992 and are now an in-fashion aesthetic.


Assume for a minute that that best way to take notes is on paper with pens, pencils etc., and not in a digital device. (I might return to this later).

I'm torn between two extremes for note-taking. One one hand, I find it useful in the short-term to make scrappy, ephemeral notes: ad-hoc daily TODO lists; mind maps and experiments, that I intend to throw away. There are lots of styles of stationary to support this: ring-bound notebooks that are easy to tear leaves from; or literally the back of envelopes.

The other extreme is the "preserve everything" mentality. For my PhD, I have a single, hard-backed notebook that I try to do all my PhD note taking in. I date each entry. There's a history I can refer to, no matter whether what I'm writing is seemingly ephemeral or not.

So I do both. Sometimes I want to refer back to something I did which was ephemeral and I've lost it or thrown it away. And having lots of mis-matched stationary for ephemeral storage is a bit messy, and works against the other extreme to a certain extent.

I've started to wonder whether strictly doing one or the other (and most likely, the "preserve everything" approach) might be a good idea. In practise that would mean settling on a particular notebook format, and disposing of anything else; having separate notebooks by topics (PhD, work, …) with a "catch-all" for the rest.

Does anyone have any advice or useful resources to read on this topic?


A more Disney-fied castle: conical spires and an archway.

A more Disney-fied castle: conical spires and an archway.

Here's iteration 2 of my 3D-printed castle design. I'm mostly focussed on helping to improve our internal instructions on how to get up and running with 3D printing, submitting jobs to the office printer etc., rather than refining this particular model, so I limited myself to a train journey's worth of adjustments. My Daughter was keen that it looked more like the Disney castle.

The plan for the office is still for folks to use Cura as a slicer, which they can download and run as an AppImage, and for us to provide a ZIP of configuration that automatically sets up the printer specifications and connects it to the Octoprint instance we've got set up to receive jobs. Unfortunately merely zipping ~/.config/cura/4.4 is not sufficient to make the experience seamless, so further experimentation is needed.


This is the eighth part in a series of blog posts. The previous post was First successful Amiga disk-dumping session. The whole series is available here: Amiga.

The main goal of my Amiga project is to read the data from my old floppy disks. After a bit of hiatus (and after some gentle encouragement from friends at FOSDEM) I'm nearly done, 150/200 disks attempted so far. Ultimately I intend to get rid of the disks to free up space in my house, and probably the Amiga, too. In the meantime, what could I do with it?

Gotek floppy emulator balanced on the Amiga

Gotek floppy emulator balanced on the Amiga

The most immediately obvious things are to improve the housing of the emulated floppy disk. My Gotek adaptor is unceremoniously balanced on top of the case. Housing it within the A500 would be much neater. I might try to follow this guide which requires no case modifications and no 3D printed brackets, but instead of soldering new push-buttons, add a separate OLED display and rotary encoder (knob) in a separate housing, such as this 3D-printed wedge-shaped mount on Thingiverse. I do wonder if some kind of side-mounted solution might be better, so the top casing could be removed without having to re-route the wires each time.

3D printed OLED mount, from Amibay

3D printed OLED mount, from Amibay

Next would be improving the video output. My A520 video modulator developed problems that are most likely caused by leaking or blown capacitors. At the moment, I have a choice of B&W RF out, or using a 30 year old Philips CRT monitor. The latter is too big to comfortably fit on my main desk, and the blue channel has started to fail. Learning the skills to fix the A520 could be useful as the same could happen to the Amiga itself. Alternatively replacements are very cheap on the second hand market. Or I could look at a 3rd-party equivalent like the RGB4ALL. I have tried a direct, passive socket adaptor on the off-chance my LCD TV supported 15kHz, but alas, it appears it doesn't. This list of monitors known to support 15kHz is very short, so sourcing one is not likely to be easy or cheap. It's possible to buy sophisticated "Flicker Fixers/Scan Doublers" that enable the use of any external display, but they're neither cheap nor common.

My original "tank" Amiga mouse (pictured above) is developing problems with the left mouse button. Replacing the switch looks simple (in this Youtube video) but will require me to invest in a soldering iron, multimeter and related equipment (not necessarily a bad thing). It might be easier to buy a different, more comfortable old serial mouse.

Once those are out of the way, It might be interesting to explore aspects of the system that I didn't touch on as a child: how do you program the thing? I don't remember ever writing any Amiga BASIC, although I had several doomed attempts to use "game makers" like AMOS or SEUCK. What programming language were the commercial games written in? Pure assembly? The 68k is supposed to have a pleasant instruction set for this. Was there ever a practically useful C compiler for the Amiga? I never networked my Amiga. I never played around with music sampling or trackers.

There's something oddly satisfying about the idea of taking a 30 year old computer and making it into a useful machine in the modern era. I could consider more involved hardware upgrades. The Amiga enthusiast community is old and the fans are very passionate. I've discovered a lot of incredible enhancements that fans have built to enhanced their machines, right up to FPGA-powered CPU replacements that can run several times faster than the fastest original m68ks, and also offer digital video out, hundreds of MB of RAM, modern storage options, etc. To give an idea, check out Epsilon's Amiga Blog, which outlines some of the improvements they've made to their fleet of machines.

This is a deep rabbit hole, and I'm not sure I can afford the time (or the money!) to explore it at the moment. It will certainly not rise above my more pressing responsibilities. But we'll see how things go.


For Christmas, my great-great-grand-boss bought the Red Hat Newcastle office a 3D Printer1. I have next to no experience of designing or printing 3D objects, but I was keen to learn.

I thought a good way to both learn and mark my progress would be to create an initial, simple object; print it; refine the design and repeat the process, leaving me with a collection of objects that gradually increase in sophistication. I decided (not terribly originally, as it turns out) to model a little toy castle.

For the very first iteration, I wanted something very simple and abstract, in order to test the tooling. I installed OpenSCAD, which was already packaged for Debian. I was pleasantly surprise to learn that one defines objects in OpenSCAD via code. The language is a functional one that reminded me of building doom maps in WadC. Next, the object needs to be post-processed in a "Slicer", which converts a model specification into something that could structurally stand up (by adding lattices, temporary supports, etc.), sorts out scaling to real-world dimensions, terms of instructions that a 3D printer can follow (I think: precise head movement instructions, or similar). A colleague2 helped me with this part (Using Cura, I think)

The printed castle: four tall oblongs, joined by four shorter ones.

And here it is! Not much to look at. Let's see where I can take it.

  1. A Creality Ender 3
  2. Said colleague has printed some far more interesting—and useful— things, including smart card holders and little red fedora milk-toppers so we know which milk in the communal fridge belongs to us.

Older posts are available on the all posts page.