It’s a pint sort of evening today. Balter XPA. Cheers. ๐Ÿป

A frothy mug of beer sits on a wooden table in a cozy restaurant setting.

It might be that the first day where everything’s working smoothly, nothing’s on fire, and there’s nothing for me to fix would also be the first day that I’m out of a job. Even so, a day like that would be nice. ๐Ÿ˜ฎโ€๐Ÿ’จ

Oh, so those flashes of blue light was not arcing from the overhead catenary. โ›ˆ๏ธ

Had to deal with an API written in JavaScript where a field could have zero or more string items. Two or more items, the field is an array. If it’s one item, the field is set to a single string. Zero items, the field is not set at all.

๐Ÿคฆโ€โ™‚๏ธ

I don’t blame the language, I blame the API designer.

Helped my barista arrange some stock that tipped over in her display fridge, and she didn’t charge for my coffee. I absolutely appreciate the sentiment and free coffee. I also like you to stay in business, so please let me pay in the future.

Some follow-up from my post about 1Password this morning. Turns out it’s not 1Password picking the wrong suggested password, it’s Vivaldi. Not sure why at this stage. I may have chosen not to save the password for the subdomain and it was picking up something else. Or it’s just broken. ๐Ÿคท May need to investigate further (or not).

I also realised that there’s no such thing as an Android 1Password extension for Vivaldi, or if there is I’m not using it. 1Password does have something which uses the accessibility settings to pre-fill passwords in “supported browsers.” Not sure Vivaldi is such a supported browser because when I turned on that feature, nothing happened (it did show up when I tried Chrome).

Also, shout-out to yatal who suggested clicking on the extended options for the domain, and selecting “Only fill on this exact domain”. Found this option on 1Password for 8.10.40 and managed to turn it on for all the subdomains that I have.

Screenshot of 1Password showing the auto-fill behaviour for the URL, with the option 'Only fill on this exact domain' selected

As to how I can get it working on Android? Not sure at this stage. Maybe I need an updated version of the Android app.

I wish 1Password’s browser extensions recognised subdomains better. I have around 6 services hanging off a single apex domain, each with a different password, and whenever I visit the login page for one of them, 1Password always suggests the Linkding one. It’s not like it doesn’t know the site URLs.

Since bringing home the ukulele, all I’ve been wanting to play on it is tracks from Mike Oldfield’s The Voyager. Here’s a test recording of my attempt at playing She Moves Through the Fair, which I think is actually an Irish folk song. Also wanted to hear how well my webcam mic performs with music.

I’ve been listening to Marco talk about his user’s response to the Overcast rewrite with interest. I have no comment to make about the rewrite itself โ€” I don’t use Overcast since I don’t use an iPhone โ€” but listening to Marco on the latest episode of Under The Radar come to realisation that Overcast is now at a stage where he cannot only consider it his own is admirable. To have created something that has grown to be bigger than yourself, where the best thing you can do for it is to say “I may have started this, but this is no longer mine”, is a testament to how large and successful Overcast has been. If only we all could say we had that chance to do likewise in our own careers.

Bought my blog-roll up to date to my RSS subscriptions. Itโ€™s clear that itโ€™s been a while since I last updated it. Theyโ€™ve been a couple of removals but quite a lot of additions, many of them blogs that Iโ€™ve been reading for months.

First day of spring means the first day of swooping season. Chalk one noisy miner up for me on the swoop-o-meter please. ๐Ÿ‘ทโ€โ™‚๏ธ

Speaking of musical instruments: new toy acquired. My parents were cleaning out some clutter and found this ukulele. I always imagined them to be little more than small guitars, so I was quite surprised when I saw how they were tuned, with the outer strings being higher than the inner ones.

Auto-generated description: A small, wooden ukulele with four strings is lying on a textured, light blue surface.

Hot take: bagpipes actually sound pretty good.

Sock photo of bagpipe players on a British town with the caption โ€˜#pipe_those_bagsโ€™ near the bottom.

