Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Welcome to NaNoWriMo, where I - and thousands of other plucky souls - try to write a 50,000 word novel in a month. You are reading "Tales of the Algorithm". A compendium of near-future sci-fi stories. Each chapter is a stand-alone adventure set a few days from now. Everything you … | Continue reading
Every year since 2009, I've taken part in NaBloPoMo - National Blog Posting Month. The aim is to publish a new blog post every day in November. In the last few years, I've blogged pretty much constantly - daily for 2020, 2021, and 2023. A total of around 2,800 posts. But now it i … | Continue reading
I remember seeing the original "A new decentralized microblogging platform" on HackerNews back in October 2016. A few weeks later, I joined - becoming the 7,112th user. As the years went on, my use of it waxed and waned. I started cross-posting to both Mastodon and Twitter. Gradu … | Continue reading
I've responsibly disclosed a small security issue with Mastodon (GHSA-8982-p7pm-7mqw). It allows a sufficiently determined attacker to use any Mastodon instance to redirect unwary users to a malicious site. What do you think happens if you visit: https://mastodon.social/@Password … | Continue reading
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 … | Continue reading
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 th … | Continue reading
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 spe … | Continue reading
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: Theme […] | Continue reading
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. […] | Continue reading
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, "OriginalDescript … | Continue reading
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 … | Continue reading
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 ope … | Continue reading
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 Co … | Continue reading
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 a … | Continue reading
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 […] | Continue reading
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 scro … | Continue reading
Grrrr. Auth0 have a nifty service to let users log in to your site using a social network. Users don't need an account with you, they can sign in with Twitter, Facebook, GitHub, etc. But there's a bug which is five years old. Auth0 doesn't show the screen name of Twitter users (e … | Continue reading
The good folk at Nank (Naenka) have sent me their latest waterproof Bluetooth headphones to review. Wear 'em while you're in the shower, swimming, jogging, or just on an endless sea of Zoom calls about quarterly budgets. Unboxing Bone Conducting??! Yup! Rather than sticking speak … | Continue reading
I have written a lot of blog posts. In some of those posts I link to other posts on my site. What's the easiest way of displaying those internal incoming links? Here's what it looks like: Code All we need to do is search WordPress for the URl of the current page. Loop through the … | Continue reading
If you use WordPress, you can get a fairly basic embedded audio player by using the audio shortcode: [audio mp3="/path/to/sound.mp3"] I didn't particularly like how it was styled so - because WordPress is so hackable - I changed it! Now my embedded audio looks like this: It gets … | Continue reading
Quite often websites will encourage you to copy and paste commands into your terminal. There are a variety of reasons why this is bad - not least because someone could hide malicious code. That's usually done with a bit of CSS to make the evil command invisible, or using Javascri … | Continue reading
I don't know if this is a bug, or just the way the world works now. Several of the people who live in my phone use artistic black and white headshots. They look very cool. But my Android phone shows their image with inverted colours - so they look like pure shite. Here's what my … | Continue reading
This book is outstanding. It's the mid 1980s, you're administrating a nascent fleet of UNIX boxen, and you are tasked with accounting for a 75¢ billing discrepancy. Naturally that eventually leads into an international conspiracy involving the FBI, NSA, and an excellent recipe fo … | Continue reading
This uses the wp shell command. It gives you an interactive prompt into which you can do various WordPress "things". One small annoyance is that it doesn't like multi-line entry. It treats every hit of the enter key as "plz run the codez" - so, at the end of this blog post, I've … | Continue reading
I like the JetPack related post functionality. But I wanted to customise it far beyond what the default code allows for. So here's how I went from this: To this: Documentation The complete documentation for related posts is pretty easy to follow. This is an adaptation of "Use Jet … | Continue reading
There's a popular saying; "No One Wants a Drill. What They Want Is the Hole". It's a pithy (and broadly) correct statement. But I don't think it goes far enough. Let's apply the Five Whys method to the issue: No one wants a drill. What they want is the hole. No one wants a hole. … | Continue reading
It's always a bit concerning when a new icon suddenly appears at the top of your phone's screen. Without any warning, my ageing OnePlus 5T - which now runs LineageOS - started showing this: I know that, from right to left, it is showing me my battery percentage, WiFi strength, an … | Continue reading
I love my Linux laptop. But, once in a while, it forgets it has a keyboard. I wake it from a little nap and it's all like "no, sir! no keyboards here! just use a mouse please!" Logging in is pretty simple. Pop_OS has an on-screen keyboard which lets me hunt-n-peck P4ssW0rd123! in … | Continue reading
I'm writing this post in the hope someone will rip off my idea and start selling it on Ali Express. Many years ago, I got a "Pressy". It was a little dongle which fitted into your phone's headphone jack. It had a single button on the top. It came with an app so when you […] | Continue reading
The recent news that MoneyDashboard is suddenly shutting down has exposed a gap in the way OpenBanking works. It is simply impossible for a user to get read-only access to their own data without using an aggregator. And there are very few aggregators around. Why is it impossible … | Continue reading
If you use WordPress's HTML5 comments, there's an annoying little gotcha. There's a four year old bug which prevents client-side form validation. HTML allows elements to have a required attribute. In theory, that means the form shouldn't submit until the input is filled in. Sadl … | Continue reading
The UK has what is known as a "Standard Scale" of fines for criminal acts. For example, breaking the law may incur "a fine not exceeding level 4 on the standard scale". Part of the reasoning behind this, so I understand, is to make it simpler for the Government to update the valu … | Continue reading
If you've ever leaned Mandarin Chinese, you'll know about "measure words". They're the sort of thing that trip up all new learners of the language. While 个 (gè) can be used as a generic measure word, using it everywhere makes you sound like an idiot (according to my old teacher). … | Continue reading
After watching the BBC comedy series The Cleaner staring Greg Davies, I was surprised to learn that it was actually a remake of a German comedy series called Der Tatortreiniger1. I don't think I've every seen a German sitcom before, so I found the US DVDs (which is the only way t … | Continue reading
What if the heroine in a Jane Austen novel had visions of the future and the past? That's the rather compelling premise of Time Squared. But, ultimately, it doesn't really fulfil the promise. It starts as a fairly standard regency-style novel - which of the two dashing brothers w … | Continue reading
It's one of those pithy little quotes which reveals so much about our two cultures. The average Briton considers anything more than a 45 minute trip a bit of a schelp, whereas Americans will seemingly drive half a day just to get some ribs from that one place they like. Conversel … | Continue reading
In web-development circles, it is a well-known fact that trying to validate an email using a regular expression is… complex. The full set of modern email standards allows for such wonderful addresses as: chief.o'brien+ds9@spásárthach.भारत So determining whether or not your u … | Continue reading
I wrote a moderately popular post on Mastodon. Lots of people shared it. Is it possible to find out how many different ActivityPub servers it went to? Yes! As we all know, the Fediverse is one big chain mail. I don't mean that in a derogatory way. When I write a post, it appears … | Continue reading