The Year This Year of 2024

Last modified 2025/12/28 19:51

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.

As the months passed it was clear that something was happening to the ceiling above my bed. My bedroom is in the attic of a victorian house and my bed was adjacent to the chimney stack and as I would find out later it was damp . I’ve learnt lots of new terms: chimney stack, hygroscopic salts, efflorescence, flashing, pointing, reflaunching. I learnt how to spell scaffolding and the absurd effort required to access a large, shared, chimney on a pitched roof to get a professional to say with confidence that they “don’t know what’s wrong with it”.1

This year I had 1 scaffolding and lots of associated trauma.

Scaffolding Up with the scaffolding

Work

My contract was renewed and fortunately I haven’t had a shortage of work although being self-employed brings it’s own challenges and I am keen to diversify my clients and to explore new ways of working and am mindful about the years to come.

Some of the interesting things I’ve worked on:

  • Framework: Essentially an opinionated kernel-less, bridged, Symfony setup.
  • Hugo Linter: Static analysis for documentation
  • Rule Engine: …and JQ-like expression language.
  • Self Executing Tutorials: Run tutorials in CI2
  • Super Fast Serializer POC: code-generating serializer that’s super fast while also providing validation.
  • Proptrine: This is what happens when you combine Doctrine with Propel (but Docpel doesn’t have the same ring)3.

The thing I’m most happy with is the framework documentation which provides structured guides, tutorials, references and explanations whilst striving to be necessarily correct through the means of including tested code examples, generated reference docs, self-executing tutorials and static analyis to ensure consistent formatting.

This year I made about 270 merge requests and 2,144 commits.

Errors

Blogging

This year I’ve written 5 technical blog posts. The first one made it to Hacker News which was mildly terrifying and was as close as I’ve been to internet fame (which isn’t very close - nor wanted 😅).

I installed analytics on this website for the first time - although not the kind that requires a GDPR banner. It’s somewhat important to know if people read what you write so I’m glad I did it.

This year I’ve made 28 blog posts (the majority of which were travel posts and one of which hasn’t been published but it still counts).|

My PHP Problems Art Professional, non-AI generated, blog artwork

Social Medias

This year saw me delete my entire Twitter history and join a new network called Bluesky which I don’t use. In the meantime I’ve made 883 shit posts on Mastodon. It will be interesting to see what things look like this time next year.

Open Source and Hobby Programming

This year I’ve made 1,217 contributions on Github. That’s down from a high of around 4,000 a few years ago and to be honest I’m surprised it’s as high as that.

Phpactor has had 5 releases and PHPBench just 2. I’ve spent a deal of time earlier in the year working on a dead-end side-project and in the latter half had a streak working on my Strava TUI.

This year I also purchased the book Crafting Interpreters and am about 1/3 of the way into crafting a programming language in C. So far this has been a very interesting journey, not just in learning C but also learning how things like hash tables work.

Tome Working my way through Crafting Interpreters

Home Economics

I purchased my first NAS in addition to a Ubiquity Unifi Cloud Gateway. The Ubiquity router is at least 100 times better than the router that comes with the internet connection - it can analyse traffic, provide a VPN server, route devices to other VPNs, block certain devices from communicating with the internet, and, most critically use my pi-hole as a DNS server and block ads.

The NAS not only provides storage but also some power to fill the role of an always-on server to run docker containers. At the moment it provides me with Syncthing for file synchronization and Linkding for hosting bookmarks and Grafana and related tools. It’s also running Surveillance Station which is constantly recoding video streams from my cameras, one of which is triggered by traffic vibrations measured by an m5stick - I measure traffic vibrations because my flat shakes when buses drive past and it’s driving me insane.

The VPN server on Ubqiuity router also means I can login to my home network from anywhere and check-in on my home-assistant.

This year I spent money on stuff.

Unifi So much wow

IoT Readings from my homemade earthquake sensor

Conferences and Workshops

I visited Verona for PHPDay. I got soaked to the bone on the first evening and managed to cause much distress by installing myself in the wrong room in a self-service accomodation. I met old and new friends and had a fantastic pizza. The Pope visited Verona on the final day but I didn’t make the effort to see him.

