Moderna & The Lost Weekend

Moderna, Part 2 is no joke. But I’m hoping to be back to normal in the next 48 hours or so.

I had a bunch to say this week, but I don’t have the energy today, so things will be lost. I had a great, quiet birthday, and I rediscovered that Cracker is a lot bleaker than you remember. Also, on re-watch? The supposed Imperial Phase of Red Dwarf is really not as good as your faulty memory tells you. It was an odd contrast to go from that to the first episode of Waiting For God, which, well, yes, it’s still a prime-time BBC1 sitcom, but the writing was so much sharper than what Grant/Naylor were doing on BBC2 at the same time.

Right, I’m going to head to bed and collapse for the evening. But the good news is that by mid-May, I will be at my full mRNA powers!

Old Racist Dies

Although I’m an anti-monarchist1, the past two days have been a bit like this for me:

Tangled

All I pointed out was that, yeah, sure, losing BBC Four and having 1 & 2 simulcast for 24 hours (plus the Radio network going to the ‘sombre’ playlist) was a bit of a pain, but what do you honestly expect the BBC to do? This is the prelude to a massive cultural shift in Britain; where one of the icons of the post-war era, one of the constants for three generations of British people, will no longer be with us, and potentially the start of the fall of the monarchy itself, given the candidates for succession. It’s somewhat newsworthy, and as the public sector broadcaster that has been chronicling these things since 1922, cut them a bit of slack?

(also, this is not 1997. The vast majority of the country only had five channels at the time. Today, even if you discount the Internet, there seems to be 99 channels available on a free-to-air basis, and even as people were spending a lot of Saturday moaning, most of BBC television had gone back to a fairly normal slate of programmes)

This post brought to you by “when I was a young lad, not only did we have to walk 20 miles in the snow to get to school, but they’d take DS9 off schedule whenever it looked like Tim Henman might make it to the quarter-finals of Wimbledon! You lot don’t know you’re born!”

The digital billboards all around the country, though? Yeah, don’t do that again. Very creepy.

(Obviously, complaining about the content of the last 48 hours is definitely fine; the hagiography and the glossing over the reactionary and racist elements of his life was terrible…)


  1. I have mellowed a little though. In my teens and 20s, my solution to the Royal Family was “let’s do the Romanov again!” to the tune of “Time Warp”, blowing up Buckingham Palace and replacing it with a massive concrete obelisk containing a new Worker’s Soviet. These days, I’m fine with nationalizing their entire assets, giving the family a one-off £100m payment to go off and live like a set of European royals, and I’m fine with converting the Palace into social housing. Does that count as getting more right-wing as you get older? [return]

He's The Shaker, Baby

Right, the important news from this week.

It’s difficult to explain how important the footage is; Life Without Buildings were a band that didn’t last all that long, but after 20 years, I’ve finally seen one of my favourite bands actually perform. It’s quite something1. Look out for the Mogwai and Belle & Sebastian cameos!

Other than that, it has been a fairly quiet Easter week, though it has felt like Winter wanted one last shot at us before it sailed out (it snowed on Thursday!!). I have eaten all the mini eggs for another year, made an eggceptional amount of egg-based puns, finished the first Culture novel2, the sun is shining, and I have less than a fortnight until I get more Moderna mRNA shot into my veins. Oh, and I made an amazing banh mi on Saturday. Which means a lot less to the rest of you because you weren’t here and couldn’t eat it, but trust me it was good…

Anyway, Happy Easter! Eat allllll the eggs!


  1. Even when put against my other one-album loves of the 2000s, Johnny Boy. While there’s no footage of them online, I did manage to see them three times, one of which involved dancing with Kieron Gillen and Alex De Campi, no less… [return]
  2. Yeah, I know that it took me long enough… [return]

CLIP Dreams of Helvetica Bold

