Blog

Unpacked Kitchen

Today’s mission in what we’re calling the Chicory House – our home while our actual house gets repaired – was to unpack the kitchen. I think it’s looking pretty good!

A moderately tidy kitchen with faux-marble countertops, under free on which an open large cardboard box can be seen. In the distance, a conservatory contains a small dining table cluttered with computer equipment.
The cardboard box you can see contains pans we brought with us that turn out to be incompatible with the induction hobs at the Chicory House, boo!

Next weekend’s mission will be to set myself up a workspace that isn’t the conservatory dining table. 😬

×

Reply to: Sent to Coventry: Who is Princess Victor Duleep Singh?

This is a reply to a post published elsewhere. Its content might be duplicated as a traditional comment at the original source.

Sundeep Braich said:

Second: the language “committed suicide” is no longer appropriate. Princess Irene died by suicide. “Committed” is the language of crime. For example, one does not commit a heart attack.

You clearly feel strongly enough about this point to have committed it to writing.

(It’s obviously a cause that you’re committed to.)

I’m being sarcastic, of course, but there’s a point. While (like most mental health services) I’m not a fan of describing the act of suicide as “committing” suicide today, for exactly the reasons you describe, it might be appropriate for a historical case.

That’s all I meant to say in a comment… but then I ended up going down a rabbithole.


Let’s sidestep into an example: I said “John William Gott committed blasphemy in 1921” that would be fair. His actions would not be considered criminal today: he was initially arrested for selling pamphlets containing information on birth control but prosecutors tacked on a blasphemy charge because they figured they could get it to stick too, based on the ways his literature was presented. But legally-speaking, Gott committed a crime; a crime that doesn’t exist today.

It’s not a coincidence I’ve lumped jumped from suicide to blasphemy: both were formerly criminalised in Britain and her empire (among many other places) as a direct result of Christian religious tradition: you can probably blame Thomas Aquinas!

Language about the criminality of past offences gets very complicated, very quickly. Some contemporary values seem to be considered so fundamental that it feels wrong to describe historical convictions as criminal. In some of these cases, we see pardons issued or other admissions of fault by the state. Take for example in recent years the payment of compensation to former military personnel who were dishonourably discharged on account of their sexuality. But I’m not aware of anything like that happening related to past convictions of suicide (or, indeed, blasphemy).

With that grounding: let’s take a deeper dive into Irene Duleep Singh, to decide whether or not her suicide would have been considered criminal at the time (it was certainly considered shameful and taboo, even within societies that would not have considered it illegal, but that’s not what I’m interested in right now). Irene died by suicide in the Principality f Monaco in 1926. At that time, Monaco was a protectorate of France with less independence than it is today, and for the most part its legal system seems to have paralleled that in France. I can’t find a specific provision for suicide in Monaco, so it would probably not have been illegal (suicide was illegal under the Ancien Régime but was effectively decriminalised by its omission from the Napoleonic Penal Codes). So: no crime.

Buuuut… Irene could also be considered a citizen of Britain, or of India, or of British India. Suicide was illegal in the UK prior to 1961 and in India until 2024 (wait, what? yeah, really… well… kinda; it’s complicated, especially after 2018). So in her capacity as a citizen or subject of the British Empire, her suicide was criminal.

Both John William Gott and Irene Duleep Singh may well both have committed crimes that would not be considered crimes today. In both cases, their crimes were things that, in my opinion, should never have been criminalised in the first place. But that doesn’t make the historical fact any less-true.


And that’s why I picked up on this one line for my comment.

I absolutely agree that it’s inappropriate and unhelpful to talk about somebody have “committed suicide” today. The language creates a barrier to help and support, which is what should be offered to people experiencing suicidal thoughts! But I don’t see the harm in using it when discussing a historical case from a century ago, at a time at which suicide was seen very differently.

So long as it’s appropriately contextualised for the audience, it seems to me to be harmless. By which I mean to say: not worthy of being called-out by your one-liner… and even-less worthy of my having gone down this long and complicated rabbithole which, somehow, has involved translating old French legislation, digging through the history of Monaco, and learning about the courts of the British Raj.

I guess what I mean to say is that if your intention was to nerdsnipe me with this line… then well played, Sundeep, well played.

100 Days to Offload × 7

I remain a huge fan of Kev Quirk‘s “100 Days To Offload” blogging challenge. And today… I just completed it for the seventh time!

Kev announced that he completed it again today, too. He uses a different metric to me – he counts “posts over a twelve month period”, while I use a slightly more-restrictive subset of that: “posts in a calendar year”, because it was easy for me to make a table out of in my blog stats.

