programming

Solving `Passport Application` with Haskell

17 minute read Published: 2025-06-27

(Comments on HackerNews and Reddit)

There's a trend at the moment of solving online games with programming, let's do one from the UK called Passport Application, which is developed by "His Majesty's Passport Office" or HMPO. It's a cultural phenomenon in the UK: despite being quite expensive (about £100 just to start) for the standard online version (a masterpiece of minimalist design, entirely text-based), most British play the game, and do so every 10 years or so.

It's an adventure puzzle document collection game. The premise is to collect enough artefacts, scattered throughout various bureaucratic institutions, until you can prove the statement "Applicant is British" according to an extremely complex set of rules, written in arcane language, in various texts called "acts of parliament". The prize for winning is a little booklet with a date inside that indicates when you can play again.

Domain structured programming (UK ATC meltdown)

10 minute read Published: 2023-09-15

This is part 3 of my blog posts about the UK air traffic control meltdown. You might want to read part one and part two.

Having had some time to process some of the comments about my first post, I realise now that I was not clear in communicating my thoughts about the programming style, and how that contributed to the existence of the bug. I will have another go now. The point I was trying to make was:

With a better programming style, the bug might not have been made even if the code is only meant for flight plans with no duplicate waypoints.…

UK ATC meltdown and swiss cheese

4 minute read Published: 2023-09-13

This is a short follow-up of my post about the UK air traffic control meltdown. You might want to first read part one.

So my first post got a lot of attention, and that generates a lot of comments. What was most discussed was:

"But really though, what was the one thing that went wrong?"

UK air traffic control meltdown

32 minute read Published: 2023-09-08

Comments on reddit and Hacker News. Other posts: part two and part three.

UPDATE: The flight plan which triggered the chaos (but was valid) has been identified!


On 28 August 2023 NATS, the UK's air traffic control operator, suffered a major technical incident. The BBC reports that more than 2000 flights were cancelled and the cost has been estimated at over £100 million GBP. The incident probably affected hundreds of thousands of people.

The press initially reported the cause was a faulty flight plan: "UK air traffic control: inquiry into whether French error caused failure" (The Times) and in typical Mail Online reporting style: "Did blunder by French airline spark air traffic control issues? Officials probe if a single badly filed travel plan caused UK's entire flight-control system to collapse in worst outage for a decade - with 1,000 flights cancelled and chaos set to last DAYS".

So what happened? These are notes on my reading of the incident report:

Why (some) Python programmers don't want Haskell

4 minute read Published: 2023-07-16

A Haskell discourse thread asks why more Python developers couldn't instead be using Haskell.

One of the points made in this thread, is that there is a sizeable class of Python programmers for which the trope "Python programmers will be scared of monads!" doesn't apply. I thought I would ask some of the people I know that use Python why they don't use Haskell.