Today’s random article was Presto card: a contactless transit prepayment
card used in Toronto and the surrounding area. It’s powered by MIFARE, the same underlying system as the Oyster card uses. I enjoyed learning about its rollout and history but it wasn’t quite interesting enough to be worth a full blog post or
podcast episode, especially as I was just writing about public transport as a result of yesterday’s dive. So you just get this note.
This post contains and links to (clearly-identified) AI-generated content. As remains the case, none of my writing on this blog was generated by AI.
Imagine my excitement to learn that Pagan Wander Lu just dropped a new EP, Built In Obsolescence. And then imagine my horror to discover that it’s actually produced by P-AI-gan
Wanderer Lu; an AI that’s been given PWL lyrics and some artistic direction.
Wot.
The album art’s clearly also AI-generated, and that’s… well… you know. At least this robot hand has got the correct number of fingers.
Nothingness is what silicon dreams
My younger child’s been getting into PWL in a big way lately. As a result of this, I ended up making time for a careful re-listen to a lot of the back catalogue. This in turn inspired
a blog post last year in which I mentioned that Checker Charlie‘s observations about humans
replacing their work with machine effort feels increasingly prophetic in the age of generative AI. That’s something I didn’t see in it when I first reviewed it 13 years prior.
I’ve played with AI-generated music a couple of times myself, of course,
mostly as an academic exercise. And it’s becoming more and more apparent that it’s hard to avoid bumping into it in the “real world”.
Early efforts at AI music were pretty unconvincing, always sounding a bit auto-tuney, frequently struggling to stress lines in the right places, and tripping over themselves when they
try to do anything even remotely more-interesting than a simple repeating melody atop a predictable chord sequence. But they’re getting… shall we say… “better”, and there have been
times nowadays when I’ve gotten some way through a track before realising that I’m listening to AI.
At least PWL’s being honest about it and declaring at the outset that this is AI-generated art. There’s plenty of folks using AI to generate content online and not
declaring it, which is pretty awful1.
Anyway: in this EP the AI’s moderately well-concealed and listening casually to most of the tracks I wouldn’t have noticed it if I hadn’t been told2.
Is there life enough in these chords?
So I listened to the EP. Three times.
The cover of Checker Charlie, I’m sad to admit, works. It’s got the feel of early-nineties pop, full of synths and saccharine, but instead of insipid lyrics about
love it benefits a lot from Andy’s lyrical prowess. It’s a bouncy bop that would be forgettable if it weren’t for the excellent story told by the words is, I suppose, what
I mean to say. And, of course, it’s the song that would have made me think about this. Anyway: I enjoyed it and would absolutely listen to it again, and I don’t know what
that says about me, about the song, or anything else.
Uncanny Valley doesn’t work as well. Musically, it feels like a new artist in 2012 drew inspiration from their dad’s new wave albums but wanted to make it sound more like Carly
Rae Jepsen was collabing with Daft Punk. And the result is kind-of…flat? Could I even say… soulless? It feels like it might have been the B-side of their cover
of Chemicals Like You, which rolls out next in the same vein. Twice was probably enough for these two.
Repetition 4 is among my favourite – let’s say top 15? – Pagan Wanderer Lu songs and the AI’s cover of it starts so strong. It finishes pretty strong too. The
voice it’s chosen shows only a hint of uncanny-valley-autotune and it wails plaintively. The most human-made bits – the lyrical themes of fighting for creativity against your own
struggles as a vulnerable and flawed human “machine” – remain solid. I really expected to love this one! But by the time we were half way through the song it felt… musically-repetitive.
You know when you get a pop cover of a classic song sometimes3 and you feel like the cover artist… missed the point somehow? That’s what this feels
like to me.
The repetitions of “we are all machines… for dancing” in the original felt meaningful and real; a human’s cathartic resignation to pleasure in the simple things we all enjoy, despite
the challenges of life… but the AI cover adds this kind of doo-woppy backing vocals that subtract, rather than adding to, the meaning. I’m not saying it ruins it –
it’s still a fun and bouncy version of a great song… but it’s one of those covers that leaves you longing for the original.
And then there’s the “unaligned version” of Uncanny Valley. I’m not sure if the introduced distortions in this version are AI-generated or not. They
don’t feel like the kinds of “creative” choices that any AI I’ve played with would make, so I suspect this represents a closer human intervention in the AI’s process:
humans imitating machines imitating humans, perhaps? Anyway: the change doesn’t add anything for me.
Had this been produced entirely by a human, I’d say that EP consists one one track I’d add to my everyday playlist (the cover of Checker Charlie), maybe one or two
tracks that I “wouldn’t necessarily skip” if they came up on a random shuffle while I wad driving… and the rest just feels too much like “bad cover” vibes.
And that’s as much of a review as I’m willing to give, for the reasons touched-upon below.
Building the engines of our own defeat
I continue to have several issues with the widespread use of generative AI, and in particular I have problems with it being used in the production of art. Those are partially
mitigated by it being used by an artist to remix their own work, and partially mitigated by the transparent declaration of the use of AI by the publisher both of which are
true in this case. But many issues (ethical, environmental, etc.) still remain.
Perhaps the biggest of which in this case is my concern that we’re using automation wrong.
As a child, I was optimistic about a future in which machines would take away the boring and repetitive work that humans do, leaving us free to pivot to experimental and experiential
roles: the joy of working hard in the quest of discovery and of creativity. But instead, the predominant popular use of generative AI is to replace exactly those
things, leaving humans only with an increasing amount of drudgery, review, and fact-checking. Where did we go wrong?
Don’t get me wrong: I love that Pagan Wanderer Lu has created this EP. Taking art that he’s created, whose concept touches on the concepts of AI… and feeding them into an
actual AI for reinterpretation is transformative. It’s worthy of discussion as a piece of art in its own right. And the result is… well, some of it’s good, and other
bits are okay.
What I don’t like is what it represents: the wider societal issue of the mainstream use of these technologies that have enormous unsolved problems.
So I guess… I appreciate the cognitive dissonance of enjoying a peice of music and disliking what it means?
Footnotes
1 Whether or not the side-effect of undisclosed AI-generated content “poisoning the well”
for future AI training is a good or bad thing remains an open question, in my mind, but it’s certainly a real phenomenon. You know how we salvage the wrecks of ships sunk before the atomic age because they’re untainted by man-made radioactivity, which makes them useful for special
purposes? It feels like the Internet before the explosion in generative AI may provide a similar cultural resource for future AI training, if you see what I mean.
2 And assuming I wasn’t already familiar with the artist, who doesn’t usually
sound like an auto-tuned female singer.
3 I don’t have a specific example so I hope this is a universal experience!
To celebrate the site’s 25th birthday this year, Wikipedia is encouraging/challenging
people to read one Wikipedia article a day for 25 consecutive days. I felt that I could do one better than that: not only reading an article but – where I found one that was
particularly interesting – to write a blog post or record a podcast episode for each of those days, sharing what I learned. For each entry, I’ll hit
“random article” a few times until something catches my interest, start reading, and then start writing! Everything I’ve written below came from Wikipedia… so you should check other
sources before you use it to do your homework. Happy birthday, Wikipedia!
The Argo Wilis, near Lebakjero Station. Photograph courtesy of Naufal Farras, used under a Creative Commons
license.
With such an unfamiliar-sounding article title as “Argo Wilis” I momentarily thought I was playing Two Of These People Are Lying, but it turns out that it’s just a train. Well, I
say just a train, but it’s a train that took me on a journey (ah-hah!) to a rabbithole of Wikipedia pages, and today I’m going to drag you along with me.
The Argo Wilis is a train that goes back and forth along the Southernmost train line connecting Surabaya Gubeng, in the East, to Bandung, in
the West, along Java, the vastly
most-populous island of the Indonesian archipelago: most of the length of the island. “Argo” means “mountain”: it’s part of a modern collection of “Argo network” trains that are
each named after mountains in the region. Mount Wilis itself is a dormant volcano whose magma chamber apparently has the
potential for future geothermal power generation possibilities.
Map courtesy Twotwofourtysix, used under a Creative Commons license.
Learning about the Argo Wilis got me to reading about rail travel in Indonesia in general. There are particular challenges to running a train network in a mountainous
island nation with a somewhat monsoonal climate, it seems!
Like: one of the stops on the Argo Wilis‘s line is Cipeundeuy, a relatively tiny mountain station
that every single passing train stops at in both directions. Why? Because every train is required to have its brakes tested here before proceeding down the mountain slops
on either side of it!
All services must stop here, and have since the 1910s (except for a brief period in the 1990s).
That rule’s existed since the railway was first built, under Dutch East Indies rule, over a century ago. It’s been
consistently enforced ever since… except for a spell in the early 1990s when the practice was stopped… until a head-on crash in 1995 nearby acted as a reminder of the importance of the checks, at which point they were
reinstated.
The construction of the Javanese railways up and over or through the many mountains of the island would have been an incredible feat of engineering even today, let alone in the late
19th and very-early 20th centuries.
Anyway, here are some other things I learned about Indonesia’s railways while I was exploring Wikipedia:
Trains drive on the right
Like many island nations (and in common with some non-island nations, particularly those that were part of the British Empire), Indonesian cars drive on the left. But unusually, their railways don’t follow the same pattern: on twin-tracks,
Indonesian trains typically travel on the right.
The Dutch colonists were already running their railways on the right and brought this tradition with them, but when the Netherlands switched to right-hand driving for their
cars in 1906 (except in Rotterdam, which imposed no fixed rules about which side of the road you should drive on until
1917!), they only dragged some of their colonies along for the ride.
Not sufficing to have just first and second class travel like we do here in the UK, Indonesian trains are broken down into at
least four classes: luxury, executive, business, and economy. Plus a further two
categories for tourist-centric trains, imperial and priority. Plus some sub-classes that seem to be line-specific.
“Premium economy”-class interior of the train Sawunggalih Utama. Photo courtesy Gaudi Renanda, used under a Creative Commons license.
It’s all mostly diesel locomotives…
Jakarta’s got an electrified metro system, but most of the Indonesian rail network’s powered by diesel. However, a handful of industrial narrow-gauge mountain railways might still see
the use of steam locomotives for farming or mining purposes, like this one seen hauling sugar cane in 2003:
Photo courtesy Joachim Lutz, used under a Creative Commons license.
Jakarta was supposed to be getting an electrified monorail, but the project stalled in 2008 and the already-built
infrastructure is in the process of being demolished.
The remote mountain village of Lebong Tandai is only reliably connected to the rest of the world via a mountain railway line. Much of the narrow-gauge track is connected
via a plateway, rather than by sleepers, and residents operate the tiny motorised locomotives independently of the rest of the railway network.
This “Molek-Motor” on the remote line to Lebong Tandai is constructed out of the remains of a goods vehicle that was written-off after an accident. Photo courtesy Harry Siswoyo, used
under a Creative Commons license.
Anyway, that’s what I enjoyed learning about on today’s Wikipedia dive. I wonder what I’ll learn tomorrow! (If it’s as-interesting, I’ll let you know!)
Well this is a fun (and frustrating!) game. You’ll be presented with 20 (alleged) CSS properties, but some of them… are convincing-looking fakes! You’ve got 10 seconds to identify
whether each is real or not. Every few you get right increases the difficulty level, but also the score potential. How high can you score?
Me? Oh, I kept getting up into the “forbidden” level and then my brain would melt and I’d crash out. Quite proud of my last run, though:
To celebrate the site’s 25th birthday this year, Wikipedia is encouraging/challenging
people to read one Wikipedia article a day for 25 consecutive days. I felt that I could do one better than that: not only reading an article but – where I found one that was
particularly interesting – to write a blog post or record a podcast episode for each of those days, sharing what I learned. For each entry, I’ll hit
“random article” a few times until something catches my interest, start reading, and then start writing! Everything I’ve written below came from Wikipedia… so you should check other
sources before you use it to do your homework. Happy birthday, Wikipedia!
Then back to Spain at the signing of the 1763 Treaty of Paris, where, when Britain was arguing which captured
territories it should be allowed to keep, everybody forgot about it and so it fell into the default bucket of “back to its previous controller”: it seems that Spain hadn’t even
noticed that Manilla had been captured!
Then, after the Mexican War of Independence… still under Spain, but now directly under the
Spanish crown and managed from Madrid.
The Flag of the United States of America is lowered while the Flag of the Philippines is raised during the Independence Day ceremonies on July 4, 1946.
As you might expect if you know anything about colonialism, there are absolutely horrible stories that could be told about any of those periods of history. So when I landed on the page
Governor-General of the Philippines, I decided that it might be cheerier to pick out a person from it.
And so I picked what I believe to be the person whose term as Governor-General of the Philippines was shortest: in post for just 16 days in August 1898: Wesley
Merritt.
Gen. Wesley Merritt, circa 1865.
Wesley was a cavalryman in the American Civil War during which, in 1863, he managed to leapfrog three ranks by getting promoted from Captain right up to Brigadier General. After the
Civil War he was posted to the Texan frontier where he commanded a cavalry regiment in the American Indian Wars. His success in… umm… “freeing up land” for American settlers (it turns out this post can’t escape from the ugliness of imperialism)… lead him to a new
role in using his troops to police the civilians rushing to “claim” land formerly occupied by native Americans.
But it’s right at the end of the 19th century that his story intersects with today’s random article.
“Uncle Sam’s Craving: Saving the island so it won’t get lost.” says this Spanish propaganda cartoon.
As the 19th century wore on, the world-spanning Spanish Empire came under serious threat. The Napoleonic Wars had cut Spain
off from its colonies, and one by one they lost control of Mexico, Peru, Colombia, Chile, Argentina,
and others (often with thanks to quiet support from Britain). But Spain had managed to
keep hold of Cuba and the Philippines, despite growing unrest and uprisings, which were often brutally suppressed.
At the time, the US was working to establish itself as a modern naval power, building new steel warships to compete with European powers and Brazil, and making plans for what would
eventually become the Panama Canal, and so this was a perfect opportunity to show off their armoured cruiser the USS
Maine.
Starboard bow view of USS Maine, shortly before her deployment to Cuba. Fun fact: the last surviving officer who was aboard on the day it sank, Wat Tyler Cluverius Jr., would go on to serve as an engineering officer on the new USS Maine, a pre-dreadnaught battleship that would still be in service at the time of the First World War
(although she was only used as a training ship because her coal efficiency was so terrible that it was no-longer sensible to have her cross an ocean).
The Maine got sent to Havana as a show of force and to protect American interests in Cuba, where, a couple of weeks later, she… blew up.
Probably what happened was that the bituminous coal stored in her bunkers was leaking methane out, which spontaneously ignited, starting a fire that ignited the ship’s powder store. But some, including Theodore Roosevelt (who was then assistant navy secretary and on his way to becoming vice-president) and much of the popular press, claimed that the ship must have been struck by a Spanish mine or
torpedo.
Neither the Spanish nor American official reports had been published before the newspapers were claiming that the Maine had been sunk deliberately. Fun fact: the inscription
on the monument to the victims that stands in Havana claims it was deliberate…
but by the Americans as a false-flag operation to justify a declaration of war against Spain! This interpretation was added by the communist government in 1961.
The next month, after Congress had had a chance to discuss the matter (do you remember when the US Congress used to have to be involved in the US declaring war on another country?), the
US declared war on Spain and began actively attacking her fleets and colonies in the Caribbean and the Pacific.
The US fleet steamed into Manilla Bay for what might be the most one-sided naval battle ever. The Spanish fleet at
Manilla would have been severely outmatched even were it not for the fact that the second-lead ship was unpowered, the shore batteries’ range was insufficient to be involved, and the
mines had been placed suboptimally. Only a single American sailor lost his life in the battle, and it was apparently as a result of a heart attack.
Battle of Manila Bay by James Gale Tyler (1898).
Okay, we’re at last up to Wesley Merritt‘s bit. Merritt was placed in command of the ground forces that were tasked with capturing Manilla. They sailed out of San Francisco, landed in
the Philippines, and prepared to attack the city.
Merritt and Admiral Dewey made a point not to coordinate with Emilio Aguinaldo y Famy, the leader of the Filipino resistance against the Spanish, who by this point had already taken control of
most of the Philippines and besieged Manilla, cutting off its water supply and beginning negotiations with the local Spanish leaders. It seems that Americans feared that if the
revolutionaries captured the city it would result in significant bloodshed as a result of violent looting and the murder of those who were seen to have collaborated with the Spanish,
and so they came up with an alternative plan: the American expeditionary force would attack and capture the city first!
Working through the Belgian consul to Manilla Édouard André, Merritt negotiated with the Spanish
Governor-General Fermín Jáudenes to arrange a “mock” battle. The ships in the bay would fire upon a fort that they knew was only used for storage and against defensive walls that they knew they were not capable of breaching,
and Spanish troops would be ordered to retreat as Merritt’s soldiers advanced. Then, Merritt would demand that the Spanish surrender the city, and they would comply, turning it over to
the American forces.
This would minimise casualties while allowing the Spanish Governor-General to avoid the shame of being seen to have lost the city to the revolutionaries (it being far more
politically-acceptable to lose to the might of the American invaders). Meanwhile, Aguinaldo’s troops initially saw the battle as genuine, which led to some casualties as Filipino
fighters advanced under fire; they joined the victims of other misunderstandings during the mock battle.
A drawing from Harper’s Pictorial History of the War with Spain. There’s a whole lot of pictures of flags getting rotated in this blog post!
Needless to say, the Filipinos deeply resented being told to stay out of the capital city that, given time, they might well have taken for themselves by force, had their efforts not
been leapfrogged by the USA. Ultimately this lead to a guerilla warfare campaign against the USA by Philippine
nationalists, which in turn contributed to growing concern in US political circles that America was becoming exactly the kind of imperialist power that it had opposed, at least on
paper, since its founding.
Anyway: on 13 August 1898 Wesley Merritt became the de facto Governor-General of the Philippines and the first American to hold that position. Two weeks later Major General Elwell Stephen Otis turned up and relieved him of the position, making Merritt the shortest ever Governor-General
of the Philippines.
Major General Wesley Merritt from Illustrated Roster of California Volunteer Soliders in the War with Spain (1898).
Merritt retired the next year and lived ten more years.
Anyway: that’s enough of today’s history lesson courtesy of a random Wikipedia page. I wonder what I’ll learn tomorrow! (If it’s as-interesting, I’ll let you know!)
They are small, almost imperceptible cues that tell the nervous system: you are safe. You are connected. You are still here. Where a trigger tightens the chest and narrows the
world, a glimmer softens the edges. It steadies the breath. It lets a thin ribbon of light slip in.
They are rarely grand in scale. Most often, they are sensory. Fleeting. Easy to miss.
…
This is beautiful.
I’m reminded of the way Ruth reframed imposter syndrome as wonder
syndrome a few years ago, which I wrote about at the time. A “glimmer” is not only a valuable and useful word
that I’d not come across before (I love it when that happens, like with entle), but it also reframes the world in a more-positive light.
I’m going to to start looking for and naming glimmers in my life as part of my general practice of gratitude. Cultivating a conscious awareness of our glimmers is probably harder than
finding an awareness of our triggers – and even that’s not always easy to narrow down specifically! – but it seems like such a worthwhile exercise.
The One and I is a delightful and long-running personal blog, by the way, if you’re looking for somebody new to follow. It feels
calming and personal and sweet and there’s a healthy corpus of pictures of pets.
Why, when I change the temperature on the thermostat of my Renault Zoe does it change the fan direction, too? Is this a UI affordance for people who want their faces colder but their
feet warmer? I don’t understand!
I potentially saved my client a bunch of money and embarrassment with that 3-line change.
Now, I consider that a productive day.
But had I been measured on my contribution by lines of code, or commits, or features finished, it would have been seen as a very unproductive day by my manager.
…
A great anecdote and some wise words from Jason Gorman on the nature of productivity and code.
This matches my feeling on AI. It’s good at making lots of code. Sometimes it even writes the right code. But something it rarely demonstrates skill at is
comprehending the bigger issue. I’m sure we’re already seeing developers who “game” their employers’ productivity metrics, to the detriment of the end users, by having AI
make “more” code without having to engage their brain and actually understand the problem.
(And, of course, there are employers who, whether intentionally or not, promote this kind of behaviour through their policies and success metrics.)
Sat in the shade with my panting pupper and almost immediately spotted this clever cache container. A great location and an imaginative container! Definitely worth an FP from me.
Pushing to the main branch of my GitHub/Codeberg/wherever repo would send a webook to my server.
Upon receiving the webhook, my server would pull the latest changes2.
Using a wildcard certificate, my webserver automatically mounts each project at a subdomain matching its project name3.
Here’s what I came up with:
Step 1: webhook handler
I’m using Caddy as my webserver, because despite its considerable power and versatility it’s a breeze
to set up. To sort wildcard DNS later I’ll want to swap in a custom build, but to get started I just ran apt install caddy. Then I used apt install webhook
to install Adnan Hajdarević’s webhook endpoint, and tied the two together in my Caddyfile:
My static server’s called duckling.danq.me, so you’ll see that turn up a lot in these configs.
Then I created a webhook in a GitHub repository:
I generated a long random string to use as the secret, and kept a copy for later.
When you create a webhook in GitHub it immediately sends a test event, but it doesn’t quite look like a real push event so I pushed an inconsequential change to the repo
to trigger another. Once you’ve got a “real” one sent, you can re-send it via the “Recent Deliveries” tab as many times as you like, to help with testing.
Then, on the server, I checked-out a copy of the code (anonymously: this is a public repository so I don’t need keys to read from it anyway) and set up my /etc/webhook.conf to expect
these calls:
The trigger-rule directives ensure that (a) the secret key is correct (it uses a HMAC hash across the entire JSON request, so it prevents payload tampering too) and
(b) the event only triggers on pushes to the main branch. The execute-command specifies the Bash script I want to run when the webhook is triggered. The
pass-arguments-to-command configuration says to send the repo name on to that script.
Now all I needed to do was write the /var/www/github-push/webhook.sh Bash script so that it pulled the latest copy of the code when triggered:
#!/bin/bashcd/var/www/github-push/$1&&gitpull
I was able to test this by pushing inconsequential changes to my codebase and watching them get replicated down to my webserver. Neat!
Step 2: low-maintenance webserver
After pointing the DNS for *.static.duckling.danq.me at my static server, I set about configuring Caddy to be able to use DNS-01 challenges to get itself wildcard SSL
certificates4.
Caddy can’t do DNS-01 challenges out of the box, so you either need to write your own renewal script or compile Caddy with plugins corresponding to your DNS provider. My domains’ DNS
are managed by a mixture of AWS Route 53, Gandi, and Namecheap, so my xcaddy build step looked like this:
For Gandi and Namecheap I just need a personal access token or API key, respectively, but Route 53’s configuration is slightly more-involved: I needed to create a new user via IAM and
give it permission to write DNS TXT records for the appropriate hosted zone. Fortunately the guide for the
caddy-dns/route53 repo had an almost copy-pastable example.
I added the AWS access key and secret key as environment variables (like this!) into my
/etc/systemd/system/multi-user.target.wants/caddy.service service definition, and then told my Caddyfile to make use of them when renewing the wildcard certificate:
The {http.request.host.labels.4} refers to the fourth part of the domain name, when separated at the dots and counted from the right, so 0 = me, 1 =
danq, 2 = duckling, 3 = static, and 4 = the part that we’re interested in. So long as I don’t store any other directories in the
/var/www/github-push/ directory then this will simply map each subdomain onto its git repository name and return a 404 for any other request.
DNS-01 challenges are necessarily slower than HTTP-01/ALPN challenges, because they’re limited by DNS propogation, so it took a while before the
certificate was issued. I ran Caddy in the foreground to watch the logs while it did so:
I don’t yet know if this is going to be the future forever-home of my many static site side projects, but it’s certainly been the most-satisfying experiment to run so-far.
Footnotes
1 I’ve drifted away from selfhosting simple static sites lately because I’ve accidentally
broken them with configuration changes too many times! But I figured I’d be open to in-housing them again if I had a single simple architecture for them all, so I spun up a VPS and
gave it a go
2 Running a build script or some other static site generation tool is out of scope for
now, but I want to be able to confirm that it would be possible in the future.
3 It also needs to be possible for me to map other domain names to it, but that’s
a triviality.
4 It’s absolutely
possible to use tls { on_demand } to do this, but it’s better to use a wildcard certificate which can be pre-generated and doesn’t let people trick your
server into making ludicrous numbers of certificate requests by hammering random subdomain names.
New friends – obscure sights – the group divides – clear and present danger – an accident of geography – interest in bridges
2026 has not been an easy one so far. Work challenges, family challenges and my frickin’ house flooding have combined to make everything a bit overwhelming
and hard to cope with.
So when we got a sunny Sunday, on a weekend in late April when (thanks to having found a long-term rental) we didn’t have to move between short-term lets, I cajoled Dan
into once again acting as my support driver so I could walk some more of the Thames Path.
Dan and the smaller child joined me for the first couple of miles from Abingdon, which was nice.
…
My partner Ruth’s mission to walk the entire length of the Thames Path1
continued recently, and I still love “going on on” her journey – even the parts I wasn’t present for – through her blog posts.
If you too might enjoy blog-spectating this slowest-possible-walk along the length of the River Thames, you can catch-up on the
backlog and subscribe for the next one, whenever that happens!
Footnotes
1 She’s doing the walk in many, tiny, and disparate instalments. By her own estimates
she’s achieving about 50 metres per day, when averaged over her entire effort. This makes her only marginally faster than the 40 metres per day of the faster parts of the Greenland
Ice Sheet, which I guess means that her progress is literally glacial in its speed.