Theme Switcher:

A little oddity in the way curl deals with old dates


The curl logo.

For boring technical reasons, computers think the world began on 1st of January 1970. To keep track of the future, they count the number of seconds since that momentous date. So zero seconds represents midnight on that day. So how do computers deal with dates before The Beatles' Abbey Road was top of the UK album charts? Negative numbers! Most modern computers can deal with dates far in the…

Continue reading →

Some minor bugs in Proton's new Authenticator app


QR code for a 10 digit TOTP.

I maintain a a test-suite for TOTP codes. It contains a bunch of codes which adhere to the specification, some of which stretch it to breaking point, and some that are completely invalid. These codes are a good starting point for checking whether a 2FA / MFA app works correctly. Proton have release a swish new authenticator app for Android, iOS, Mac, Linux and Windows. Sadly, their open source…

Continue reading →

Is it possible to allow sideloading *and* keep users safe?


A terrifying list of permissions.

In which I attempt to be pragmatic. Are you allowed to run whatever computer program you want on the hardware you own? This is a question where freedom, practicality, and reality all collide into a mess. Google has recently announced that Android users will only be able to install apps which have been digitally signed by developers who have registered their name and other legal details with…

Continue reading →

Book Review: What Sheep Think about the Weather - Amelia Thomas


Book cover featuring a sheep.

It started with a hummingbird dive-bombing Amelia Thomas over her morning coffee, and a pair of piglets who just wouldn’t stay put. Soon Amelia, journalist and new farmer, begins to question the communications of the creatures all around her: her pigs, her dogs, the pheasant family inhabiting her wood, her ‘difficult’ big red horse: even the earwigs in the farm’s dark, damp corners. Are they all…

Continue reading →

Security Flaws in the WebMonetization Site


Web Monetization The Web Monetization API allows websites to automatically and passively receive payments from Web Monetization-enabled visitors.

I've written before about the nascent WebMonetization Standard. It is a proposal which allows websites to ask users for passive payments when they visit. A visitor to this site could, if this standard is widely adopted, opt to send me cash for my very fine blog posts. All I need to do is add something like this into my site's source code: <link rel="monetization"…

Continue reading →

Book Review: The Shattering Peace by John Scalzi (Old Man's War Book 7)


Book cover showing spaceships and alien worlds.

I'm reasonably sure I've read all the "Old Man's War" books. As the last one was published a decade ago, you'll forgive me if I don't remember all the intricacies of galactic politics and interpersonal intrigue. Thankfully, Scalzi has carved off a side character from a previous book and given them a brand-new adventure. There's enough exposition to tickle the parts of your brain that go "Ah,…

Continue reading →

Gig Review: Rainbow Girls at LVLS London


Rainbow Girls on stage at LVLS.

At some point around the start of the pandemic, The Algorithm instructed me to listen to music by Rainbow Girls. Who am I to question the ineffable will of the machine? I don't know what it was about their harmonies, slide guitar, and double-bass which tickled my brain, but I was hooked. A few days ago, a different algorithm alerted me to the fact that they were touring the UK - so I snapped up…

Continue reading →

What about using rel="share-url" to expose sharing intents?


Screenshot. "Share this page on" followed by colourful icons for popular social networks.

Let's say that you've visited a website and want to share it with your friends. At the bottom of the article is a list of popular sharing destinations - Facebook, BlueSky, LinkedIn, Telegram, Reddit, HackerNews etc. You click the relevant icon and get taken to the site with the sharing details pre-filled. The problem is, every different site has a different intent for sharing links and…

Continue reading →

Theatre Review - Show:Girls


Two burlesque performers. One in a Viking helmet and one in a red hat.

Is it offensive to call a burlesque show "charming"? Sure, it is a funny and mildly titillating evening, but Show:Girls is suffused with such good natured charm that it is hard to describe it as anything else. Unlike Gallifrey Cabaret which puts on a plethora of variety acts, this is a rather stripped down production. The central conceit is that two acts have been accidentally double booked.…

Continue reading →

Theatre Review: Sluts With Consoles


Promo Poster.

Let's see if this post makes it through the spam filters! Sluts With Consoles is a brilliant two-hander. Girly-twirly pick-me Player One and Gothy just-one-of-the-boys Player Two are locked in mortal - and emotional - combat. They represent the duality of the female gaming experience. Is it better to be feminine or feminist? Is gaming an escape from the cliques of teenage oppression, or just…

Continue reading →

Preventing NAPTR Spam


Glowing computer text showing dot com dot info etc.

You're the sort of cool nerd who knows all the weird esoterica which makes up DNS, right? In amongst your A, AAAA, SOA, and MX records, there's a little used NAPTR. Yes, you can use DNS to store Name Authority Pointers! What?! It is yet another of those baroque standards which spits out things like: cid.uri.arpa. ;; order pref flags service regexp replacement IN NAPTR…

Continue reading →

Books will soon be obsolete in school


A wall spanning bookshelf with giant books.

I recently had a chance to ask a question to one of the top AI people. At a Q&A session, I raised my hand and asked simply "What is your estimation of the future educational value of AI?" The response was swift and utterly devastating for those laggards who want to hold back progress. The AI guy said: Books will soon be obsolete in schools. Scholars will be instructed through AI. It is possible …

Continue reading →