Chapter 24 - I'd Like To Teach The World To Eat


A book cover in the style of a 1950's pulp sci-fi novel. An AI generated set of computers are connected by wires.

It had been a difficult day at the animal rescue centre and I was looking forward to tucking into a delicious cat-burger. You know when you've been on your feet all day and the only thing keeping you going is the thought of a hot meal? That sesame seed bun, a few slices of salad, a squeeze of secret sauce and a piping hot slab of cat meat - hold the pickles. That's what I needed, and that's what I ordered. "Sorry mate, we're out of cat." "Oh," I said dejectedly. "Got any Fillet-of-Dog?" …

Continue reading →

NaNoWriMo - An Introduction and Chapter 1: There Are Nine Million Autonomous Bicycles In Beijing


A book cover in the style of a 1950's pulp sci-fi novel. An AI generated set of computers are connected by wires.

Every year since 2009, I've taken part in NaBloPoMo - National Blog Posting Month. The aim is to publish a new blog post every day in November. In the last few years, I've blogged pretty much constantly - daily for 2020, 2021, and 2023. A total of around 2,800 posts. But now it is time for a new challenge - NaNoWriMo. Where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. And so, every day I shall attempt to publish a freshly written short story for my…

Continue reading →

Other pixel-level meta data you could put in an image format


Two children sat on a ledge. One has a tightly bound yellow border around their outline. The other has a similar green border. The wall they're sitting on has a red border which follows its shape.

Image files are a grid of pixels - each pixel contains colour information. But they don't just have to contain colour information. Here are some thoughts on other things that a future image format might contain. What exists already? A typical bitmap image looks like this under the hood: 0 1 2 3 0 Black Red Red Blue 1 Red White Blue Yellow 2 Orange Purple Green Brown ... That is a grid of pixels, each with a colour value. Modern image formats can also contain…

Continue reading →

WebMentions, Privacy, and DDoS - Oh My!


Crappy line drawing explaining the above.

Mastodon - the distributed social network - has two interesting challenges when it comes to how users share links. I'd like to discuss those issues and suggest a possible way forward. When you click on a link on my website which takes you to another website, your browser sends a Referer. This says to the other site "Hey, I came here using a link on shkspr.mobi". This is useful because it lets a site owner know who is linking to them. I love seeing which weird and wonderful sites have linked …

Continue reading →

Illegal Hashes


A padlock engraved into a circuit board.

To understand this blog post, you need to know two things. There exists a class of numbers which are illegal in some jurisdictions. For example, a number may be copyrighted content, a decryption key, or other text considered illegal. There exists a class of algorithms which will take any arbitrary data and produce a fixed length text from it. This process is known as "hashing". These algorithms are deterministic - that is, entering the same data will always produce the same hash. Let's take …

Continue reading →

A small bug in Canada's eTA emails


Screenshot of an email showing a broken image. Alt text is visible.

There's no way that I could find to report this to the Canadian Government - and I didn't fancy trying to raise a bug report with the first Mountie I met - so here's a blog post. As part of Canada's Electronic Travel Authorisation system, prospective visitors to the country get sent emails. The email I received had a broken image right at the top: At least there's some alt text! Gmail on Android doesn't let you view the source of an email, but the web version does. Here's what it says: …

Continue reading →

Starting Up Vs Staying On


A tiny lego Storm Trooper eats a chocolate coin.

A few years ago, I had a chance to work with an exciting tech startup. They had just become 5 years old. The day I went for an interview, about a dozen of the founding members announced they were quitting. Including the CEO. Was this a good sign or a bad sign? Over beers, my friends were all adamant that this was the end. The sky was falling and the little-startup-that-could was crashing and burning. I fundamentally disagreed. I thought it was a healthy sign. There are two types of people…

Continue reading →

Is it cheating to use spell check?


Clippy - an anthropomorphic paperclip is asking if I want help writing a letter.

When I was a kid, our school had one computer per classroom. Luxury! Teachers had long-since given up on the state of my handwriting. So I got special dispensation to write up some of my work on whatever primitive word processor was installed on the PC. With one caveat: no spell check! Which, even as a ten year old, I thought was reasonable. Learning to spell is an adult life skill. So using a spell-checker was cheating. Once I got to secondary school, it was assumed that I knew how to…

Continue reading →

The BBC's 15 Web Principles - 15 years later


Powerpoint slide announcing BBC 2.0.

Back in 2007 - an eternity in web years - the BBC published a document showing their 15 Web Principles. I thought I'd take a look at how they stack up today. And investigate whether the BBC is still living up to them. Here are the slides if you want to play along at home: BBC2.0: The BBC’s 15 Web Principles from hvs 1. Build Web Products that meet user needs This is still good advice! Sadly, there are still too many services around the web which are built on business needs. People g…

Continue reading →

Zotero citations in Markdown - publishing to ePub or PDF


Zotero logo.

Mostly notes to myself - I hope you find them useful. So, you want to write your dissertation or thesis in Markdown. But how do you manage all your citations? Install Zotero Install the Better BibTex plugin Restart Zotero. The BBT plugin will launch a configuration screen - use it to set your preferences Install VS Code (or VS Codium) Install the VS Code Zotero plugin Now, when you want to enter a citation in Markdown, the combined plugins will generate something like this: ## Abstract …

Continue reading →

What is the user need for cryptocurrency?


A tiny lego Storm Trooper eats a chocolate coin.

I was at an event a few months ago, where someone from the Bank of England was talking about understanding the user needs for cryptocurrency. One of the things people do when trying to create a new product or service is to write little user stories to illustrate the problem they're solving. You've probably seen this sort of thing: As a… busy parent, I want… a push alert from my washing machine; so that I… can stay on top of the laundry. As a… citizen, I want… an online passport application p…

Continue reading →

Someone turned my game into a comic!


A rendering of a comic with the text in English.

Hello readers! Way back in 2015, I wrote a "Choose Your Own Adventure" game using Twitter. I think it is fair to say that it is the best computer game I've ever published. And probably the only time I'll ever be reviewed in The Guardian and Kotaku! Anyway, a year ago I was contacted by an art student. They wanted to adapt my game into a comic for their art class. How could I refuse? This beautifully styled, monochrome pages were the result: They also provided me with a rendering with…

Continue reading →