If there’s one thing I learnt from all the database querying I’ve been doing today, it’s that all the parallelism in the world doesn’t come close to performing as well as just being physically close to the data.
Exploring Godot to see if I could use it to make a card game. I got this far:

Yep, I’m on a roll. π
Might need to work through a couple Godot tutorials first, just so that I understand the basics.
To remember for next time I open-source a package: the README should have an example on how the package works front and centre. It doesn’t have to be a large, and probably shouldn’t be complicated, but it should show your package doing something useful.
Installation instructions are helpful, but unless they differ from every other package for a language or framework, they’re not super necessary. Your users can probably guess as to how to install your package if they’ve done it before.
But they’ll have no idea how to use your package. What do you need to do to initialise it? What are the major types and methods? What’s the minimum you need to do to get something working?
An example demonstrating these should give enough information about how the package work and how it’s structured. At the very least it will show what the more important types and attributes are, so the user can use that as a launching place while browsing the documentation. But sometimes, if it’s a client for something that the user knows what to expect, a user could probably gauge enough about how it works from the example itself.
So, examples. Have them. Front and centre.
I wonder if a source of my distraction is thinking I can context switch while waiting for something to finish, like a build or a deploy. What actually happens is that I focus on the new task, and completely forget to monitor the thing that needs to finish. This wouldn’t be a problem if it were just me, but more often than not, I need to notify a coworker that the build is ready, so they can test it. I eventually remember to do this, but it’s usually after a longer delay than it would’ve been if I had just waited. And it means my focus is pulled from the new task, resulting in another context switch.
It might be worth trying to avoid context switching altogether, and just wait for things to finish. It does mean more time sitting around monitoring things, but I wonder if it would be faster in the long run.
Finished Mind Over Magnet. It’s been a joy watching this come together over at GMTK, and it’s wonderful to see it finally released. Such a fun and delightful game. Two thumbs up: ππ
Might need to move off Spotlight as a launcher. Since upgrading to Sequoia, Spotlight has had trouble indexing the applications I use, blunting it’s usefulness as an application launcher.
So I guess I’ll need to investigate an alternative. Might give Raycast a try.
Gonna complain about the weather for a minute. Meant to be very hot today: 41Β°C. So despite how awful the weather will be, you try to make the most of it and get your washing done. But does the weather co-operate? Well the band of rain wetting the doona I just put out is not. Frickin’ weather!
I occasionally dip into the Bluesky Discover feed, usually when I’m up to speed with RSS and Mastodon. It doesn’t take long for my hackles to be raised. A lot of discussion about US politics over there. I suppose I could shape it by following people but I’m not sure I’d like to spend the time.
Tried logging into Steam for the first time in years. Couldn’t recover my existing account. Gave up after 5 CAPTCHA attempts and 2 SMS messages and just created a new one.
I’ve also come around to the idea that user names must die. At this point all the decent login names β including my old one β have been taken, and you’re left with one, with numbers or dashes. Ugh! Let’s just settle on email addresses.
Two weeks ago, I tried that GenChess thing that Google Labs released. When prompted, I asked for a chess set to be made with pieces resembling Australian birds. What it produced was a little underwhelming, but I was curious to know what Gemini itself could produce when prompted for a single piece: an image of a pawn shaped like a cockatiel.
Here’s the prompt:
Please generate a photo realistic image of a 3D pawn chess piece which looks like a cockatiel. The piece must look like it is made with wood. The image must be generated with a white background and with a parallel projection.
And here’s the result:

Not bad. Certainly better than what I could produce. And it’d be fun playing with such a set should one actually existed1.
It got me thinking as to what birds I’d choose if such a chess set were made in real life. My current idea is cockatiels as pawns, emus for kings (large and mobile, and important enough for such a role) and maybe cassowary as queens (also large and mobile, and actually quite dangerous in real life). I haven’t got positions for the other roles just yet.
-
Might be that such a set does. I haven’t actually looked. ↩︎
Spent the morning tidying up the categories on this blog. My first thought was, as it usually is, to build something to help me do this. But I ended up just doing it manually. I think was the right decision, as it proved to be quite a calming activity.
I have some thoughts on Manuel Moreal’s post on how linking out could result in server load:
If my site was big enough to cause problems, would then be my responsibility to be careful what I link to? [β¦] My gut reaction tells me that itβs not really my responsibility to worry about the way other people run their sites but maybe Iβm wrong and I should worry about that.
My view that if something online resonates with you, then it’s worth linking to. Not only are you spreading awareness of material you think is worth sharing, you’re giving signal to the creator that their material is resonating with others. To not do so, because you fear that a large amount of traffic might knock their server over feels like a decision made on too many assumptions about their hosting setup, or how they would react to such an event happing to them.
The stuff I post here barely goes anywhere, and I’m perfectly happy with that being the case. But there’s been a handful of times where things went wider and it’s always quite a thrill. I try to pay it forward by sharing links to things that I believe are worth sharing. To not, because I think it might cause an outage, feels like depriving others of that same thrill. Maybe “depriving” is too strong a word here, but it does feel like keeping something from them.
Using TLDraw at work and the inevitable “it would be cool if it did X” thoughts started entering my mind. But of course, adding X would lead to wanting Y, and it’ll eventually become bloated and cumbersome to use, eliminating the reason why I like using it. So no, it will NOT be cool if it did X.
πΊ House of the Dragon: Season 2 (2024)
Enjoying some chinotto. It’s a chinotto sort of evening me thinks.

Christmas party at work tonight. Normally I don’t go to Christmas parties, and of course, this year will be no exception. (The idea of an end of year party doesn’t really fly with me while there’s still quite a lot to do).
So apparently all the boorish, anti-social passengers take to public transport after 4:45. Didn’t get this behavior when I left work on time. π
I plan to integrate UCL into another tool at work, so I spent last night improving it’s use as a REPL. Added support for onboard help and setting up custom type printing, which is useful for displaying tables of data. I started working on the tool today and it’s already feeling great.

Would I pay $200 /month for ChatGPT Pro? π€
This morning I was thinking “no way,” but working through rebase conflicts got me thinking. If ChatGPT could trail through my Git history, and automatically resolve conflicts for me, that might be worth something. Maybe not $200 /month, but something.
If there’s one thing I’d like to see added to Go for 2025, it’s type parameter support on methods. It’s still not possible to do something like this:

Which is a real shame, as I’ve got some ideas on how I could use these. Building something like Java streams, for example.