Thanks to visit codestin.com
Credit goes to www.dantleech.com

Lyon

, distance: 130km, time: 7h , tour verona26 , tagged: verona2026

Sitting in a bar in Lyon there is rock music playing and it’s busy. All the outside seating is taken. Both the staff I have spoken to switched to English. My hands a burning due to heat exposure today. I have a Choufre beer and am ordering a pizza which is appropriate as this is almost certainly my last cycling day.

I didn’t sleep great last night in the dormitory. It wasn’t uncomfortable, the 8 people I was sharing with weren’t noisy but every few hours I’d wake up impatientally to see if it was breakfast time yet… 3am (no), 4am (no), 6am (not quite). Maybe I was just hungry after the 195k the day before.

Read more...

Grenoble

, distance: 196.23km, time: 9h34m , tour verona26 , tagged: verona2026

Today has been both extremely long and extremely “hilly”. I’m sitting in the Auberge de Jeunesse in Grenoble. It’s the second time I’ve been here. The first time was in 2010 and that was the first ever time I’d stayed in a hostel. So here I am 16 years later. It hasn’t changed. I have a beer and a pizza which the kind English lady at the reception supplied for me “put your bike in the bike locker and don’t leave it unattended. Last time somebody did that it was stolen!”. I’m in a crowded 8 bed dormitory.

Read more...

Susa

, distance: 131.92km, time: 7h6m , tour verona26 , tagged: verona2026

My stomach is churning. I’m sitting in a lonely bar that is the only place to eat in the village. The bar is 100m above my accomodation and my accomodation is 200m above the town that, when I saw this was 2.7km from the center, I thought I could walk to for dinner and to resupply at a supermarket. I’m perhaps past the point of no return as I’ve already started climbing a mountain pass. Fortunately the accomodation provides breakfast and luckily I have at least got some cheese and an apple which should tide me over for a climb or two. I’m heading towards the Col de Mont Genèvre (there may be other options, but I feel I’m comitted at this point). It’s the “easiest” of the passes but most importantly it’s the one that’s open.

Read more...

Ivrea

, distance: 130.52km, time: 6h18m , tour verona26 , tagged: verona2026

The “B&B” I’m staying at is a cosy, small converted ground floor appartment. I share it with the cars that I can hear passing loudly at regular intervals and I had to walk 40 minutes to the supermarket to get some food to cook (no more cycling thanks) and forgot to buy a power adapter as this appartment has no sockets that accept an EU plug and I’m concious of my power usage. I have an almost dead phone, 79% on my charger (the phone will use at least 50% of that) and 62% on my laptop. I should survive although I was planning to watch a film this evening, that’s not happening now.

Read more...

Camping la Famigla

, distance: 137.78km, time: 7h5m , tour verona26 , tagged: verona2026

I’m now sitting in the bar of the camping with an artisanal IPA beer. The camping is, I think, run by nuns. And I’m probably sitting with four nuns who are playing cards and passively watching Italy’s version of “Who Wants to be a Millionaire?”. The campsite has an amazing view and is very peaceful and the weather is fine. I’m wearing my thermal “leggings” as I decided to attempt to wash my casual trousers which are less clean than they could be after 18 days of evening worn.

Read more...

The Nunnery

, distance: 96km, time: 4h44m , tour verona26 , tagged: verona2026

I’m now sitting in a religious property owned by the church that is rented out as a hotel. It’s a grand place with decorative stucco walls, ceilings painted with cherubs and jesus and stately staircases. The room is spartan however and somewhat like a polite prison cell with only an unreachable window in the corner of the room - I like it. I’m now sat in a large, richly decorated and empty common room with a couple of sofas and table in a large open space with a piano in the corner.

Read more...

Verona

, distance: 76.6km, time: 3h31m , tour verona26 , tagged: verona2026

I am arrived at the Hotel San Marco in Verona. It’s a beautiful day and I’m eating a toasted cheese sandwich and drinking a cold beer in the familiar surroudings of the hotel which is and has been the venue for the PHPDay conference. I’m here two days early and have plenty of time to rehearse and refine my talk

