return 12; // good enough for now


Playing around with Fennel and LÖVE again. Picked up from where I left off but found a flow that works well with hot reloading. Came from this template from TheBlob42 with some inspiration from this Technomancy blog post. Live updating, admittedly mega simple, graphics code as it runs is pretty magical feeling.

Fennel continues to have a nice light feel to it.


Unsubscribed from Github Copilot. It’s cool how it can anticipate your needs but when you’re confident of writing code, or gaming something out, the suggestions can be really distracting. Maybe I’ll come back when I’m doing more full-time coding.

Learned about capabilities-based systems from a comment that pointed to this FennelConf video. Neat.


Saw Explosions in the Sky and watched Dune 2, both very good. Wrote this stupid thing about waterfall which I think is mostly true, but also funny and quite useless.

Waterfall has never been considered a valid software development methodology. The concept of Waterfall, as applied to software development, was only introduced in a 1970s paper as an illustration that such an approach would be a flawed way to attempt to run a project of its kind. Much like Schrodinger’s Cat, initially a way to mock the Copenhagen interpretation of quantum physics, it is now taught to students struggling for a way to map a deterministic world-view onto a non-deterministic reality. However, unlike physics teachers, which do not actually harm the purely theoretical cat, waterfall project managers continue to wreak havoc and destruction every day.



Writing some Clojure to play around with check-in data from Swarm. The hope is to try and highlight the more interesting things that your friends are up to. Sadly you can’t pull friends’ full history but there’s an endpoint that can grab all your friends’ most recent check-ins, so I’ll just call that on a loop for a bit and see what it gives me.


Chinese New Year! Good times visiting or hosting family and friends. A rather packed few days but all enjoyable so any self-imposed stresses were entirely worth it. Cooked General Tso’s Tofu for the family which was well recieved. I’ll add this to the roster of seasonal dishes alongside Christmas’s regular pie to do every year.

Got Pi-hole running on two machines on the local network and for everything on Tailscale. Not sure how much noticeable difference it’ll make. However, seeing all the tracker beacon domains turning red makes me feel like I’ve wrestled back a little bit of control.

Rebuilt Giant Head with a ZFS filesystem so that I can practice backing up snapshots to the NAS.

The genocide in Palestine continues. Feels weird to reference it so flatly in a post where I’m talking about having a nice time with family and dicking around on the computer. But it’s happening, and it’s horrific, and the UK continues to just accept/endorse it at all levels of power. Where do they go from here? All out war all the time? Not even any attempt to pretend there is some moral authority. It was lies before but at least you knew you were being lied to so could understand the power games at play and felt a tiny bit of comfort that they bothered to lie to you. Now it’s just “it’s war and everyone that stands in its way is scum, anyone caught up in it deserves it”. In service of what? Preparation for the next round of resource wars that climate change is bringing? Grim.



Finished Scavengers Reign. Completely worthy of all the praise its receiving. It’s good right from the off but half way through I found myself wanting to just talk about it. Not in-depth analysis, but just to recommendations to folk to go and enjoy the world being created. I’m sad to have left it. The 12 episodes are all that exist and it seems like there’s no outpouring of merch and tie-ins titles that come so readily these days. A shame but maybe also a blessing. Feels somehow pure to keep good things rare and precious.



Tried to collect my thoughts on story points.


Got encryption on ZFS working in preparation for photo archival and off-site backup. The ease in setting this up along with snapshotting is making me appreciate ZFS. This is my first time having any real opinion on a file system. Excited to argue with someone about it some day.’s revamp of their listening reports plus Playback 2023 (which sadly isn’t shareable) looks great.



In the UK to spend Christmas with the family for the first time since moving to Singapore in 2019 which was a delight. While in London we caught Stranger Things: The First Shadow and Edward Scissorhands.


Visited Hong Kong. Mostly this was to do the TransLantau 25 but we also took a few extra days to tourist and enjoy the place.



Horrified at the events unfolding in Palestine and the murderous attitudes of various ruling powers. The idea that the bare minimum of suggesting a ceasefire is now considered beyond the pale, as demonstrated by the British government and media, is sickening. Free Palestine! 🇵🇸

Playing with Common Lisp as an extension to previous experiments with Clojure. Lisp seems nice. I want to live in my own perfect world and write Lisp. Have ended up here after playing with Lua/Fennel and LÖVE, then reading an article about Gamedev in Lisp. Didn’t really get either of these to work in the way I wanted so stepping back to learn Common Lisp “properly” via Common Lisp: An Interactive Approach.


Saw Tiny Moving Parts at Hard Rock Cafe in Singapore. A strange little venue, made even stranger by people hanging out finishing their dinner and ignoring the show. Maybe not Hard Rock enough for them. Cool show though. Good band.


Covet at *SCAPE. A good few gigs in Singapore this year. Nice to be at shows.


Spent some time setting up a new server which will host media, photo backups, and other servery things. This involved figuring out how to decrypt partitions via ssh and get ZFS sorted.



“I am one of many animals in this world, and in that vast relationship of connections there are so many thousands of ways to be present and to be witnessed, what is my gender to a crow?”


Spending some time thinking about Developer Experience, in particular Platform Engineering. It’s appealing to me because it’s not a tech problem, but an organisational and cultural one. However, it’s one where solutions can be structured around tools. I feel like this pseudo-physical grounding can really help people conceptualise the possibilities much easier than “we need to fix the org”. People often seem totally terrified of fixing the org.


Dropped into Around Gallery, a tiny gallery in Everton Park, to see double chunky’s works for sale.