Year Posts Success? Notes
2020 221
(64 for pedants)
✅ Yes* Barely made it this year (ignoring reposts, of which I did lots), with my 21 December article about a little-known (and under-supported) way to inject CSS using HTTP headers, which I later used to make a web page for which View Souce showed nothing.
2021 190
(57 for pedants)
✅ Yes* A cycle to a nearby geocache was the checkin that made the 100th post of this year, on 27 August.
2022 168
(55 for pedants)
✅ Yes* My efforts to check up on one of my own geocaches on 7 September scored the qualifying spot.
2023 165
(86 for pedants)
✅ Yes* My blogging ramped up again this year, and on 24 August I shared a motivational poster with a funny twist, plus a pun at the intersection between my sexuality and my preferred mode of transport.
2024 436 🏆 Yes Writing at full-tilt, my hundredth post came when I found a geocache near Regents Canal, but pedants who disregard reposts and checkins might instead count my excitement at the Ladybird Web browser as the record-breaker. This year also saw me write my 5,000th post on this blog! Wowza!
2025 458 🏆 Yes
2026 189 🏆 Yes

* Pedants might claim this year was not a success for the reasons described above. Make your own mind up.

After some discussion, Kev agreed that the earliest year I could claim for was 2020.

Personally, I feel like each of the hundred posts should occur on different days too. This is relevant to me, because sometimes I post multiple times in a day… but it’s 100 days to offload, not 100 posts to offload, right?

Therefore, by my own restrictions… the soonest I could achieve the goal in a year would be the 100th day of the year. Right?

Which is today.

Which I just did. 🎉


I started the year knowing that I’d be trying to do this “speedrun”. What I didn’t realise was how hard it would be.

The disruption of getting flooded out of our home in February and the many weeks since of short-term accommodation (of varying quality) has made just living a vaguely normal life very difficult this year (although I’ll admit that it’s also given a topic to write about time and again!).

Anyway: that feels like a win. My fastest ever – the fastest possible, under my ruleset – #100DaysToOffload achievement unlocked.

I wonder what I’ll do next.

(Max props once again to Kev for inventing the challenge.)

The machines are fine. I’m worried about us.

This is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Unlike Alice, who spent the year reading papers with a pencil in hand, scribbling notes in the margins, getting confused, re-reading, looking things up, and slowly assembling a working understanding of her corner of the field, Bob has been using an AI agent. When his supervisor sent him a paper to read, Bob asked the agent to summarize it. When he needed to understand a new statistical method, he asked the agent to explain it. When his Python code broke, the agent debugged it. When the agent’s fix introduced a new bug, it debugged that too. When it came time to write the paper, the agent wrote it. Bob’s weekly updates to his supervisor were indistinguishable from Alice’s. The questions were similar. The progress was similar. The trajectory, from the outside, was identical.

Here’s where it gets interesting. If you are an administrator, a funding body, a hiring committee, or a metrics-obsessed department head, Alice and Bob had the same year. One paper each. One set of minor revisions each. One solid contribution to the literature each. By every quantitative measure that the modern academy uses to assess the worth of a scientist, they are interchangeable. We have built an entire evaluation system around counting things that can be counted, and it turns out that what actually matters is the one thing that can’t be.

The strange thing is that we already know this. We have always known this. Every physics textbook ever written comes with exercises at the end of each chapter, and every physics professor who has ever stood in front of a lecture hall has said the same thing: you cannot learn physics by watching someone else do it. You have to pick up the pencil. You have to attempt the problem. You have to get it wrong, sit with the wrongness, and figure out where your reasoning broke. Reading the solution manual and nodding along feels like understanding. It is not understanding. Every student who has tried to coast through a problem set by reading the solutions and then bombed the exam knows this in their bones. We have centuries of accumulated pedagogical wisdom telling us that the attempt, including the failed attempt, is where the learning lives. And yet, somehow, when it comes to AI agents, we’ve collectively decided that maybe this time it’s different. That maybe nodding at Claude’s output is a substitute for doing the calculation yourself. It isn’t. We knew that before LLMs existed. We seem to have forgotten it the moment they became convenient.

Centuries of pedagogy, defeated by a chat window.

This piece by Minas Karamanis is excellent throughout, and if you’ve got the time to read it then you should. He’s a physics postdoc, and this post comes from his experience in his own field, but I feel that the concerns he raises are more-widely valid, too.

In my field – of software engineering – I have similar concerns.

