Book Review: The Man In The Wall by KJ Lyttleton


Book cover.

It is always nice to meet someone in a pub who says "I've written my first book!" - so, naturally, I picked up Katie's novel as my next read. I'm glad that I did as it's a cracking crime story. It starts slowly, with a brilliantly observed satire of office life. The gossip, banal slogans, venal senior managers, and work-shy grifters are all there and jump off the page. You'll have met all of…

Continue reading →

A Recursive QR Code


QR Code.

I've been thinking about fun little artistic things to do with QR codes. What if each individual pixel were a QR code? There's two fundamental problems with that idea. Firstly, a QR code needs whitespace around it in order to be scanned properly. So I focussed on the top left positional marker. There's plenty of whitespace there. Secondly, because QR codes contain a lot of white pixels…

Continue reading →

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…

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 t…

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…

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…

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…

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…

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…

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…

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…

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. …

Continue reading →