As promised, I finally updated But This Was A Fantasy. And it’s a bumper update too; not only The Living Dead, but also the Nick Leeson Inside Story and the Modern Times documentary on Henrietta Lacks. That finishes Adam Curtis’ 90s output. Next up will be Century of The Self, and then I’ll close out the 2000s with the duo of The Power of Nightmares and The Trap. You’ll then get All Watched Over By Machines of Loving Grace and Hypernormalisation, but I’ve decided to skip Bitter Lake, as it’s a different sort of film, and is also very explicit in its violence, so I’m leaving it out so it doesn’t give you upsetting results on random queries.

(I’ve made a small discovery that the version of the Nick Leeson documentary we’ve been watching all these years is different from the version that was originally broadcast; the iPlayer version is seven minutes longer and has different archive footage - perhaps to make overseas sales easier? Anyway, I’ll be doing a follow-up post outlining the differences at some point in the future.)

The update has confused CLIP in some ways, but it’s astounding in others: enter ‘henrietta lacks’ into the search box, and you get five great results with no text in the frame to help the network out at all. I’m assuming that some of the images were in CLIP’s training set and labelled correctly - anyway, it makes the search engine look superhuman.

Finally on the Adam Curtis front for the moment: this episode of Politics Theory Other has a great discussion on Curtis, specifically on Can’t Get You Out of My Head but also his work at large. I completely agree with Owen Hatherley that his work has suffered since dropping the Curtis-led interviews, and that few seem to pick up on the jokes. “but they had become radical lesbian nuns” in an accent that seems to come straight from Reith himself will never not be hilarious.

StructType(Array(StructField('wibble', StringType, true)))

This is some great advice. In entirely unrelated news, as it was doing the rounds on Twitter, I was into day 3 (or 4?) of delving deep inside pulsar-spark. What I have ended up with is a Lovecraftian horror that dynamically intercepts Spark’s schema creation, adds a new StructType field, and in the deserialization pass, dumps the entire content of a Pulsar message into that field in case something goes wrong in the other fields1. After a week of 12-hour days, I can only reiterate that computers were a mistake.

As you might imagine, spending all that time working this week, I haven’t really had much of a chance to do much else. Other than spending Saturday night reading until 2am finally finishing the Horus Heresy sequence of books2 and through a variety of circumstances, ending up owning a 50” 4K TV that currently sits a little awkwardly in my bedroom. Although at least on that last one, the walk through Wal-Mart 70”-and-up range means you come out feeling like you could have been more ridiculous but were strong? Seriously, at some point, the TVs just become the size of a wall.

And no updates to But This Was A Fantasy either. Next week, though - three day weekend! So maybe, if you’re lucky, you might get something.

I am now going to curl into a corner until Monday comes.


  1. Which it does. [return]
  2. A special shoutout to Horus Heresy: Titandeath, which is Games Workshop essentially saying: “Hear us out: what about space mecha pilot lesbians? How triggered are you now, 4chan?” [return]

Moderna Part One

I have joined the ranks of the vaccinated! First jab, anyhow. I go back for the second Moderna shot during my birthday weekend, so by mid-May, I guess, my body will be at full mRNA power. The summer awaits!

(But I am tired and will be spending the day in bed. And Sunday too, as it happens)

While I prefer the British approach of the NHS just telling you when you’re going to get a vaccination…I guess I am lucky to be in a position where I can spend two days refreshing a browser window every five minutes until a slot becomes available. In a supermarket no less.

But still, remain indoors. No matter how sunny it looks outside this weekend. My hope is that we’ll finish the DIY projects that have popped into my head over Easter, and by the time the house can receive visitors again, it’ll look a little bit more like a home, and less like a show house that has two bedrooms jammed full of stuff everywhere. Look, I’ve only lived here for three years. You have to take your time with these things.

(also, Helvetica has started attacking one of the foam mattresses in one of the bedrooms, so that needs to be stopped before she builds a nest of foam pieces on the carpet. She’s an odd cat)

The “oh, yes” prize of the week goes to United Airlines, who this week sent me an email reminding me that the travel voucher we got in lieu of our trip to Japan last year is valid for another 24 months (I had completely forgotten about it, to be honest). Oh, wouldn’t it be nice to use that someday?