After finishing my blog post last night I sat down and started to read my book. I was reading my book because I purchased it a an hour earlier at a book shop. The foreign section of foreign bookshops often have a distilled selection of the classics - Moby Dick, The Great Gatsby, 1984, etc. I had read (or tried to read) most of the ones I recognised decades ago but there were two that I hadn’t - “Tender is the Night” by Scott Fitzgerald and “To the Lighthouse”. I’ve never read Virginia Wolfe.

Read more...

Rest Day

, tour verona26 , tagged: verona2026

Both my dorm partners snored heavily last night and both woke early and one of them started watching youtube videos on his mobile phone with the speaker on at 6:00am. It turns out he speaks French and was originally from Italy but works in Lyon and is going to Tunisia for a holiday in the next days. “Et toi? Travail? C’est la crise!” he said “Oui, je travail, comme normale. Cinq jour”. He talks to himself. One of them left and was replaced with a young Romanian who is here to find work and speaks no English. I didn’t sleep very well but made up for it with a nap later in the day.

Read more...

Rovereto

, distance: 105km, time: 5h13m , tour verona26 , tagged: verona2026

“Vegetarian pizza”, “So this is the Ortolano pizza, it has augergine, zucchini, mozeralla, artichoke and pepperoni” “Peppeoni is meat” “Without the peperonni then”. I’ve been wandering through historical Rovereto for about an hour and a half. It’s damp and incredibly quiet. It’s Sunday but it’s a stark contrast to Innsbruck. I’m hungry again and my beer just arrived. I’m theo only customer in this pizzeria - probably on account of it being 6PM. I’m staying at the hostel here. The 6 bed dorm is partially occupied by a local Italian who was sleeping when I arrived and was snoring when I left, I don’t think he is a fellow traveller. I have things to do tomorrow:

Read more...

Penser Joch and Italia

, distance: 125.32km, time: 8h12m , tour verona26 , tagged: verona2026

I left my universal power adapter in Konstanz because it electrocutes people and falls out of the wall socket. For some reason I thought the replacement was also “universal” but as it only had the EU two pin male connector it seems I was wrong. “Do you have a UK to Italy power adapter?” I asked the hotel receptionist. He looked at me, understood and said “No”. I said that an EU to Italy adapter would be just as good, but he said “No” but feeling this wasn’t an adequate answer asked around, then found the concierge and we decided that all I needed was an Italian USB charger, there was a flurry of activity between the two as they searched high and low before the concierge kindly let me borrow his own one. I assume he’s the concierge, I’ve never been in a hotel that has one before.

Read more...

The Zugspitze

, distance: 140km, time: 8h19m , tour verona26 , tagged: verona2026

My head isn’t aching nor is my neck, but they’re not not aching either. The table I’m sat on slants slightly down towards the pedestrianised road and there is a big menu pinned to the wall next to my head. “Can I have a grosses bier” nods “and ein Pizza Vegeterienne” puzzled “Veg-gee-tarian” puzzled “Vegetariana” smiles and walks away “Grazzi, I mean Thanks”. A marching jazz band just walked down the street and people are “whoooo” and shouting like a mobile carnival that has passed now further up the street. Innsbruck is extremely busy. I’m sitting in a pizzeria outside and my beer just arrived. I’m on my second beer of the evening after checking into the Montagu Bed and Beers hostel. I didn’t realise it was “and beers” until this afternoon and that made me worry it was going to be a piss-up venue. But the dormitory is probably the best designed dormitory I’ve seen and it’s rather empty. The barman let me have a beer for €2.20 because happy hour ended 5 minutes before I ordered.

Read more...

Rest Day

, tour verona26 , tagged: verona2026

I woke up this morning and went to the inclusive breakfast. I then sat down and pondered. Shall I stay? Shall I go? I checked the weather and it said “rain” but none of the hourly reports said “rain” and as it turned out it did not rain but nonetheless this factored into my decision to stay - as did having “too much” time to get to Verona and the possibility that rest might actually be good after 11 days of cycling. The hostel is also great and the extraordinarily cheap, ensuite, private room is wonderful.

Read more...

Vorarlberg

, distance: 119.1km, time: 6h25m , tour verona26 , tagged: verona2026

