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…
Continue reading →
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…
Continue reading →
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!" …
Continue reading →
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…
Continue reading →
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…
Continue reading →
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. …
Continue reading →
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 …
Continue reading →
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…
Continue reading →
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.…
Continue reading →
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. …
Continue reading →
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.…
Continue reading →
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…
Continue reading →