Next week, I promise I’ll get some updates done for the Curtis search engine. Maybe I’ll encode The Living Dead

Furnaces & Driveways

Okay, if the fates could please let up after my optimistic comment a couple of weeks ago, that’d be grand. In the past week, part of my driveway surround has collapsed and the furnace died. The poor HVAC engineer handed over the quote and let me stare at the zeros until I sheepishly said “it’ll be just as much to replace it, won’t it?” We decided that it wasn’t a good idea to do all that patching up of a 20-year-old furnace when for $200 more, I could get a brand-new, much-more-efficient furnace that doesn’t have holes in its heat-exchanger pushing out carbon monoxide1. Which I now have, thanks to a very prompt installation, but oh my, an expensive week.

Also, I am not loving this weekend’s time change, as with it, somebody using the main road as a drag strip at 3am, seemingly floodlights being left shining at my window, a very warm bedroom (hey, the new furnace works!), and a cat determined to scratch her way into a closed bedroom, I haven’t got a lot of sleep this weekend.

I still fit in my jeans, though. So that’s the high point of the week sorted.


  1. Don’t worry, I have a CO detector and it hadn’t pinged at all. [return]

Sorry, Could You Repeat That?

Obviously, my sense of optimism on display last week was leading me to a downfall. I forgot to centre myself appropriately.

My penance was to spend the week without being able to hear a lot out of the left side of my head. It made a very meeting-heavy week something of a challenge, I can tell you. As of right now, after a visit to the doctor, my hearing has been restored, but I’m now on more medication for the rest of the week to stave off an infection. It’s going great, and I’ve spent most of the week moping about and not doing anything. Which makes writing this weekly blog update a little trickier than usual.

In lieu of other exciting news, then, But This Was A Fantasy now has The Mayfair Set added to the encoded documentaries, so go to it for all your James Goldsmith and escalator needs. I’ve also changed the reranking algorithm to throw out anything similar within twenty seconds (up from five), and the front-end now also displays the TX date for each episode.

One thing I’ve noticed whilst testing CLIP out on new encodes is that it is very, very keen on matching to text. This is actually quite helpful within the documentary structure, because if you search for “Geoffrey Hinton”, it’ll match on the introductory text that comes with his appearance, and thus scenes with him in without the text will probably be similar enough that they’ll also get recommended. Unfortunately, it does mean that one of the smartest models around is quite stupid when it comes to mislabelled images.

Even a ResNet-16 probably wouldn’t be fooled by that one. Anyway, more encodes to come — I am very fond of 830,000,000 – Nick Leeson and the Fall of the House of Barings, and given that it now has a shiny new BBC iPlayer version instead of the VHS copy that’s been passed around the Web for years, it’ll be nice to get it up.

It's Only Make Believe

I’m not sure if it’s the snow melting, that we’ve reached 2m+ vaccinations a day over here, the approval of the one-shot J&J vaccine, the arrival of two servings of ginger cake and three bags of Mini Eggs, a rather decent week at work, or more likely a combination of all of these…but I’m finding myself a little more optimistic this weekend.

It was also a great week for old television. Not only did I discover that somebody late last year uploaded the BBC’s 1975 drama State of Emergency, I also got hold of my illicit DVD-R containing Dennis Potter’s Angels Are So Few and Only Make Believe. I do wonder just where the originals came from; there’s timecodes burnt into both plays, and a physical VT countdown clock at the start of Only Make Believe, almost as if the video came direct from the BBC archive (there’s no evidence that they’re off-airs — it’d probably be a bit obvious if the were considering both plays are from the start of the 70s). Anyway, that mystery aside, who doesn’t love a play with an ‘angel’ and a frustrated housewife and another play about a frustrated writer writing the first play and trying very unsuccessfully to seduce his typist? With the actor playing not-Potter being the same actor who played not-Potter twice already in the earlier Wednesday Play strand? Now that’s what I call a Saturday night.

