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 supported some ASCII characters in its project names. There's no technical reason why your repo can't …
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!" Last week, I saw this job advert and I got an involuntary shudder. But I am wrong. Time moves on.…
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 computational processes take a lot of electricity. Back in the old days, batch computing meant that…
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 → Export Vault. Choose the JSON format (this doesn't work for CSV) and follow the on-screen i…
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. https://shkspr.mobi/blog/wp-content/uploads/2024/02/mossout.mp4 It is like playing with a dolls house. And …
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 a pathetic dreamer. His childish fantasies of toppling Big Bother are the last gasp of a snivelling …
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 mix up dear and deer or two and too? That got me thinking about the creativity which can be exp…
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. Privatisation has been a complete waste. And yet... When my previous energy company was being shit, I fired …
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. Several years ago, I built an Internet Connected Fridge. This didn't have a touchscreen with a…
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. And feel free to argue in the comments if you think I've radically misunderstood something. 1. Look…
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 on the ceiling to adjust your perspective. The UI is, thankfully, not chunder-inducing. You point…
Continue reading →
Oppenheimer is... fine? I guess? For ever gorgeously composed shot, there's a minute of plodding exposition. For every heart-breaking moment of self-doubt, there's a minute of plodding exposition. For every celebrity cameo, there's a minute of plodding exposition. That's why this is a decidedly average film. Every single actor is incredible - stuffed as it is with Oscar winners and nominees. But some of the dialogue is just risible - for example, the revelation that JFK had a bit-part in the …
Continue reading →