LIAM JOHN DAVISON

Recap of 2025

Liam Davison

Quite a lot of programming in the first half of 2025. Almost none since then. Of my current projects:

  • bascule is in maintenance mode, but continues to be used to drive this website
  • I like API viaduct, but it's only used for cantilever
  • cantilever has never managed to become a feature complete replacement for bascule
  • caternary, the web and android editor for cantilever, kinda works for the basic use cases
  • amber charge tracker gets the occasional update, mostly by AI coding these days
  • project kuiper is dead, thankfully
  • my raspberry pi isn't even switched on; the e-ink display is still stuck showing "14:17 Thu 30 October 2025"

I have found myself lacking enthusiasm and time for any of these projects. Cantilever and Catenary are intimately connected; one can't really work without the other. I don't enjoy UI development, either in the web or in Jetpack Compose for android, and most of the work needed is in the front end. But without a working front end, there's little point on working on the Cantilever website generator code.

For my Amber project, I have added a couple of features, and I used the app every time I charge my card. But the last couple of changes have been written almost entirely using AI coding agents such as Junie, and there's something kinda demoralising about that. I definitely want to continue to explore AI agents, but I think I'd rather do it with something greenfield and probably lower level.

At the back of my mind, there's always this niggling desire to write a computer game. Every time I do, it ends in tears. If I do try again sometime, I must promise not to make it even harder by doing it in Kotlin – I should just learn GDScript and Godot, or C# and Unity. Something practical and widely used with plenty of supporting documentation.

So what do I want to do? What would I like to learn next?

  • Something lower level; perhaps coding in ARM Assembly, or C, or a modern low-level language such as C3, Zig or Rust
  • Continue and extend API Viaduct, but the cold-start times of AWS Lambda functions are too long. Could I recompile the code to run as a native executable? Or perhaps use GraalVM?
  • I'd like to explore public clouds outside Amazon AWS and Microsoft Azure. I'm increasingly dissatisfied with the US-centric nature of the cloud. However, none of the European cloud services are really geared towards serverless applications.
  • Something actually relevant to my work – learn Microsoft Azure cloud, learn C#, learn Terraform and Bicep perhaps. Doesn't sound very interesting though.
  • Resurrect my Raspberry Pi and use it as mini home server, for a local Git server, an advert blocker... Earlier this year I set up a cloudflare tunnel to my Pi and a Gittea server, which synced and backed up my Github repos. Then the SD card on the Pi died :(.

Lots of options. No actual need for any of these things. I hope I can find an engaging and useful project for 2026.

Technology Woes

Liam Davison

It's not been a good week, technology wise.

The SD card on my Raspberry Pi crashed, possibly because of the heat of the Scottish summer (!). The SD card can't even be reformatted. I haven't lost anything of value, but I had recently set up a Gitea server, accessible on the web through a Cloudflare tunnel. The goal was to have a backup of my GitHub repositories and also to have a repository for proof-of-concept projects that don't need to clutter up my public GitHub account. I've got a spare SD card, but I'm tempted to upgrade to a Raspberry Pi 5, get an SSD card, and build a small home server.

I've also had some problems with Bascule. I wanted to add some new functionality, but before then I was keen to improve the unit test coverage in the project. Some of the changes had mind could be significant, and I didn't want to make them without the support of tests. But I've quickly realised that bascule is not testable.

With that setback, I decided to revisit Cantilevers - I know that project had good unit test coverage. So this weekend I've been reviewing the design, updating some libraries, and preparing for a new DynamoDB based metadata model. I've asked an AI agent to vibe-code a draft of that, though I don't intend to leave it all in the hands of AI. However, there's a weird bug in the web editor that I can't replicate in local dev. I decided that I needed to properly separate dev and prod environments, by creating new cloud stacks in CDK. That is not going well. I'm having trouble unlinking some Cognito and Cloudfront resources, and have broken Cognito entirely. I may delete everything and start again.

Other technology failures:

  • The Wifi adaptor in my Lenovo laptop keeps crashing, disconnecting me from the network. The finger print reader doesn't work any more either.
  • My big clock in the living room stopped working; replacing the battery has not helped.
  • There's a bug in my Amber phone application which seems to have got worse with the latest Android release. I must investigate that.
  • One of the keys on my piano doesn't work (it's the lowest note in Für Elise)