Sitting in the Oberstdorf hostel - a large, modern, ski hostel which is out of season but it’s noisy as there are a very large number of kids here with a small number of teachers and I think I’m the only “adult” that’s staying here. I seem to have a three bed room all to myself. It’s raining outside and I’m in the Alps. The hostel is situated in a little village about 4km from the town of Obserstdorf itself which means I’m relying on the hostel for food and drink. The room is quite cheap at £25 and breakfast is included and it will probably effectively be a private room. But the kids are very loud. The weather looks as bad tomorrow but it might improve on Friday which would make this a good place to take a rest day. Although that somewhat depends on if I can spend the entire day indoors without going crazy from all the noise.

Read more...

Bodensee

, distance: 109.15km, time: 6h21m , tour verona26 , tagged: verona2026

I’m hungry and sitting in a pizzeria in Konstanz, which is in Germany and not in Switzerland although it is rather close. The hotel is expensive for the tiny room that I have and the fact that my bike is in the “innerhof” (backyard) with nothing but my flimsy lock and an unlocked door to protect it from anybody that felt like taking it. The hotelier sounded snooty when I looked up and saw a stinky sweaty cyclist standing on the second floor reception “Gutentag. Kann ich ihnen helfen?” it’s standard “respectful” German but carrying the sense of “what the fuck are you doing in my hotel?”. This pizzeria is good.

Read more...

Der Schwarzwald

, distance: 103.5km, time: 6h6m , tour verona26 , tagged: verona2026

I am now sitting in a very minimal but cosy wooden cabin that I’ve paid for at Naturcamp Schluchsee. It cost €35 for the night and has electricity and insulation benches and smells of wood and that’s it. I’ve just made a coffee and eaten the inadequately sized sandwich that I purcahsed at Lidl in Nancy two days ago. There’s a supermarket 5k away but I’m going to make do with the limited supplies that I have and the beer that the campsite host gifted to me “they left it in the fridge, you can have it”. It’s raining now and I’m at an alitutde of around 1000m in the Black Foreset (Schwarzwald).

Read more...

Massif des Vosges

, distance: 128.37km, time: 6h35m , tour verona26 , tagged: verona2026

Sitting in a Buffalo Grill. Ordered a vegetarian Ranch Burger and a large Grimburgen beer. I decided to book a Budget Ibis Hotel at around €50 but the hotel is about 1k from the center of town and I probably should have done a camping day - although it’s threatening to rain so perhaps I made the right decision. Today was 20% off road with that 20% being employed in traversing the Vosges Massif, or part of the Vosges Massif. But in anycase I’m out of the mountains now.

Read more...

La Moselle

, distance: 126.92km, time: 6h25m , tour verona26 , tagged: verona2026

Now sitting on an exposed table of a pizzeria on a street in Nancy. Kids are rolling in the street and there is a spattering of other customers but it’s not busy. I’m waiting to order. I think I’m hungry, I’m certainly thirsty as I just about ran out of the water that I was rationing today not having found a convenient place to top the bottles up and the day was longer than I thought it would be. I would have trouble speaking to the waitress.

Read more...

Troisvierges to Remerschen (Schengen)

, distance: 110.25km, time: 5h58m , tour verona26 , tagged: verona2026

Sun blasted, lips cracking, tired, but otherwise feel good sitting at a makeshift desk in a large, modern, youth hostel with a chair propping up the charger which is connected to an EU power adapter which is prone to fall out of the socket (and, on occasion, electrocute people1) that’s propped up by a chair and the USB cable is too short so that’s going via. my portable charger. I need another USB-C cable. I bought two with me and I’ve discovered that the prettier one (it’s textured and posh) has stopped working which limits my charging options.

Read more...

Aachen to Troisvierges

, distance: 117.9km, time: 7h01m , tour verona26 , tagged: verona2026

Today has been a a great ride with plenty of challenging off road sections. I’ve just been served a large pizza vegetarian 5 minutes after ordering it and I’m camping in the town of Troisvierges in Luxembourg. Now sitting in a Brasserie where people don’t seem to understand English but French seems very popular but the signs are in German. I have not done any research.. A group of French youths just left leaving me on my own in the garden terrace, which I’m quite happy about.

