This post is a continuation of my series of monthly review posts - what I've been doing and all that kind of good stuff. Other entries in the series:

February has been and gone. There's still a little of winter left, but Spring is starting to spring. The nights are getting longer. How lovely!

Home

Newcastle has had a decent run of weather over the half-term break, which presented an excellent opportunity to get back into the garden and prepare it for the next season of growth. We have some tomatoes and courgettes sprouting indoors, and I reapplied soil to our wildflower patch. Thanks to last year's incessant winds, I'm hoping that a lot of the poppies and cornflowers were able to spread their seeds, but my wife did manage to harvest some additional ones for sowing. After almost a year of ignoring the blue bags of rubble down the side of the house, I bit the bullet and got a waste removal company to dispose of it. Expensive, but worth it. My car's suspension would not have handled it!

All the rubble bags down the side of the house

At the beginning of the month, my wife and I took the children to the Kids Invent Stuff live show in Sheffield. My eldest loves their YouTube channel, and it was great to see some of the inventions in person. We became world record holders for the "Most People Making Popcorn Cannons". How about that!

Kids Invent Stuff Live Show

Side Project

After being a little naughty in January and doing nothing on the side project, I decided to do something at least. Otherwise, the analysis paralysis will continue to linger on my shoulders.

Rather than taking the traditional approach of defining the data model up front, I started building something. I whipped up an Express server with my usual choice of Pug HTML templating and some copypasta CSS from an earlier project. With some flat JSON files acting as a 'fake' database, I rustled something up and running in about an hour—enough to present a screen recording to the cooperative members on our Discord channel.

Two things surprised me about this endeavour:

  1. How freeing the whole thing felt. I obsess over code quality and labour over design decisions and want to do my best. But this model of 'spike and stabilise', performing enough discovery to understand the problem with sufficient detail to challenge base assumptions, is a great way to explore a new surface. Mentally, it's giving oneself permission to 'go with the flow' and feel out the requirements from the outside in.
  2. HTMX is a delight for prototyping. There's considerably less boilerplate when your server returns HTML rather than a JSON object, which must be manually transformed into new DOM content. I wrote next to no front-end JavaScript; the remaining functionality was purely for browser functionality. The UI remains snappy because these days, DOM updates are fast. I made so much progress because I had a helpful utility library that provided some core functionality and stayed out of the way.

With that in place, I dusted off my Terraform (well, OpenTofu) to get this running in AWS. I created a CloudFront distribution, an API Gateway, a Lambda function to serve HTML, and a GitLab pipeline to provision this infrastructure. Admittedly, it took some trial and error, but the project is now in a position where we have the 'walking skeleton' and can delve into the 'business logic'.

Books

A River in Darkness by Masaji Ishikawa

Masaji Ishikawa's rather direct and bleak memoir tells the tale of his family, who were pressured into moving to North Korea in the '60s and found nothing but misery, misfortune and famine. At the bottom rung of a complex class system, it describes a daily struggle for survival. It provides disturbing insights into the constant sense of fear - of the state and neighbours - leading to the author undertaking the dangerous crossing over the Yalu River.

The Girl with Seven Names by Hyeonseo Lee

Following on from A River in Darkness, I read another "Escape from North Korea" story, this one revealing another perspective during the famine from the perspective of a family a little higher up in the social order. Lee's mother is relatively well-connected, at least enough to live a modest lifestyle. Lee, being born in North Korea, notes how the education system intends to brainwash State doctrine from an early age. On a risky crossing over the river to China, she realises that returning would cause trouble for her family, leaving her to embark on a life as an illegal immigrant in China. She eventually manages to settle and get her family out through perseverance and inventiveness. There are near misses and setbacks. It is a great story, but all the more troubling is that it's a work of non-fiction.

Preacher by Garth Ennis

Garth Ennis' graphic novel series is a supernatural Western. It begins with the eponymous character surviving an explosion at his Church and taking on the powers of a celestial entity called Genesis, which grants him (literally) the Word of God. With his ex-girlfriend and vampiric best friend, they begin a search for God, having to deal with an abusive family, zealots, and the criminal underworld.

Although I've not read Ennis' subsequent series, The Boys, I've seen its TV adaptation. I can see the progression in Ennis' style from Preacher. It is mature, explicit, doesn't pull its punches, and is all done with a wink and a nod to the metatextual analysis. Preacher is enjoyable, if dark.

A Circus of Ink by Lauren Palphreyman

The Creators maintain the One True Story enforced through their hit squad (The Blotters). Stories are banned, but the main character, Elle, has a penchant for storytelling, and with it comes the power of creation. The Blotter Jay plans to kill her. They quickly fall in love and set to bring revolution.

I thought I'd enjoy this story, but I didn't. The worldbuilding was derivative, the dialogue was repetitive, and the tension between the main characters felt forced. Oh well, you can't win 'em all.