Let’s accept for a moment that an LLM significantly improves the useful output of a senior software engineer (which is very-definitely disputed, especially for the “10x” level of claims we often hear, but let’s just take it as-read for now). I’ve experimented with LLM-supported development for years, in various capacities, and it certainly sometimes feels like they do (although it sometimes also feels like they have the opposite effect!). But if it’s true, then yes: an experienced senior software engineer could conceivably increase their work performance by shepherding a flock of agents through a variety of development tasks, “supervising” them and checking their work, getting them back on-course when they make mistakes, approving or rejecting their output, and stepping in to manually fix things where the machines fail.

In this role, the engineer acts more like an engineering team lead, bringing their broad domain experience to maximise the output of those they manage. Except who they manage is… AI.

Again, let’s just accept all of the above for the sake of argument. If that’s all true… how do we make new senior developers?

Junior developers can use LLMs too. And those LLMs will make mistakes that the junior developer won’t catch, because the kinds of mistakes LLMs make are often hard to spot and require significant experience to identify. But if they’re encouraged to use LLMs rather than making mistakes by hand and learning from them – to keep up, for example, or to meet corporate policies – then these juniors will never gain the essential experience they’ll one day need. They’ll be disenfranchised of the opportunity to grow and learn.

It’s yet to be proven that more-sophisticated models will “solve” this problem, but my understanding is that issues like hallucination are fundamentally unsolvable: you might get fewer hallucinations in a better model, but that just means that those hallucinations that slip through will be better-concealed and even harder to identify in code review or happy-path testing.

Maybe – maybe – the trajectory of GPTs is infinite, and they’ll keep getting “smarter” to the point at which this doesn’t matter: programming genuinely will become a natural language exercise, and nobody will need to write or understand code at all. In this possible reality, the LLMs will eventually develop entire new programming languages to best support their work, and humans will simply express ideas and provide feedback on the outputs. But I’m very sceptical of that prediction: it’s my belief that the mechanisms by which LLMs work has a fundamental ceiling – a capped level of sophistication that can be approached but never exceeded. And sure, maybe some other, different approach to AI might not have this limitation, but if so then we haven’t invented it yet.

Which suggests that we will always need experienced engineers to shepherd our AIs. Which brings us back to the fundamental question: if everybody uses AI to code, how do we make new senior developers?

I have other concerns about AI too, of course, some of which I’ve written about. But this one’s top-of-mind today, thanks to Minas’ excellent article. Go read it to learn more about how physics research faces a similar threat… and, perhaps, consider how your own field might need to face this particular challenge.

The Lost Art of the Amusing WiFi Hotspot Name

Long ago, you could move to a new area, scan for local WiFi networks, and fully expect to see a wonderful diversity of different network names. Some named for their locations, sure, but others named for people, or fandoms, or just “fun” ones.

Has this art form died? Most residential SSIDs nowadays seem to just be the default one that comes with the basic router supplied by the ISP. Most commercial ones are just the name of the business. Sometimes you’ll spot a phone configured for tethering but even that’s usually just “Alice’s iPhone” or similar.

MacOS wireless network list featuring uninspiring names like DIRECT-9B-HP OfficeJet Pro 9020, Gigaclear_2E8C, Gigaclear_F35F, TeslaWallConnector_A4227A, and Underdown farm.

I can’t remember the last time I saw a “Chicken Crossed the Road to Steal Our Wifi” or a “Russian Hackers” or a “Routy McRouterface” or a “All Your Bandwidth Belong to Us” (okay, that last one’s a bit dated). Has the art form died?

×

Woof! Burglars!

The dog is concerned. Why, despite all her warnings, am I still letting these men take all of our (surviving) furniture?

A French Bulldog sits on a lawn outside a house where a removals company is loading furniture into a van.

×

F-Day plus 55

It’s fifty-five days since my house flooded. Since then, I’ve lived in hotels, with friends, on volunteering retreats and – mostly – in a series of one- or two-week AirBnB-style short-term lets. It’s been wild. It’s also been wildly disruptive. To our work. To our kids. To our general stability.

Today, we make a change. Today we’re moving into a medium-term let: sonewhere we can stay for the… say… six months or so it’ll take to actually repair our house so we can move back in. We’ll have our own space again in a way we haven’t in a couple of months.

I know the hard work isn’t done. Our house is still a wreck! But it feels like, perhaps, we’re beginning the second act of the three-act play “The Year Of The Flood”. And that feels like progress.

Right, I’d better go move house! (for like the seventh time this year…)

Indian Food

On our last day out at our current AirBnB, we searched for a takeaway.

Google Maps found me a Chinese takeaway, but it had an unexpected suggestion when I asked for an Indian:

Surprise Pig

It’s my final day in the cute garden office of the AirBnB we’re living in, this week, and every time I step through the door I catch a glimpse of our small, sandy-coloured dog squatting in the garden.

