🔨 GSAP

Another JavaScript animation library. Has some interesting features that might be pertinent for a project I’ve been toying with in my mind.

It’s 2025. Why am I still not writing down thoughts I had in the shower that I knew I wanted to remember? 🤦

The Alluring Trap Of Tying Your Fortunes To AI

It’s when the tools stop working the way you expect that you realise the full cost of what you bought into.

Devlog: Dialogues

A post describing a playful dialogue styling feature, inspired by rubber-duck debugging, and discusses the process and potential uses for it.

Bluesky needs a bookmarking feature. It took me a while, but I’ve grown to bookmarking posts in Micro.blog and Mastodon that I’d like to revisit in the future. Extra points for having a public API/RSS feed for those bookmarks.

On AI, Process, and Output

Manuel Moreale’s latest post about AI was thought-provoking:

One thing I’m finding interesting is that I see people falling into two main camps for the most part. On one side are those who value output and outcome, and how to get there doesn’t seem to matter a lot to them. And on the other are the people who value the process over the result, those who care more about how you get to something and what you learn along the way.

I recently turned on the next level of AI assistence in my IDE. Previously I was using line auto-complete, which was quite good. This next level gives me something closer to Cursor: prompting the AI to generate full method implementations or having a chat interaction.

And I think I’m going to keep it on. One nice thing about this is that it’s on-demand: it stays out of the way, letting me implement something by hand if I want to. This is probably going to be the majority of the time, as I do enjoy the process of software creation.

But other times, I just want a capability added, such as marshalling and unmarshalling things to a database. In the past, this would largely be the code copied and pasted from another file. With the AI assistence, I can get this code generated for me. Of course I review it — I’m not vibe coding here — but it saves me from making a few subtle bugs and some pretty boring editing.

I guess my point is that I think these two camps are more porous then people think. There are times where the process is half the fun in making the thing, and others where it’s a slog, and you just want the thing to be. This is true for me in programming, and I can only guess that it’ll be similar in other forms of art. I guess the trap is choosing to join one camp, feeling that’s the only camp that people should be in, and refusing to recognise that others may feel differently.

Very happy with how this evening has panned out. 🇦🇺

Free business idea for anyone: I see lots of people around the polling booth with dogs. I don’t believe dogs are allowed inside, so they must be walking them. But they’ll need to vote eventually, and if the queue is small, maybe they’ll think it’s worth voting now.

So, here’s the pitch:

Stand outside the front along with those handing how-to-vote cards, and offer to look after their dogs while they go in to vote. I’m not sure you can charge much for the service — voting usually takes around 5-10 minutes if the queue is small — and it might be more community minded if you just offer to do it for nothing. But maybe you can earn $10 for standing around half-a-day? Buy a democracy sausage and coffee for that.

At the cafe. Polling station is directly across the road and will open in a few minutes. Already a queue of people waiting to vote. Party banners on the fence, people with how-to-vote cards at the ready. Hardest decision I have before me is if I should join them once I’ve finished breakfast. But the barbie’s not been wheeled out yet and I’ve not organised anything for lunch.

Lot of welcomed news from the open-source realm: Redis is moving back to an OSS license, and NATS has settled their dispute with CNCF. That’s good news for users of these packages. But some doubt remains. The reason for why they turned to commercial licenses still seems largely unanswered to me.

The journey to being good at parkour begins with a single step.

Been enjoying some remixes that Anders Enger Jensen have released recently: Dopamine, and I Believe. Very different styles but great listening if you like electronic music.

Been listening to Elton John for the first time in a while. What’s remarkable is how many of his songs just end after the last chorus. No coda or outro; just in and out, wasting no time. Quite a contrast to what I usually listen to.

Even without considering AI, it’s amusing to consider how complicated modern software systems are that the developers themselves don’t know everything about them. A true beast of their own creation, where they’re left with suggestions on how it’ll behave if some particular thing were to happen.

Made a fool of myself after congratulating someone on a significant life event, to which they politely reminded me that not only did I already congratulate them a couple of weeks ago, but I got certain key details about this event quite wrong. And you know what: the world didn’t end. Other than feeling a little silly, I left the encounter just fine (it helps that they were super nice about this faux pas). So I’m noting this to myself for next time I’m in a situation where I’m too shy to say anything to anyone.

While we’re talking about schema changes and generated code, here’s some more advice: don’t add any generated code into shared libraries. These libraries will change less frequently than the schema the code is generated from, and when you include such libraries in services that also generate code from these schemas, you’ll get namespace conflicts.

The generated code should only exist in the service that contains the build targets to generate them. That’ll mean duplicated code across the code base, but that’s not a big deal. After all, it’s not like you’re hand-rolling this code.

Merge Schema Changes Only When The Implementation Is Ready

Integrating schema changes and implementation together before merging prevents project conflicts and errors for team members.

“Get out more” goal for April failed. ❌

Oh! April just when by too quickly, and much of it was filled with family events that it left me socially tired. Fortunately it’s looking like May will be quieter so will try to get back on this horse.

I seemed to have developed some sort of condition where I hear American podcasters say Instagram, and it sounds like they’re saying “Insta-Graham.”

Near the start of the pandemic, I dropped my cutting board onto the tiled floor and it developed a split along the surface. This evening, five years later, that split finally separated apart. Not a bad run actually. And the board itself is still usable, it’s just a little smaller.

Auto-generated description: Two rectangular wooden boards are placed side by side on a green surface.