Read more...

To Aachen

, distance: 135.46km, time: 7h40m , tour verona26 , tagged: verona2026

Achen is a vibrant city. I didn’t expect that. Unfortunately I’m now in a hotel 1.5k from the vibrant center and the pizzas located therein. The nearest pizza is a 20 minute walk over a hill. I’d leave now but the laptop is dead and needs charging.

I had a restless night in the tent and it became cold in the early hours necessitating me climbing into my trousers, socks and putting my top on. I woke at 3am, 6am, 7am (shall I get out of bed now) and at 8:30am I really needed to use the facilities.

Read more...

Ghent to wherever I am now

, distance: 99.96km, time: 5h18m , tour verona26 , tagged: verona2026

Now sitting in my tent on a pleasantly vacant campsite typing this blog post with 57% battery knowing that I won’t be able to charge it today. I’ve been to the supermarket and have a Duvel beer (€1.60 vs. what would be around €3 in the UK) and some baked beans and some cheese and a half a baguette. It would have been an entire baguette bit I strapped it onyo my bag and half it seems to be missing. I’ll be heating the beans this evening and dining like a king on the road. I need to eat.

Read more...

Calais to Ghent

, distance: 172km, time: 8h3m , tour verona26 , tagged: verona2026

I’m at Bram’s house sitting on a bed feeling the familiar exhaustion of a long day in the saddle. At some point within the next hour we’ll go in to Ghent city and find pizza and I’m going to find some Belgium Beer.

Today started off in the Campernile hotel after a undisturbed by adolescents but it wasn;t a good sleep. I paid €11 for breakfast and made the most of the buffet. The weather looked good and I packed up my few things and left.

Read more...

Verona: Day One

, distance: 4km, time: 30m , tour verona26 , tagged: verona2026

Went to bed late and slept badly in my own bed waking up without any particular excitement and not really wanting to get out of bed. It was 7:30am and I knew that if I were to leave today I would need to get the train in the next hours and I still had to pack everything.

Yesterday I did make a list of everything and where it should be located on the bike and so after a too-leisurely breakfast, reading about the the saddening story of another failed assination attempt on a certain world leader, I realised I had one hour before the train was to leave and so there followed a period of intense activity while I searched for and packed everything on my list onto my bike before cleaning the kitchen, taking my waste out and turning off the water.

Read more...

Verona: Day Zero

, tour verona26 , tagged: verona2026

This year I’ve decided to cycle to the 23rd PHPDay Conference in Verona. I attended the conference for the past two years as an attendee and this year I’m a speaker. It’s a fun event in a beautiful city and I will drink beer and eat pizza.

The decision to cycle was, in-part, made due the great success of my “Gravel” ride to Mannheim for the Unkonf conference in October last year. I then cycled 1,700k in 16 interesting days (including rest days) without too much pain in my bum. This journey promises a similar distance to Verona and then possible more miles to get back to the UK depending on how terrible I feel.

Read more...

PHP, Collections and You 🫵

, tagged: programming php
Collections, like Value and Domain objects, allow you to push logic relating to a concept to the object representing that concept - in this case a collection of items - the items themselves could be value objects, entities, domain objects, or whatever you like. They contribute to a rich domain model and will make your code far easier to understand and maintain.

Space - the Final Straw

, tagged: programming php
How you organise a project has great implications on the long term maintainability of that project. This article suggests steps you can take to ensure that your project avoids becoming a big-ball-of-mud.

The Year of 2025

, tagged: yearly

It feels like this year has passed rapidly and without incident. Writing these end-of-year posts helps me remember what has happened. The vast majority of my days were filled with client work, my weekends often with other programming related projects, and my evenings often spent running or cycling before sitting in the slob position and drinking beer, eating pizza and watching Netflix.

Read more...

Day 16: Weymouth

, distance: 135km, time: 6h24m , tour mannheim2025 , tagged: mannheim2025

This morning I woke early and said hello to my cousin with whom I was staying. I had decided both to do the 5k Parkrun in Lee-on-Solent and to cycle back to Weymouth. The apparent 80 mile distance would be a relatively “small” day compared with previous rides and the weather looked good enough.

