• Maybe it’s just because my expectations are shaped with my usage of Go, but I pretty much expect any modern language designed for writing non-trivial applications to have unit test support built-in nowadays.

    Which is why it’s a bit surprising to see a language as opinionated as Elm that doesn’t include a core test package and test runner out of the box. I had to download a third-party test runner and install a non-core package to write and run unit tests. Not difficult to do, but still quite an uncharacteristic, JavaScript-esc approach to supporting this aspect of development in an otherwise integrated language toolkit.

  • Finally got a chance to say hello to Evie, the young border collie, this morning. She and her human are regulars at the cafe I go to, so I see them quite frequently from afar. But this was the first day she came to my table for a pat.

    A border collie with her tongue out next to a table at an outdoor seating area.
  • πŸŽ₯ Elm Connections #3: Group Matching

    In which I work on “categories”, the model and logic that deals with the groups the player is to “connect”, plus find my way with how sets work in Elm.

  • πŸ”— Apple Watch Series 9 and Ultra 2 Ban Takes Effect; Apple Appeals

    The ITC’s ruling was subject to a potential veto by U.S. President Biden by December 25th, but today, the Office of the U.S. Trade Representative issued a statement that it has decided against vetoing the ITC ruling, meaning that the ruling is now final.

    It seems odd to me that Apple was expecting a reprieve from the White House over this patient dispute with Masimo. Issuing a veto looks like choosing one US company over another. Doesn’t seem like good political optics to me. Maybe it seemed to Apple it was worth a shot. πŸ€·β€β™‚οΈ

  • πŸŽ₯ Elm Connections #2: Starting The Playfield

    In which I continue work on a Connections clone in Elm by starting work on the playfield.

  • 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. Continue reading β†’

  • πŸŽ₯ 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).

    EDIT on 17 Nov 2025: I’ve since taken my PeerTube instance down.

  • 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. Continue reading β†’

  • 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.