Except the dog isn’t even here. My brain keeps getting tricked…  by this statue of a pig:

Garden Office

I’ve lived in a LOT of different places these last few months while we’ve been arranging a place to live for the next six months or so of our house repairs. Each new AirBnB has had its pros and cons (and each hasn’t felt like “home”).

Two laptops on a glass desk in an attractive garden office/summer house, bathed in bright afternoon sunshine.

But man, I really like the “garden office” at our current one. So nice to work in the sun!

(I don’t like the slow WiFi as much, but yeah… pros and cons!)

×

Tesco Assistnace

I guess I’ll need some “assistnace” from Tesco to explain why my (long-neglected!) Clubcard didn’t work when buying some emergency sunscreen this morning. 😂

Photo of a self-checkout screen reading "Sorry, we don't recognise this Clubcard. Try again or call for assistnace." [sic]

×

Letting Games Die

Letting code (and games) die

Mike Cook wrote a provocative blog post this weekend; an anti-preservationist argument for video games. The essence of his arguments seem to boil down to:

  1. Emphasising creation over preservation is liberating, as demonstrated by the imagination in the livecoding community.
  2. Archiving without intensive curation is building an emotional or intellectual safety net you never expect to be used.
  3. Digital preservation is a lossy process: effort spent on accurately preserving some media is at the expense of other media, whose lossy preservation paints in inaccurate picture of what is lost.
  4. Recreation, rather than strict preservation, ensures the continuity of the most culturally-important parts of games
Exhibition space showing wall-mounted cabinet controls for three retro video games, from the header of Mike Cook's original article.
Art is important for culture, and it’s important for nostalgia, but it’s hard to draw the line between where one purpose ends and the other begins.

He concludes to say:

60 games are released on Steam every day.

There are 294 game jams active on Steam as I write this.

Preserve nothing. Make more.

To make is to preserve.

Let games die.

Digital preservationism

Philosophically-speaking, there’s no doubt that I am a digital preservationist. I argue against unnecessary URI changes. I donate to The Internet Archive. Back at the Bodleian, I used to carve out free time from project work to spend time making sure the University’s “older” exhibition websites could be made to survive1. My approach to running out of hard drive space is to buy more hard drives. Even my blog retains content going back into the last millennium2!

But I like this kind of conversation. For World Digital Preservation Day a few years back I re-implemented Pong as a modern application but using retro controllers. Within its micro-exhibition, I used this as an excuse to get people to discuss what does it mean to preserve a videogame?

Two participants play Pong on the Heritage Window in Blackwell Hall at the Bodleian Library.
My reimplementation of Pong had several distinct differences from the original… but to a layperson – for whom Pong are the target audience! – those differences are irrelevant. To what level fidelity matters depends on many factors, and the biggest problem is that we don’t know what those factors are until it’s time to retrieve these historical media.

Similarly, back in 2021 I reverse-engineered and re-implemented “lost” piece of advertainment Axe Feather, mostly because I felt that a slightly-modernised version belonged in the “commons”.

A woman lies on a bed with her legs crossed, playfully wagging her finger. The mouse cursor is shaped like a feather.
This screenshot isn’t from the original site but from my homage to it. More on that later.

This makes it seem like I’m very much on the side of recreation, rather than preservation, but that’s not the case. In both of these projects I started by disassembling the original works.

That I chose to make them accessible to a modern audience by reimplementation rather than by emulation was an artistic choice. I opted for lower fidelity by making something mildly-transformative. I chose to appeal to the widest possible audience, at the expense of presenting an experience that was totally in-keeping with the original.

But I couldn’t have done that without access to the originals. Had I recreated Pong from memory rather than from re-playing it, I’d have doubtless introduced inconsistencies that would have “felt wrong” to people whose memories of the game, while fundamentally accurate, differed from mine. Had I recreated Axe Feather without first coming up with a mechanism to extract and reformat the video clips in the original I’d have failed to tap into the specific nostalgia of some of its users, which was tied to the specific actor who performed in it3.

So I guess it’s important to me that somebody is preserving these things. So that I can use them to create new things. I stand for preservation for culture’s sake, so that I personally can enjoy the benefits for nostalgia’s sake.

Screenshot from Wolf showing Scenario Selection with one 'won' scenario: help Glidepath (an injured, thirsty male wolf) find water.
Just last month I enjoyed playing a game I’d “missed” back in 1994, thanks to the work of preservationists and emulators.

But I get what Mike’s saying

For all that I feel like I’m making the case for “preserve everything; work out what’s important later”, Mike’s argument gives me an uncomfortable cognitive dissonance. Because I’ve also come to discover a joy in the ephemeral, too.

