Terence Eden. He has a beard and is smiling.

Terence Eden’s Blog

Theme Switcher:

ActivityPub Server in a Single PHP File

· 9 comments · 1,950 words · Viewed ~3,731 times


Logo for ActivityPub.

Any computer program can be designed to run from a single file if you architect it wrong enough! I wanted to create the simplest possible Fediverse server which can be used as an educational tool to show how ActivityPub / Mastodon works. The design goals were: Upload a single PHP file to the server. No databases or separate config files. Single Actor (i.e. not multi-user). Allow the Actor to…

Internationalise The Fediverse

· 35 comments · 750 words · Viewed ~308 times


Translation icon. By Linh Nguyen.

We live in the future now. It is OK to use Unicode everywhere. It seems bizarre to me that modern Internet services sometimes "forget" that there's a world outside the Anglosphere. Some people have the temerity to speak foreign languages! And some of those languages have accents on their letters!! Even worse, some don't use English letters at all!!! A decade ago, I was miffed that GitHub only…

Are we 'appy about change?

· 21 comments · 850 words · Viewed ~1,020 times


Advert which says "Fancy working with us on the first GOV.UK mobile app? These Android developer roles are exciting..."

Shortly before I left the Civil Service in 2023, I made a complete fool of myself. Someone on Slack was discussing their department's app and I (rather snidely) asked why it was an app rather than a website. After all, one of the seminal blog posts of GDS was about not building apps. In response, I was given an eye-roll and told "because that's how most people get their information, grandpa!" …

"I'm sorry, Dave. I'm afraid that computation is too carbon intensive."

· 3 comments · 350 words · Viewed ~2,262 times


Binary code displayed on a screen.

An interesting snippet about the future of computation: Starting with this build, we are introducing the Power Grid Forecast API. This API empowers app developers to optimize app behavior, minimizing environmental impact by shifting background tasks to times when more renewable energy is available in the local electrical grid. Announcing Windows 11 Insider Preview Build 26052 Some…

HOWTO: Sort BitWarden Passwords by Date

· 3 comments · 300 words · Viewed ~555 times


Screenshot of the BitWarden export page.

I highly recommend BitWarden as a password manager. It is free, open source, and has a great range of apps and APIs. The one thing it doesn't have is a way to sort your accounts by creation date. I now have over a thousand accounts that I've added - so I wanted to prune away some of the older ones. So, here's how to do it. Export your vault In the desktop version of BitWarden, go to File → E…

VR Game Review: Moss

· 1 comment · 350 words


A large hall with squirrel statues.

It is impossible to describe just how cute this game is. Most VR games take place at "human scale" - you play as a human inside a building, or other human-sized space. But Moss lets you play as a mouse named Quill with you (the player) towering over her. You are a human literally peering down into a mouse-sized kingdom. It is one of the most stunning uses of VR in a game that I've seen. …

Book Review: Julia - Sandra Newman

· 200 words


Book cover. The word "Julia" is superimposed on the number "1984".

The central schtick of this book is a cliché brilliantly delivered. Take a side-character from a beloved book and retell the story through their eyes. I only have hazy memories of reading 1984 - where Julia is little more than a femme fatale. This book is an explicit and visceral journey through Julia's life in Airstrip One. We see how, from her point of view, Winston Smith is little more than …

There should only ever be one way to express yourself

· 7 comments · 300 words


Logo of the Python programming language.

I've been thinking about programming languages and their design. In her book about the divergence of the English and American languages, Lynne Murphy asks this question: wouldn’t it be great if language were logical and maximally efficient? If sentences had only as many syllables as strictly needed? If each word had a single, unique meaning? If there were no homophones, so we’d not be able to mi…

Forget Technocrats - Let's Get Some Realitycrats

· 5 comments · 800 words · Viewed ~233 times


Terence Eden standing outside Number 10 Downing Street.

I don't really care about ideology and doctrine any more. I just care about what works. I'm going to take a few (somewhat controversial) subjects and explain what I mean. Fundamentally, I believe that all energy companies should be nationalised and there should be a single energy supplier. I don't want to pay a dozen CEOs, a dozen finance teams, and for a dozen advertising campaigns.…

Actually, I *do* want IoT kitchen gadgets

· 9 comments · 500 words · Viewed ~241 times


Photo of a fridge with a circuit board and sensors plugged into it.

There's a popular meme that Internet connected domestic appliances are a useless fad that no-one wants. I disagree. Obviously, a crappy oven with an app that upsells you cleaning products is a bit shit. As is a dishwasher that borks on firmware update and lets itself be hacked by the Eurasians. But those are just a symptom of profit-led development rather than placing a priority on user-needs. …

The Seven Levels of Open Source

· 2 comments · 600 words


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

This isn't an original idea, but I needed to get it out of my brain. There are many different definitions of what "Open Source". We can have a lovely argument over a pint as to whether GPLv3 is too open or if a licence which hasn't been validated by the OSI counts. But, more fundamentally, I think Open Source roughly falls into seven levels. These aren't in any particular order of importance.…

VR Game Review: Labyrinth deLux – A Crusoe Quest

· 1 comment · 200 words


In game graphic show lots of lasers flying around.

I love single player VR puzzle games. Especially ones with no timers, baddies, or jump-scares. I just want to play against myself. Labyrinth deLux is brilliant. The puzzle is simple enough - point lasers at mirrors, then align mirrors until they point at the target. You've almost certainly played a 2D version of this. But it has a mind-bending 3D layout which requires you to continually walk…