Book Review: Machine Readable Me by Zara Rahman


Book Cover.

404 Ink's "Inklings" series are short books with high ideals. This is a whirlwind tour through the ramifications of the rapid digitalisation of our lives. It provides a review of recent literature and draws some interesting conclusions. It is a modern and feminist take on Seeing Like A State - and acknowledges that book as a major influence. What are the dangers of static standards which force people into uncomfortable boxes? How can data be misused and turns against us? Rather wonderfully…

Continue reading →

Book Review: Hive - Madders of Time Book One by D. L. Orton


Hive book cover.

What if, with your dying breath, you sent your lover back in time in order to change the fate of a ruined Earth? What if he sent a message back to his younger self to help seduce you? What if the Government intercepted a mysterious orb full of treasures from another dimension? What if…? This is a curious mish-mash of a book. Part sci-fi and part romance. I don't read enough romance to tell if that side of it is any good - it's all longing looks, furtive glances, and "what if"s. It was charming …

Continue reading →

Review: Ben Elton - Authentic Stupidity


Poster for Ben Elton.

In many ways it is refreshing that Ben Elton hasn't changed his act at all over the last 44 years. Go back to any YouTube clip of his 1980s stand-up and you'll hear the same rhythm, vocal tics, and emphasis as he does today. Even his politics haven't shifted (much) with identical rants about feckless politicians and the dangers of bigotry. What's lost is the sense of topicality. Hey! Don't we all look at our phones too much?! Gosh! Isn't Daniel Craig a different James Bond to Roger Moore?!…

Continue reading →

Theatre Review: Elektra


Poster for Elektra featuring Brie Larson with short cropped hair.

Experimental and unconventional theatre is rare in the prime spots of the West End. There's a sea of jukebox musicals, film adaptations, standard Shakespeare, and Worthy Plays. Theatreland runs on bums-on-seats - doesn't matter what the critics say as long and punters keep paying outrageous prices for cramped stalls in dilapidated venues. Elektra is uncompromising. It is the sort of play the average customer might have heard of in passing, but hasn't made a significant dent in modern…

Continue reading →

Book Review: Medieval Cats - Claws, Paws, and Kitties of Yore by Catherine Nappington


Book cover of Medieval Cats.

Malcolm Croft (under the pseudonym Catherine Nappington) has produced a compendium of cat illustrations from ancient manuscripts. It's then peppered with a variety of regurgitated facts and captions of a sub-Facebook levels of humour. There are a few hundred pages of illustrations for you to flick through - but they're all devoid of context. As sumptuous as the images are, they're surround by commentary which wouldn't be out of place on a disused Tumblr blog. There's also a lot of discussion…

Continue reading →

Towards a test-suite for TOTP codes


Screenshot showing a QR code and numeric codes.

Because I'm a massive nerd, I actually try to read specification documents. As I've ranted ad nauseam before, the current TOTP spec is irresponsibly obsolete. The three major implementations of the spec - Google, Apple, and Yubico - all subtly disagree on how it should be implemented. Every other MFA app has their own idiosyncratic variants. The official RFC is infuriatingly vague. That's no good for a security specification. Multiple implementations are great, multiple interpretations are…

Continue reading →

Using the Web Crypto API to Generate TOTP Codes in JavaScript Without 3rd Party Libraries


A chunky wristwatch showing the time and a selection of 6 digit codes and their corresponding entities.

The Web Crypto API is, thankfully, nothing to do with scammy cryptocurrencies. Instead, it provides access to powerful cryptographic features which were previously only available in 3rd party tools. So, is it possible to build a TOTP code generator without using any external JS libraries? Yes! And it is (relatively) simple. Here's the code that I've written. It is slightly verbose and contains a lot of logging so you can see what it is doing. I've annotated it with links to the various…

Continue reading →

ManyTag Colour eInk Badge SDK - Minimum Viable Example for Android


Screenshot of an app.

Last year, I reviewed a Four-Colour eInk Name Badge - the ManyTag HSN371. The hardware itself is perfectly fine, but the Android app isn't great. It is complicated, crash-prone, and not available in the app-store. After some back-and-forth with the manufacturer, they agreed to send me their Android SDK and documentation. Sadly, the PDF they sent me was riddled with errors and the software library is also a bit dodgy. So, with the help of Edward Toroshchyn and a hefty amount of automated…

Continue reading →

Theatre Review: The Last Laugh


Actors impersonating Tommy Cooper, Eric Morecambe and Bob Monkhouse.

This is three excellent plays in one. First, a ghost story. Second, a tribute act. Thirdly, a meditation on the nature of comedy. In many ways, it is the complement to Inside Number 9 playing next door. Cooper, Morecambe, and Monkhouse were dead to begin with. Perhaps you grew up watching them live at the Palladium, or on grainy VHS tapes, or in microbursts on TikTok. But they got their last live laugh several decades prior to today. Nevertheless, their comedy lineage remains. Every…

Continue reading →

Change the way dates are presented in WordPress's admin view


The Logo for WordPress.

WordPress does not respect an admin's preferred date format. Here's how the admin list of posts looks to me: I don't want it to look like that. I want it in RFC3339 format. I know what you're thinking, just change the default date display - but that only seems to work in some areas of WordPress. It doesn't change the column-date format. Here's what mine is set to: So that doesn't work. Instead, you need to use the slightly obscure post_date_column_time filter Add this to your theme's …

Continue reading →

Book Review: Web Accessibility Cookbook - Creating Inclusive Experiences by Manuel Matuzovic


Book cover featuring a happy dog.

My friend Manuel has sent me his latest book to review - and it is a corker. The best thing about this book is that it doesn't waste any time trying to convince you that Accessibility Is Good™. You're a professional web developer; you know that. Instead, it gets straight down to brass-tacks and gives you immediate and useful examples of what to do. You could read the book linearly - but it is much more suited to dipping into. Want to know exactly how to do something? There's almost certainly a…

Continue reading →

The least secure TOTP code possible


QR code.

If you use Multi-Factor Authentication, you'll be well used to scanning in QR codes which allow you to share a secret code with a website. These are known as Time-based One Time Passwords (TOTP). As I've moaned about before, TOTP has never been properly standardised. It's a mish-mash of half-finished proposals with no active development, no test suite, and no-one looking after it. Which is exactly what you want from a security specification, right?! So let's try to find some edge-cases and…

Continue reading →