Screenshot from M1 on ARCC, showing the high-score table with DAN50 holding the top score of 14963 (second place scored 12204).
I don’t know who’ll preserve ARCC, with its permanently-capped 500-playerbase limit, but I’m happy that I’ll probably always hold the highscore on driving/racing minigame M1.

Increasingly, I’m okay with just taking the experience of something with me. It bothers me that my memory is fallible and that I can’t necessarily recreate a digital experience whose technology has been lost to time, but I am, for the most part, okay with it.

Some of the best gaming experiences I’ve ever had are impossible to “capture” in an archive anyway. They were conversations over the tabletop roleplaying table, or moments of tension resulting from a videogame’s emergent gameplay, or random occurrences unlikely to be replicated. Those get preserved in my memory alone, retold as stories with gradually-decreasing accuracy as new memories take their place.

That said…

Who decides what games get preserved?

I feel like the decision about what to preserve and how should be in the hands of the audience of a piece of art, not its creators. If a videogame (or film, or book, or whatever) is culturally-significant enough to warrant a high-fidelity preservation, it ought to be ultimately up to the members of that culture to make that decision!

Transport Tycoon Deluxe met that bar, and it’s possible to play both faithful recreations or modern reimplementations (the latter having excellent new features) courtesy of the OpenTTD project4.

But modern videogames are, perhaps, getting harder to preserve. Always-online features, insidious DRM, digital distribution, live updates, and games-as-a-service streaming all shift the balance of power more-firmly into the hands of publishers5 rather than players. It’s already hard to play a randomly-selected thirty-year-old videogame today; I reckon it’ll be almost impossible to do the same thirty years hence.

Saying “let games die” feels a bit like giving up to that inevitability. Like saying to the slimier publishers “it’s okay, we didn’t care about keeping that anyway” when they shut down servers or remotely kill games. I know that’s not what Mike’s saying, but it could be wilfully misinterpreted that way.

Anyway: I don’t have a nice conclusion to any of this. Just a lot of mixed-up feelings.

Footnotes

1 A policy which, since my departure, does not seem to have continued.

2 Even where those writings don’t really represent me well any more.

3 It turns out that, for a significant number of folks who are mostly younger-than-me, this advertisement represented a kind of sexual awakening, based on some of the comments and emails I’ve received about it!

4 Which I’ve also donated too. Turns out I’m happy to invest in both pure preservation and in spiritual-successor reimplementation!

5 Supposing that Sonic Rumble Party somehow wasn’t a catastrophic pay-to-win nightmare and somehow was deemed culturally-significant… how would you go about archiving it? Without Sega/Sonic Team’s consent, you’d be totally out of luck.

× × × ×

Easter Eggy Breakfast

Today I had a Cadburys’ Cream Egg… for breakfast.

I am a monster.

Dan Q found GC1FNVT SideTracked – Kingham

This checkin to GC1FNVT SideTracked - Kingham reflects a geocaching.com log entry. See more of Dan's cache logs.

Found successfully on an Easter morning dog walk from Bledington. The geopup and I came out across the fields, trying to get outdoors early before the rain that’s forecast for later in the day (though personally I’m sceptical that today’s weather will be anything short of glorious). The walk was delightful, although we unfortunately arrived right before a train was due and so there were many muggles waiting nearby to collect their arriving loved ones.

Fortunately the nature of the GZ provides a perfect excuse to be sitting around, and so I soon began my search. An initial lying-on-the-floor visual survey didn’t help, nor did a fingertip search through what I figured were the obvious spots. This, coupled with the lack of any logs yet this year and the fact that the last log was a DNF, might have given me cause to worry. But a deeper dive through the past logs indicated that perhaps this cache is just… hard!… and so I continued on.

Dan sits in a glass bus shelter, hugging a French Bulldog.

The next trick in my caching toolbox was my phone. Switched to selfie mode and recording a video, I swept it slowly and methodically through all of the hiding spots I could think of. Watching the video back (while offering my patient pup scritches with my spare hand), I caught I glimpse of something: a flash of metal of an unexpected colour! Now I knew it was there! I renewed my search with fingertips focused on the spot I’d identified: an unusual area for this kind of cache, perhaps, but easy to find once you’re sure where to look!

Soon the cache was, at last, in hand. Careful patience, logical elimination, and a determination not to give up were the keys, here. TFTC!

×

F-Day plus 50

The final of the short term lets we’re staying in (before we switch to a medium-term one!) while our flooded house is repaired is also perhaps the prettiest. Our village this week is peak-Cotswolds, for sure!

Children play in a village green flanked by grey stone cottages and a pub.

×