I may have raved about other concept albums in the meantime (this one, for example…), but The Signal and the Noise still makes my top 101.
I’ve listened to it twice this week, and I still love it.
But I probably love it differently than I used to.
Spy Numbers / One Time Pad remains my favourite pair of tracks on the album, as it always was: like so much of Andy’s music it tells a story that feels almost
like it belongs to a parallel universe… but that’s still relatable and compelling and delightful. And a fun little bop, too.
But In Potential, which I initially declared “a little weaker than the rest” of the album, has grown on me immensely over the course of the last decade. It presents an
optimistic, humanistic conclusion to the album that I look forward to every time. After John Frum Will Return and Checker Charlie open the album in a way that
warns us, almost prophetically, about the dangers of narrow target-lock thinking and AI dependence2, In Potential provides a beautiful and hopeful introspective
about humanity and encourages an attitude of… just being gentle and forgiving with ourselves, I guess.
So yeah, the whole thing remains fantastic. And better yet: Andy announced about six weeks ago that all of his
music is now available under a free/pay-what-you-like model, so if you missed it the first time around, now’s your opportunity to play catch-up!3
This has been doing the rounds; I last saw it on Kev’s blog. I like that the social blogosphere’s doing this kind
of fun activity again, these days1.
1. Do you floss your teeth?
Umm… sometimes? Not as often as I should. Don’t tell my dentist!
Usually at least once a month, never more than once a week. I really took to heart some advice that if you’re using a fluoridated mouthwash then you shouldn’t do it close to when you
brush your teeth (or you counteract the benefits), so my routine is that… when I remember and can be bothered to floss… I’ll floss and mouthwash, but like in the middle of the day.
And since I moved my bedroom (and bathroom) one floor further up our house, it’s harder to find the motivation to do so! So I’m probably flossing less. The unanticipated knock-on effect
of extending your house!
2. Tea, coffee, or water?
I love a coffee to start a workday, but I have to be careful how much I consume because caffeine hits me pretty hard, even after a concentrated effort over the last 10 years or so to
gradually increase my tolerance. I can manage a couple of mugs in the morning and be fine, now, but three coffees… or any in the mid-afternoon onwards… and I’m at risk of
throwing off my ability to sleep later2.
I wear holes in footwear (and everything else I wear) faster than anybody I know, so nowadays I go for good-value comfort over any other considerations when buying shoes.
One time it was the dog’s fault that my footwear fell apart, but usually they do so by themselves.
4. Favourite dessert?
Varies, but if we’re eating out, I’m probably going to be ordering the most-chocolatey dessert on the menu.
5. The first thing you do when you wake up?
The very first thing I do when I wake up is check how long it is before I need to get up, and make a decision about when I’m going to do so. I almost never need my alarm
to wake me: I routinely wake up half an hour or so before my alarm would go off, most mornings. But exactly how early I wake directly impacts what I do next. If I’m
well-rested and it’s early enough, I’ll plan on getting up and doing something productive: an early start to work, or some voluntary work for Three Rings, or some correspondence. If it’s close to the time I need to get up I’ll more-often just stay in bed and spend longer doing
the actual answer I should give…
…because the “real” answer is probably: pick up my phone, and open up FreshRSS – almost always the
first and last thing I do online in a day! I’ll skim the news and blogosphere and “set aside” for later anything I’d like to re-read or look at later on.
6. Age you’d like to stick at?
Honestly, I’m good where I am, thanks.
Sure, I was fitter and healthier in my 20s, and I had more free time in my early 30s… and there are certainly things I miss and get nostalgic about in any era of my life. But
conversely: it took me a long, long time to “get my shit together” to the level I have now, and I wouldn’t want to have to go through all of the various bits of
self-growth, therapy, etc. all over again!
So… sure, I’d be happy to transplant my intellect into 20-year-old me and take advantage of my higher energy level of the time for an extra decade or so3. But I wouldn’t go back even a
decade if it meant that I had to go relearn and go through everything from that decade another time, no thanks!
7. How many hats do you own?
Four. Ish.
They are:
A bandana. Actually, I own maybe half a dozen bandanas, mostly in Pride rainbow colours. Bandanas are amazingly versatile: they fold small which suits my love of travelling light these last few years, they can function as headgear, dust mask, neckerchief,
flannel, etc.4, and they do a pretty good job of
keeping my head cool and protecting my growing bald spot from the fierce rays of the summer sun.
A “geek” hat. Okay, I’ve actually got three of these, too, in slightly different designs. When they first started appearing at Oxford Geek Nights, I just kept winning them! I’m not a huge fan of caps, so mostly the kids wear them… although
I do put one on when I’m collecting takeaway food so I can get away with just putting e.g. “geek hat” in the “name” field, rather than my name5.
A warm hat that comes out only when the weather is incredibly cold, or when I’m skiing. As I was reminded while skiing on my recent trip to Finland, I should probably switch to wearing a helmet when I ski, but I’ve been skiing for three to four decades without one
and I find the habit hard to break.6
A wooly hat that I was given by a previous employer at a meetup in Mexico last year. I wore it a couple of times last winter
but it’s otherwise not seen much use.
8. Describe the last photo you took?
The last photo I took was of myself wearing a “geek” hat. You’ve seen it, it’s above!
But the one before that was this picture of an extremely large bottle of champagne, with a banana for scale, that was delivered to my house earlier today:
A 6-litre champagne bottle is properly-termed a Methuselah, after Noah’s grandad I guess.
Ruth and JTA celebrate their anniversary every few years with the “next size up” of champagne bottle, and this is the one they’re up to. This
year, merely asking me to help them drink it probably won’t be sufficient (that’d still be two litres each!) so we’re probably going to have to get some friends over.
I took the photo to send to Ruth to reassure her that the bottle had arrived safely, after the previous attempt went… less well. I added the banana “for scale” before sharing the photo with some other friends, too.
The previous delivery… didn’t go so well. 😱
9. Worst TV show?
PAW Patrol. No doubt.
You know all those 1980s kids TV shows that basically existed for no other purpose than as a marketing vehicle for a range of toys? I’m talking He-Man (and
She-Ra), Transformers, G.I. Joe, Care Bears, M.A.S.K., Rainbow Brite, and My Little Pony. Well,
those shows look good compared to PAW Patrol.
Six pups, each endowed with exactly one personality trait7
but a plethora of accessories and vehicles which expands every season so that no matter how many toys you’ve got, y0u’re always behind the curve.
10. As a child, what was your aspiration for adulthood?
This is the single most-boring thing about me, and I’ve doubtless talked about it before. At some point between the age of about six and eight years old, I decided that I
wanted to grow up and become… a computer programmer.
And then I designed the entirety of the rest of my education around that goal. I learned a variety of languages and paradigms under my own steam while setting myself up for a GCSE in
IT, and then A-Levels in Maths and Computing, and then a Degree in Computer Science, and by the time I’d done all of that I was already working in the industry: self-actualised by 21.
Like I said: boring!
Your turn!
You should give this pointless quiz a go too. Ping/Webmention me if you do (or comment below, I suppose); I’d love to read what you write.
Footnotes
1 They’re internet memes, in the traditional sense, but sadly people usually use
“meme” nowadays exclusively to describe image memes, and not other kinds of memetic Internet content. Just another example of our changing
Internet language, which I’ve written about before. Sometimes they were silly quizzes (wanna know what Meat Loaf song I
am?); sometimes they were about you and your friends. But images, they weren’t: that came later.
2 Or else I’ll get a proper jittery heart-flutter going!
3 I wouldn’t necessarily even miss the always-on, in-your-pocket, high-speed Internet of
today: the Internet was pretty great back then, too!
4 Obviously an intergalactic hitch-hiker should include a bandana, perhaps as
well as an equally-versatile towel, in their toolkit.
5 It’s not about privacy, although that’s a fringe benefit I suppose: mostly it’s about
getting my food quicker! If I walk into Dominos wearing a geek hat and they’ve got pizza on the counter with a label on it that says it’s for “geek hat”, they’ll just hand it over, no
questions, and I’m in-and-out in seconds.
6JTA observed that similar excuses
were used by people who resisted the rollout of mandatory seatbelt usage in cars, so possibly I’m the “bad guy” here.
7 From left to right, the single personality traits for each of the pups are (a) doesn’t
like water, (b) is female, (c) likes naps, (d) is allergic to cats, (e) is clumsy, and (f) is completely fucking pointless.
Way back in the day, websites sometimes had banners or buttons (often 88×31 pixels, for complicated historical reasons) to indicate what screen
resolution would be the optimal way to view the site. Just occasionally, you still see these today.
Folks who were ahead of the curve on what we’d now call “responsive design” would sometimes proudly show off that you could use any resolution, in the same way as they’d
proudly state that you could use any browser1!
I saw a “best viewed at any size” 88×31 button recently, and it got me thinking: could we have a dynamic button that always
shows the user’s current resolution as the “best” resolution. So it’s like a “best viewed at any size” button… except even more because it says “whatever
resolution you’re at… that’s perfect; nice one!”
Anyway, I’ve made a website: best-resolution.danq.dev. If you want a “Looks best at [whatever my visitor’s screen
resolution is]” button, you can get one there.
1 I was usually in the camp that felt that you ought to be able to access my site with any
browser, at any resolution and colour depth, and get an acceptable and satisfactory experience. I guess I still am.
2 If you’re reading this via RSS or have JavaScript disabled then you’ll probably see an
“any size” button, but if you view it on the original page with JavaScript enabled then you should see your current browser inner width and height shown on the button.
Hey, let’s set up an account with Hive. After the security scares they faced in the mid-2010s, I’m sure they’ll be competent at
making a password form, right?
Your password must be at least 8 characters; okay.
Just 8 characters would be a little short in this day and age, I reckon, but what do I care: I’m going to make a long and random one with my password safe anyway. Here we go:
I’ve unmasked the password field so I can show you what I tried. Obviously the password I eventually chose is unrelated to any of my screenshots.
Now my password must be at least 12 characters long, not 8 as previously indicated. That’s still not a problem.
Oh, and must contain at least one of four different character classes: uppercase, lowercase, numbers, and special characters. But wait… my proposed password already does
contain all of those things!
Let’s
simplify.
The password 1111AAAAaaaa!!!! is valid… but S1dfCeg7!Ex;C$Ngban9-A is not. I guess my password is too
strong?
Composition rules are bullshit already. I’d already checked to make sure my surname didn’t appear in the password in case that was the problem (on a few occasions services have forbidden me from using the letter “Q” in random passwords
because they think that would make them easier to guess… wot?). So there must be something else amiss. Something that the error message is misleading about…
A normal person might just have used the shit password that Hive accepted, but I decided to dig deeper.
Using the previously-accepted password again but with a semicolon in it… fails. So clearly the problem is that some special characters are forbidden. But we’re
not being told which ones, or that that’s the problem. Which is exceptionally sucky user experience, Hive.
At this point it’s worth stressing that there’s absolutely no valid reason to limit what characters are used in a password. Sometimes well-meaning but ill-informed
developers will ban characters like <, >, ' and " out of a misplaced notion that this is a good way to protect against XSS and
injection attacks (it isn’t; I’ve written about this before…), but banning ; seems especially obtuse (and inadequately explaining that in
an error message is just painfully sloppy). These passwords are going to be hashed anyway (right… right!?) so there’s really no reason to block any character, but anyway…
I wondered what special characters are forbidden, and ran a quick experiment. It turns out… it’s a lot:
Characters Hive forbids use of in passwords include-,.+="£^#'(){}*|<>:` – also space
“Special” characters Hive they allow:!@$%&?
What the fuck, Hive. If you require that users add a “special” character to their password but there are only six special characters you’ll accept (and they don’t even include the most
common punctuation characters), then perhaps you should list them when asking people to choose a password!
Or, better yet, stop enforcing arbitrary and pointless restrictions on passwords. It’s not 1999 any more.
I eventually found a password that would be
accepted. Again, it’s not the one shown above, but it’s more than a little annoying that this approach – taking the diversity of punctuation added by my password safe’s generator and
swapping them all for exclamation marks – would have been enough to get past Hive’s misleading error message.
Having eventually found a password that worked and submitted it…
…it turns out I’d taken too long to do so, so I got treated to a different misleading error message. Clearly the problem was that the CSRF token had expired, but instead they told me
that the activation URL was invalid.
If I, a software engineer with a quarter of a century of experience and who understands what’s going wrong, struggle with setting a password on your site… I can’t begin to image the
kinds of tech support calls that you must be fielding.
It makes me sad to see the gradual disappearance of the contact form from personal websites. They generally feel more convenient than email addresses, although this is
perhaps part of the reason that they come under attack from spammers in the first place! But also, they provide the potential for a new and different medium: the comments
area (and its outdated-but-beautiful cousin the guestbook).
Comments are, of course, an even more-obvious target for spammers because they can result in immediate feedback and additional readers for your message. Plus – if they’re allowed to
contain hyperlinks – a way of leeching some of the reputability off a legitimate site and redirecting it to the spammers’, in the eyes of search engines. Boo!
Well this was painful to write.
But I’ve got to admit: there have been many times that I’ve read an interesting article and not interacted with it simply because the bar to interaction (what… I have
to open my email client!?) was too high. I’d prefer to write a response on my blog and hope that webmention/pingback/trackback do their thing, but will they? I don’t know in
advance, unless the other party says so openly or I take a dive into their source code to check.
Your Experience May Vary
I’ve had both contact/comment forms and exposed email addresses on my website for many years… and I feel like I get aproximately the same amount
of spam on both, after filtering. The vast majority of it gets “caught”. Here’s what works for me:
My contact/comments forms use one of a variety of unobtrustive “honeypot”-style traps. These “reverse CAPTCHAs” attempt to trick bots into interacting with them in some
particular way while not inconveniencing humans.
Antispam Bee provides the first line of defence, but I’ve got a few tweaks of my own to help counteract the efforts of
determined spammers.
Once you’ve fallen into a honeypot it becomes much easier to block subsequent contacts with the same/similar content, address, (short-term) IP, or the poisoned cookie you’re given.
Keyword filtering provides a further line of defence. E.g. for contact forms that post directly back to the Web (i.e. comment forms, and perhaps a future guestbook form), content
with links goes into a moderation queue unless it shares a sender email with a previously-approved sender. For contact forms that result in an email, I’ve just got a few “scorer” rules
relating to geo IP, keywords, number and density of links, etc. that catch the most-insidious of spam to somehow slip through.
I also publish email addresses all over the place, but they’re content-specific. Like Kev, I anticipated spam and so use unique email addresses on
different pieces of content: if you want to reply-by-email to this post, for example, you’re encouraged to use the address
b27404@danq.me. But this approach has actually provided secondary benefits that are more-valuable:
The “scrapers” that spam me by email would routinely send email to multiple different @danq.me addresses at the same time. Humans don’t send the same identical message
to me to different addresses published on my site and from different senders, so my spam filter picks up on this rightaway.
As a fringe benefit, this helps me determine the topic on an email where it’s unclear. E.g. I’ve had humans email me to say “I tried to follow the guide on your page but it didn’t
work for me” and I wouldn’t have had a clue which page had they not reached out via a page-specific email alias.
I enjoy the potential offered by rotating the email address generation mechanism and later treating all previously-exposed addresses as email honeypots.
They’ve all got different “sender” addresses, but that fact that this series of emails were identical except for the different recipient aliases meant that catching them was very easy
for my spam filters.
Works For Me!
This strategy works for me: I get virtually no comment/contact form spam (though I do occasionally get a false positive and a human gets blocked as-if they were a robot), and very
little email spam (after my regular email filters have done their job, although again I sometimes get false positives, often where humans choose their subject lines poorly).
It might sound like my approach is complicated, but it’s really not. Adding a contact form honeypot is not significantly more-difficult than exposing automatically-rotating email
aliases, and for me it’s worth it: I love the convenience and ease-of-use of a good contact/comments form, and want to make that available to my visitors too!
(I also allow one-click reactions with emoji: did you see? Scroll down and send me a bumblebee! Nobody seems to have found a way to spam me with these, yet: it’s not a very expressive
medium, I guess!)
Or: Sometimes You Don’t Need a Computer, Just a Brain
I was watching an episode of 8 Out Of 10 Cats Does Countdown the other night1
and I was wondering: what’s the hardest hand you can be dealt in a Countdown letters game?
Or maybe I was just looking for an excuse to open an image editor, I don’t know.
Sometimes it’s possible to get fixated on a particular way of solving a problem, without having yet fully thought-through it. That’s what happened to me, because the first thing I did
was start to write a computer program to solve this question. The program, I figured, would permute through all of the legitimate permutations of letters that could be drawn in a game
of Countdown, and determine how many words and of what length could be derived from them2.
It’d repeat in this fashion, at any given point retaining the worst possible hands (both in terms of number of words and best possible score).
When the program completed (or, if I got bored of waiting, when I stopped it) it’d be showing the worst-found deals both in terms of lowest-scoring-best-word and fewest-possible-words.
Easy.
Here’s how far I got with that program before I changed techniques. Maybe you’ll see why:
At this point in writing out some constants I’d need to define the rules, my brain was already racing ahead to find optimisations.
For example: given that you must choose at least four cards from the consonants deck, you’re allowed no more than five vowels… but no individual vowel appears in the vowel deck fewer
than five times, so my program actually had free-choice of the vowels.
Knowing that3, I figured that there must exist Countdown deals that contain no valid words, and
that finding one of those would be easier than writing a program to permute through all viable options. My head’s full of useful heuristics about English words, after all, which leads
to rules like:
None of the vowels can be I or A, because they’re words in their own right.
Five letter Us is a strong starting point, because it’s very rarely used in two-letter words (and this set of tiles is likely to be hard enough that three-letter words are already
an impossibility).
This eliminates the consonants M (mu, um: the Greek letter and the “I’m thinking” sound), N (nu, un-: the Greek letter and the inverting prefix), H (uh: another sound for when
you’re thinking or hesitating), P (up: the direction of ascension), R (ur-: the prefix for “original”), S (us: the first-person-plural pronoun), and X (xu: the unit of currency). So as
long as we can find four consonants within the allowable deck letter frequency that aren’t those five… we’re sorted.
I came up with U J Y U Q V U U Z, but there are definitely many other tile-sets that are completely valid within the rules of Counddown (albeit insanely unlikely to turn
up organically) but for which there are no valid words to be found.
I enjoyed getting “Q” into my proposed letter set. I like to image a competitor, having already drawn two “U”s, a “J”, and a Y”, being briefly happy to draw a “Q” and already thinking
about all those “QU-” words that they’re excited to be able to use… before discovering that there aren’t any of them and, indeed, aren’t actually any words at all.
Even up to the last letter they were probably hoping for some consonant that could make it work. A K (juku), maybe?
But the moral of the story is: you don’t always have to use a computer. Sometimes all you need is a brain and a few minutes while you eat your breakfast on a slow Sunday morning, and
that’s plenty sufficient.
Update: As soon as I published this, I spotted my mistake. A “yuzu” is a kind of East
Asian plum, but it didn’t show up in this countdown solver! So my impossible deal isn’t quite so impossible after
all. Perhaps U J Y U Q V U U C would be a better “impossible” set of tiles, where that “C” makes it briefly look like there might be a word in there, even if it’s just a three
or four-letter one… but there isn’t. Or is there…?
Footnotes
1 It boggles my mind to realise that show’s managed 28 seasons, now. Sure, I know that
Countdown has managed something approaching 9,000 episodes by now, but Cats Does Countdown was always supposed to be a silly one-off, not a show in it’s own
right. Anyway: it’s somehow better than both 8 Out Of 10 Cats and Countdown, and if you disagree then we can take this outside.
2 Herein lay my first challenge, because it turns out that the letter frequencies and even
the rules of Countdown have changed on several occasions, and short of starting a conversation on what might be the world’s nerdiest
surviving phpBB installation I couldn’t necessarily determine a completely up-to-date ruleset.
3 And having, y’know, a modest knowledge of the English language
This week, I spent two days on a shoestring Internet connection, and it was pretty shit.
I’m not saying that these telecomms engineers, who were doing something in some of the nearby utility cabinets at the very moment our Internet connection dropped, were
responsible… but it’d make an amusing irony of their company name – Zero Loss – if they were.
As you might anticipate, we run a complicated network at our house, and so when my connection dropped a quarter of an hour into the beginning of three and a half hours of scheduled
meetings on a busy afternoon, my first thought was to check that everything was working locally. Internal traffic all seemed to be going the right way, so then I checked the primary
router and discovered that the problem was further upstream. I checked our fibre terminator, and sure enough: it said it wasn’t getting a signal.
I checked the status page for our ISP – no reported problems. So I called them up. I was pleased that (after I relayed what tests I’d done so far) they treated me like a network
specialist rather than somebody who needed hand-holding and we skipped over the usual “have you tried turning it off and on again” and got straight to some diagnosis and scheduling an
engineer for the next day. That’d do.
Our village has pretty weak cellular reception, and what little there is struggles to penetrate our walls, some of which are made of stone. And so for a little while, “leaning out of
the window” was the only way to get Internet access while (mostly) dodging the rain.
The end of a workday being ruined was a bit of a drag, but for Ruth it was definitely worse, as she was overseeing a major project the
following morning (from 5am!) and so needed to arrange for emergency out-of-hours access to her office for the next day to be able to make it work. As for me: I figured I’d be back
online by lunchtime, and working a little into the evening would give me a rare opportunity for an increased overlap with my team – many of which are on the Pacific coast of the US – so
it’d all work out.
The engineer arrived the next morning, just as a storm hit. He traced the problem, waited for the rain to ease off, then stomped off up the street to get it fixed. Only a matter of time
now, I thought.
But nope: he came back to say that wherever the fault had occurred was found somewhere under the road that he couldn’t access by himself: it’d need a team of two engineers
to get down there and fix it, and they wouldn’t be able to come… until tomorrow.
So I went up to the attic to work, which is just about the only place in the house where – by balancing my phone against a window – I can consistently tether at 4G/5G. Well…
semi-consistently. Inconsistently enough to be immensely frustrating.
Earlier efforts to tether from downstairs were even less successful.
There’s this thing, I find: no Internet access is annoying, but tolerable.
Slow Internet access is similar.
But intermittent Internet access is, somehow, a nightmare. Applications hang or fail in unpredictable ways, their developers not having planned for the possibility that the
connection they detected for when they were opened might come and go at random. Shitty modern “web applications” that expect to download multiple megabytes of JavaScript before they
work show skeleton loaders and dehydrated <div>s that might one day grow up to be something approximating a button, link, or image. It’s just generally a pretty crap
experience.
It’s funny how we got so dependent upon the Internet. 26+ years ago, I used to
write most of my Web-destined PHP and Perl code “offline”! I’d dial-up to the Internet to download documentation or upload code, then work from my memory, from books, and what I’d
saved from the Web. Can you imagine asking a junior Web developer to do that today?
The second team of engineers were fortunate enough to arrive on a less-torrential day.
In a second ironic twist, a parcel arrived for me during our downtime which contained new network hardware with which I planned to eliminate a couple of WiFi weak spots at the edges of
our house. The new hardware worked perfectly and provided a wonderful improvement to signal strength between our computers… but of course not to computers outside of the
network.
There’s another interesting thing that’s changed over the decades. When I first started installing (bus!) networks, there was no assumption that the network would necessarily
provide Internet access. The principal purpose of the network was to connect the computers within the LAN to one another. This meant that staff could access one another’s
files more easily and make use of a shared printer without walking around carrying floppy disks, for example… or could frag one another at Doom and Quake at the LAN parties that I’d
sometimes run from my mum’s living room!
But nowadays, if you connect to a network (whether wired or wireless) there’s an expectation that it’ll provide Internet access. So much so, that if you join a wireless
network using your mobile phone and it doesn’t provide Internet access, your phone probably won’t route any traffic across it unless you specifically say that it should.
That’s a reasonable default, these days, but it’s an annoyance when – for example – I wanted my phone to continue using Syncthing to back up my photos
to my NAS even though the network that my NAS was on would no longer provide Internet access to my phone!
The second team of engineers quickly found and repaired a break in the fibre – apparently it was easier than the first engineer had expected – and normalcy returned to our household.
But for a couple of days, there, I was forcibly (and unpleasantly) reminded about how the world has changed since the time that “being on a network” wasn’t assumed to be
synonymous with “has Internet access”.
This post is also available as a video. If you'd prefer to watch/listen to me
talk about this topic, give it a look.
1979
The novelisation of The Hitch-Hiker’s Guide to the Galaxy came out in 1979, just a smidge before I was born. There’s a well-known scene in the second chapter featuring Ford
Prefect, an alien living on Earth, distracting his human friend Arthur Dent. Arthur is concerned about the imminent demolition of his house by a wrecking crew, and Ford takes him
to the pub to get him drunk, in anticipation of the pair attempting to hitch a lift on an orbiting spacecraft that’s about to destroy the planet:
“Six pints of bitter,” said Ford Prefect to the barman of the Horse and Groom. “And quickly please, the world’s about to end.”
The barman of the Horse and Groom didn’t deserve this sort of treatment, he was a dignified old man. He pushed his glasses up his nose and blinked at Ford Prefect. Ford ignored him
and stared out of the window, so the barman looked instead at Arthur who shrugged helplessly and said nothing.
So the barman said, “Oh yes sir? Nice weather for it,” and started pulling pints.
He tried again.
“Going to watch the match this afternoon then?”
Ford glanced round at him.
“No, no point,” he said, and looked back out of the window.
“What’s that, foregone conclusion then you reckon sir?” said the barman. “Arsenal without a chance?”
“No, no,” said Ford, “it’s just that the world’s about to end.”
“Oh yes sir, so you said,” said the barman, looking over his glasses this time at Arthur. “Lucky escape for Arsenal if it did.”
Ford looked back at him, genuinely surprised.
“No, not really,” he said. He frowned.
The barman breathed in heavily. “There you are sir, six pints,” he said.
Arthur smiled at him wanly and shrugged again. He turned and smiled wanly at the rest of the pub just in case any of them had heard what was going on.
None of them had, and none of them could understand what he was smiling at them for.
A man sitting next to Ford at the bar looked at the two men, looked at the six pints, did a swift burst of mental arithmetic, arrived at an answer he liked and grinned a stupid
hopeful grin at them.
“Get off,” said Ford, “They’re ours,” giving him a look that would have an Algolian Suntiger get on with what it was doing.
Ford slapped a five-pound note on the bar. He said, “Keep the change.”
“What, from a fiver? Thank you sir.”
There’s a few great jokes there, but I’m interested in the final line. Ford buys six pints of bitter, pays with a five-pound note, and says “keep the change”, which surprises the
barman. Presumably this is as a result of Ford’s perceived generosity… though of course what’s really happening is that Ford has no use for Earth money any longer; this point is
hammered home for the barman and nearby patrons when Ford later buys four packets of peanuts, also asking the barman to keep the change from a fiver.
Beer’s important, but you also need to know where your towel is.
We’re never told exactly what the barman would have charged Ford. But looking at the history of average UK beer prices and assuming that the story is set in 1979, we can
assume that the pints will have been around 34p each1,
so around £2.04 for six of them. So… Ford left a 194% tip for the beer2.
1990
By the time I first read Hitch-Hikers, around 1990, this joke was already dated. By then, an average pint of bitter would set you back £1.10. I didn’t have a good
awareness of that, being as I was well-underage to be buying myself alcohol! But I clearly had enough of an awareness that my dad took the time to explain the joke… that is, to point
out that when the story was written (and is presumably set), six pints would cost less than half of five pounds.
But by the mid-nineties, when I’d found a friend group who were also familiar with the Hitch-Hikers… series, we’d joke about it. Like pointing out that by then if
you told the barman to keep the change from £5 after buying six pints, the reason he’d express surprise wouldn’t be because you’d overpaid…
In his defence, Ford’s an alien and might not fully understand human concepts of inflation. Or sarcasm.
1998
Precocious drinker that I was, by the late nineties I was quite aware of the (financial) cost of drinking.
Sure, this seems like a responsible amount of alcohol for a party thrown by a couple of tearaway teenagers. Definitely nothing going to go wrong here, no siree.
And so when it was announced that a new denomination of coin – the £2 coin –
would enter general circulation3
I was pleased to announce how sporting it was of the government to release a “beer token”.
With the average pint of beer at the time costing around £1.90 and a still cash-dominated economy, the “beer token” was perfect! And in my case, it lasted: the bars I was
drinking at in the late 1990s were in the impoverished North, and were soon replaced with studenty bars on the West coast of Wales, both of which allowed the price of a pint to do
battle with inflationary forces for longer than might have been expected elsewhere in the country. The “beer token” that was the £2 coin was a joke that kept on giving for some time.
The one thing I always hated about the initial design for the bimetallic £2 coin was – and this is the nerdiest thing in the world with which to take issue – the fact that it had a
ring of 19 cogs to represent British industry. But if you connect a circuit of an odd number of cogs… it won’t function. Great metaphor, there. Photo
courtesy of the late Andy Fogg, used under a Creative Commons license.
2023
As the cost of living rapidly increased circa 2023, the average price of a pint of beer in the UK finally got to the point where, rounded to the nearest whole pound, it was closer to £5
than it is to £44.
And while we could moan and complain about how much things cost nowadays, I’d prefer to see this as an opportunity. An opportunity for a new beer token: a general-release
of the £5 coin. We already some defined characteristics that fit: a large,
heavy coin, about twice the weight of the £2 coin, with a copper/nickel lustre and struck from engravings with thick, clear lines.
And the design basically comes up with itself. I give you… the Beer Token of the 2020s:
Wouldn’t this be much more-satisfying to give to a barman than a plasticky note or a wave of a contactless card or device?
It’s time for the beer token to return, in the form of the £5 coin. Now is the time… now is the last time, probably… before cash becomes such a rarity that little thought
is evermore given to the intersection of its design and utility. And compared to a coin that celebrates industry while simultaneously representing a disfunctional machine, this is a
coin that Brits could actually be proud of. It’s a coin that tourists would love to take home with them, creating a satisfying new level of demand for the sinking British
Pound that might, just might, prop up the economy a little, just as here at home they support those who prop up the bar.
I know there must be a politician out there who’s ready to stand up and call for this new coin. My only fear is that it’s Nigel Fucking Farage… at which point I’d be morally compelled
to reject my own proposal.
But for now, I think I’ll have another drink.
Footnotes
1 The recession of the 1970s brought high inflation that caused the price of beer to
rocket, pretty much tripling in price over the course of the decade. Probably Douglas Adams didn’t anticipate that it’d more-than-double again over the course of the 1980s
before finally slowing down somewhat… at least until tax
changes in 2003 and the aftermath of the 2022 inflation rate spike!
2 We do know that the four packets of peanuts Ford bought later were priced at 7p
each, so his tip on that transaction was a massive 1,686%: little wonder the barman suddenly started taking more-seriously Ford’s claims about the imminent end of the world!
3 There were commemorative £2 coins of a monometallic design floating around already, of
course, but – being collectible – these weren’t usually found in circulation, so I’m ignoring them.
4 Otherwise known as “two beer tokens”, of course. As in “Bloody hell, 2022, why does a
pint of draught cost two beer tokens now?”
Generated a QR code as usual, minimising its size by making the URL uppercase (allows a smaller character set to be used) and maximising its resilience by ramping up the error
correction to the maximum.
Masked off all but the central 7% of each row and column, leaving just a grid of spots, and then re-adding the three large and one small square and the “zebra crossing” stripes that
connect the large squares, to ensure rapid discovery.
With a pink mask in place to help me see where I was working, drew lines, dots, and whatever else I liked over the black spots but not touching the white ones, to build a maze.
Removed the pink mask, leaving just black and white. Tested a bit.
It’s just about possible to scan this super-minimal QR code, but having the positioning elements in place to help the scanner identify that it is something
scannable makes a huge difference.
Obviously this isn’t a clever idea for real-world scenarios. The point of QR codes’ resilience and error correction is to compensate for suboptimal conditions “in the
field”, like reflections, glare, dust, grime, low light conditions, and so on.
A few years ago I implemented a pure HTML + CSS solution for lightbox images, which I’ve been using on my blog ever since. It works by
pre-rendering an invisible <dialog> for each lightboxable image on the page, linking to the anchor of those dialogs, and exploiting the :target selector
to decide when to make the dialogs visible. No Javascript is required, which means low brittleness and high performance!
It works, but it’s got room for improvement.
One thing I don’t like about it is that it that it breaks completely if the CSS fails for any reason. Depending upon CSS is safer than depending upon JS (which breaks all
the time), but it’s still not great: if CSS is disabled in your browser or just “goes wrong” somehow then you’ll see a hyperlink… that doesn’t seem to go anywhere (it’s an
anchor to a hidden element).
A further thing I don’t like about it is it’s semantically unsound. Linking to a dialog with the expectation that the CSS parser will then make that dialog visible isn’t really
representative of what the content of the page means. Maybe we can do better.
🚀 Wired: <details>-based HTML+CSS lightboxes?
Here’s a thought I had, inspired by Patrick Chia’s <details> overlay trick and by
the categories menu in Eevee’s blog: what if we used a <details> HTML element for a lightbox? The thumbnail image would go in the
<summary> and the full image (with loading="lazy" so it doesn’t download until the details are expanded) beneath, which means it “just works” with or
without CSS… and then some CSS enhances it to make it appear like a modal overlay and allow clicking-anywhere to close it again.
Let me show you what I mean. Click on one of the thumbnails below:
Each appears to pop up in a modal overlay, but in reality they’re just unfolding a <details> panel, and some CSS is making the contents display as if if were
an overlay, complete click-to-close, scroll-blocking, and a blur filter over the background content. Without CSS, it functions as a traditional <details> block.
Accessibility is probably improved over my previous approach, too (though if you know better, please tell me!).
The code’s pretty tidy, too. Here’s the HTML:
<detailsclass="details-lightbox"aria-label="larger image">
<summary>
<imgsrc="thumb.webp"alt="Alt text for the thumbnail image.">
</summary>
<div>
<imgsrc="full.webp"alt="Larger image: alt text for the full image."loading="lazy">
</div>
</details>
The CSS is more-involved, but not excessive (and can probably be optimised a little further):
Native CSS nesting is super nice for this kind of thing. Being able to use :has on the body to detect whether there exists an open lightbox and prevent
scrolling, if so, is another CSS feature I’m appreciating today.
I’m not going to roll this out anywhere rightaway, but I’ll keep it in my back pocket for the next time I feel a blog redesign coming on. It feels tidier and more-universal than my
current approach, and I don’t think it’s an enormous sacrifice to lose the ability to hotlink directly to an open image in a post.
Do you remember when your domestic ISP – Internet Service Provider – used to be an Internet Services Provider? They
were only sometimes actually called that, but what I mean is: when ISPs provided more than one Internet service? Not just connectivity, but… more.
One of the first ISPs I subscribed to had a “standard services” list longer than most modern ISPs complete services list!
ISPs twenty years ago
It used to just be expected that your ISP would provide you with not only an Internet connection, but also some or all of:
I don’t remember which of my early ISPs gave me a free license for HoTMetaL Pro, but I was very appreciative of it at the time.
ISPs today
The ISP I hinted at above doesn’t exist any more, after being bought out and bought out and bought out by a series of owners. But I checked the Website of the current owner to see what
their “standard services” are, and discovered that they are:
Optional 4G backup connectivity (for an extra fee)
A voucher for 3 months access to a streaming service3
The connection is faster, which is something, but we’re still talking about the “baseline” for home Internet access then-versus-now. Which feels a bit galling, considering that (a)
you’re clearly, objectively, getting fewer services, and (b) you’re paying more for them – a cheap basic home Internet subscription today, after accounting
for inflation, seems to cost about 25% more than it did in 2000.4
Are we getting a bum deal?
Not every BBS nor ISP would ever come to support the blazing speeds of a 33.6kbps modem… but when you heard the distinctive scream of its negotiation at close to the Shannon Limit of
the piece of copper dangling outside your house… it felt like you were living in the future.
Would you even want those services?
Some of them were great conveniences at the time, but perhaps not-so-much now: a caching server, FTP site, or IRC node in the building right at the end of my
dial-up connection? That’s a speed boost that was welcome over a slow connection to an unencrypted service, but is redundant and ineffectual today. And if you’re still using a
fax-to-email service for any purpose, then I think you have bigger problems than your ISP’s feature list!
Some of them were things I wouldn’t have recommend that you depend on, even then: tying your email and Web hosting to your connectivity provider traded
one set of problems for another. A particular joy of an email address, as opposed to a postal address (or, back in the day, a phone number), is that it isn’t tied to where
you live. You can move to a different town or even to a different country and still have the same email address, and that’s a great thing! But it’s not something you can
guarantee if your email address is tied to the company you dial-up to from the family computer at home. A similar issue applies to Web hosting, although for a true traditional “personal
home page”: a little information about yourself, and your bookmarks, it would be fine.
But some of them were things that were actually useful and I miss: honestly, it’s a pain to have to use a third-party service for newsgroup
access, which used to be so-commonplace that you’d turn your nose up at an ISP that didn’t offer it as standard. A static IP being non-standard on fixed connections is a sad reminder
that the ‘net continues to become less-participatory, more-centralised, and just generally more watered-down and shit: instead of your connection making you “part of” the Internet,
nowadays it lets you “connect to” the Internet, which is a very different experience.5
A page like this used to be absolutely standard on the Website6
of any ISP worth its salt.
Yeah, sure, you can set up a static site (unencumbered by any opinionated stack) for free on Github Pages, Neocities, or wherever, but the barrier to entry has been raised
by just enough that, doubtless, there are literally millions of people who would have taken that first step… but didn’t.
And that makes me sad.
Footnotes
1 ISP-provided shared FTP servers would also frequently provide locally-available copies
of Internet software essentials for a variety of platforms. This wasn’t just a time-saver – downloading Netscape Navigator from your ISP rather than from half-way across the world was
much faster! – it was also a way to discover new software, curated by people like you: a smidgen of the feel of a well-managed BBS, from the comfort of your local ISP!
2 ISP-provided routers are, in my experience, pretty crap 50% of the time… although
they’ve been improving over the last decade as consumers have started demanding that their WiFi works well, rather than just works.
3 These streaming services vouchers are probably just a loss-leader for the streaming
service, who know that you’ll likely renew at full price afterwards.
4 Okay, in 2000 you’d have also have had to pay per-minute for the price of the
dial-up call… but that money went to BT (or perhaps Mercury or KCOM), not to your ISP. But my point still stands: in a world where technology has in general gotten cheaper
and backhaul capacity has become underutilised, why has the basic domestic Internet connection gotten less feature-rich and more-expensive? And often with worse
customer service, to boot.
5 The problem of your connection not making you “part of” the Internet is multiplied if
you suffer behind carrier-grade NAT, of course. But it feels like if we actually cared enough to commit to rolling out IPv6 everywhere we could obviate the need for that particular
turd entirely. And yet… I’ll bet that the ISPs who currently use it will continue to do so, even as the offer IPv6 addresses as-standard, because they buy into their own idea that
it’s what their customers want.
6 I think we can all be glad that we no longer write “Web Site” as two separate words, but
you’ll note that I still usually correctly capitalise Web (it’s a proper noun: it’s the Web, innit!).
A quesapizza is a quesadilla, but made using pizza ingredients: not just cheese, but also a tomato sauce and maybe some toppings.
A quesapizza-pizza is a pizza… constructed using a quesapizza as its base. Quick to make and pretty delicious, it’s among my go-to working lunches.
The one you see above (and in the YouTube version of this video) is topped with a baked egg and chilli flakes. It might not be
everybody’s idea of a great quesapizza-pizza, but I love mopping up the remainder of the egg yolk with the thick-stuffed cheese and tomato wraps. Mmm!
The elder of our two cars is starting to exhibit a few minor, but annoying, technical faults. Like: sometimes the Bluetooth connection to your phone will break and instead of music, you
just get a non-stop high-pitched screaming sound which you can suppress by turning off the entertainment system… but can’t fix without completely rebooting the entire car.
There’ve been other “this car is getting a bit older” technical faults too. One of his tyre pressure sensors broke the other month and caused a cascade of unrelated errors that
disabled the traction control, ABS, auto-handbrake, parking sensors, and reversing camera… but replacing the pressure sensor fixed everything. Cars are weird, and that’s coming from
somebody working in an industry that fully embraces knock-on regression bugs as a fact of life.
The “wouldn’t you rather listen to screaming” problem occurred this morning. At the time, I was driving the kids to an activity camp, and because they’d been quite enjoying singing
along to a bangin’ playlist I’d set up, they pivoted into their next-most-favourite car journey activity of trying to snipe at one another1.
So I needed a distraction. I asked:
We’ve talked about homonyms and homophones before, haven’t we? I wonder: can anybody think of a pair of words that are homonyms that are nothomophones? So: two words that are spelled the same, but mean different things and sound different when you say
them?
This was sufficiently distracting that it not only kept the kids from fighting for the entire remainder of the journey, but it also distracted me enough that
I missed the penultimate turning of our journey and had to double-back2
…in English
With a little prompting and hints, each of the kids came up with one pair each, both of which exploit the pronunciation ambiguity of English’s “ea” phoneme:
Lead, as in:
/lɛd/ The pipes are made of lead.
/liːd/ Take the dog by her lead.
Read, as in:
/ɹɛd/ I read a great book last month.
/ɹiːd/ I will read it after you finish.
These are heterophonic homonyms: words that sound different and mean different things, but are spelled the same way. The kids and I only came up with the two on our car
journey, but I found many more later in the day. Especially, as you might see from the phonetic patterns in this list, once I started thinking about which other sounds are ambiguous
when written:
Tear (/tɛr/ | /tɪr/): she tears off some paper to wipe her tears away.
Wind(/waɪnd/ |/wɪnd/): don’t forget to wind your watch before you wind your horn.
Live (/laɪv/ | /lɪv/): I’d like to see that band live if only I could live near where they play.
Bass (/beɪs/ | /bæs/): I play my bass for the bass in the lake.
Bow (/baʊ/ | /boʊ/): take a bow before you notch an arrow into your bow.
Sow (/saʊ/ | /soʊ/): the pig and sow ate the seeds as fast as I could sow them.
Does (/dʌz/ | /doʊz/): does she know about the bucks and does in the forest?
(If you’ve got more of these, I’d love to hear read them!)
…in other Languages?
I’m interested in whether heterophonic homonyms are common in any other languages than English? English has a profound advantage for this kind of wordplay3, because it has weakly phonetics (its orthography is irregular: things
aren’t often spelled like they’re said) and because it has diverse linguistic roots (bits of Latin, bits of Greek, some Romance languages, some Germanic languages, and a smattering of
Celtic and Nordic languages).
With a little exploration I was able to find only two examples in other languages, but I’d love to find more if you know of any. Here are the two I know of already:
In French I found couvent, which works only thanks to a very old-fashioned word:
/ku.vɑ̃/ means convent, as in – where you keep your nuns, and
/ku.və/ means sit on, but specifically in the manner that a bird does on its egg, although apparently this usage is considered archaic and the word
couver is now preferred.
In Portugese I cound pelo, which works only because modern dialects of Portugese have simplified or removed the diacritics that used to differentiate the
spellings of some words:
/ˈpe.lu/ means hair, like that which grows on your head, and
/ˈpɛ.lu/ means to peel, as you would with an orange.
If you speak more or different languages than me and can find others for me to add to my collection of words that are spelled the same but that are pronounced differently,
I’d love to hear them.
Special Bonus Internet Points for anybody who can find such a word that can reasonably be translated into another language as a word which also exhibits the same
phenomenon. A pun that can only be fully understood and enjoyed by bilingual speakers would be an especially exciting thing to behold!
Footnotes
1 I guess close siblings are just gonna go through phases where they fight a lot, right?
But if you’d like to reassure me that for most it’s just a phase and it’ll pass, that’d be nice.
2 In my defence, I was navigating from memory because my satnav was on my phone and it was
still trying to talk over Bluetooth to the car… which was turning all of its directions into a high-pitched scream.
3 If by “advantage” you mean “is incredibly difficult for non-native speakers to ever
learn fluently”.
At the weekend, JTA and I – along with our eldest child – explored the Clapham South Deep Shelter as part of one of Hidden London‘s
underground tours, and it was pretty great!
Anybody else get Fallout vibes from this place?
I’ve done a couple of bits of exploration of subterranean London before: in the service tunnels around Euston, and into the abandoned station on the Aldwych branch line. But I was especially impressed by the care and attention that had gone into making this
particular tour fun and engaging.
Had this deep shelter gained a second life as a new tube station, as was originally hoped, this staircase would have connected it to the Northern Line platforms. Instead, it ends at a
brick wall.
The site itself is deep: trains on the Northern Line – already one of the deepest lines on the London Underground – can be heard passing above you, and any
noise from street level is completely gone (even the sounds of bombing couldn’t be heard down here, WWII residents reported). It’s also huge: long interconnected tunnels
provided space for 8,000 beds, plus canteens, offices, toilets, medical bays, and other supporting architecture.
Significant parts of the bunker contain original furniture, including the metal-frames triple-bunk-beds (some of which show signs of being temporarily repurposed as archival storage
shelves). But other bits have been restored to make them feel contemporaneous with the era of its construction.
To extend the immersion of the theme even further, there’s a “warden” on-site who – after your 179-step descent – welcomes you and checks your (replica) night admission ticket,
identifying which bed’s bed assigned to you. The warden accompanies your group around, staying in-character as you step through different eras of the history of the place! By the time
you get to the interpretative space about the final days of its use for human habitation – as a budget hotel for the “Festival of Britain” national exhibition in 1951 – he speaks fondly
of his time as its warden here and wonders about what will become of the place.
The long, long double-helix staircases that brought us deep into the earth represented only a fraction of the distance we walked on the tour, through these long networks of tunnels.
All of which is to say that this was a highly-enjoyable opportunity to explore yet another hidden place sprawling beneath London. The Hidden London folks continue to impress.
I’m glad I’ve got a bed of my own in a house of my own that’s not being bombed by the Luftwaffe, actually, thanks.
I wanted a way to simultaneously lock all of the computers – a mixture of Linux, MacOS and Windows boxen – on my desk, when I’m
going to step away. Here’s what I came up with:
There’s optional audio in this video, if you want it.
One button. And everything locks. Nice!
Here’s how it works:
The mini keyboard is just 10 cheap mechanical keys wired up to a CH552 chip. It’s configured to send CTRL+ALT+F13 through
CTRL+ALT+F221
when one of its keys are pressed.
The “lock” key is captured by my KVM tool Deskflow (which I migrated to when Barrier became neglected, which in turn I migrated to when I fell out of love with Synergy). It then relays
this hotkey across to all currently-connected machines2.
That shortcut is captured by each recipient machine in different ways:
The Linux computers run LXDE, so I added a line to /etc/xdg/openbox/rc.xml to set a <keybind> that executes xscreensaver-command
-lock.
For the Macs, I created a Quick Action in Automator that runs pmset displaysleepnow as a shell script3, and then connected that via
Keyboard Shortcuts > Services.
On the Windows box, I’ve got AutoHotKey running anyway, so I just have it run { DllCall("LockWorkStation") } when it hears
the keypress.
That’s all there is to is! A magic “lock all my computers, I’m stepping away” button, that’s much faster and more-convenient than locking two to five computers individually.
Footnotes
1F13 through F24 are absolutely valid “standard” key assignments,
of course: it’s just that the vast majority of keyboards don’t have keys for them! This makes them excellent candidates for non-clashing personal-use function keys, but I like to
append one or more modifier keys to the as well to be absolutely certain that I don’t interact with things I didn’t intend to!
2 Some of the other buttons on my mini keyboard are mapped to “jumping” my cursor to
particular computers (if I lose it, which happens more often than I’d like to admit), and “locking” my cursor to the system it’s on.
3 These boxes are configured to lock as soon as the screen blanks; if yours don’t then you
might need a more-sophisticated script.