Using phpList for a blog's newsletter


RSS Settings Screen.

Some people like to receive this blog via email. I previously used JetPack to send out subscriber messages - but it became increasingly clear that Automattic isn't a good steward of such things. I couldn't find any services which would let me send a few thousand subscribers a few emails per week, at zero cost. So, redecentralise! I installed phpList which is an open source email campaign tool. …

Continue reading →

Is this a bug in every Markdown (Extra) parser?


The Markdown logo.

Markdown is, I think it is fair to say, a frustrating "specification". It's origins are a back-of-a-fag-packet document and a buggy Perl script - and we've been dealing with the consequences ever since. There are now multiple Markdown parsers, each with their own idiosyncrasies. To make matters worse, there's a set of extensions popularly known as "Markdown Extra". Extra has support for things…

Continue reading →

Highly Predictable Interactions


3 playing cards on a table.

I remember the first time as an adult I ordered a takeaway. I picked up the phone, menu in hand, and prepared to do battle. The person on the other end of the phone didn't speak English, my menu was out of date, they couldn't understand my address, and I didn't have the right money when they finally delivered. Stressful, annoying, and - until relatively recently - commonplace. When services…

Continue reading →

Using a CSS cursor to show the external link's favicon


A link with the Google logo hovering over it.

How do you know where this link goes to? If you're on a desktop, you might notice that hovering your mouse over it displays the destination somewhere on your screen. If you're a geek, you could view the source-code of a page. Can we improve the experience for users? Here's an attempt. Try hovering your cursor over this link to a popular website. This is what it should look like: Here's how …

Continue reading →

Review: The Cheapest USB-C Headphones I Could Find


A cheap and flimsy pair of slightly purple headphones.

Ever since phone manufacturers killed off the headphone jack, there has been an epidemic of people blasting sounds from their shitty speakers in public. Music, TikTok, phone calls - it seems some people want the whole world to share their sonic experience. Forget that noise! I have a passive-aggressive death-wish and want to hand out free headphones to people annoying me on public transport. …

Continue reading →

Adventures with ultra-cheap ZigBee lightbulbs


3 light bulbs. One is red, one green, one blue.

The people who built my kitchen were idiots. They designed it to be lit with a dozen recessed GU10 spotlights. That's not so terrible - GU10 LED bulbs are only about £1 each - but because I am a bigger idiot, I decided I wanted remote-controlled bulbs. And ZigBee bulbs are expensive! Five years ago, feeling flush with cash, I replaced all the bulbs with a mixture of Hue and Innr Smart bulbs. …

Continue reading →

Opening Compact File Set (CFS) files in Linux


Unix is user-friendly — it's just choosy about who its friends are.

I was sent some medical images in a password-protected CFS file. Here's how to open them in Linux. You can't. OK, that's a bit of an exaggeration. It's complex, but here's how to do it. The Linux software for the Compact File Set hasn't been updated in years and only works with ancient versions of Linux. Here's how to temporarily install an old version, install the software, and then…

Continue reading →

Theatre Review: Coriolanus at the National Theatre


David Oyelowo, shirtless and swinging a sword. Photo by Misan Harriman.

What is the city but the people? What indeed? David Oyelowo is a powerhouse. His Coriolanus is a shitheel teetering somewhere between Trump and Mugabe. He isn't a noble character with a fatal flaw; his flaws are his character. The citizens celebrate him, turn on him, fear him. It isn't about power corrupting, it's about venal people abusing power structures. There are persistent theories about …

Continue reading →

Movie Review: Humanist Vampire Seeking Consenting Suicidal Person


Movie poster. A young girl drinks from a bag of blood.

There are some movies - like Snakes On A Plane - where the title simultaneously tells you the whole plot and compels you to watch it. Similarly, how can you resist something called "Vampire humaniste cherche suicidaire consentant"? Like the darkest of chocolates, the bitterness only accentuates the tender sweetness of the protagonist. A young female vampire who suffers from what can only be…

Continue reading →

WordPress - Sic Transit Gloria Mundi


The Logo for WordPress.

Why do so many vastly-wealthy tech personalities go mad? My ideal job involves being employed by a millionaire tech-bro. Just before they get on stage, or moments before they file a lawsuit, or an instant before they publish their thought leadership - I will appear to them. I will be dressed in rags, body smeared with excrement, weeping sores blotching my face. I will sidle up to them, lean…

Continue reading →

You can use text-wrap: balance; on icons


The HTML5 Logo.

A fun little CSS experiment! There's a new(ish) feature in CSS which allows you to set the way text is wrapped. Ordinarily, a long line of text might be split at an inopportune time. For example: This very long headline ends with a single word Having a dangling word doesn't always look great. Using text-wrap:balance would give us something like: This very long headline ends with balanced…

Continue reading →

Book Review: The Appeal - Janice Hallett


Book cover featuring a woodcut of a village.

I was 25% of the way through reading this when I purchased the sequel. It is an utterly compelling murder mystery - not least because the death doesn't occur until well after the halfway point. Who dies? Why? Who did it? Why?! With every paragraph I felt myself trying to decipher the characters' motives. A murder mystery set in an amateur dramatics society is a bit Simon Brett but this has much …

Continue reading →
OSZAR »