Howto: construct a monad

A monad is a special prayer used by software developers. In this simple guide, I’ll teach you how to build (we developers say “reify”!) a monad of your very own. Start with the combinator function. A combinator is like a regular function except that the domain is partial and the range is delicate. Turn it clockwise … Continue reading Howto: construct a monad

High-res 2d barcodes for transmission over an air gap: part 1

I’ve got a theory that an animated high-resolution barcode is a a workable mode of communication for sending data across an air gap. The host machine displays barcodes, say once a second, and client software on a phone or laptop off the air-gap reads and decodes the barcodes. In this manner, a large amount of compressed … Continue reading High-res 2d barcodes for transmission over an air gap: part 1

Government Minister “Against Democracy”

Prime Minister David Richardson has surprised supporters by saying he is “now anti-democracy”. During a speech to supporters at Parliament House today, Mr Richardson acknowledged that while “before [the election], I – along with many of my supporters – fought to bring about true democratic reform in our country,” he now realises that “I’m in charge now, and … Continue reading Government Minister “Against Democracy”

Mandalay & Yangon

There were no beds left. The “6” train from Yangon to Mandalay takes 15 hours according to the man in the ticket office, and 17 according to everyone else. It leaves Yangon Central railway station at 3pm and heads slowly North, passes through the capital Naypyitaw in the evening, and then trundles on through the … Continue reading Mandalay & Yangon


It’s a common theme (at least in the UK) that people bemoan the passing of ‘institutions’ like Woolies, yet never went and bought anything when it was open. We saw this over the last decade with small high-street shops going under whilst superstores and chain retailers survived, because they were able to use their colossal … Continue reading Woolworths