Finally for this week - a couple of updates to But This Was A Fantasy. Firstly, I’ve added all the episodes of Pandora’s Box, so you can now search for “RAND Corporation, Santa Monica” and see where I ended up sometime in October 2011 after walking all afternoon. Secondly, I added the re-ranking function I talked about last week, so it should filter out any images that occur within ten seconds of the higher-ranked images. More variety! The BBC has made a few more series available on iPlayer, so you’ll probably see some more series added in March (The Mayfair Set for sure).

But This Was A Fantasy — An Adam Curtis Search Engine

I built a new thing.

Presenting: But This Was A Fantasy: An Adam Curtis Search Engine

Yes, given any natural language query entered into its shiny, Helvetica-accented search box, and The Ghost In The Machine & The Machine In The Ghost will respond with five images that it thinks are most appropriate.

How does it work? It’s a mixture of OpenAI’s CLIP model and Facebook’s FAISS vector similarity library. I take every second of footage, encode it using CLIP and store the normalized vectors into FAISS. For searching, it encodes the text, again using CLIP, and computes the cosine similarity between the text vector and all the encoded image vectors, returning the top 5 results (which I then check against a SQLite database to pull out metadata such as the episode title, timecode, and the appropriate image URI). Basically, “tell me what image is closest to this bit of text?”

There’s not much more to it, except for some embarrassing Javascript which was mainly me spending the week doing my first ‘major’ web development since working on the Call of Duty registration system back in 2012. Apparently there are magic things like the Fetch API now instead of XMLHttpRequest! No longer do you need to use jQuery and IE polyfills!

(please, JS devs, do not actually look at the code; there’s a couple of laughable bits in there which are me falling back to “yes, I’m sure there’s a proper way to do this, but I am bored and I’ll just throw in this half-remembered hack that gets the job done)

So it’s a FAISS index file, a SQLite database, a FastAPI Python server, one page of HTML and a lot of images, all bundled up into a single stateless Docker container and running on Google Cloud Run. Look at me embracing the current zeitgeist (in fairness, I am pleased with the Knative stuff and I’m already pondering how I can use it with work’s Kubernetes infrastructure to make our lives easier). And aside from having to adjust the memory limits to make the container actually run and some long-ish startup times, it all seems to work pretty seamlessly.

I do have some improvements in mind, if people are interested.

  • Obviously, add more series. The BBC have helped here quite a bit, as they’re put up a bunch of his older series up on iPlayer, meaning I can get high-quality videos instead of weird YouTube rips. I already have an index that includes all of Pandora’s Box.

  • If you play around with queries, you’ll notice that the search engine really likes returning images that are seconds apart from each other. This makes sense, as if the one second of an interview is a high match for the query, then the next second is likely to be as well. As is the next second. But it does make the results a little boring. I’ve written a reranking function that instead gets 10 results from the FAISS index and strips out those that have close timecodes to other images that come from the same episode. So I’m thinking of adding that as an option. Also, it might be handy to filter to only include results from a specific series, just in case you don’t want your search aimed at The Mayfair Set to be sullied with anything else.

  • Finally, I want to experiment with the different types of FAISS clustering so I can get the best use of memory, CPU, and accuracy out of the engine as I keep adding vectors to the index. There’s endless tinkering available here — I managed to take an episode down from taking up 10Mb to less than 750Kb without much trouble, but the accuracy of the results wasn’t great compared to the original. So I’ll need to come up with some metrics for (automatically) testing out the options.

  • Map ‘rainy fascist island’ directly to British-related images.

  • I’m not above doing a Perry & Croft or Morse, or even Cracker (“search for the odeon on the oxford road” —> “that’s fine by me!”) version if people are twisted enough to want those. Give me enough Plays For Today and we’ll get that going too.

Amusingly, this is pretty much directly related to my day job at the moment. Anyway, enjoy and let me know if you find anything fun!