Finished reading: Magician by Raymond E. Feist. Itโ€™s been a while since I read this, but itโ€™s an absolute favourite. ๐Ÿ“š

While listening to the interview with Ben Thompson on How I Write, a thought just occurred to me: I was never interested in learning about writing online until I started writing online.

I may have had a passing fancy in the topic before I started writing here. I was a reader of Stratechery back then, among many other blogs, so if this interview cropped up back then, I probably still have listened. But I doubt I would’ve been as engaged in the topic, let alone been interested in seeking more about it. It’s certainly wasn’t something I found myself seeking out at the time.

Now, I lap this stuff up whenever I see it. The subject on talking about keeping a blog, publishing a newsletter, or working on the web is catnip to me, and if I find someone discussing the topic, I’m immediately attracted to them.

I guess there’s a lesson here about how being is downstream from doing. The only question that remains is whether what I write here can be considered writing? ๐Ÿค”

About Those STOP Messages

John Gruber, discussing political spam text messages on Daring Fireball:

About a month ago I switched tactics and started responding to all such messages with โ€œSTOPโ€. I usually send it in all caps, just like that, because Iโ€™m so annoyed. I resisted doing this until a month ago thinking that sending any reply at all to these messages, including the magic โ€œSTOPโ€ keyword, would only serve to confirm to the sender that an actual person was looking at the messages sent to my phone number. But this has actually worked. Election season is heating up but Iโ€™m getting way way fewer political spam texts now. Your mileage may vary, but for me, the โ€œSTOPโ€ response works.

As someone who use to work for a company that operated a SMS messaging gateway, allow me to provide some insight into how this works. When you send an opt-out keyword โ€” usually “STOP1” although there are a few others โ€” this would be received by our messaging gateway, and your number would be added to an opt-out list for that sender. From that point on, any attempt by that sender to send a message to your number would fail.

Maintaining these opt-out lists is a legal requirement with some significant penalties, so the company I worked for took this quite seriously. Once, the service maintaining this list went down, and we couldn’t know whether someone opted-out or not. We actually stopped all messaging completely until we got that service back up again. I still remember that Friday afternoon (naturally, it happened on a Friday afternoon).

Now, if memory serves, there was a way for a sender to be notified when an opt-out occurred. This was mainly for customers that decided to take on the responsibility โ€” and thus legal accountability โ€” of maintaining the opt-out lists themselves. There were a handful of customers that had this enabled, and it was something that we had to enable for them on the backend, but most customers simply delegated this responsibility to us (I can’t remember if customers that had this feature off could still receive opt-out notifications).

Finally, there is a way, a variant of the “STOP” message, in which someone could opt-out of any message sent from our gateway, basically adding themselves to a global opt-out list which applies to everyone. The only way someone could remove themselves from this list was to call support, so I wouldn’t recommend doing this unless you know you would never need another 2FA code via SMS again.

Addendum: The customer never had access to these opt-out lists but I believe they could find out when a message they tried to send was blocked. This is because they would be charged per message sent, and if a message was blocked, they would receive a credit. There was also an API to return the status of a message, so if you knew the message ID, it was possible to call the API to know whether a message was blocked.


  1. I can’t remember if this is case insensitive, although I think it is. ↩︎

Immunised: whooping cough, diphtheria, and tetanus. ๐Ÿ’‰

MacOS has a strange way of choosing which window gets focus when switching apps using Cmd+Tab. Instead of it being the previously focused window, or the window closest to what you’re switching from, it selects the left most one. Has it always been this way? Feels like something that can be improved.

It’s been 12 years since I last used Mercurial. And yet, I’m still typing git branch new-branch and expecting to change to the new branch automatically.

Added a tag in a CMS with a case that differs from the others. The tags are case-insensitive but also case-preserving, and given that I can’t just delete or rename the tag, I don’t know how I can fix it (I’ve tried a few things). I wonder if I could ask the developer to go into the DB for me? ๐Ÿค”