Cloudflare’s vinext project, which implements the Next.js API using Vite as the bundler instead of Turbopack or Webpack, has released its first beta, suggesting (if there was any doubt) that this is a project intended for production use and not just an AI experiment.
Why does vinext exist? The introductory post grabs attention with its claim that using AI, Next.js was rebuilt in a week – though we note that some 20 weeks have passed since then, and here we are at beta 1.
The rationale for vinext given in that original post was that Next.js build output hooks it to Vercel’s platform – a problem that presumably matters to Cloudflare because it would like more Next.js projects to run on its own Workers platform instead.
The paragraph headed “Why” in the vinext readme has a different emphasis, claiming that “Vite has become the default build tool for modern web frameworks” and that vinext now provides a “full React Server Components framework on Vite.”
Neutral observers will note that whereas Next.js defaults to Vercel, vinext “natively supports Cloudflare Workers,” with support for additional platforms still in a planning phase. This is mitigated though by a Nitro plugin, Nitro being a server for Vite applications, that enabled deployment anywhere Nitro (or Node.js) can run. Cloudflare Workers is still recommended as the “best developer experience”.
Performance figures for vinext show that while builds tend to be faster and client bundle sizes smaller, Next.js is faster from a cold start. There is another nuance here: Next.js pre-renders static pages to HTML at build time but vinext does not; it caches them after the first request. There is an open issue to fix this.
The existence of vinext is a good thing for competition and will perhaps indirectly benefit the OpenNext project, in which Cloudflare is also involved, which takes another approach to making Next.js independent of Vercel, via a Next.js deployment adapters API which is now stable (since Next.js 16.2). Vercel has an incentive to make Next.js an open platform, to reduce interest in vinext.
That said, Cloudflare is a strong competitor because it owns its own infrastructure, whereas Vercel deploys to AWS.
Principal product manager Daniel Rosenwasser reports that TypeScript 7 is now generally available – a big release, since this is the first to have the native port of the TypeScript compiler built in Go. Rosenwasser claims “speedups between 8x and 12x on full builds.”
There is a snag. Although TypeScript 7 is production-ready, it has no API; that will not come until TypeScript 7.1. It may come as a surprise to you that TypeScript has an API; it is not something highlighted in the TypeScript docs. You will find it covered in the official Wiki where there is an article on using the compiler API dated October 2023 and advising that “this is not yet a stable API.”
Despite the compiler API being somewhat obscure, Rosenwasser says this means that “workflows that use Vue, MDX, Astro, Svelte, and others will likely not yet be able to leverage TypeScript 7. Similarly, specialized type-checking within templates like Angular will also likely not use TypeScript 7.” That is a significant blocker to adoption.
The dedicated TypeScript 7/0 extension for Visual Studio Cdde
Users of Visual Studio Code should install the dedicated TypeScript 7.0 extension which already has enthusiastic reviews. “Saves us lots of time in CI/CD. The difference in speed is huge!” said one.
Personally I now use TypeScript rather than JavaScript almost exclusively, when targeting browser scripting, and will endeavour to switch to 7.0 immediately. I would much rather have the compiler find errors, than have them turn up in production.
I am no longer writing regularly for The Register or DevClass – I have loved writing there but made the decision to stop in order to free up more time for other things. I may still write there occasionally, and/or do freelance work elsewhere.
One of the consequences is that I have a bit more time to post here on things that interest me – which includes running, music and audio as well as software development.
I have pretty much de-Googled the site in order to improve the reader experience; and because I can see hardly any benefit in showing Google ads or donating the site analytics to the company. At one time the ads generated a small but useful income which at least more than paid for the hosting; that is no longer the case, in part because of reduced activity, and in part because the model no longer works well, with the rise of AI overviews being the latest blow to the economics of online publishing.
Google has never been a content provider; it profits from other people’s content. The question of whether it benefits Google to keep readers on its own site via AI overviews, at the expense of the content providers on which those overviews depend, is an interesting one which deserves more attention than I have time to give it now.
This site is still on WordPress though that could change; I do intend to preserve the existing content even though most of it is obsolete and on some matters I have been too ignorant or have changed my mind; it is still part of my history.
There remain plenty of things I want to write about so I expect to be posting quite often but make no guarantees; if you enjoy any of the posts or find them useful, than that pleases me too.
What framework to choose for a cross-platform .NET GUI application continues to be awkward, with multiple good-ish options but no obvious first choice.
The three leading contenders are Microsoft’s MAUI (multi-platform app UI), third-party Avalonia UI, and third-party Uno Platform.
Joseph Tomkinson, head of software engineering at the British Heart Foundation, has an excellent post on the pros and cons of MAUI vs Avalonia UI, noting the fundamental difference that MAUI wraps native controls while Avalonia UI does all its own rendering. Tomkinson argues that MAUI has stronger mobile support (since this has only come recently to Avalonia) but that Avalonia has advantages in consistency, desktop performance, and Linux support.
A concern with Avalonia UI has been the drift towards important features becoming commercial-only, not unreasonable but a barrier to adoption for some developers. That has improved though since a sponsor appeared to fund Avalonia open-source development. CEO Mike James (formerly at Xamarin and then Microsoft) has posted about the difference this has made.
According to James, the Avalonia UI team has more than doubled, to 20 people, and now includes a QA lead. He says usage is growing:
“In the whole of 2025, Avalonia projects were built over 122 million times. In the first six months of 2026 alone, that figure has already passed 410 million.”
I am not sure exactly what this metric is counting – telemetry every time a developer builds a project? – but presuming it is like with like, that is impressive.
On the MAUI side though, one thing Tomkinson notes is that third-party components are more widely available, because it is an official Microsoft framework, and that quality is much better now than it was early on.
The BigCorp factor is not entirely in MAUI’s favour though. Microsoft might change direction and decide MAUI is no longer important, particularly as its own internal usage of the framework still seems minimal.
I am inclined to try building an example project in both frameworks to get my own feel for which would work best.
Multi-factor authentication (MFA) improves on username/password authentication by requiring the user to have a second proof of identity, traditionally “something you have” as well as “something you know.” In the Microsoft ecosystem MFA is typically implemented using an app called Microsoft Authenticator which generates one-time passwords (codes), used in addition to a password to sign in, or passwordless authentication where a request is sent to the authenticator app. The user enters a number displayed by the service they are signing into.
What happens though if you lose or replace your phone (iPhone or Android) that has the authenticator app on it? Microsoft has a post explaining how to restore account credentials from Microsoft Authenticator. The instructions differ for iOS and Android. They work for any codes you have set up in Authenticator for third-party accounts where you have configured MFA with the app.
One should pay attention though to the paragraph entitled: what account information is restored in Authenticator. In particular, for Microsoft personal accounts:
If the account also provides passwordless sign-in, then only the account name is backed up. When you restore, you will need to sign in again.
and for Work or school accounts, also known as Entra ID:
Only the account name is restored. When you restore, you will need to sign in again.
What does it mean, “you will need to sign in again?” How will you do this if you have lost access to the Authenticator which you backed up and restored?
The answer depends on whether any other authentication methods have been set up for the account. When the authenticator method fails, you can tap “Sign in another way” or “I can’t use my Microsoft Authenticator app right now”. If you have a phone number set up, it can send a code there instead (often by WhatsApp rather than SMS).
If you don’t have another authentication method set up, you cannot sign in. Contact your administrator.
You are the administrator? If you are the only global administrator for the Entra ID tenancy, you will have to call Microsoft’s Data Protection helpline and hope that you can prove your identity sufficiently that you can sign back in.
See here for an official response to this problem:
Therefore, if you are the only administrator in your organization, then you need to involve Microsoft data protection team. Please try to find the related hotline number to call the frontline let them raise a ticket for you: Customer service phone numbers – Microsoft Support
It seems odd to me that Microsoft provides the ability to backup and restore all the Authenticator accounts except the ones it provides itself. And that when users register for MFA they are not able to to get recovery codes for that account.
This is both an easy and a hard book for me to review, because it echoes some (not all) of my own journey of running; I am not sure how the book will come across for non-runners.
Sophie Raworth is a BBC broadcaster and something of a celebrity; I tend to be impatient with books by celebrities but I make an exception for this one because it is almost entirely a book about running rather than a book about being a well-known TV presenter. There are a few pages about questioning former UK prime minister Boris Johnson in February 2022 about “partygate,” a political scandal relating to government parties during COVID lockdown, but Raworth argues that marathon training and running was what prepared her for such high-stress tasks – though she got no answers.
Raworth began with running in 2006, aged 38, when she was invited to be a celebrity runnier in the Great North Run, a popular half marathon. She ran in 2 hours and 5 minutes, feels “utterly elated” to have finished the race, then stopped running until 2010, when she was inspired by an acquaintance of her own age to sign up for the London Marathon. “The training takes over my life,” she writes. Her BBC colleagues tease her about always talking about running; if she mentions it more than once a day, she has to buy all the tea.
In 2011 Raworth ran London, and this is how the book opens, with a collapse on the London Embankment at around mile 25, caused by heatstroke. It is related to inexperience but not to undertraining; she had a coach and trained hard. Rather than giving up on running, she doubles down, completing all six of the Abbott World Marathon Majors by 2017.
Chapters 4 -6 describe what is perhaps the centrepiece of the book, Raworth’s adventure running the Marathon des Sables, a gruelling 6-day run across 250K of Sahara desert, including a mention of a runner chasing a scorpion out of his tent. This does not appeal to me at all, but is an example of the amazing capabilities of the body after training, even starting relatively late in life.
Raworth was in her early forties when she took up running in earnest, I was in my sixties. I have never run an ultra, but nevertheless relate to what she describes, that endurance running leads to unthought-of achievements, new friendships, almost a new identity, even for someone who never thought of themselves as an athlete at all.
Running is a great leveller. “No one asked me about my job or treated me any differently because I was on TV. I was just another runner,” Raworth writes of a running group she joined. “We didn’t discuss careers and work. It took me years to find out what some people actually did when they took their trainers off. Yet I knew everything there was to know about their fastest times, their running niggles, and their race plans and dreams for the months ahead … I found a new easy kind of camaraderie that required no front.”
This is my experience too. It also happens that our running times are similar. Raworth’s best parkrun is 20:31. Mine is 20:37. We are both good for our age, but not race winners; and it does not matter.
The book is quite short (248pp) and an easy read, though emotional in places, particularly as she describes the physical decline of her parents and the death of her father. “How will I age,” Raworth asks herself.
I enjoyed the book, it is nicely written, warm, human and honest.
I have a few quibbles. Running is not bad for your knees, Raworth argues in chapter 8, based mainly on the research of a physio called Paul Hobrough. And in chapter 12 she describes a stress fracture caused, she says, by training too much in carbon-plated shoes which “weaken your intrinsic muscles,” according to a podiatrist she saw. These are important but complex questions and I am not sure there is scientific or medical consensus on either matter; I find Raworth too confident in giving these verdicts, though it is good to see the topics covered.
That said, I liked the real-world accounts of running injuries and the emotional lows that come with them; something most runners will relate to. I loved the race reports, the self-awareness of becoming a bit obsessive, the description of the agony and elation that characterises the sport. Recommended.
Running on Air by Sophie Raworth (Bloomsbury ISBN 978-1-399-42633-6)
On April 26th 2026 I ran the London Marathon. The following is my race report; if you are not interested in the injury story skip to Race Day!
Crossing Tower Bridge, around half way and one of the great moments in the race
The day before
Tomorrow I run the London Marathon. To be one of what is said to be 59,000 runners may not seem remarkable, but this has been my running dream since Autumn 2023, after I ran the Winchester half marathon and asked myself, what next? It felt like I had two choices, one being to settle for half marathon as my maximum distance, and the other to go for a marathon; there was no real choice, I had to try. And of all marathons, London, the most prestigious marathon in my home country, was the one I wanted to run.
After studying the entry options for London it seemed to me that securing a “good for age” place was my best chance. These places are easier to get as you age, and when I booked my first marathon (Abingdon in October 2024) I set this as my target. An October 2024 time is a qualifier for London 2026. When I uploaded the result to Strava I put simply, “got my goal time.”
So here I am, in a hotel room near Waterloo, reflecting on a training block that has not gone well. Most marathon training plans are between 18 and 12 weeks long. In early January, 16 weeks before London, I ran a cross-country 10K in spiked shoes, my first run in spikes, and I think that is what triggered an injury. It seemed minor at first. I could run, but with a bit of pain in my right foot, in my arch and heel pad. Oddly, it was worse after running. It didn’t seem too bad, but equally was not getting better. The day after running it seemed fine, but next time I ran, it returned.
In mid-January I decided to take two weeks off running, to fix what still seemed somewhere between a niggle and an injury. My idea was to get it sorted, then resume with a 12-week plan for London in place of the 18 weeks originally intended. End of January I ran 14 miles at an easy pace; but the foot issue was just the same.
I figured that if not running did not cure it, I might as well resume. I also decided to book a visit to a physio and was given an NHS appointment at my doctor’s surgery for Feb 26th. In the meantime I continued training but with increasing pain, though I did not want to admit it.
The physio diagnosed plantar fasciitis. I asked her if she was sure, as I have had this before (in the left foot) and it did not seem the same. I was not experiencing the early morning heel pain typical of plantar fasciitis, and the pain was in a different place. She said she was sure, and reassured me that it was not what I had dreaded, a stress fracture that would stop me from running completely. However, just when we were finishing, she asked if I would like to be referred to the physio team at the local hospital. Yes please, I said. That was arranged for March 10th.
My running nadir was a race called the Solent Half Marathon in early March. I ran it in 1:48, not a terrible time for my age category, but 10 minutes slower than in October 2024, when I was running it somewhat gently two weeks ahead of Abingdon. This time, I wasn’t sure if I could run all 13.1 miles. I told myself, the more miles I run, the less walking I will have to do. I finished.
After the Solent Half I could barely walk. I shuffled my way back to the car park, unfortunately about a mile away. Other runners passed me, some expressing sympathy or concern.
Two days later I went to the hospital. Normally I would walk but walking was still difficult enough that I hobbled to the bus stop instead. The physio examined my walking gait and my feet, comparing left with right. “I think it is the flexor hallucis longus tendon,” she said. She gave me some simple exercises, which take no more than 10 minutes to do. I am so grateful to that physio and for the correct diagnosis, which has made so much difference.
I did the exercises three times a day. Four days later I ran a parkrun 5K and the foot seemed improved. The following week I resumed training and on 21st March ran 20 miles; I had some discomfort afterwards but felt I was on the mend and that I would be able to run London, though not in the time I had originally hoped. London was just 5 weeks away, three of which were meant to be taper.
It was then a matter of how much training I could get in. My weekly mileage increased to 35 miles, then 50, then 61. It went fine and I was beginning to forget about the injury, but had lost crucial weeks of training. I hoped I had some residual fitness from November, when I ran New York. But when an email from the London marathon organizers asked us to review our projected times, I increased mine by 10 minutes, about 20 seconds per mile. I would aim for around 8:12 pace (5:06 km), though even that felt optimistic. I set myself a second target of finishing in 3:45, 20 minutes slower than my best time but still, I felt, respectable.
The day before the race I did Winchester parkrun at roughly marathon pace – well, slightly faster (8:00) because I lack discipline. Generous pasta lunch, plenty to drink including fruit smoothie, lightish supper with veggie pizza and alcohol-free lager. Garmin was annoying because it considered the day to be too energetic and that I was not recovering well. But what does Garmin know?
When I took up running in summer 2022 it was easy. Nobody expected anything of me, and I got steadily faster. Now though, I feel the pressure of expectation, that I will get a great time for my age, because I did in my previous 4 marathons. I explain that I am under-trained and uncertain how it will go, but runners are always full of excuses and then often out-perform. I hope to be under four hours. I hope to be under 3:45. But … I have no idea, I know only that I will do my best and also try to enjoy running the race I have planned for so long.
Race day
Light supper, early night, and I slept reasonably until about 5:30am. Went out to get coffee to bring back to the hotel (kettle in room but I am fussy!), then a couple of morning rolls laden with blackcurrant jam. I follow a very careful diet on race morning, the idea is to get through the race without interruption or discomfort!
Left the hotel around 7:15 for the railway station, Waterloo East to Blackheath. Travel all free for marathon runners, a nice touch. Train full of runners and the atmosphere was building. Journey seemed long and I was thinking, if it takes this long on a train how will we ever run back?
I was in Blue Wave on Blackheath, start area was not too crowded though it got busier as my start time (10:00am) approached. Suncream, Vaseline, dropped my bag. I carried nothing other than gels though I am thinking about adding a hand-held bottle in future, not sure.
I found the 3:35 pacer and had a chat, he said he would run even splits. I made sure to start behind him so that if I crossed the line ahead, I would be within the time. And off we go.
Congestion
A crowd of runners crosses Tower Bridge; it was like this almost all the way round
The congestion was unrelenting. This was the worst thing about the race. It would not have been so bad if we had been running at a similar pace, but this was not the case. I was honest about my predicted time and in a wave with the matching pacer, yet I seemed to be constantly overtaking people, who were either starting off particularly slowly, or had no chance of coming close to that time. Maybe the wave had a wide range of predicted times, I am not sure.
The course varies in width and there are bottlenecks. From time to time there would be a wheelchair which needed that bit of extra space.
From my point of view, it made it difficult to keep with the pacer, though there didn’t seem to be a big group around him. It was just that the congestion forced me to slow down, then I would make an effort with a bit of weaving to catch up, then it would happen again.
I did manage to run alongside the pacer about 12 miles in and asked if the congestion was like this all the way. He said that it does improve after half way as there are fewer people of the same pace who started ahead of you. It was true; by about 18 miles there was a bit less congestion though by then there was weaving around those suffering fatigue or injury issues and walking, so it never fully let up.
Crowd support
The crowd support was amazing. I do not know how the spectators do it, the cheers seems loud and continuous all the way round. In one of the tunnels it was almost deafening. I did not have my name on my bib but heard shouts for “Winchester” which was on my vest. If any spectators read this – thank you!
Three great moments in the London Marathon
There are three great moments in this race, I reckon. The first is when you round a corner and see the beautiful and dramatic Cutty Sark, which appropriately was among the fastest tea clippers of its time (1870s). The ship looks magnificent and lifts your spirits, though it is only about 10K in so you should be feeling fresh (I was).
The second is Tower Bridge, about half way in. The bridge is lovely, half way is a big moment, and you are crossing to the north side of the Thames. I felt good here, though of course after crossing the bridge you turn right, away from the finish, heading towards the Isle of Dogs.
The third is from Big Ben to the finish on the Mall. More later.
Losing pace
My marathon was a classic case of everything being fine until about 15 miles, then fatigue began to slow me down. Mile 16 was 8:14, slightly below target pace, and it got worse. My slowest mile was mile 25 in 9:02. I was not really surprised, considering all those critical weeks of training I had missed. I did sums in my head. Even if my pace slipped to 10 minutes per mile (an easy calculation! ) I could still beat 3:45. I tried not to get depressed at the 3:35 pacer drifted into the distance.
I was dutifully taking gels but not enjoying them, though did not suffer from the nausea I experienced in New York. At about mile 18 I consumed most of a SIS beta gel and decided, no more, though I carried on drinking water.
The last 6 miles
I told myself I would speed up for the last 10K but my legs would not do it. Still, I kept my pace under 9 minutes per mile and do not consider that I “hit the wall” though people use this term in different ways. This is where you pass people walking, and I also observed people slipping on discarded bottles. The crowding, insufficient bins, and thoughtlessness of runners, all contributed. I believe London may go cup-only and I understand the reasons though I much prefer bottles as you can sip from them and run a distance holding them. This is why I will consider a hand-held bottle in future. As it turned out, I ran a lot of the race holding a bottle, and even finished with one; I did not spot any bin at all past mile 25.
The finish
The finish is amazing, beginning really where you turn right from the Victoria Embankment. I know London quite well, having lived and worked there in the past, and it is emotional simply seeing famous streets dedicated to runners, just for one day. Past Big Ben, along Birdcage Walk, then a big sign, “only 385 yards to go.” Round a corner and there is the finish. I ran across the line grateful to have made it and without anything hurting other than sore feet and extreme fatigue. Got my medal, took a Go Pro strawberry yoghurt drink which went down well, retrieved bag, and wandered around a bit figuring out how to cross the run route to get to Victoria Street and the pub we had arranged.
It’s a very well organized race though I feel the congestion is too much; there were record numbers this year. The organizers are trying to put on a two-day event next year and one understands the reasons; I have mixed feelings as it seems to me that one of the days (probably the Saturday) which feel a bit like second-best, though opening it up to more runners is a good thing.
In the pub after the race, with Ryan from our club who finished nearly an hour ahead of me!
How much training did I lose?
Slowing down in the second half is not unusual, but I managed to keep pace pretty well in my first three marathons (of five). I tend to blame the training but of course cannot be sure. Weekly mileage is apparently the best predictor of marathon performance so here is what mine was in the 12 weeks before the race:
Weeks to go
Mileage
12
31.87
11
27.14
10
41.4
9
51.46
8
25.74
7
17.5
6
35.51
5
50.32
4
61.1
3
44.21
Taper begins
2
44.27
1
25.37
Excluding marathon
The figures do not tell the whole story. Some of these miles were run in pain which I feel does impact the training though I’m not sure how. During the lean weeks I did do other cardio exercise including indoor bike and elliptical, which likely helped, and continued with strength training generally.
Mile splits
Note: the following sums to about 3:40:00 but my time was 3:40:41, the reason for the difference is that I knocked into someone (or they knocked into me) which inadvertently paused my Garmin, I noticed and resumed after less than a minute. I don’t think this impacts the paces, just a little distance was lost.
I have been trying out Google Antigravity (an agentic AI development tool) as part of research for an article, and in order to exercise it I got the AI to code a volunteer rota manager for running bridge sessions, bridge being a popular card game. The LLM (large language model) was Gemini 3.1 Pro.
The tool created a Next.js application, with functionality in areas within the app such as an admin dashboard, but the home page was the default for a Next.js created with create-next-app. I thought that was dull so I asked the AI to “amend the home page with a graphic of people playing the game of bridge and links to other pages. If the user is not logged in it should just show a login link. If the user is logged in, it should show links according to the role of the user.”
The AI did a reasonable job with the links and added the following graphic:
People playing bridge: attempt 1
I like this picture which is cheerful and bright; but whatever these people are doing, they are not playing bridge. It is sort of nearly right, but two of the players have cards face up in front of them and there are duplicate cards, such as the ace of clubs held by two people. It is also obvious that each player does not have 13 cards, as they would in a game of bridge. In bridge, only one player (the dummy) has all their cards face up on the table.
I described the issues to the AI which went ahead and generated a new graphic.
People playing bridge: attempt 2
Note that whereas a human artist might simply tweak their original concept, the AI starts again from scratch. It did not improve on its first attempt. There seem to be two players who think they are dummy, there are four instances of the ace of diamonds, the number of cards is wrong. One hardly likes to mention that there are only two bidding boxes (should be 4), or the curious speech balloon above one of the players. Still, it is another cheery picture.
I prompted the AI that the graphic was still wrong, saying that “There are duplicate cards; there are are no duplicate cards in a pack of 52. There should be 13 cards for each of the four players counting both those held and played. Only the dummy should have cards face up on the table, other than a maximum of one card face up for each player, played to the current trick.”
The AI came back with a third attempt. Rather than removing duplicate cards, it reported that:
“The card designs should be slightly abstract and simplified so specific numbers/suits are indistinct, ensuring there are visually no duplicate cards.”
People playing bridge: attempt 3
The image is better in some ways, worse in others. It is less cheerful and the background is more plain. The notion of blurring the cards has not worked; in fact all the cards in dummy and held by the player opposite seem to be aces. The bit about 13 cards each has not been implemented. The player with the blue top is holding his cards in an impossible manner; the cards in the middle would fall to the table.
Prompted to fix these problems, the AI gave up on the idea of generating an image, reporting that:
“Bridge rules are very strict about the layout and number of cards, and it is notoriously difficult for AI image generators to conform to these exact rules (like having exactly 13 unique cards per hand and laying them out perfectly). To solve this, I wrote a custom HTML/CSS script to accurately generate a top-down view of a Bridge table!”
I thought that sounded complex but asked the AI to go ahead.
People playing bridge: attempt 4
Oh dear. This is possibly the worst effort yet. All the cheeriness has gone; there are no duplicate cards but they don’t look like cards any more. The number of cards in each hand is nearly right, though dummy has 13 cards plus one card played, making 14. On the bright side, the basic layout is pretty accurate. One more try …
“I totally agree, the HTML-generated cards lacked the ‘fun’ and realistic atmosphere.
I have generated a third and final try at the graphic. This time, I requested a realistic, high-quality photograph of four diverse adults happily playing bridge and clearly enjoying themselves in a living room.
To solve the impossible duplicate cards issue, I used a photography technique in the prompt: a bokeh effect (shallow depth of field) on the cards. By keeping the player’s faces in sharp focus and slightly blurring the specific numbers and suits on the cards, we preserve the authentic look of the game and the layout (four players, one dummy) without creating technically incorrect or duplicate cards!”
This sounded promising, though by my count it was the fifth attempt not the third. Here is what came back:
People playing bridge: attempt 5
The smiles are back but the AI has got the layout wrong again. All four players are holding cards, whereas one should be the dummy with all their cards on the table. And the dummy cards are never laid out like that.
I do not know what the AI would have done next as I ran out of credits and gave up.
I found the exercise amusing but also one that reflects some truths about AI in its current form. The graphics are amazing in some ways; four of the five look good. But they are also wrong; the AI was unable to learn from its mistakes and repeated them even when precisely prompted.
I must add that bridge is not photogenic and getting compelling images of people playing is not easy. Here is an actual photo, courtesy of the English Bridge Union:
Parkrun is amazing; around 380,000 runners and walkers take part every Saturday morning, participating in a free timed 5K which has huge benefits for health and community.
Paul Sinton-Hewitt founded the operation in London on 2nd October 2004, calling it Bushy Park Time Trial. This book is subtitled “The definitive account of a run that became a global movement,” but it really is not that. Aside from a few previews, parkrun does not start up until page 182, two -thirds of the way through.
We do get plenty of detail on the early days of parkrun, when Sinton-Hewitt bought washers and engraved them with numbers as the earliest form of what are now called finish tokens, but not that much on the years after parkrun became a big global event. The last section of the book, covering the growth of parkrun, is also the dullest.
Despite, or because, of the above, I found this book immediately gripping. Sinton-Hewitt describes his childhood in South Africa, in the days of apartheid, and the lack of affection in his family, particularly from his mother, a successful model. His mother ran off, his father had a breakdown, and for several years he was taken into care; he also describes being bullied at various institutions and it is painful to read.
Growing up he because a computer programmer and analyst, with a successful career in financial and telecommunications institutions. His knowledge of systems was put to good use when he designed parkrun; what struck me about his account of the first time trial was how similar it is to the way a parkrun is managed today.
How though did parkrun come about? In his early days Sinton-Hewitt enjoyed time trials in South Africa, and when he found himself injured and unable to run years later in the UK, he had the idea of setting up his own time trial and making it open to everyone, with the initial support coming from running clubs he knew.
There is more to it though; his troubled background and the fact that he suffered some level of breakdown of his own, for which he sought counselling, meant that he knew the value of running and community as therapy. He therefore set out to do something different than what running clubs do, welcoming anyone who showed up, with dogs if they wanted, and insisting that it should be free. He put some £50,000 of his own money into the operation until it was able to stand on its own feet with sponsorship and of course, armies of volunteers.
The book is more of an autobiography than the story of parkrun; yet it is far from a complete autobiography. In a couple of paragraphs we learn that Sinton-Hewitt met a young woman (not named), married, had two children, and separated; he does not further describe these years at all, skipping forward to his counselling following the separation.
We should conclude that Sinton-Hewitt tells his own story to the extent that he feels is necessary to explain why parkrun was formed with its particular purpose and ethos.
Although no longer running the parkrun organisation, which is now a charity, Sinton-Hewitt still has a big influence on it. There have been some challenges, particularly in 2024 when there were complaints about its policy of allowing transgender runners to participate as whatever gender they chose. Is this fair to female runners?
Sinton-Hewitt writes a couple of pages about this, and about why, in 2024, age and gender category records were removed from parkrun pages. He insists that this was not because of the transgender issue, but rather about a “focus on community, health and inclusivity.” We may never know, but it seems unlikely that the issue, and the removal of these statistics, are entirely unconnected.
It is nevertheless true that the matter of whether parkrun is a run or a race goes far beyond the transgender question. The event was set up as a time trial, and in general the purpose of a time trial is for runners trying to improve their speed. Many participants are motivated by trying to improve their times and their positions; parkrun has many of the characteristics of a race even though it claims not to be one. Sinton-Hewitt himself was a competitive athlete and shows his awareness of this ambiguity, though when pressed he states “my priority is inclusivity for all.”
While it has some race-like characteristics, parkrun is unfair in that times and positions are determined by when runners cross the finish line (known in running parlance as “gun time”), but runners cross the start line at different times, and there is often congestion so that runners cannot get up to full pace for some time, and may even be stationary while waiting for the field ahead to clear. Only the runners who start at the front of the pack get their best possible time.
This can solved with technology. Parkun could issue runners with reusable chips and use timing mats to record the start and finish time. There would be a cost, but also savings in the time and effort of recording times and processing results.
I had imagined that the reason for not using chip time was cost-based but we learn from the book that this is not so. “My view was that the use of a timing mat at parkrun would take away what I still consider to be the most precious part of the experience,” writes Sinton-Hewitt. “That moment after participants finish is a truly magical and sociable time for everyone, and frankly nothing can replace it.”
Technology will continue to advance. The chips are inexpensive; timing mats and associated equipment are more costly but will continue to get smaller and cheaper, particularly when the highest precision is not required. The use of chip timing may get harder to resist; yet one must respect Sinton-Hewitt’s commitment to preserve parkrun’s community feel.
Running has been an important part of life in the past year. I do not know if I will ever have another year like it.
I feel that the story of 2025 makes no sense unless I give the background. If you know all this, or are impatient, please skip ahead.
How I started running
I date the beginning of my running adventure as July 2022, when I ran my first parkrun in a time of 29:20, which I was told at the time was pretty good for age 64. I recall having no idea how to pace myself.
I continued with Parkrun and then, sometime around the beginning of 2023, formed the idea of running a half marathon. Understanding that I would need to train, I started running a daily 1.6km hilly circuit near my house, and a long run on Sunday mornings, gradually increasing the distance. I did my first 20km training run in May 2023. I was so exhausted that I slept for the rest of the day.
On these long runs I met some people from a local running club, chatted to them, and ended up joining. Now I had a once (sometimes twice) a week training session with an actual coach leading it.
September 2023 I ran my first half marathon race in the New Forest, achieving a time of 2:06. Two weeks later I ran the Winchester Half, which had pacers. I was expecting a worse time because of the hilly course, but was surprised to find myself passing the 2 hour pacers after around 8 miles. Sub 2-hours would be a dream, I thought, and dug in. I passed my son, who was spectating, and gasped, “How much am I ahead of the 2 hour pacers?” Another runner overheard and answered for him, that it was about 30 seconds. For the rest of the race, I ran as if they were just behind me and about to overtake, though not daring actually to look over my shoulder. I finished the race in 1:58:27.
I remember thinking, what next? I had run a sub-2 hour half marathon, perhaps that was enough. At the same time, I did not want to lose the fitness I had achieved. I booked the Edinburgh half in May 2024, while other club members talked me into taking on some of the Hampshire Road Race League races, which range from 5 miles to half marathon.
In March 2024 I suffered my first real running injury. Plantar Fasciitis. My planned summer of running was under threat. The low point was abandoning a parkrun in agony after just 1km. I learned that the faster you run, the more likely you are to get injured; and that strength training is a requirement for serious runners. After intensive exercising I found myself able to run again, and completed the Edinburgh half in 1:46:45.
If running a half marathon in a respectable time was not enough, it followed that I should take on a marathon, before I was too old to attempt it. The one I wanted to do was London, of course; but it is tough to qualify and odds-against in the lottery. Perhaps I could run another marathon first, and get a “good for age” entry? I booked the Abingdon Marathon for October 2024. I think my expression on finishing says everything. Time was 3:37:16, probably good enough for London 2026, especially since I was by then 65.
2025: getting faster, Manchester marathon, and a few surprises
Knowing that Abingdon Marathon, being my first, might not go as hoped, I had booked a second marathon, Manchester in April 2025. I set myself the target of 3:30:00, as I felt that I could do better than my Abingdon time. I started training just after Christmas, as well as fitting in more local races.
Most people improve for the first year or two after taking up running and so it proved for me. 2025 seemed to be the year when every race was a PB (personal best); well, not every race, but best-ever times came regularly, starting with a 43:01 in the Stubbington 10K. At the Ryde 10 mile in January I won my first-ever prize, for coming second in my age category. In April, just before Manchester, I ran my best parkrun in 20:38.
Another notable event was receiving an invitation to run the New York Marathon as part of the Age Group World Championships run by Abbott. This being another marathon that can be hard to get into, I thought I should take up the opportunity.
Manchester was a tough race. I ran it with discipline and tried to keep an even pace. The closing miles were the hardest I have ever run. It was unseasonably hot and all around me, some runners were slowing to a walk. My pace slipped only slightly but I ran through the finish line hardly able to think straight. 3:27:46.
Almost accidentally, I had been clicking around the England Athletics site some weeks before and discovered that Manchester marathon was a qualifier for the England Age Group Masters marathon in the Autumn. I had signed up, with no expectation of success. The top three finishers in my age group, among those who had also registered, would qualify. Someone faster than me would have been third, but suffered cramp and did not run well that day. I was in; but the England Age Group Masters race was back in Abingdon, just two weeks ahead of New York. Could I do both?
It was too good an opportunity to turn down. I took it on, on the basis that I could run New York for the experience and not worry too much about the time.
I also figured that the best way to prepare for two marathons in quick succession would be to increase my volume. I ran like crazy, maxing out at around 70 miles in a week.
Garmin now tells me that in 2025 I ran 2,391 miles which is an average of 46 miles per week.
In the England Masters race I beat my Manchester time, running 3:25:33 and getting a mention in the England Athletics race report. Despite the better time, it was not as hard a race as Manchester and I now wish I had fought harder for sub-3:25!
The best race though came one week later. I am not sure how this works; you are meant to rest after running a marathon, but the training also gets you to a peak of fitness. Psychologically, I knew that New York was to come and perhaps that kept me going. So I ran the New Forest 10 mile, thinking I would take it easy, but it was one of those races where everything came together. I finished in 1:11:54, a PB by two minutes.
New York was a fantastic experience, but from a performance point of view this is where it began to fall apart. I was not at my best the day before, having picked up some sort of mild cold, and spent the night wondering if I could race at all. On the day it seemed better, but I started too fast and lost pace in the second half. A 3:37:39 time was not terrible, though also my slowest marathon time so far.
A couple of months on, and I am paying the price for this energetic year. I cannot run as fast as I could three months ago, and have some niggling mild injuries to tend.
On the plus side, I have qualified for London and hope to enjoy it; perhaps my pace will come back, but even if 2025 proves to have been a peak, I will not mind.
I am not an elite athlete but still achieved more than I dared to hope when contemplating running a first half marathon just two years ago.