Life is Good

Spring 2024 started with many leftover quiz night cupcakes and pizza slices, and a crisp Sunday morning. Irises were in bloom. Jumpers were worn. A lot happened in the following three months that led to a barefoot walk on the beach last Saturday night as the sun showed no interest in the horizon despite it being well after 7pm.

Tomato plants have grown, exams were passed, pub trivia was won, wellness benefits were spent on putt putt and bouldering. Blinds and shutters have been installed in preparation for the Summer 24-25 playlist. We walked on the beach.

I visited Alligator Gorge, Watson's Bay, and Melbourne twice. I saw the milky way and a miniature horse. Hats and shorts replaced heated gloves and puffer jackets. I witnessed another AFL Grand Final that I'll probably forget. I made a lot of sandwiches seasoned with Gaganis italian herb mix, plus quite a few pizzas. We walked on the beach some more.

I bought a new computer and monitor. I settled into my new job. I rode my bike to a brewery, and then caught the new train line back. Vanessa beat me in arcade basketball many times. I did a lot of gym and I saw Chihuly in the Garden. Nash swam in West Lakes. We walked on the beach.

I took many photos of flowers and birds. And Nash. And sunsets at the beach.

I lost two teeth. I went to Christmas Carols. I wrote a bunch of code. I listened to a lot of music. Over 5000 unique songs, 80+ a day. That's not counting the times when I dug up old mixes for the speaker in the gym, or when I put on Anjunadeep mixes for focused software development, or when Vanessa was DJ in the car on the way to the beach.

It was a good Spring.


If you like Bradism, you'll probably enjoy my stories. You can click a cover below and support me by buying one of my books from Amazon.

If you met yourself from the future, what would you ask your future self?
What if they wont tell you anything?


The Wide Wide World

The biggest difference between present day and the eighteenth century is probably just the sheer volume of humans on the planet. In 1776 the population of the planet was less than 10% of 2024. When I read about history what stands out most is how connected to each other everybody was.

Cook's Third Voyage around the world started with a mission to return Omai, an orphan of an inter-island war in Tahiti, back to his island. Omai spent two years in London, met the king, working on his goals of bringing gunpowder back to his home, and being a card playing socialite. Eventually he was put on to the ship with Cook by none other than the guy who invented the sandwich.

To get back to Tahiti, Cook and Omai visited Tenerife, South Africa, Antarctic Islands, Tasmania, and New Zealand. It was the fifth time Cook sailed a bunch of wood and nails into New Zealand... I've been there about ten times but only by plane.

Omai actually made it back to his home island, and according to the books, even managed to win a battle against the Bora Borans with his English armour and his gunpowder. He died a few years later, and Hampton Sides - author of A Wide Wide Sea - gave me the impression that he found this sort of tragic, that his time in England before being left in the Pacific was a negative thing. I felt the opposite. How many common humans lived their whole life in one place compared to those adventures. Cook made it to Hawaii, Oregon, Canada, Alaska, Russia and then - unfortunately for him - back to Hawaii again. That was just one of his voyages. Truly incredible what humans could do with the technology they had, both Europeans in ships and Polynesians carrying pigs and dogs across the sea in canoes. It is a big world and a small one. There's not a lot left to discover, but I'm still keen to explore it. Even more after reading that book.

Workout Plans

My warm ups start with some loosening up the neck, shoulders and upper back through range of motion movement. Then activate the multifidus muscles at various places along the spine, ensure the wrists are moving, do some arm swings.

Now I’m ready to warm up, I do some dynamic stretching. Stand on one leg and open the hip joint by rotating the other leg five times clockwise, then anti-clockwise. Repeat for the other leg. Then, place the base of the foot against the knee and open the shoulders in the same manner, first clockwise, then rotate the wrists, then reverse the wrist and then the shoulders again. Five reps for each position, both sides.

I follow this up with leg swings, trying to build up to full range of motion for the hamstrings and for the adductors/abductors with the help of the rig to hold on to.

Find a tennis ball and roll it under both feet to ensure the bones of the foot are moving smoothly and the ankles have good mobility.

Next, place an exercise mat down and lie face down on it, fitting the same ball between the base of the thigh and the mat, and perform twelve leg curls. Move the ball up towards the base of the pelvis and repeat. Switch legs and do another twelve. There’s a pattern of symmetry let’s assume we’ll maintain it going forward.

