Server-Side Rendering of Embedded Markdown Code Snippets in WordPress


The Logo for WordPress.

Because I'm a grumpy old man, I don't use Gutenberg or Block themes on my WordPress. Instead, I write everything in Markdown. When I write code snippets in Markdown, they look like this: ```php $a = 1; echo $a; if ($a < 5) { // Do Something return thing( $a, true ); } ``` But I want to render that with code highlighting. I was using the Prismatic Plugin. It is excellent and very customisable. But it uses JavaScript to do the code highlighting. I want to respect my readers' time and …

Continue reading →

I can't use my number pad for 2FA codes


Computer number pad with the number 7 in the top left.

This has to be the most infuriating bug report I've ever submitted. I went to type in my 2FA code on a website - but no numbers appeared on screen. Obviously, I was an idiot and had forgotten to press the NumLock button. D'oh! I toggled it on and typed again. No numbers appeared. I switched to another tab, my numbers appeared when I typed them. So I was reasonably confident that my keyboard was working. I swapped back to the 2FA entry and tried again. Still nothing. Then I tried typing the…

Continue reading →

Book Review: The End of Mr. Y - Scarlett Thomas


Book cover of a swirling vortex of words.

Oooh! This is an interesting slice of philosophical fiction. On the surface, it is a fairly standard story about a mysterious Victorian book which contains dark secrets and has since been lost to history. You probably know how it goes; our fearless heroine finds a long-lost copy, unlocks a weird world of intrigue, and is pursued by sinister forces. But then it hits the philosophy - and hits it hard! A one-two punch of Heidegger and Derrida, taking us on a journey into deconstruction. The…

Continue reading →

Hardware I miss from my old Android phones


The HTC Dream G1 - it has a pop up screen which reveals a keyboard, a trackball, and several physical buttons.

I've been using Android since before it was released in the UK. When I was working at Vodafone, I got a pre-release HTC device with an early version of Android on it. I've been pretty much in the Android ecosystem ever since. Recently, I treated myself to an upgrade - a Pixel 8 Pro. The biggest, fastest, fattest, AI-stuffed Android phone yet. It's pretty good! The camera is excellent, the heat-sensor is crap, the battery is gorgeous, the weight is annoying. Google's software was too needy, so …

Continue reading →

Use CSS to boost the font size of emoji with no extra markup


Group of emoji.

I want to make emoji bigger than the text that surrounds them. At my age and eyesight, it can be difficult to tell the difference between 😃, 😄, and 😊 when they are as small as the text. Is there a way to use CSS to increase the font size of specific characters without having to wrap them in an extra <span> or similar? Yes! Although it is a bit of a hack. This relies on 3 CSS features: src: local(), unicode-range,and size-adjust. Let me walk you through it. @font-face { font-family: &q…

Continue reading →

Movie Review: The Holdovers


Poster for The Holdovers.

You can safely skip the first 45 minutes of this movie. It's the most clichéd Dead Poets / Breakfast Club nonsense I've seen in quite some time. As for the rest? Well… it is shot on film with a unusual aspect ratio. So, you know, that's cool... There's also lots of ✨acting✨ and quirky camera angles… The final third is your typical mismatched buddy movie. Isn't it funny that the old man and young boy are so different? And yet, in many ways, aren't they the same? It is a totally unremark…

Continue reading →

Review: ACS ACR1251T-E2 USB Token NFC Reader II


USB thumb drive plugged into a computer.

Recap - I want to build an NFC reader expansion card for the FrameWork laptop. So I've bought a couple of components. This is the ACR1251T-E2 - it's a USB pen-drive sized NFC reader with a side-out USB-A plug. Costs about £40. There's a recessed green LED which flashes to let you know that it is working. It doesn't beep or vibrate when it detects an NFC token. It is a little bit tricky finding the antenna as the internal circuitry slides down the plastic housing - as can be seen in these …

Continue reading →

Review: ACM1252U-Z2 NFC Reader Board


View of a circuit board with a lit green LED.

Recap - I want to build an NFC reader expansion card for the FrameWork laptop. So I've bought a couple of components. This is the ACM1252U-Z2 and Oh! It is a dinky little component! The only sign that it is working is a flashing green LED. There's no buzzer on the board. It really is a tiny thing. Side on it is almost invisible. Does it work with Linux? Oh yes! It has a Micro-USB port, so I got a USB-C OTG cable. I plugged it into my laptop and ran lsusb - which shows it as 072f:223e…

Continue reading →

Why do Doctor Who companions leave?


Mel leaving in Doctor Who.

If you got the chance to travel in time and space, with an immortal alien, and got to rescue the universe again and again - would you ever give up that life? Would you be content to go from unravelling the mysteries of the universe and fighting DALEKs to, I don't know, marrying a stranger or going back to your old life? The joy of Doctor Who is that we - the viewers - are the constant companion. We might be able to take a little break now and again - but the Doctor is always waiting to take…

Continue reading →

Lazy way to cause SHA-256 collisions for lazy evaluators


A padlock engraved into a circuit board.

Humans are lazy. That's why we have computers; to do the boring work for us. I recently downloaded a file. The website said the file should have a SHA-256 hash of: ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb So I ran sha256 filename on my machine. And then lazily compared the hashes. By which I mean "Yeah the first few characters match, as do the last few. It's probably fine." Stupid lazy humans. It's pretty easy to demonstrate that you can take a string, generate a…

Continue reading →

Theatre Review: Instructions for a Teenage Armageddon


Poster featuring lots of Polaroid photos of a teenager.

There are lots of one-man plays. There are a decent number of one-woman shows. Where are the one-girl stories? This is Rosie Day's attempt to fix that imbalance. The plot isn't particularly original (it is hard being a teenage girl!!!) but the way the story unfolds is magical. It is witty, irreverent, and cringey in just the right amount. Charithra Chandran has easily enough stage presence to sustain the show alone. She takes up space and brings her various antagonists to life in a stunning…

Continue reading →

The Fediverse of Things


Binary code displayed on a screen.

One of the most frustrating things in modern technology is the effort spent trying to artificially restrict abundance. Take, for example, this tale from museum-worker Aaron Cope: I was out with a friend who worked for Twitter and I asked them whether it would be possible for the museum to “create 200,000 Twitter accounts, one for each object in the Cooper Hewitt’s collection”. My friend looked at me for a moment, laughed, and then simply said: No. In that blog post, Aaron reveals that the…

Continue reading →