Claude

I’ve been using Claude Code on a personal coding project these last few weeks, and I’m increasingly impressed. And also increasingly concered for my craft, and my livelihood.

The sheer relentless accomplishment of the thing astonishes me. And that it doesn’t even seem to mind writing unit tests. And that even a difficult problem domain — cryptography in this case — doesn’t seem to deter it or slow it down.

All this from layers on layers on matrix multiplication on the collected knowledge of these last ten thousand years.

But more and more, to me, it’s what I wrote in A Forester’s Tale. And yet the power is undeniable. Fausted again.

Margin

Last night, here on this island, the clouds were thin and stretched-out, and seemingly racing eastward like they were fleeing from the darkness. The sky went through shades of blue to black, and when darkness came it was starless.

The storm blew-in during the night and I realised only then that the.wind-blown clouds had been a warning. I sheltered behind a dry stone wall, under the rotted-out shell of some kind of skiff that I had dragged down from the dunes. The rain hammered the boat all night and the sand below me was wet. On the few occasions that I ventured out to look at the ocean, I saw no lights.

When the dawn came — at whatever time that was, as I had no way to know the time — the beach looked alien in the sepia light, scraped clean even of pebbles. I sat shivering in my damp clothes, hands between my legs, watching the breakers. There were a few scraps of wood here and there, but I had no way to make a fire. And my hat, I realised, was lost to the storm.

On the margin of sandy grass between the beach and the wall — what we might have called the machair, back when such names were useful — the small plants that yesterday had had white or pale orange leaves, were stripped to stalks. Nothing moved except what was disturbed by the fresh breeze.

Here on the western-most edge of this continent, and with nothing else that it seemed possible to do, I sat with my shoulders against the wall and waited for the cold sun to rise.

Rationing in Wartime

Sitting in a suburban cafe in the afternoon of this last drawn-out day of this long Easter weekend. On the table, a couple of second-hand books and a map from the Oxfam shop. Earl Grey in a fat, purple-brown pot. The map is older than I am — whereas I am exactly the same age, and many of the cafe’s customers are rather less so.

Early spring blue sky outside, and that freeing but vulnerable feeling of being out without a coat after another too-long winter. The sunlight floods in through the tall sash windows, casting faces half in shadow half in light.

No dangers here in this bustling place, except lurking inner thoughts. The daily struggle to comprehend that there really are overlapping wars going on, east of here, in their evening of this same day, in this newly bright year. Shredded bodies in ditches. Ruined schools and homes. Automated, patiently-lethal weapons. People being slaughtered in the new, casually cruel way that we have now; as well as in all of the old ways. Push down on those thoughts and reach for distraction —

open one of my new-old books at random, and Polly Atkin serves it up raw:

but it is 1793 and in the square the women are knitting

and it is 2011 and in the square the tanks are coming

and it is 1989 and in the square the tanks are coming

and the soldiers are coming the soldiers are always coming

and it is 2010 and you are thinking it can never

get worse than this, and it is 2015

and worse, and 2017 and worse,

this is it, you are sure this is it, it is worst 1

Try to coax my mind back to safety and what to cook for tea tonight — and I think paella. Use-up those lemons, and the peppers. And then I remember where saffron mostly comes from, and why there’s none to be had.

A man and a toddler walk hand-in-hand past my table, the child stepping with that wobbly-proud concentration that is actually effortless grace. And passing out of my view.

Just the late afternoon of another day stolen from responsibility. Work tomorrow. Shirts to iron. Half-welcome distractions.

  1. From An Aubade Upon St. Lucy’s Day, by Polly Atkin. Published in Much With Body, Seren Books, 2021. ↩︎

A Forester’s Tale

You had wanted to be a forester for a long time. On childhood walks in the forest with your parents, the stacked piles of cut logs fascinated you: clearly the result of human skill, but somehow also still a part of the forest. Each log different. Each pile unique.

As an adult you found work and, each morning, you headed out into the wide, enveloping forest with your axe. Years passed, and you cultivated your skills as a forester.

Then they came to you and told you that the world had changed, and that you had to use a chainsaw. They said that chainsaws were the future. So you learned to wield one: the difference between cutting and chopping; how to hold your body; necessary maintenance; the angle and stroke of the file to sharpen the chain. Years passed. The labour, like the forest, seemed endless, and you continued to develop your skills.

Then they came to you again and told you that the world had changed, and that you had to sit in a room in a building in an office park in the city and supervise a fleet of robotic tree-harvesting agents. The machines never stopped, they said, and were better at chopping-down trees than people were, and more productive. They said that this was the future.

So you learned how to use the remote controls, the telepresence headset, and the communication systems. Each day you devised a harvesting plan for your team, even though the machines were almost completely autonomous. And the air in that room was grey and stale.

And that was when you realised that, for you, it was never about chopping down trees, or the height of the log-pile. It was always about being in the forest.

An MP3 Metadata Minimiser

Herewith another small software tool that I built because I needed it, and because I couldn’t find anything that already addressed that need.

ID3Minimiser minimises and simplifies the ID3 metadata found in MP3 audio files. This is the information that describes attributes like the album name, track name, genre, track number, etc. Point ID3Minimiser at directories containing MP3 files and it will re-write the metadata to make it simpler. The use-case is older, non-software media players that don’t understand proper audio tagging practices.

My need for this was because my car, a Ford Fiesta, is equipped with a somewhat idiosyncratic navigation and media system called SYNC. And while SYNC is happy to play audio files on a USB flash drive that’s plugged into the car, it often doesn’t really understand what it is doing. Modern versions of SYNC might do better, but the v1.x system that my car has is still living 2018. Sometimes it might play the tracks in the right order, and sometimes it might not. Multiple genres confuse it, as do multiple artists. Give it files that define a disc number and total discs (the TPOS tag) and it will happily play track 1 from each disc in turn (often in some almost-random order), then all the track 2s, then all the track 3s, etc. Not what I want.

ID3Minimiser fixes this by batch-editing a copyof your audio files: collapsing the track ordering to use only the normal track numbering tag (TRCK), removing multiple genres, artists, etc., and renaming files so that that their sort-order corresponds to the intended track order. It also removes some unnecessary tags. It does what I need, and not a whole lot more.

Not many people will need this. Most people just stream music on their phone, or some other more capable device. But if, like me, you need it, then the repo and initial release are here.

TakeoutExtractor v1.2

I have just pushed v1.2 of my TakeoutExtractor app to github. This is a housekeeping release that updates the projects to .NET 9, the GUI to MAUI 9, and the tests to NUnit 3. There are no new features, and this is a source-only release. The repo is at https://github.com/andyjohnson0/TakeoutExtractor.

For background, the original announcement is here (albeit mixed-up with a digression on command-line parsing) and other posts can be found here.