Theme Switcher:

How big a solar battery do I need to store *all* my home's electricity?


Graph of power flow.

I have a modest set of solar panels on an entirely ordinary house in suburban London. On average they generate about 3,800kWh per year. We also use about 3,800kWh of electricity each year. Obviously, we can't use all the power produced over summer and we need to buy power in winter. So here's my question: How big a battery would we need in order to be completely self-sufficient? Background …

Continue reading →

Book Review: All That We See or Seem by Ken Liu


Book cover with a fractured city in the background.

This book is ridiculously zeitgeisty. It's all brain-rotting AI, social-media meltdowns, mixed with some cracking technobabble. She thinks about erasing more: all the practice session recordings; her own encrypted cephaloscripts; the dream-guide neuromesh of her personal AI; the interviews, fan messages, reviews—food for her vanity, training data for her egolets. Fab! But, for all that, it's p…

Continue reading →

Reasonably accurate, privacy conscious, cookieless, visitor tracking for WordPress


The Logo for WordPress.

I am vain. I like to know which of my blog posts have "done numbers". I get a little thrill knowing that an old post I wrote has been read by someone in a land I've never visited. I'm curious and want to know if a newsletter has linked to me. At the same time, I don't want to know too much about people. I don't want to stalk them around the web. I refuse to care how long they spend with me. I…

Continue reading →

Event Review: Doin' the Lambeth Walk (Oi!)


Poster for the event.

​Historical entities have been sighted in the old village of Lambeth. Are they ghosts? Visions? Or intruders through a crack in time? Join your guides and explore the backwaters and byways that slowly spread over the mysterious marshes of Lambeth. Most walking tours have a guide drag you around the well-known tourist hot-spots while they read out a bit from Wikipedia. Minimum Labyrinth’s tour i…

Continue reading →

Some thoughts on personal git hosting


An SSO screen with buttons for GitHub and GitLab.

As part of my ongoing (and somewhat futile) efforts to ReDeCentralise, I'm looking at moving my personal projects away from GitHub. I already have accounts with GitLab and CodeBerg - but both of those sites are run by someone else. While they're lovely now, there's nothing stopping them becoming as slow or AI-infested as GitHub. So I want to host my own Git instance for my personal projects. …

Continue reading →

Book Review: Star Trek: Lower Decks, Vol. 1: Second Contact by Ryan North


Comic book cover.

I can confidently declare that Lower Decks is the second best Star Trek series after The Orville. Lower Decks has always been bags of fun with a good emotional core. Now your favourite sci-fi capers are available in handy comic book form! Second Contact is a compilation of Lower Decks issues #1–6. You get a bunch of stories spread out over 145 pages. The great thing about a comic of a cartoon i…

Continue reading →

40 years later, are Bentley's "Programming Pearls" still relevant?


Gnarly monochrome scan of Programming Pearls.

In September 1985, Jon Bentley published Programming Pearls. A collection of aphorisms designed to reveal truths about the field of programming. It's 40 years later - long enough to see several revolutions in the field - so surely these are obsolete, right? They belong in the same category as "always carry a bundle of hay for the horses" or "you won't always have a pocket calculator with you" or …

Continue reading →

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 →