I ran the Parkrun in my barefoot shoes, significantly slower than if I had my usual trainers, but I managed to speed up progressively as I became more confident with the running style - normally I strike the ground with my heel, but with barefoot shoes you tend to get better results by landing flat on your foot and pushing your self forwards. At the end my calf muscles were very tender and I was unable run all the way back to the house.

Read more...

Day 15: Caen and Plymouth

, distance: 17km, time: 1h30m , tour mannheim2025 , tagged: mannheim2025

Broken sleep in the dormitory due to snoring and ingress and egress of the room no matter how considerately done. It’s dark in the morning now, the sun doesn’t come out until almost 8am. I wasn’t cycling today, that much was clear and I felt a bit lost. Breakfast was included in the hostel price.

The room had a sink. There were toilets in the hall. The toilets did not have sinks. This is bizzare. As if I were to perform my duties or brush my teeth I would have to use the sink in the dormitory. I had to use another facility on another floor after using the toilet rather than walk into the dorm and disturb everyone.

Read more...

Day 14: Rouen

, distance: 107km, time: 5h32m , tour mannheim2025 , tagged: mannheim2025

I’m in Rouen. I’ve been walking about trying to find a pizzeria for about an hour. My first attempt was an abject failure. I was directed to a table adjoined to the table of the only other customer in the shop. It was a small pizzeria and I felt self-concious and I had no personal space and I’d be intimately concient of my dining partners movements and noises and I hardly wanted to whip out my laptop out and start writing. When the proprietress came to take my order I bottled it and said I had to leave “desole, je dois partir”

Read more...

Day 13: Beauvais

, distance: 176km, time: 8h35m , tour mannheim2025 , tagged: mannheim2025

I was greeted enthusiastically by the AirBnB host, the automatic gate at the back and I wheeled my bike inside and parked it on the terrace. The shower was occupied I waited, I showered. Upon getting changed I suddenly felt ill. I lay down and woke up an hour later having dreamt strange dreams and being monetarily confused. I had stomach issues and I didn’t feel hungry but I decided it would be better to eat.

Read more...

Day 12: Reims

, distance: 154km, time: 7h36m , tour mannheim2025 , tagged: mannheim2025

I’m not in Reims. Reims is pronounced “rance” with a french “urghhh”, so “rurghance”. There is no “m”. It’s not “reems” or “rhymes”, it’s “rance”. I’m not in Reims because I booked an F1 hotel which is 5k from the center and in the commercial commune “Tinqueux”. It was my intention to stay in Reims. “To see the cathedral and eat a pizza” I thought. As it is I’m in Tinquex. At least I’m in a Pizzeria.

Read more...

Day 11: Verdun

, distance: 181km, time: 8h42m , tour mannheim2025 , tagged: mannheim2025

Now sitting outside at a Pizzeria in Verdun, it’s quiet and I hhave a strong IPA beer, the pizzeria doesn’t serve beer but I was adivsed to grab one from the bar next door, it’s slightly cold. I’m staying with at a bed-and-breakfast for about €40 which is pretty reasonable. Today was a long day and my back hurts slightly, the laptop has 13% charge due, I think, to it being on in my bag. But the laptop at least survived the trauma that was inflicted on it a few hours ago and it was perhaps that that “woke it up”.

Read more...

Day 10: Saarbrüken

, distance: 137km, time: 6h17m , tour mannheim2025 , tagged: mannheim2025

Now in a hotel after having walked around in my barefoot shoes for a few hours in Saarbrüken (where luck can be found according to the advertisements on the way in). The hotels are quite cheap here and the town is nice. My ankle was giving me some grief probably due to barefoot shoes and the running a few days ago. But it’ll be fine.

I left Mannheim this morning after having attended the conference yesterday. The conference was a lot fun, it was in an “unkonf” format where there was no previous schedule and speakers were selected on the day and anybody could put themselves forward as a speaker. I put forward two topics, thinking that each would be a 15 minute presentation, a “lightening” talk - but I got a 45 minute slot and I paniced when I realised that my topic absolutely was not something to talk about for 45 minutes without any preparation. I came up with a strategy to expand it, but in the case I crashed through for 35 minutes in front of an intimate audience and there were lots of discussions and it wasn’t the disaster that I feared it would be, but I think next time I’d prepare something. I met new people and saw some familiar faces.