The ball stuff is done, but I stay on the ground and push up into cobra pose with a focus on stretching out the lower back while being mindful of the wrists, shoulders and my breathing. From cobra pose transition into an extended puppy pose and feel the stretch and activation of the glutes. Hold that for 30 seconds, and then repeat the transition and cobra pose.

Swapping from front to back, I use a foam roller under my calf/ankle in several places and then place downwards pressure on the leg with my free calf, and then mobilise my ankle. This helps release tension in the ankle, calf and hamstring. Then move the foam roller up and roll out both hamstrings/ITB. Then, lying back, stretch the hamstring by lifting the leg with a bent knee and then straighten and bend ten times.

Abdominal massage is good, so once the legs are flat again try to find any tightness and tension in the abdominal muscles and gently push/pull to mobilise the abdominal muscles and the organs they’re protecting. Follow this up with some deep breathing to open up the chest and release more tension. Breath in for seven seconds, hold for eight, and then release for nine. For efficiency I will combine this with some shoulder extension where I bring both arm back behind my head until they touch the ground, breath, then bring them back by my sides.

Still on the ground, I curl up about six times with a focus on moving vertebrae by vertebrae through the movement, and returning back to the starting position in a slow, controlled manner.

Next it’s good to massage the tension in the lower jaw and this can be combined with also mobilising the larynx. Gently move the larynx side to side while I probe my jaw and simultaneously stick my tongue out and move it up and down ten times, then left to right ten times. The tongue is part of a long muscle chain that reaches all the way down to your feet.

Then I finish the ground stuff by activating my glutes and lifting up into a bridge for 30 seconds. Finally, a few dead bug repetitions while being mindful of the balance of each leg and using my core muscles to extend and retract the leg.

At last I am done with the floor, and the warm up can really get going. Stand up straight and bend to the side as far as possible, hold for ten seconds and then slowly return to standing. Repeat on the other side, and do this multiple times while trying to increase the hold time and the range of motion.

Then, grab some light dumbbells and perform ten reps per leg of walking lunges with the dumbbells in a rack position. Follow this up with some band work to pronate the wrists under load with a green band and then the black one. Use the same bands for shoulder dislocates. Ten reps for both.

The next set simply varies the previous. Stand with feet flat and arch the back into extension slowly until you reach the range of motion, hold for ten seconds and then move back to the starting position. Then curl forward with knees straight, bending downward until you are touching the ground in front of your toes. Again hold for ten to twenty seconds and then move back up. Do five of these in each direction. Then, repeat the walking lunges with a slightly heavier weight, and then return to the bands and use resistance for wrist supination, followed by some pull aparts. Use one, two, three, four then five seconds for the first five pull aparts on both the eccentric and concentric parts of the movement, then reverse it for the last five sets.

Then I use a cable machine to further warm up my shoulders with a shrug into a one arm row. Ensure the traps are relaxed and the back is doing all the work. Superset this warm up with some cable work for the chest, taking the handle from behind and bringing it in front of the body by extending the arm and rotating so the palm ends up facing upward. Use the one, two, three, four, five pattern again for the cable work.

Super set the cable work with a return to the floor. I do a glute bridge, then activate one glute and push through the foot and rotate in the opposite direction while extending the arm to essentially slap the ground behind my head. I repeat this ten times per side, and then do a set of lying leg raises or more dead bugs depending on how tight my back is feeling.

Repeat the cables/glute bridge routine two or three times.

