Terence Eden. He has a beard and is smiling.

Terence Eden’s Blog

Theme Switcher:

Book Review: The Twilight of the British Empire - British Intelligence and Counter-Subversion in the Middle East, 1948–63 by Chikara Hashimoto

· 600 words


Book Cover featuring Big Ben against a red background.

As the Middle-East convulses in yet another bloody war, and with no end in sight to the barbarity, we're all looking for a way to understand the horrors unfolding. So I went searching in the past. What set the seeds of today's conflict and was there any way to prevent it? This is a dispassionate and, it has to be said, dry look at how the British intelligence agencies operated in the region…

Gadget Review: Plugable USB-C Voltage & Amperage Meter (240W)

· 6 comments · 350 words · Viewed ~723 times


All USB-C cables are equal. But some, as the saying goes, are more equal than others. This little gadget from Plugable is a fantastic bit of kit. Plug your USB-C power supply into one end of the gadget, plug the gadget in to your laptop, phone, or any other USB-C device. Watch the screen to see how much power is flowing. Action Shot …

Book Review: Selected Stories of Philip K. Dick

· 1 comment · 450 words


Book cover.

Imagine a world with inter-city rockets, where tourists still use film cameras. Where self-driving trucks sport a wide array of sensor apparatus and record all their data onto miles of magnetic tape. Where the latest Androids are life-like and can perfectly clone a dead man's speech, yet are powered by punch-cards. People make video calls from public booths which eagerly accept coins as payment. …

CSS only colour-scheme selector - no JS required

· 6 comments · 650 words · Viewed ~605 times


A light website with a photo of a kitten.

Yesterday I wrote about a lazy way to implement a manual dark mode chooser. Today I'll show you a slightly more sensible way to do it. It just uses CSS, no need for JavaScript. Here's a scrap of HTML which present a dropdown for a user to choose their colour scheme: <select id="colour-mode"> <option value="">Theme Selector</option> <option value="dark">Dark Mode</option> <option…

Laziest Possible Dark-Mode Toggle - Using :has() and invert()

· 3 comments · 300 words


A dark website with a photo of a kitten.

I'm not saying this is a good way to make a dark mode website. I'm not even saying it's a sensible way to do dark mode. But I'm pretty sure this is the laziest way of getting dark mode on your site. And it is all done with less than a handful of CSS rules. It relies on the new-ish :has() CSS pseudo class and the positively ancient filter() CSS function. Here's the code in all its glory: …

Converting MoneyDashboard's export file to a CSV - for Firefly III and others

· 1 comment · 450 words


Logo of the Python programming language.

As I mentioned last week, MoneyDashboard is shutting down. They are good enough to provide a JSON export of all your previous transactions. It is full of entries like this: { "Account": "My Mastercard", "Date": "2020-02-24T00:00:00Z", "CurrentDescription": null, "OriginalDescription": "SUMUP *Pizza palace, London, W1", "Amount": -12.34, "L1Tag": "Eating Out", …

New Outlook doesn't unhide your taskbar - two quick fixes

· 2 comments · 400 words · Viewed ~443 times


Product shot of the new Outlook for Windows.

I quite like the new Outlook for Windows. But it has a couple of annoying bugs. One of which is, when it is maximised it doesn't let you unhide your bottom task bar. I've set up Windows so the taskbar disappears whenever my cursor isn't at the bottom of the screen. When my mouse touches the bottom, the bar appears. Lovely! But Outlook breaks this functionality - which I'm pretty sure existed…

Free Open Banking API using Nordigen / GoCardless

· 4 comments · 600 words · Viewed ~2,924 times


Screenshot from GoCardless. 1. Test with your own data See how the product flow would look like for your users and what data is available 2. Set up the API Follow our documentation to set up the API and start collecting bank account data 3. Customise the user interface Pay as you go Make the user agreement flow for your customers to match your brand 4. Ready to go live? Need help and advice to set up faster?

A few weeks ago I was moaning about there being no OpenBanking API for personal use. Thankfully, I was wrong! As pointed out by Dave a company called Nordigen was set up to provide a free Open Banking service. It was quickly bought by GoCardless who said: We believe access to open banking data should be free. We can now offer it at scale to anyone - developers, partners and Fintechs - looking…

Publish Confirmation For WordPress Classic (2023)

· 100 words


Screenshot of a page asking for confirmation before publishing.

Here's a quick scrap of code that works. There are lots of outdated tutorials out there for old versions of WordPress. This one is tested to be working in WordPress 6.3.2. This will pop up a confirmation dialogue when you try to publish, update, or schedule a post or page. The Code Add this to your theme's functions.php file: add_action( "admin_footer", "confirm_publish" ); function…

Find WordPress featured images with no alt text

· 1 comment · 250 words


The Logo for WordPress.

WordPress allows you to set a featured image - called a "thumbnail" in the API. This gives a single image which can be used on a listing page, or shown when a post is shared on social media. The WordPress Media Library lets you set the alt text of an image. But, crucially, this alt text can be different when the image is used as a featured image. Here's how to find all your featured images…

Firefox might remember old 2FA logins

· 1 comment · 250 words


The third number has a dropdown featuring3 single numbers.

I'm big enough to admit when I make a mistake. A few days ago I had a bit of a rant on Mastodon about how PayPal was encouraging browsers to remember 2FA codes. I'd tried to log in to PayPal, went to enter my 2FA code and was presented with this: But, this isn't PayPal's fault! Let's take a look at the code behind each input: <input name="otpCode-0" id="ci-otpCode-0" …

Find the URl causing your WordPress Error

· 2 comments · 200 words


The Logo for WordPress.

PHP has some pretty good error handling and logging, but I do sometimes find it confusing. For example, look at this warning message: [18-Oct-2023 12:34:56 UTC] PHP Warning: Something bad happened in /wp-content/something.php on line 123 OK, so we can go to something.php and scroll to line 123 and try to figure out what's gone wrong. But we don't know which page, post, or URl caused the error. …