There's nothing finer to do in Brighton than walk along the promenade eating a wodge of chips the size of your face. But it was raining, so we sat inside and ate all the chips instead. This is Brighton's 100% vegan chippie. As well as big fluffy chips, battered (veggie) sausage, and all the standard condiments - they specialise in fishless-fish. It looks like this: Thick and juicy plant-based …
Continue reading →
It is tempting to think that users are to blame for their own misfortune. If only they'd had a stronger password! If only they didn't re-use credentials! If only they had perfect OpSec! If only...! Yes, users should probably take better care of their digital credentials and bury them in a digital vault. But there are some things which are simply impossible for a user to protect against. Take,…
Continue reading →
I use a self-built WordPress theme for this blog. I also use a variety of self-developed WordPress plugins for various enhancements. I used to publish these plugins, but I get terribly confused by the SVN shenanigans involved, and they weren't used by many people, so I stopped. Recently, I've been moving all my plugin code into my theme. This is sort-of-but-not-quite a MonoRepo. I've also…
Continue reading →
Android's user-hostile interface never fails to disappoint! I was struggling to get a new eSIM working. I could make and receive calls / texts, but data just wasn't connecting. I tried rebooting, flipping to aeroplane mode, changing bearer, manually selecting the network. Nothing! Then, I remembered my ancient GSM knowledge. All mobile networks need an APN - Access Point Name - in order to…
Continue reading →
In the IndieWeb movement there's a concept of "POSSE" - Publish Once, Simultaneously Syndicate Elsewhere. You should publish your words, pictures, songs, reviews on your own site. And then you can choose to share them out to where your audience is. Perhaps that's posting the link on Facebook, or a copy of a photo on Instagram, or sharing the episode on YouTube. There's no shame in meeting your…
Continue reading →
One of my most memorable experiences in the Civil Service was discussing link shortening services with a very friendly person from the Foreign and Commonwealth Office. I was trying to explain why link shortners like bit.ly and ow.ly weren't sensible for Government use. They didn't seem to particularly care about the privacy implications or the risk of phishing. I needed to take a different…
Continue reading →
You know that ice-breaker game "Two Truths And A Lie"? When I'm forced into some mandatory office fun, I always say... I've sat in the seat of a space shuttle. I still have two of my baby teeth. I used to be a voice-over artist. Well, one of those truths is about to come crashing down. When I was younger, I had two of my adult teeth removed. They were coming out at such a crazy angle that…
Continue reading →
Overwrought melodrama in London's most uncomfortable theatre. This show has been done countless times before. You, the audience, watch extracts from a murder trial. At the end, you vote on whether she done it or not. It feels more suited to a Channel 5 show which asks punters to text their verdict in to a premium rate number. Overall, it is a tawdry - but thoroughly uninteresting - tale. The…
Continue reading →
Hot on the heels of a post I wrote 4 years ago, wouldn't it be useful to have a well-known URl for user avatar images? When I sign up to a web service, I don't want to faff around uploading an image to use as my avatar. I want that service to look at my email address or social-sign-in and automatically pick up my preferred graphic. Here's how I see it working. A user signs in to a service…
Continue reading →
"This is a show which rewards punctuality!" Thus spake Ross - they only comedian I know of who can successfully heckle his own audience, chastise himself for doing so, go on a twenty-minute segue about cancer-sniffing dogs, and then return (more-or-less) to where he started. It is exhausting to watch him prance around the stage, screaming at invisible interlocutors, and miming the painfully slow …
Continue reading →
I didn't realise this, so I'm documenting it to stop other people making the same silly mistake that I did. Messages in ActivityPub have two distinct ID strings. Here's a (truncated) view of what happens when I send a new message on Mastodon: "id": "https://mastodon.social/users/Edent/statuses/1234567890/activity", "type": "Create", …
Continue reading →
It's never great to find out you're wrong, but that's how learning and personal growth happens. HTTP Message Signatures are hard. There are lots of complex parts and getting any aspect wrong means certain death. In a previous post, I wrote A simple(ish) guide to verifying HTTP Message Signatures in PHP. It turns out that it was too simple. And far too trusting. An HTTP Message Signature is a…
Continue reading →