For those that celebrate, a very Merry Christmas to you and yours; and a happy and safe holiday season to all.

A postcard with a photo with a kangaroo in a Christmas suit with a Joey with a candy cane, and a cockatoo with a scarf, with the message 'Merry Christmas' above the photograph and 'From lmika' below it

2023 Song of The Year

Well, believe it or not, my standing Christmas Eve Mass organ gig has come around once more1, so it’s time to decide on this year’s Song of The Year. This is the second post in this series, so please see last year’s post on what this nonsense is all about.

This year’s nominees are (not too many this year):

  • Wooden Ship, from Antarctica β€” Suit for guitar and orchestra by Nigel Westlake.
  • Penguin Ballet, from Antarctica β€” Suit for guitar and orchestra by Nigel Westlake. Not really a new track for me, but I’m including it here anyway as it’s been many years since I last heard it2.

And the winner is: Wooden Ship by Nigel Westlake πŸ‘

Album cover of the Australian Composers Series, 'Out of the Blue', by Nigel Westlake, performed by the Tasmanian Symphony Orchestra. Copyright the Australian Broadcasting Corporation

Specifically, the version played by the Tasmanian Symphony Orchestra and released by the ABC. This has been quite a special song for me this year and was pretty certain to be the winner for most of the year. Well, since first hearing it in May, there hasn’t been another one to top it. So bravo!

But that’s not to say there weren’t other tracks discovered this year. The honourable mentions:

  • The Last Place on Earth, from Antarctica β€” Suit for guitar and orchestra by Nigel Westlake. A good song, but a little too complex for me.
  • “Extremes”, from Music From the Private Life of Plants by Richard Grassby Lewis. Really wish I had a recent link to this (the only one I know of that works is one to a defunct music store, picked up by the Wayback Machine, that previously sold this album).
  • The Knight, from the Tunic OST by Lifeformed & Janice Kwan. Not a completely new album to me, but until now, I tended to skip this track.
  • Epic Grandpa, by Izioq.

  1. It’s the only gig on my calendar actually. ↩︎

  2. And to have at least one other nominee with what was ultimately going to be the winning song this whole year. ↩︎

πŸŽ₯ Elm Connections #1: First Steps

In which I record video of me building a Connections (or Conlextions) clone in Elm (while at the same time, have a go at editing video).

This new protected crossing was installed on one of my walking routes while I was away. It’s actually about time, as this rail crossing sits between two curves and with no warning of an approaching train, was actually rather dangerous. Plus, it’s always fun seeing new rail infrastructure installed.

A pedesterian rail crossing with feces and automated gates that will close when a train passes by. This is backed by suburban streets and trees.

Making some progress in learning Elm for building frontends. Started working on a Connections clone, which I’m calling “Clonections”. This is what I’ve got so far:

It’s been fun using Elm to build this. So far I’m liking the language. Of course, now I’ll have to come up with puzzles for this. 😐

Testing out a personal PeerTube instance for hosting videos. If you see a video of Ducks and Purple Hens, then it’s working (it’s a longer version of this video).

Evening arrival.

Airplane taxing at an airport with an orange sunset flaring near the nose.

Sunlight over south Canberra.

Aerial photo of a cloudy sunset over an urban area near the camera and hills in the distance, with sunlight streaming through the clouds and lighting the foothills.

Epic Feature Branch Redux

Trying a long term feature branch approach for something we need to do at work again. I’ve tried this before, with mixed results, and I rather not do it this way. But the alternative is feature flagging a significant part of the system, adding cruft that would never be cleaned up. At least this way, we have a chance to go in with a crowbar and just clear out the code we no longer need.

I’m kinda banking on the system we’re working on not changing from underneath us while we do this, which’ll hopefully make rebasing easier. But I’ll try to put in place some practices that’ll hopefully make the whole approach easier than last time:

  1. Rebase early, rebase often. I’ll try to rebase the epic feature branch from master at least daily, so as to reduce the divergence size from master near the end. It’ll also help with testing: we can be confident that what is being tested is close to what it would be if we were just merging to master as we work through tickets.
  2. No more keeping tickets in “Ready for QA” until others are ready. This was a big source of risk the last time we worked this way. Instead bring the tickets all the way through QA to just before release. We can’t actually release until the epic is done (otherwise, we need an epic feature branch at all), but that doesn’t mean we can’t deploy and test it in the non-prod environments.

