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 …| Terence Eden’s Blog
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…| Terence Eden’s Blog
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…| Terence Eden’s Blog
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…| Terence Eden’s Blog
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"…| Terence Eden’s Blog
I'm reasonably sure I've read all the "Old Man's War" books. As the last one was published a decade ago, you'll forgive me if I don't remember all the intricacies of galactic politics and interpersonal intrigue. Thankfully, Scalzi has carved off a side character from a previous book and given them a brand-new adventure. There's enough exposition to tickle the parts of your brain that go "Ah,…| Terence Eden’s Blog
At some point around the start of the pandemic, The Algorithm instructed me to listen to music by Rainbow Girls. Who am I to question the ineffable will of the machine? I don't know what it was about their harmonies, slide guitar, and double-bass which tickled my brain, but I was hooked. A few days ago, a different algorithm alerted me to the fact that they were touring the UK - so I snapped up…| Terence Eden’s Blog
Is it offensive to call a burlesque show "charming"? Sure, it is a funny and mildly titillating evening, but Show:Girls is suffused with such good natured charm that it is hard to describe it as anything else. Unlike Gallifrey Cabaret which puts on a plethora of variety acts, this is a rather stripped down production. The central conceit is that two acts have been accidentally double booked.…| Terence Eden’s Blog
Let's see if this post makes it through the spam filters! Sluts With Consoles is a brilliant two-hander. Girly-twirly pick-me Player One and Gothy just-one-of-the-boys Player Two are locked in mortal - and emotional - combat. They represent the duality of the female gaming experience. Is it better to be feminine or feminist? Is gaming an escape from the cliques of teenage oppression, or just…| 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
You're the sort of cool nerd who knows all the weird esoterica which makes up DNS, right? In amongst your A, AAAA, SOA, and MX records, there's a little used NAPTR. Yes, you can use DNS to store Name Authority Pointers! What?! It is yet another of those baroque standards which spits out things like: cid.uri.arpa. ;; order pref flags service regexp replacement IN NAPTR…| Terence Eden’s Blog
I recently had a chance to ask a question to one of the top AI people. At a Q&A session, I raised my hand and asked simply "What is your estimation of the future educational value of AI?" The response was swift and utterly devastating for those laggards who want to hold back progress. The AI guy said: Books will soon be obsolete in schools. Scholars will be instructed through AI. It is possible …| Terence Eden’s Blog
Mr Wickham is ready to set the record straight. Celebrating the 250th anniversary of Jane Austen’s birth, Adrian Lukis, who starred in the renowned BBC TV adaptation of Pride and Prejudice, returns to the role of Mr Wickham. Join Pride and Prejudice’s most roguish gentleman, George Wickham, on the eve of his sixtieth birthday, to lift the sheets on what exactly happened thirty years on from whe…| Terence Eden’s Blog
I am massively sceptical of any claims that Blockchain can be useful. I even took the Certified Blockchain Professional course so I could better understand the batshittery. At the risk of appearing on QTWTAIN, and seeking a papal indulgence from Betteridge, I think I might have stumbled on a retroactive use-case for Blockchain! First up, what is LIBOR and what was the scandal which led to…| Terence Eden’s Blog
I have rarely been this bored during a West End Show. Conor McPherson seems to have fundamentally misunderstood what makes an engaging drama and, simultaneously, what makes for an enjoyable "jukebox musical". The writing is like an exaggerated soap opera script which consists solely of angry people asking each other questions, which are then answered with more questions. Sample dialogue: Who…| Terence Eden’s Blog
An abandoned warehouse in Deptford hosts one of the most audacious, ostentatious, and sumptuous shows I've ever attended. An immersive theatrical experience which is lush with texture, ambitious in scope, and yet - somehow - slightly less than the sum of its parts. The pre-show is exemplary. You're handed a lanyard with a room number and make your way through the imposing set until you find…| 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
Dr Hibbett - he of the eponymous and well-regarded Hibbert Method - has taken the "Sing Your Thesis" concept to a brand new level. Who is Doctor Doom? I have only a passing interest in the increasingly convoluted Marvel Cinematic Universe, so I walked into this new comedy show with no idea. I assumed a baddie of some sort? I left with, if not a university education on the subject, then a…| 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
Four months ago, I wrote to Waterstones about an error in an eBook I purchased from them. I've finally received a reply... Dear Terence, Some time ago you contacted us regarding the following eBook title, "One of Our Thursdays is Missing (eBook): Thursday Next Series, Book 6" (ISBN: 9781444713039). We have had our eBook supplier investigate the content issue of this eBook title in conjunction…| Terence Eden’s Blog
The older I get, the more comfortable I become with complaining. Not merely moaning on social media, but writing a direct email to the perpetrator of some annoyance. I'd purchased an eBook and was appalled by how crappy the accessibility was. If you don't know, modern ePub books are just HTML wrapped in a zip file. They have all of the accessibility advantages of the web and should be easy to…| 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
I have built the most inconvenient way of playing music! It is lo-fi awfulness and cyberpunk grungy. Thanks! I hate it! Ingredients Raspberry Pi USB floppy drive Audio Cable / Headphones USB Battery WHY?!?! As I discussed yesterday, it's possible to fit half an hour of speech on a single floppy disk. The best band in the world are The Beatles, and their shortest album is A Hard…| 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
Google's monopolistic stranglehold on Android results in poor experience for power-users, and artificially restricts choice for those who have older phones. For example, Google Wallet is the de facto way to use NFC payments on Android. There's one problem though - it only works with Google's Android. If you have the temerity to install a 3rd party Android OS - like the hyper-secure GrapheneOS - …| Terence Eden’s Blog
Early one morning I received an email notification about a bug report to one of my open source projects. I like to be helpful and I want people who use my stuff to have a good time, so I gave it my attention. Here's what it said: 😱 I Can't Use On This Day 😭 Seriously, What’s Going On?! 🔍 I’ve been trying to use the On This Day feature, but it’s just not working for me! 😩 Every time I input my d…| Terence Eden’s Blog
For boring and totally not nefarious reasons, I want to read all the data contained in my passport's NFC chip using Linux. After a long and annoying search, I settled on roeften's pypassport. I can now read all the passport information, including biometrics. Table of ContentsBackgroundRecreating the MRZPython code to generate an MRZCan you read a cancelled passport?Cryptography and other…| 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
I logged into Twitter using a fresh account last week. No followers, no preferences set. The default experience was an unending slurry of racism and porn. I don't care to use Twitter any more. Whatever good that was there is now drowned in a cess-pit of violent filth. I still have a lot of Tweets […]| Terence Eden’s Blog
The good folks at InfiRay have sent me their latest Infrared camera to review. It is tiny. It's smaller than a normal USB stick and barely weighs anything. Shove the USB-C protrusion into your Android phone, launch the app, and... nope - that's it! Pretty much instantly plug and play. There's also a reasonably long […]| Terence Eden’s Blog
In my quest to find the perfect phone, I was recommended to try the Motorola Pro Plus by Seb Schmoller. This is my attempt to review it fairly after a week of usage. Some people have accused me of being unfair in my review of the Nokia Lumia. I think I was harsh - but […]| 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. […]| Terence Eden’s Blog
Several years ago, I purchased a Clevo N151CU laptop with the idea that I'd gradually upgrade the RAM, storage, and other bits. After my keyboard failed, I found it difficult to find replacement parts. The whole point of the Framework laptop is that it is specifically designed to be modular. It come in kit form, […]| Terence Eden’s Blog
This is a retropost. Written contemporaneously in 2020, but published four years after the events. It's May 2020 as I write this. I'm typing to capture the moment. Right now, I've no idea what the impact is. This is the exact moment, on Thursday May 7th, I hit the Big Red Button - three of […]| 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