State election today. Number of people making their commitment to the process quite early. #mbnov

Massive delay to my flight on the weekend. What was originally a morning departure is now an evening one. But I think the new itinerary actually works out better than what it was so I’m actually quite happy about it.
Revived my silly little online finska scorecard and gave it a new domain name: finska.fun. This is in preparation for the summer, where playing a game or two of finska is becoming a bit of a ritual. #mbnov
I’ve been approaching Microblogvember by taking the prompt and writing a post around it, which results in posts that are a bit forced. A better way might be to write a regular post that includes the prompt. That way I retain my usual relaxed attitude towards posting here. #mbnov
You’d think I’d have a post with the word update in it. I use “update” at work all the time: apply this update to update the database and push the update. But racking my brain over the last hour or so, I couldn’t come up with an update with an “update”. #mbnov
๐บ The Computer Programme (1982)
Discovered from reading this Ars Technica article about the history of ARM. Was commissioned by the BBC in the early 1980’s to teach the British public about home computers. Found it to be quite charming.
Back home from Canberra. But only for a few days and then Iโm off to the US. Should be good but Iโm not looking forward to that 14 hour flight across the Pacific.
I hate days that involve airports or air travel in any capacity. Not so much the actual flying part; that’s all fine. It’s just all the things around timing or rendezvous that give me such anxiety. Very tricky thinking about anything else.
Typing in “graze” into Google Photos returned this photo. Conveniently, this was taken six months ago to the day. #mbnov

Nee Audax Toolset
I’ve decided to retire the Audax Toolset name, at least for the moment. It was too confusing to explain what it actually was, and with only a single tool implemented, this complexity was unnecessary.
The project is now named after the sole tool that is available: Dynamo-Browse. The site is now at dynamobrowse.app, although the old domain will still work. I haven’t renamed the repository just yet so there will still be references to “audax”, particularly the downloads section. I’m hoping to do this soon.
I think I’m happy with this decision. It really now puts focus on the project, and removes the feeling that another tool had to be built just to satisfy the name.
Oof, scrum ceremonies really take it out of me. 3.5 to 4 hours of meetings, usually hosted by me and with me doing all the talking. Really kills my voice.
Rocking my super cool hat and jacket ensemble this morning. We’re a couple of weeks from the high UVs of summer so I wear the hat whenever I’m outside. But it’s really cold this morning and the wind feels like ice so the jacket had to come out as well. Trendy. ๐ค #mbnov

GitHub Actions and the macOS Release
I’m using Goreleaser to build releases of Audax tools, since it works quite well in cross-compiling a Go program to various OS targets in a single run. I use this in a GitHub actions. Whenever I create a tag, the release pipeline will kick-off a run of Goreleaser, which will cross-compile Dynamo-Browse, package it, and publishing it to GitHub itself.
Recently, I found a bug in the MacOS Brew release of Dynamo-Browse. When the user tries to press c to copy the current item, the entire program will crash with a panic. I tracked the cause to the clipboard package that I’m using. Apparently, it requires Cgo to be usable on Darwin, and it will panic if CGO is not enabled1. But the GitHub action I was using was an Ubuntu runner. And since the package required some symbols from Foundation, which was only available on Darwin, I couldn’t just enable CGO.
However, I did learn that GitHub Actions actually supports MacOS runners. I don’t know why I didn’t think they wouldn’t. I guess, much like most of my experience with anything Apple, it would come at some sort of price. So you can imagine my delight in learning about this. And the first thing I did was try to use them in the release pipeline.
I first tried blindly switching from ubuntu-latest
to macos
. Sadly, it didn’t work as expected. It Turns out that the macos
runners do not have Docker installed, which broke a number of the actions I was using. And since the original ubuntu-latest
runner worked well for the Linux and Windows releases, I didn’t want to just junk them.
So what I did was split the release pipeline into three separate jobs:
- The first, running on
ubuntu-latest
, builds Audax tools and runs the tests to verify that the code is in working order. - The second, also running on
ubuntu-latest
, will invoke the Goreleaser action to build the Windows & Linux targets. - At the same time, the third, running on
macos
, will install Goreleaser viabrew
and run it to build the MacOS target.
The resulting pipeline looks a little like this:
name: release
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
services:
# localstack Docker image
steps:
# Checkout, build test
release-linux:
needs: build
runs-on: ubuntu-latest
steps:
# Checkout
- name: Release
uses: goreleaser/goreleaser-action@v1
if: startsWith(github.ref, 'refs/tags/')
with:
version: latest
args: release -f linux.goreleaser.yml --skip-validate --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release-macos:
needs: build
runs-on: macos-12
steps:
# Checkout
- name: Setup Goreleaser
run: |
# Can't use goreleaser/goreleaser-action as that requires Docker
# So need to launch it and run it using the shell.
brew install goreleaser/tap/goreleaser
brew install goreleaser
- name: Release
if: startsWith(github.ref, 'refs/tags/')
run: |
goreleaser release -f macos.goreleaser.yml --skip-validate --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_GITHUB_TOKEN: ${{ secrets.HOMEBREW_GITHUB_TOKEN }}
I’ve only used this to make a small maintenance release that fixes the clipboard panic problem, and so far it seems to work quite well.
After doing this, I also learnt that there’s actually a Goreleaser Docker image which could theoretically be used to cross-compile with CGO. I haven’t tried it, and honestly it sounds like too much trouble than it’s worth. Rather keep things simple.
-
This is where I complain that the function that is panicing actually returns an
error
type. Instead of panacing and bringing down the whole program, why not just return an error? ↩︎
Enjoyed another trip to Tuggeranong this morning. Went to the same cafe, ordered the same breakfast. I think I even sat in the same seat. It’s almost like a repeat of last time. #mbnov

๐ The Talk Show: Grand Scale Foot-Shooting
A fascinating episode of the Talk Show. Couldn’t put it down, metaphorically speaking.
The view from Mt. Ainslie.

I got nosteligic for OโReilly Books Online a few minutes ago. No novels there, just tech books. But wow, was it a great service. Large range of titles, decent prices, usually a sale going on, and no DRM. Shame that they shut it down. #mbnov
Free idea for anyone interested in building an Obsidian plugin: a calendar picker which will open up an arbitrary daily note, either in the past or future. Would be useful for making notes on upcoming events.(There may already be a plugin for this, I haven’t actually looked).
EDIT: Thanks to @jayeless for sharing this Calendar plugin which does exactly what I was hoping for.
What the fridge happened to Tumblr?! It took me 15 minutes to find the RSS feed of a blog there.
To save everyone the pain from trying to find the answer by browsing crappy websites full of ads, the RSS feed of a Tumblr blog is:
https://<user>.tumblr.com/rss
This also works with profiles in the form tumblr.com/<user>
.