Anyway, that’s the idea. Hope I’ll remember all this when I come back from Christmas break.

I don’t know when it’s started, but if you’ve generated some Go code from a gRPC schema, and you try to cmd + click on one of the generated symbols within GoLand, instead of actually going to the Go code, you’re sent to the Protobuf schema itself.

Usually cmd + click will just take you to the code defining that symbol, and in previous versions, it did for this generated gRPC code as well. This is a recent change, and it’s… less than useful, to me at least.

Fortunately, opt + cmd + click will take you to the actual generated code.

No, it’s no good. I’m turning off predictive text on my iPad. It just gets in the way too often, autocompleting phrases while I’m typing them out, resulting in extra letters that I need to clean up. I’m sure it works great with an on-screen keyboard, but it doesn’t for me and my hardware one.

πŸ”— Hardcore Software: //build It and They Will Come (Hopefully) (paywall)

I remember this Build conference. I was using Windows 7 at the time and it was exciting to see Windows 8 previewed like this. It was a major departure from what I was used to, and I was eager awaiting the Ars Technica reviews of the OS, the apps, and how things like contracts will work for developers.

But… it was an excitement I had for others. I was less than excited about the idea of seeing the desktop take a backseat to this brand new world of Metro and touch based interactions. I guess I was not the only one.

It’s quite a shame really. The devs at Microsoft clearly put a lot of work into re-enginerring the entire OS.

It looks like the early reviews of Apple’s Journal app from those who blog and journal already (in other words, those in the practice of writing regularly) is that the app is quite basic, and although the entry suggestions are nice, the writing experience is not as good as Day One. I guess that’s good news for Day One, in that there’s no risk of them being sherlocked.

But Automattic shouldn’t rest on their laurels. There are a few things I’d like to see them add to Day One, such as image captions (oh, I really wish for image captions) and maybe a nicer reading experience when you just want to browse your journal (the sidebar and editor just doesn’t work for me when I just want to browse the entries).

So, yeah, Day One position looks to be secure; but that’s no reason why it couldn’t be made better.

I’m still really enjoying Matthias Ott’s Own Your Web newsletter. I recommend checking it out, even if you’ve got a personal site. Each issue usually has some great links to other blogs and resources about maintaining a personal site.

I realise I’ve been posting a lot about Ivy, and not a whole lot about Archie. So to even the scales a little, here’s a video of Archie receiving a head scratch this morning.

Evening walk, with the currawongs out in force. This one was nice enough to let me take a photo.

Currawong in profile standing on grass

If you’ve checked out the 12 Days of Web (HT to @mandaris for sharing), and you were curious as to why popover is an attribute rather than a HTML tag, this section from OpenUI’s post about the feature explains the reason.

In short:

a content attribute allows behavior to be applied to any element

while maintaining semantics of that element:

Semantics are provided by elements, and behaviors are confered on those elements via attributes. This situation is exactly analogous to contenteditable or tabindex.

Yeah, okay. I can see why it was done that way.

Looking at the Elm language after reading this post from Jim Nielsen. Looks interesting, especially the model-view-controller pattern it’s uses for building web UIs. Yes, it’s not an approach that’s unique, and yes, it’s more-or-less the same pattern as one would use with React and Redux1. But I like how it seems baked into the language design. Not sure if that is was an accident (such a pattern generally works well with functional languages) or intentional, but the language seems quite suited for it. I’d be curious to try it out.

And that’s why I’ll never be rich: I’m not focused enough. One could argue that I don’t need to play around with another frickin’ technology, given that I’ve played with Stimulus, Svelte, and vanilla JavaScript recently; not to mention all the others I’ve tried. Best to use one and master it.

But curiosity, and my magpie need to look at new shiny things, just gets the better of me. Plus that elusive sense of trying to find that “perfect way” of building web-based UIs that I’m sure most JavaScript frontend devs are looking for, even with the knowledge that no such way exists.

Ah well. 🀷

No system design survives first contact with the user.

(with apologies to Helmuth von Moltke the Elder and Correlli Barnett, and probably a bunch of others).

Today, I was the user.

Conlextions #95

🟦🟦🟦🟦
πŸŸͺπŸŸͺπŸŸͺπŸŸͺ
🟨🟨🟨🟩
🟨🟨🟨🟨
🟩🟩🟩🟩

Solve Time: 2 minutes, 18 seconds

Argh! So close to a perfect score.