Now it’s finally time for me to do the exercise! I start with an empty bar, or for squats, go body-weight, and ensure the movement is working for eight repetitions. Then I slowly build up the weight in 10 to 20 kg increments (depending on the exercise until I reach my goal weight which is usually whatever I can comfortably do for five rounds of seven to eight reps.

If you follow this warm up plan five days a week like I do you will probably only injure yourself about four times a year in the gym.


Not getting enough emails? Want to receive updates and publishing news in your inbox? Sign up to the bradism mailing list. You'll also receive an ebook, free!


Season's Vibes

Christmas bandana for Nash.

Baubles in a tree.

Christmas decorations on the window.

Tacko Ball

Sometimes recently it feels like the events of a day get erased by night time routine that often involves a few hours of programming, followed by stretching, teeth cleaning, hiding a licorice twist and carrying a puppy down the stairs.

A couple of weeks ago I attended a quiz night and tried to deploy an update to production afterward and ended up crashing my site, and then fix it.

By the end of the evening I was like, did I really see friends, drinks beer, and tease my brain this evening?

What else have a dusted away without recording for future reference?

Tonight I went to the basketball with Josh to fulfil Tim's lifelong (or weeks long) dream of seeing Tacko Fall in person. It was an entertaining match. Tacko was big. Harrell was entertaining, we got burgers afterwards.

I didn't do any programming after getting back home.

Artificially Intelligent

AI is a long way from taking over our jobs but it’s not a long way from everyone getting fired.

That’s my opinion at the end of 2024 after learning, absorbing and trying to surf the wave of Artificial Intelligence, which is what society is collectively referring to generative AI as for the last two years.

My cynicism about AI stems from my interest in it, understanding how large language models function, and experiencing the limitations on a daily basis. I can also see the huge potential that AI offers to be able to automate so much of what I and others do in our work which is both exciting or terrifying, depending on how you feel about human nature and greed.

I’m hedging my bets, by ensuring that I know how technology works and trying to stay one step ahead of it. If only I’d tried this with blockchain in 2009...

So I do a lot of development with AI tools like Cursor and models that are good at development. It’s super effective. I’ve been able to build a lot of software in 2024 with AI assistance and what’s more I’ve been able to do that in any framework or technology that I need to because I need to know less about the code and more about the principles of how software and hardware works. By doing this I have learned a lot about how to work with AI programming tools. Like, how to write prompts, what content to provide as input, and most importantly how to get out of the holes that so frequently happen when using AI tools that can’t overcome a bug.

Cursor recently rolled out “Agentic” abilities, which makes my life even easier because now it can do things like OpenSSL commands and Git statements and I can give it full control over a code base. This was helpful for a recent task I had which was to enable some additional security features on an existing Spring Boot app that runs in a docker container. This was for a development use case at work, so there was no harm in forking the app and letting the tool go as hard as it needed to to implement the SSL connectivity I wanted between components of the application. I took this step because after a day of trying myself, I couldn’t solve it. I’m not comfortable with Spring Boot and so much of my recent programming has been in python, JavaScript and other languages (yes, PHP) and I wanted a quick solution, not to spend a week learning a Java framework.

And boy did Cursor struggle with implementing SSL in the way I needed it to. In “Agentic” mode, it would go off editing multiple files and then the app would either fail to compile, fail to start, or throw a runtime error. We went through many, many iterations of trying to diagnose the issues until my workflow devolved into:

1. Cursor makes changes and the app fails to package/start/run
2. I paste the error into the chat window
3. Repeat

I admit, I got lazy, and I stopped trying to diagnose the root cause myself. I had nothing to lose, other than my time, so I kept up this cycle. However, there were a couple of times that I asked it to reflect upon what we had already tried and what we were trying to do in order to prevent it from getting into a loop, or from trying creative solutions that would not work outside a development environment.

And to my surprise, it actually got there. I got trusted SSL connectivity between two components of the application, without errors, and without relying on any hacks. Then I got the AI to remove all the extra crap it had left that was no longer necessary. Then I got it to compare the original code with the current commit and asked it to add a section to the README that explained the changes. It was pretty good at that.

I felt a sense of accomplishment at the end of today, with my functioning and secure application, that I had browbeaten an AI assistant into making work. Because this is the future. I still don’t understand Spring Boot very much. But I understand the changes, and I understand how I could make an AI do something like this again! So I’m not any smarter, but I am more skilled. Which is a good thing, because I want to implement OpenID Connect on the server’s API tomorrow.

Sol Invictus

As Christmas comes up on 17 centuries of relevance, it sometimes feels like the true meaning is forgotten in all the festive planning and purchasing that's needed to try and ensure relationships with other humans can be maintained for another twelve months so we can all celebrate Christmas again.

And anyway, the true meaning of Christmas is a bit subjective, but...

"And lo, a child was sent, pure and unblemished, to bring unity to the nations and peace to the hearts of all men."

2024 was the first Christmas for my latest nephew, and while his name is not Jesus I feel like he has already done a great job of unifying the world because now instead of having to do one drive to the Barossa and another to the southern beaches I only needed to drive 20 minutes across town.

And jesting aside, it is nice to see the way a baby can provide a focal point for a gathering with much lower cognitive drain than a board game.

"Shortly after dawn Nash went out with them, walking on the lake."

Before the festivities, early in the morning, we took Nash for a short walk and paddle in the lake and a surprise meat puff. It was a hot day, so we took advantage of the angles to maximise our shade and enjoy the outdoors for as long as possible before we returned home for cooking and eating and gift arranging. I made a couple of braided pesto bread wreaths that turned out pretty good.

After a long day and lots of heat, we drove back west to end the day with a walk on the beach and a mid-strength beer to drink as the sun painted the sky.

"And he walked the sandy shore, a beer in hand, as the waves whispered peace to his soul."


To me, that's the true meaning of Christmas. Sol Invictus.

(Thanks to ChatGPT for inventing some biblical-sounding quotes.)

2024 - A Long Context Window Being Paid Attention To By A Transformer

I could easily spend my free time between years generating code with AI to fulfil minor feature requests on my side projects. As fun as that is, this part of the year really should be used for reflection on a year that’s passed. And there’s a decent amount to ruminate on. While I’ve only posted about 100 entries in 2024, a lot has happened behind the scenes that is important not to forget.

For reflecting, I thought a review of my entries for the year so far would be a good place to start. That’s about 27,000 words which is quite a lot and only about half of that is me detailing my warm up routine before gym. So I decided to use AI to extract it into natural language, and then use code generation tools to write a python script which used a locally hosted instance of llama 3.2 to summarise the content. And finally I passed the overall summary to a larger Anthropic model to evaluate it and reflect on it for me.

This might be cheating, or maybe this is actually more effective because it cancels out my human biases and limitations. Either way, it is a microcosm of a large part of 2024. And I thought it was useful because when I think back on 2024 a big part of me gets stuck on Breath of the Wild…

So anyway, here’s what 2024 era Generative AI had to say about my year:

2024 appeared to be a year of significant transitions and self-reflection, largely framed by your 40th birthday milestone. It was a year where you seemed to be actively grappling with the passage of time - both embracing change and occasionally feeling its weight.

The year started with a burst of social energy, featuring multicultural weddings and community celebrations. These events grounded you in your relationships and cultural experiences, while also marking time's passage. Throughout the year, you maintained a balance between professional growth (mastering new technologies, AI integration, certifications) and personal challenges (adapting to physical changes like needing glasses and managing back pain).

What made your 2024 particularly distinctive was how you found meaning in both significant milestones and mundane moments. You celebrated completing a spool of floss with the same reflective attention as passing difficult technical certifications. Your relationship with your aging dog Nash paralleled your own journey with aging, both of you adapting to changes while finding joy in simple pleasures like beach walks and sunny days. The year was punctuated by your thoughtful observations about seasons, technology, and human connection, often finding humor and insight in unexpected places - like contemplating mortality during daylight savings or finding philosophical meaning in lawn maintenance.

Your writing suggested 2024 was less about dramatic changes and more about deepening understanding - of yourself, your place in the world, and how to find contentment in both achievement and acceptance. The year taught you about adaptation and resilience, whether that was through learning to work with AI, managing physical changes, or simply appreciating a good sunset after a day of coding.

It seems pretty good, considering leading AI models aren’t adept for handling my Bradism brand of sarcasm through understatement. It missed that I got a new job and that I didn’t eat an almond the whole year.

I feel like 2024 was a good year, considering I didn’t leave the country at any point. Being forty doesn’t mentally feel any different to being twenty-two, but there are definite physical changes and part of the good year comes from managing those as best as I could.

I did a bunch of stuff with computers and I feel like I am prepared for success in the near future.

I had an enjoyable time in Sydney, Brisbane and Alligator Gorge at various points throughout the year.

I was happy with the way the Quiz Night turned out, it took some of the pain of aging away.

I played Breath of the Wild which was a pretty satisfying open world game.

I feel like every month has had more good things happen in it than bad things, but there have definitely been challenges affecting people and dog’s health, and relationships, and while none of that has been good I feel like I’ve helped manage those things as best as can be managed.

I miss my old teeth.

The Value of AI

What is AI actually useful for? Can it really help with:

Morning strolls to the markets for good coffee and fresh fruit.

Dog walks in the rain.

Peak hour idling, listening to tunes, no stress.

Catching up with friends for BBQs.

A brief nap.

Dinner and drinks out to celebrate an engagement.

I guess yes, because I got to do all of that on a busy day, and in just an hour before bed I managed to build a FastAPI backend and React frontend for a custom docker container to host my utilities.

The value of AI will really be the time it saves for us to socialise, and get away from computers.

Countdown to Bed

If you set your interval timer for 4 rounds of 90 seconds with 12 seconds rest and a 5 seconds countdown and you start stretching at 11:53:18PM exactly you can start the new year with stretched hip flexors.