Continuing to play with Co-pilot and ChatGPT-assisted coding. This time while writing Go. I was trying to get some tests against a Bubble Tea powered project, but with zero Go experience I had no idea how/what is possible. First I Googled around and randomly tried what looked good only to be tripped up by the compiler/the language itself. Bringing ChatGPT and asking it the questions I was trying to answer took me on exactly the same path. Was cool we approached things the same way though even though neither of us was write. Got there in the end but only after more reading on my part. No lessons learned.



Our 5th wedding anniversary! Life is good <3


“In this context, the defining trait of a village is that it’s group of people where the average interaction over time is with people you’ve seen before.”


Moved my old node library over to use Mocha instead of the ntest. When I first created it I think ntest was the only node unit test runner around. I chose Mocha over Jest cos of reports from folk at work that Jest in later versions of node (14+) is just chewing through memory. I don’t expect to hit those problems, but I’ve never used Mocha in anger so seems like a good excuse to look.

I pretty much abandoned the library soon after I started working there. Not for any reason other than it seemed to drop out of my head. I recently noticed that Github claims it’s used by around 4,000 repos so decided to poke at it again.


Played around with AI code generation for the first time. Using a combo of Github Co-pilot and ChatGPT I was able to start a Typescript project with only 5 minutes of trial and error, rather than the usual 15. We really need better tools.

I then took co-pilot through a quick TDD excercise I’d used while during training new hires in the week before. It’s a joy to use. It didn’t seem to hold combinations of expectations well, but it got the gist of what I was doing and provided good suggestions for first cut tests and code. Looking forward to exploring more.


“The injection-mold and metal die machines can make one thousand toys each minute, but they have no hands, they cannot teach”


Trying to get back into running after only going out once during our UK trip. Finding it hard, VO2 max graphs confirm, so just doing some short 5-6k to remind my body that it enjoys this. It’ll be time to start seriously training for the TransLantau 25 soon I hope it listens.

Listening to the No Silver Bullet episode of the Future of Coding podcast. I previously enjoyed the Programming as Theory Building one and have already happily over quoted from it.

Went to Gif Fest 2023 at the NDC. A really well put together, playful exhibition celebrating animated GIFs.


Spending two weeks in UK. While most of the time has been spent rushing around getting quick glimpses of friends and family that we’ve not seen for months or years, we’ve managed to pack in a lot and even added a few days into Europe.

Towns visited

Things done


Watched the Superbowl in town with friends on Monday morning.

Played with Clerk as a way to document potential flows in a project.

Spent a good four hours getting The Last of Us to run on a PS3 emulator and streaming to the living room under NixOS (settled on RPCS3 + Steam after trying multiple other combinations). However, after playing for 10 minutes Peishan felt so sick from the camera controls that she couldn’t continue. Happy at least to have got controllers wired up to NixOS.


On the back of the recommendation of S02E02 of the Wing Magma podcast I’ve been going through 1001 Albums You Must Hear Before You Die. The first standout track is this live version of Diminuendo And Crescendo In Blue by Duke Ellington. Hearing the crowd getting more and more worked up until they’re almost rioting, it’s impossible to not feel the same enthusiasm. It’s a great piece of jazz history.

Picked at Clojure some more.


Back in Singapore and slowly back to work. I passed the 10% mark on running the (mean) streets of north-east Singapore on CityStrides. Not much of a milestone but it’s been a quiet week.


The two of us stayed in Bali after the rest of the family returned to Singapore. We moved from the villa we were all sharing to Canggu and then on to Ubud. We had planned to spend two days in Canggu but decided to leave early after hearing karaoke late into the night. Fun enough but not the town for us.

Ubud is much more relaxing. This is our third time here together and we continue to love the place.

We had originally planned to try working remotely from here to test the digital nomad waters. However, my current work setup doesn’t allow it. Instead we’re picking at little projects in between the touristing and relaxing. I’m using mine as an excuse to learn some Clojure.


Spent Friday/Saturday/Sunday in Seminyak, Bali. We’re here with family to spend the CNY together. My father-in-law passed away last March and this is the first CNY without him. Celebrating doesn’t seem appropriate (and there are some customs that restrict how one would anyway) so we decided to take a short break. My UK family did a similar thing for the Christmas following my own dad’s death. It prevents you from having to pretend everything is normal as your grief doesn’t necessarily gel with other’s holiday experience.


Went to watch a screening of Class Acts at the National Design Centre. A documentary about the Singapore creative scene in the 90s that covers music, fashion, and art and design. There’s a companion exhibition until the end of January.


Peeped at Singapore Art Week. Highlight was double chunky’s contribution to Kunckles and Notch’s Gachapon capsule exhibition.

We’re starting to use notebooks at work as part of our exploration of some data science tools. How to balance their use without sliding into accidental code hell, while also not just cargo culting existing ‘best practices’ needs some thinking. There’s some real potential though. The Stop Writing Dead Programs talk by Jack Rusher and Clerk bubbled up from memory. More thinking (and doing) required.

New music discover of the week - Cheekface


I continued to refactor my old cellular automata code. This was originally written in 2013 for funs. I was reminded of it when I came across the Recursive Game of Life earlier this month. JavaScript (and my knowledge of it) has moved on since then and it’s been nice to quietly refine it as a way to relax.

We spent Christmas in Bangkok. Highlights were Wat Arun and Salon du Japonisant. I also bought a couple of very cute prints from Playworks in Terminal 21. I liked Bangkok a lot. I’d only been there for a few hours about 15 years ago so this was my first proper visit. I think I’ll try to run the Bangkok half marathon next year for an excuse to go back.

Tried archery for the first time at Salt & Light in Chai Chee.