Many years ago, in another lifetime, I was presenting our team's work to a rather senior politician. Here's how I remember it: "We want to provide value for money," I said, "so we propose that running five small pilots of [thing I still can't talk about]. We know there are multiple technologies which could work. But we don't know which one will work best." "How will running something five times …| Terence Eden’s Blog
This is a stunning book. If some scientists and mathematicians have seen further than others, it is by standing on the mountains of madness. This straddles between being a faithful and fanciful biography of insanity. It is written like a hyperactive friend trying to show you how all the things in the universe connect with each other - while you slowly back away in terror. Are these ghost…| Terence Eden’s Blog
The "…by Candlelight" concerts have a simple premise - come to a cathedral or church to hear top West End talent sing your favourite singer's songs, backed by a live band. This is a cut above your usual tribute act - they aren't trying to do impressions of the act, they're stamping their own energy onto beloved songs. It works! Mostly. This concert was in a West End theatre so the (electric) c…| Terence Eden’s Blog
In theory, you should be able to get the base favicon of any domain by calling /favicon.ico - but the reality is somewhat more complex than that. Plenty of sites use a wide variety of semi-standardised images which are usually only discoverable from the site's HTML. There are several services which allow you to get favicons based on a domain. But they all have their problems. Google Exposes…| Terence Eden’s Blog
Our friends Annie and Dave run the podcast "Will You Still Love It Tomorrow". The premise is great - take a film that you love but you haven't seen for ages, and see if it still holds up. They asked me and Liz to nominate a film to discuss with them. What's something that we loved but last saw 20ish years ago? We suggested The Story of the Weeping Camel. It is my go-to answer when someone asks …| Terence Eden’s Blog
Brother Mauro, an older monk, and Nicolo, a young, striving merchant are called by the Pope to traverse the treacherous political, religious, and mercantile terrain of medieval Europe and the Byzantine Empire to seek out the powerful Presbyter John, a mysterious king in the Far East who has promised to put his wealth and vast armies to the service of the pope's crusade. I don't understand why…| Terence Eden’s Blog
I've gotten sufficiently annoyed with a trivial problem that I'm preparing to write an IETF RFC. Yeah. That's how ticked off I am! Every site that I sign up for asks me to upload an avatar to represent myself. Whenever I change my photo, I have to log in to a hundred sites and change it there. Perhaps they could all use Gravatar - but that's a centralised service and doesn't work with wildcard…| Terence Eden’s Blog
There's (yet another) new piece of CSS to learn! Hurrah! Way back in 2011, jQuery mobile introduced the web to page-change animations. Clicking on a link would make your high-tech Nokia display a cool page-flip as you navigated from one page of a website to another. Just like an app!!!! A decade-and-a-half later, and CSS has caught up (mostly). No more JavaScript, just spec-compliant CSS. Well, …| Terence Eden’s Blog
This is a quick GitHub action to get alerted every time your website is mentioned in a GitHub issue. Doing it manually You can search GitHub for a URl, and sort the results with the newest first, like this: https://github.com/search?q=%22shkspr.mobi%22&type=issues&s=created&o=desc Using the API GitHub has a fairly straightforward API - although it uses slightly different parameters. …| Terence Eden’s Blog
This is a marvellous and depressing book. Marvellous because it finely details the history, atrocities, and geopolitical strife of unfettered capitalism. Depressing for much the same reason. Dalrymple takes the thousand different strands of the story and weaves them into a (mostly) comprehensible narrative. With this many moving parts, it is easy to get confused between the various people,…| Terence Eden’s Blog
This post will show you how to programmatically get the cheapest possible price on eBooks from Kobo. Background Amazon have decided to stop letting customers download their purchased eBooks onto their computers. That means I can't strip the DRM and read on my non-Amazon eReader. So I guess I'm not spending money with Amazon any more. I'm moving to Kobo for three main reasons: They provide…| Terence Eden’s Blog
A few days ago, someone called PixelMelt published a way for Amazon's customers to download their purchased books without DRM. Well… sort of. In their post "How I Reversed Amazon's Kindle Web Obfuscation Because Their App Sucked" they describe the process of spoofing a web browser, downloading a bunch of JSON files, reconstructing the obfuscated SVGs used to draw individual letters, and running O…| Terence Eden’s Blog
My OnePlus 5T is beginning to show its age. After replacing the battery a few years ago, I felt it was time to upgrade its software to Lineage 20. Everything went smoothly - but there are a few niggles you should be aware of. Some of these are Google's fault - they truly have contempt for their users - and some could be fixed by Lineage if there were sufficient demand. I've mostly posted this…| Terence Eden’s Blog
I go to see a lot of theatrical productions. While most shows are good, the audience experience is usually dreadful. I'm not just talking about cramped seats and disgusting toilets (although they play a part) but that theatres haven't cottoned on to the idea that theatre is an immersive experience which can't be replicated by watching Netflix. There's an excellent article in The Stage about the…| Terence Eden’s Blog
"If it's stupid but it works, it's not stupid." I want to draw some vertical bar charts. I don't want to use a 3rd party library, or bundle someone else's CSS, or learn how to build SVGs. HTML contains a <meter> element. It is used like this: <meter min="0" max="4000" value="1234">1234</meter> Which looks like this: 1234 There isn't much you can do to style it. Browser manufacturers seem to …| Terence Eden’s Blog
This is a curious and mostly satisfying novel. It bills itself as a satire, but it is rather more cynical than that. A kid has been stabbed and the worst instincts of humanity descend. Race-baiting police, vote-grubbing politicians, and exploitative journalists. I can't comment on the accuracy of the satire of the press - but it feels real. It's full of the hungriest, nastiest people who will…| Terence Eden’s Blog
If you've spent any time using Linux, you'll be used to installing software like this: The README says to download from this link. Huh, I'm not sure how to unarchive .tar.xz files - guess I'll search for that. Right, it says run setup.sh hmm, that doesn't work. Oh, I need to set the permissions. What was the chmod command again? OK, that's working. Wait, it needs sudo. Let me run that again.…| Terence Eden’s Blog
I'm neither a journalist nor a professional fact checker but, the thing is, it's has never been easier to check basic facts. Yeah, sure, there's a world of misinformation out there, but it doesn't take much effort to determine if something is likely to be true. There are brilliant tools like reverse Image Search which give you a good indicator of when an image first appeared on the web, and…| Terence Eden’s Blog
Quoting posts on Mastodon is slightly complex. Because of the privacy conscious nature of the platform and its users, reposting isn't merely a case of sharing a URl. A user writes a status. The user can choose to make their statuses quotable or not. What happens when a quoter quotes that post? I've read through the specification and tried to simplify it. Quoting is a multi-step process: The…| Terence Eden’s Blog
Obviously, I've never downloaded "warez" in my life. And, for the avoidance of doubt, I was never a member of the so-called "Scene". But such shenanigans were almost unavoidable on the early web and - wow! - is it weird seeing snippets of your history presented in an academic study! Why do people "pirate" software and other intellectual property? The answer isn't as simple as you may think. This …| Terence Eden’s Blog
This should be a fascinating look at how streaming services evolved and the outsized impact they've had on our culture. Instead it is mostly a series of re-written press-releases and recycled analysis from other people. Sadly, the book never dives in to the pre-history of streaming. There's a brief mention of RealPlayer - but nothing about the early experiments of livestreaming gigs and TV…| Terence Eden’s Blog
A decade ago, I was writing about how you should test your user interface on drunk people. It was a semi-serious idea. Some of your users will be drunk when using your app or website. If it is easy for them to use, then it should be easy for sober people to use. Of course, necking a few shots every time you update your website isn't great for your health - so is there another way? Click the "🥴 …| Terence Eden’s Blog
Analogies are like soufflés - they all collapse eventually. Food can be delicious, but certain foods can cause people physical pain or, in some cases, death. In most parts of the civilised world, governments have food safety laws. They mandate how to properly prepare, store, label, and serve food. In the UK, the laws are onerous for a large food manufacturers because we recognise that …| Terence Eden’s Blog
In the battle between the Online Safety Act and GDPR, who will win? FIGHT! I'll start by saying that I'm moderately positive on Online Safety. If services don't want to provide moderation then they shouldn't let their younger users be exposed to harm. The social network BlueSky has taken a pragmatic approach to this. If you don't want to verify your age, you can still use its services - but it…| Terence Eden’s Blog
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…| Terence Eden’s Blog
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…| Terence Eden’s Blog
Look, I'm an idiot. I know that, you know that, and the man on the moon knows that. Let's not get into why I'm an idiot; let's just accept that I have my peculiarities and you have yours. My idiocy is a quest to make sure all my portable electronics can recharge using USB-C. Modern smartwatches are tiny and they do a lot. As a consequence, their battery life is generally poor. The industry's…| Terence Eden’s Blog
It looks like the new Google's Pixel 4 watch comes with yet another incompatible change in charging technology. This is a ridiculous situation. The original Pixel Watch used one type of wireless charging. Then the Pixel Watch 2 & 3 removed wireless charging and swapped to a different charging mechanism. And now the 4 has changed again. So three different charging cables in under three years.…| Terence Eden’s Blog
Janice Hallett is back with another epistolary mystery. Told through a series of transcribed conversations, WhatsApp messages, and torn-out pages from diaries - we the reader have to piece together the facts and crack the case! Much like her previous novels - The Appeal and The Twyford Code - you have to be willing to suspend your disbelief a fair bit. Do people really talk like that when they…| Terence Eden’s Blog
I should love Matrix. It is a decentralised, privacy preserving, multi-platform chat tool. Goodbye Slack and your ridiculous free limits. Adiós Discord and your weird gamification. Suck it IRC with your obscure syntax and faint stench of BO. WhatsApp and Telegram can stick their heads in a bucket of lukewarm sick and sing sea shanties! Let's join the future! The problem is - Matrix is shit. Not …| Terence Eden’s Blog
Code Golf is the art/science of creating wonderful little demos in an artificially constrained environment. This year the js1024 competition was looking for entries with the theme of "Creepy". I am not a serious bit-twiddler. I can't create JS shaders which produce intricate 3D worlds in a scrap of code. But I can use slightly obscure JavaScript APIs! There's something deliciously creepy about…| Terence Eden’s Blog
Another day, another data breach. the spreadsheet, initially shared in 2022, and thought to contain data related to a small number of applicants, had contained hidden data related to more than 18,000 people. ICO statement in response to 2022 MoD data breach Why are people still sending files to each other? I remember having a stand-up argument a decade ago with a project manager who wanted us …| Terence Eden’s Blog
Should my bank be able to block me from using their Android app, just because my phone is rooted? I'm reluctantly coming to the conclusion that... yeah, it's fair that they get to decide their own risk tolerance. Sage of the Internet, and general Sooth Sayer, Cory Doctorow once gave an impassioned speech on "The Coming War on General Computation". I'll let you read the whole thing but, I…| Terence Eden’s Blog
Back in 2020, Andy Bell introduced me to the idea of grouping attribute values. You've probably seen something like this before: HTML A single class over-encumbered by all sorts of things. The more modular way to write this would be: HTML That's pretty…| Terence Eden’s Blog
Yes yes, Cunningham's law etc etc! I want to play around with 2FA codes. So, I started looking for the specification. Turns out, there isn't one. Not really. IANA has a provisional registration - but no spec. It links to an archived Google Wiki which, as we'll come on to, isn't sufficient. There's some documentation from Yubico which is mostly a copy of the Google wiki with some incompatible…| Terence Eden’s Blog
If you use Multi-Factor Authentication, you'll be well used to scanning in QR codes which allow you to share a secret code with a website. These are known as Time-based One Time Passwords (TOTP). As I've moaned about before, TOTP has never been properly standardised. It's a mish-mash of half-finished proposals with no active development, no test suite, and no-one looking after it. Which is…| Terence Eden’s Blog
This blog uses WebMention technology. If you write an article on your website and mention one of my blog posts, I get a notification. That notification can then be published as a comment. It usually looks something like this: This means readers of my post can see where it has been mentioned around the web. They can read your article after reading mine. Nice! I've also set up a "bridge"…| Terence Eden’s Blog
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 be followed. Post plain-text messages to followers. Be roughly standards compliant. And those…| Terence Eden’s Blog