Read more...

Day 8: Mannheim

, tour mannheim2025 , tagged: mannheim2025

Disclaimer: There was no significant cycling today

Ear plugs in I woke multiple times in the A&O hostel deciding to stay in bed just a little longer and getting up at around 8am. I was interestred in Breakfast and ventured to the below-ground breakfast area and checked the price – 12€ per person – no! I thought, that is far too expensive, I’ll go and find a bakery. I walked out of the hotel, to the bakery, and got a coffee for €4.00 and a chocolate croissant for €3.50 - so cheaper yes, and all that I needed, also yes. So win? I wasn’t sure.

Read more...

Day 7: Dusseldorf

, distance: 145km, time: 7h01m , tour mannheim2025 , tagged: mannheim2025

It’s now twenty minutes past ten and I have had a few drinks. In the bar you stand at a table and a waiter will appear within minutes and aggresively slam down a 25ml glass of beer for each person and will do this whenever there is a glass empty unless you explicitly opt-out by placing a beer mat on your glass.

I had a strange dream last night which culminated in missiles being launched from Nothe Fort (a victorian fort and tourist attraction in my town) before it was subsequently struck by a missile that resulted in the destruction of the fort, a big fireball and a shockwave which caused me to wake up. Vivid dreams often occur in different surroundings, but this dream stayed with me throughout the day (there were aligators in it too, which were destroyed with harpoons…).

Read more...

Day 6: Rest

, tour mannheim2025 , tagged: mannheim2025

I didn’t intend to have a rest day today. It would’ve been nice to have had a rest day tomorrow in Cologne or Dusseldorf. It’s true that I was tired and the rest is welcome but I’d would’ve liked to have powered through to my destination before attending the conference and then figuring out what to do next, as I would be in the middle of Europe and at least a weeks ride from Ouistreham and home, I’m also due to take part in the Great South Run in a week Sunday - a race that I’m not really prepared for and my knee will decide if I can run it at all.

Read more...

Day 5: Liege

, distance: 180km, time: 8h00m , tour mannheim2025 , tagged: mannheim2025

I had a vegetarian Pita, it was served in a bowl and had pineapple cheese, and various other things, and it was surprisingly good. I didn’t write this post there. Now I’m back in the Yust hostel. Which is possibly the best hostel I’ve stayed in. It’s posh and there’s good ambient music playing in the reception area where I’m sitting now in a comfortable chair, books and plants line the bookshelves, and plants are everywhere (they’re plastic). I have bed two in an eight bed dormitory, and the beds look very well insulated from each other and each bed has a secure locker that can be opened with a card. My bike, more worryingly, is stored in the “bike storage”. Which is a huge, open, bike storage facility behind a locked gate - but I don’t consider as secure as other options (e.g. storing it in the luggage room). The hostel is actually about 5k from the center of Liege. The dorm bed cost about the same as my four-star camp pitch in France.

Read more...

Day 4: Mons

, distance: 126km, time: 6h00m , tour mannheim2025 , tagged: mannheim2025

I’m now sitting in a rather empty Pizzeria in the center of Mons, Belgium. I’m feeling accutely self-concious as, even though I have frequently written these posts in pizzerias, it feels odd today. It’s been an interesting day.

I didn’t have all of my things stolen by gangsters last night which was nice, because it wasn’t entirely out of the question. When I turned up at the site and was scouting for my pitch there were a couple of French guys dressed in tracksuits in a little chalet with a little dog that didn’t have a passive disposition. As I walked around the campsite there were a few “shady” types, perhaps it was my prejudice but I got cold stares when greeting them with the customary “bonsoir”. Therefore when I returned from writing my blog post I returned to my tent in the trail of two youths that went ahead of me to the French guys. For the next hour there was arguing and profanity and shouting, One of the youths managed the feat of making the French “urgh” sound like a guttural roar in the back of his throat. I couldn’t tell what it was about, but assumed drugs. It reminded me of an episode of the Trailer Park Boys.