The year also saw me returning to Web Summer Camp after pehaps a decade. My workshop was on Locking Down Perforamance with PHPBench which I think went down well and as it was one of the first I was able to most of the remainder of the conference sitting in the sun and drinking beer with some familiar faces. In retrospect I may have had too much beer and had a very challening recovery run up and down the promenade the following day.

I need to make more effort to drink beer attend conferences and submit talks and workshops next year and I have already committed to giving a talk at the PHPSW meetup in January and have been accepted for a workshop at Norfolk Developers in February, so I should be off to a good start.

This year I attended 2 conferences and 0 meetups.

WSC That’s me

Running

If my race result is to be believed I was at my fitness peak in 2019 but was incidentally injured and stopped running completely for a period of six months and never quite recovered to my former fitness level. But I was also bored of running in Berlin because it was boring. My hometown however is less boring and features a beach and miles and miles of coast path and trails.

I’ve completed 38 park runs this year compared with 39 last year - although I’ll do another run on Christmas Day. Over the past year I’ve managed to take one minute off of my best time of 2023 leaving me just 13 seconds from my best time in 2018. So I’m hopeful to finally getting a new personal best and reaching parity with past me 😅.

The first part of the year featured some disasterous performances in races that I had hoped to give my all. The Weymouth Half was a flat course and after a confident start my body stopped working after 4 miles and the rest was a painful slog. The same happened at the Hardy’s Half but that was even more painful - in fact I’m not sure I’d ever felt worse. In both cases my body broke down.

My membership of the local running club continued this year and during the summer months I joined many of the weekly trail runs held all over Dorset and discovered many new and wonderful places. I still find it a struggle to socialise.

Happier results ensued in the second half of the year and I set all-time personal bests at the Weymouth 10 and at the Osprey 10k.

I’ve entered the 2025 Marathon of Barcelona which will be my first Marathon in many years and it will hurt.

This year I ran 1,621 miles.

Weymouth 10 Finisher Running in to finish the Weymouth 10 79th / 280

Cycling

I lost about 5kg of weight during my Cycle Trip accross the Pyrenees in December (making a loss of ~8kg over the entire year) and found that the 8 hour cycling days had helped to put my injuries and poor performance (at least temporarily) behind me and I was setting new PBs in the weeks that followed. The cycle trip was arduous and beautiful and took rather less time than I had thought although I was happy to not have to write a blog every single day.

OpenCamera/IMG_20240829_172759.jpg Bike in the clouds

My running fitness was one thing, but I had a new found cycling fitness to maintain and my racer bike was on it’s last legs4 as I was riding around the Dorset countryside so I got a new one.

Initially I was going to replace my aluminium-framed £600 racer with a similar model, but that escalated initially to disc-braked Endurance bike and, having purchased that and found it not to my liking, it escalated all the way to a full-carbon, disc brake, racer bike with electronic gears. The most expensive vehicle I’ve ever purchased (which doesn’t say too much as I’ve never owned a motor).

As the winter set in, and after having experienced some unpleastant punctures in the cold and dark I decided to invest further in a Wahoo Kickr Core indoor trainer and (rather grudgingly) purchased an expensive years membership on Zwift. This gives me the boring option of cycling indoors when it’s dark and cold.

This year I cycled 1,967 miles.

trainer Bike on trainer

Music

This year also saw me return to the musical stage for the first time in 20 years with my friend’s project “Cosmic Bungalow”:

stage Me playing bass on’t left

This year I played 1 gig.

Next Year

…profit?


  1. well, we’ve got a general idea… ↩︎

  2. I made an independent demonstation of the idea here ↩︎

  3. Proptrine never happened fortunately, but we did integrate Doctrine on top of Propel’s schema management. ↩︎

  4. or at least the bicycle mechanic said it would cost as much to fix it as get a new one but that was ultimately not quite true at all↩︎


Morty Proxy This is a proxified and sanitized view of the page, visit original site.