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 →

Experiments with domestic load shedding in the UK


Screenshot of an email. It says "Hi Terence, You'll earn 1800 OctoPoints – that's £2.25 worth – for every unit of electricity you cut down between 5:00 PM and 6:00 PM on 15th November. Opt in now to save power and earn rewards in this Session. You'll go into a draw to win an extra 400,000 OctoPoints – that's £500 worth! – just for opting in. Important: you need to opt in before the Session starts if you want to earn rewards."

Electricity demand varies throughout the day. When demand is higher, electricity prices go up. Most UK consumers are insulated from this variability - we pay a fixed price per kWh no matter what the actual wholesale cost. But it doesn't need to be this way. Exposing users to the immense variability in pricing is probably too dangerous - as seen in Texas recently. Imagine if your electricity provider could say "hey, prices are going to be high tonight. We'll pay you to use less electricity!" …

Continue reading →

All the books I read this year


Montage of about 42 book covers.

My year starts in mid-November (my blog, my rules). Last year, I read an astonishing 85 books! That is too many books. This year I was doing lots of reading for my MSc - which was mostly academic papers. I also didn't have any long relaxing breaks. But, nevertheless, I'm happy to have read 42 books. Not bad! A few stats. The gender split was roughly 50:50. Some of the books were compilations and I think a few of the authors are non-binary. I'm pretty happy with that balance. As per my…

Continue reading →