Read more...

Day 3: Péronne

, distance: 165km, time: 7h33m , tour mannheim2025 , tagged: mannheim2025

Currently sitting in under a shelter at a campsite with somebody speaking rapidly on the phone in an African language which isn’t helping me concentrate, and my headphones are in the tent. My fingers are cold but I’ve already put all my thermals on (not that it’s cold, it’s about 12 degrees but still). I tried to book ahead at one of the two campsites earlier in the day but had no success, but I rolled up to this one and they charged me €12 and it does at least have place where I can sit down and work although no power and I only have limited laptop power. I should hurry.

Read more...

Day 2: Saint-Arnoult to Gorunay-en-Bray

, distance: 179km, time: 8h8m , tour mannheim2025 , tagged: mannheim2025

I’m now shoveling chocolate into my mouth while typing this and about to open a beer. I’ve already been to a Bistro for a couple of beers and a large “Pizza Anglaise” and today has been a good long day.

Unsurprisingly I didn’t sleep well at the campsite, firstly as I was dozing at 21:00 the entire tent was illuminated with a blinding light. I was startled and assumed the light was from some car headlights and paid no attention to it, until, 5 minutes later, it was still there. I poked my head under the tent flaps and saw that half the campsite had been lit up like a prison break.

Read more...

Day 1: Portsmouth to Saint-Arnoult

, distance: 52km, time: 3h25m , tour mannheim2025 , tagged: mannheim2025

It’s 7:30am and I’m sitting in the ferry lounge looking out of the window onto the port and the dawn drizzle. I was woken unhappily at 5:30am by my phone’s alarm. I stayed the night with a relative and would need to cycle several miles including a ferry crossing to get to the international ferry port.

Having consumed crumpets and coffee I wheeled my bike out of the house, realised it was raining, put on my rain jacket, stopped. Checked my passport and money were on my person, carried on, rolled up my sleeves, started cycling, my watch fell off my wrist onto the road with a clack, I rolled backt to retrieve it. Realised I didn’t have my lights, stopped, attached them, carried on.

Read more...

Day 0: Cycling to Mannhiem

, distance: 7km, time: 0h25m , tour mannheim2025 , tagged: mannheim2025 bt

I didn’t make any cycling plans this year and the summer flashed past as have so many other things, including a conference I had intended to attend “all tickets sold out!”. I lamented that I had intended to buy a ticket but my procrastination had prevented me doing so but, as it happens, a final ticket was available and it remained only to decide how to get there.

The conference is in Mannhiem, which is in Germany:

Read more...

Debug TUI

, tagged: php tui
Debug TUI is a debugging client for Xdebug that runs in your terminal. This articles showcases some of its features

Portland Coastal Marathon

, tagged: running

I stopped running a week before the marathon in order to “train” for it in order to mitigate the various aches and pains that I was accumulating from over-training.

Registration closed at 8:30 and my mother, who offered to give me a lift to the Isle of Portland (about 3 miles from my flat), kindly rang me at 6:30am to inform me that I failed to wake her up, after which I slept for another hour before rolling out of bed and making coffee and eating some oats and granola with honey, reading the latest terrible news of 2025.

Read more...

PHP, DTOs, C-DTO and You 🫵

, tagged: programming php
DTOs are C-3DTO allow live at the frontier of your application and allow you to give structure to unstructured data, to create order from chaos where it matters. This blog post introduces DTOs and persuades you to use them.

The Year This Year of 2024

, tagged: yearly

This is the year that was last year of the year, the year of the year, the best and worst year that was in the last year that was after the year before that. This is my story.

Ownership Anxiety

In January I purchased a bed. For the previous 6 months I had been sleeping on a mattress on the floor. This was my first real bed, a big bed. It was about this time that I also started to notice a powdery substance on the ceiling above my bed.

Read more...

PHP, Value Objects and You 🫵

, tagged: programming php
Value Objects can be one of the most powerful tools in your modelling toolbox. They make code expressive, maintainable, deterministic and cohesive. Yet they are sometimes misunderstood and it’s often difficult for developers to realise where and how they can use them. This blog post introduces them and explains why you must use them.
1 of 6 Next Page