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

Here's a tip for mobile Twitter users who are frustrated with either shortcomings of the Twitter app, or the invasive nature of social media apps in general: delete the app, and just use the mobile web view.

I've been doing this for a while now, and the experience is much better for me. With the app, I regularly had my current view of either a timeline or a specific tweet interrupted or lost when the app decided to refresh. With the web view, I have my browser's history and back/forward buttons, and the ability to bookmark specific tweet URIs if I so wish.

I can open multiple windows with different tweets in them, if I want to keep a few around as reminders for something or other. I can switch between multiple tweets; or tweets, the timeline and something completely different, and not lose my views. I can follow a link from a tweet and not be bounced to a different app (or worse: an app-specific, built-in browser with none of my browser settings or sessions, a fresh round of hell clicking on the Cookie and Privacy Choices pop-ups), and clicking "Back" from such articles brings me back to where I came from.

But most importantly, if I get sick and tired of Twitter at any given moment, I can just close that browser tab. I don't have an omni-present Twitter icon on my phone calling me to click on it. It's just a website, like many others, that I can choose to visit, or not, whenever I want. The Twitter web experience is certainly less polished than the app one, but ultimately I feel like I'm in control of it, rather than the other way around.


Redworth Hall

Redworth Hall

main talk,
thanks [Mark Little](

main talk, thanks Mark Little

lightning talk

Amiga lightning talk, thanks Mark Little

I gave a talk on my research at the Fourth Annual UK System Research Challenges Workshop. This is the second time I've attended this conference. Last year I presented on some Red Hat work.

The conference took place at Redworth Hall, a 17th Century Jacobean Manor House converted into a spa Hotel. The main presentations took place in an ornate hall with high ceilings, candelabra and long curtains (definitely not a drop you can buy at Dunelm)

This is the first time I've presented on my research to a public audience. Here's a copy of my presentation slides, with speaker notes. I've tried to annotate the questions from the session into the notes of the last slide.

I also delivered a short lightning talk about my Amiga floppy recovery project which resulted in some really interesting spin-off conversations about historic computing.

Thanks to my employer, Red Hat, for sponsoring the conference and making it possible, and to Jen for doing an excellent job of making sure it could take place.


This is the seventh part in a series of blog posts. The previous post was Learning new things about my old Amiga A500.

[X-COPY]( User Interface

X-COPY User Interface

[Totoro]( Soot Sprites?

Totoro Soot Sprites?

"Cyberpunk" party invitation

My childhood home

My childhood home

[HeroQuest]( board game guide

HeroQuest board game guide

I've finally dumped some of my Amiga floppies, and started to recover some old files! The approach I'm taking is to use the real Amiga to read the floppies (in the external floppy disk drive) and then copy them onto a virtual floppy disk image on the Gotek Floppy Emulator. I use X-COPY to perform the copy (much as I would have done back in 1992).

FlashFloppy's default mode of operation is to scan over the filesystem on the attached USB and assign a number to every disk image that it discovers (including those in sub-folders). If your Gotek device has the OLED display, then it reports the path to the disk image to you; but I have the simpler model that simply displays the currently selected disk slot number.

For the way I'm using it, its more basic "indexed" mode fits better: you name files in the root of the USB's filesystem using a sequential scheme starting at DSKA0000.ADF (which corresponds to slot 0) and it's then clear which image is active at any given time. I set up the banks with Workbench, X-COPY and a series of blank floppy disk images to receive the real contents, which I was able to generate using FS-UAE (they aren't just full of zeroes).

A few weeks ago I had a day off work and spent an hour in the morning dumping floppies. I managed to dump around 20 floppies successfully, with only a couple of unreadable disks (from my collection of 200). I've prioritised home-made disks, in particular ones that are likely to contain user-made content rather than just copies of commercial disks. But in some cases it's hard to know for sure what's on a disk, and sometimes I've made copies of e.g. Deluxe Paint and subsequently added home-made drawings on top.

Back on my laptop, FS-UAE can quite happily read the resulting disk images, and Deluxe Paint IV via FS-UAE can happily open the drawings that I've found (and it was a lot of fun to fire up DPaint for the first time in over 20 years. This was a really nice piece of software. I must have spent days of my youth exploring it).

I tried a handful of user-mode tools for reading the disk images (OFS format) but they all had problems. In the end I just used the Linux kernel's AFFS driver and loop-back mounts. (I could have looked at libguestfs instead).

To read Deluxe Paint image files on a modern Linux system one can use ImageMagick (via netpbm back-end) or ffmpeg. ffmpeg can also handle Deluxe Paint animation files, but more care is needed with these: It does not appear to correctly convert frame durations, setting the output animations to a constant 60fps. Given the input image format colour depth, it's tempting to output to animated GIF, rather than a lossy video compression format, but from limited experimentation it seems some nuances of the way that palettes are used in the source files are not handled optimally in the output either. More investigation here is required.

Enjoy a selection of my childhood drawings…


[blockmap.wl]( being reloaded (click for animation)

blockmap.wl being reloaded (click for animation)

A couple of weeks ago I release version 3.0 of Wad Compiler, a lazy functional programming language and IDE for the construction of Doom maps.

3.0 introduces more flexible randomness with rand; two new test maps (blockmap and bsp) that demonstrate approaches to random dungeon generation; some useful data structures in the library; better Hexen support and a bunch of other improvements.

Check the release notes for the full details, and check out the gallery of examples to see the kind of things you can do.

Version 3.0 of WadC is dedicated to Lu (1972-2019). RIP.


This is the sixth part in a series of blog posts. The previous post was glitched Amiga video. The next post is First successful Amiga disk-dumping session.

Sysinfo output for my A500

Sysinfo output for my A500

I saw a tweet from Sophie Haskins who is exploring her own A500 and discovered that it had an upgraded Agnus chip. The original A500 shipped with a set of chips which are referred to as the Original Chip Set (OCS). The second generation of the chips were labelled Enhanced Chip Set (ECS). A500s towards the end of their production lifetime were manufactured with some ECS chips instead. I had no idea which chipset was in my A500, but Sophie's tweet gave me a useful tip, she was using some software called sysinfo to enumerate what was going on. I found an ADF disk image that included Sysinfo ("LSD tools") and gave it a try. To my surprise, my Amiga has an ECS "AGNUS" chip too!

I originally discovered Sophie due to her Pizzabox Computer project: An effort to acquire, renovate and activate a pantheon of vintage "pizzabox" form-factor workstation computers. I once had one of these, the Sun SPARCStation 10, but it's long since gone. I'm mildly fascinated to learn more about some of these other machines. After proofreading Fabien Senglard's DOOM book, I was interested to know more about NeXTstations, and Sophie is resurrecting a NeXTstation mono, but there are plenty of other interesting esoteric things on that site, such as Apple A/UX UNIX on a Quadra 610 (the first I'd heard of both Apple's non-macOS UNIX, and their pizzabox form-factor machines).


Older posts are available on the all posts page.