Day 12: tranquility
Part of a walk I occasionally do, near Macedon. There’s nothing special about this particular spot, but I always feel at my calmest here. #mbmay

It’s developer conference video watching time again! 🙌 The Google I/O videos are starting to come out, so I’ll be switching my TV viewing to these for a few weeks. Once I’ve gone through those, it will be time for the WWDC videos.
Failing to keep things simple in the software designs I’m responsible for seems to be a problem I keep running into. I’m always coming up with designs that are more complicated than they need to be, and once they come up for review, they always seem to be rejected for something much simpler that can get the immediate job done in a shorter amount of time.
Not that I’m offended by that: I don’t want my team building something more complicated than it needs to be. I’m just curious as to why I keep doing this. My current theory is either that I’m prioritising future extendability over immediate needs — which sort of goes against the idea of “you ain’t gonna need it” — or that I’m bored and it’s just an attempt to put together a design that seems interesting. I suspect that it’s a little of both.
Day 11: maroon
#mbmay

Feed Rules In Broadtail
Generally, when there’s a video that I’m interesting in watching, I take a look at Broadtail to see if it’s available. When it is, I go ahead and download it.
However, some videos take a long time to download — we’re talking 10 hours or so — and they’re usually published when I’m not looking, like during the night when I’m asleep (thank’s time-zones). So I’d thought it would be nice for Broadtail to kick off the download for me when the video shows up in the feed.
So I’ve added Feed Rules to do this.
Feed rules are very simple automations that happen when new items are found in during the RSS feed poll. When the video shows up in the feed, and matches the rule condition, Broadtail will perform the rule action for that video.
Feed Rules are added as a new sub-section in “Settings”, which itself is a new top-level section of the app (the “General” sub-section is empty at this stage).

Feed Rules consist of a name, whether the rule is active, a set of conditions, and a set of action. A feed item will need to match all the conditions of the rule in order for the actions to be performed.

The conditions of a feed rule touch upon the following properties of a feed item:
- The feed in which it appears in. This can be set to “any” to apply the rule to all feed items.
- Whether the title matches a given string. The match rules are similar to the searches in the feed item list views, which are appearance of each of the space separated tokens somewhere in the title (in any case) with phrases appearing as quoted strings.
- Whether the description matches a given string.
If a feed item matches all the conditions, Broadtail can perform the following actions for the feed item:
- Start a download of the video
- Mark the feed item as a favourite
There might be more conditions or actions added in the future. So far this seems to be the bare minimum to make the feature usable.
This week’s earworm: TUNIC (Original Game Soundtrack) by Lifeformed × Janice Kwan.
Favourite track: To Far Shores. 🎵
Day 9: bloom
A bunch of bloomin’ wattles. #mbmay

I use to enjoy reading tech blogs, like the ones from Slack and Shopify, that talk about some new framework or how they solved a certain problem. But now, when I look at them, I just feel exhausted.
Day 8: union
Had some trouble with this one today, so I thought I’d hit it up in the textbooks. #mbmay

Managed to setup Wireguard VPN on my home network this morning so I can remote in when on the road. Very simple setup at the moment: only a single host is accessible and no DNS or internet routing. But quite pleased with it, given my lack of experience in network administration.
Day 7: park
The park in Benalla, taken last month during our drive to Canberra. #mbmay

Imagine that there’s an open source project that has some modest traction but only one maintainer, and that maintainer wants to make a small change to fix something. Would it be okay for that maintainer to make that change directly on main
?
Not entirely a hypothetical question. 🤔
Day 6: silhouette
Photo taken by my boss in 2014 while we were in the Cook Islands for work. #mbmay

Day 5: Earth
One of the first photos from Himawari-8, a JMA weather satellite that went online while I was working at the Bureau of Meteorology. The images it produced pushed our visualisation tools to the limit, but boy, they were absolutely stunning. #mbmay

(source)
The Podcast Favourites App
In today’s issue of “useless apps that nobody but me would want to use”, I’ve managed to get a version of the Podcast Favourites app built and deployed. I’ve been using it for the last few weeks and it works quite well.
Here are some screenshots of it, starting with the main screen you see when you log in:

As you can probably guess, I listen to a lot of ATP. 😁
Selecting one of the feeds will bring up the favourites of that feed.

Each favourite has the name of the episode, the start time (which is hidden in the listing but editable when clicking the pencil icon) and a brief description that is usually used to explain what the clip is about. The name and artwork are retrieved from the podcast RSS feed, and the description can be whatever you want.
Clicking the play button will bring up the in-browser player.

There’s no scrubber, but you can go back and forwards 30 seconds by clicking the relevant button, or by pressing <
and >
on the keyboard. Pressing space will toggle play and pause. Most of this I took straight out of Alto Catalogue, but moved it to the bottom of the page much like the Pocketcast web-player.
So far I’m reasonably pleased with it. Honestly, it’s probably not something that pushed me from a development sense. More like something that I’d like to use myself. And it’s far from perfect: there are a few weird navigation links at the moment, and some ugly UI. But it does the job I need it to do.
I probably won’t spend any more time on it. If I do, it would be to get the mobile version of the web-app styled correctly.
Day 4: thorny
This plant was less thorny than it once would have been, although there’s at least one thorn that those dethroning it missed. #mbmay

Day 3: experimental
An experimental Arduino sketch, built using Tinygo, to see if I could get something displayed on the LCD. #mbmay

Have finally got an approach for producing signed and notarised MacOS apps that is invokable from the command line and that consistently produce archives that work. Incidentally, the next version of Feed Journaler has been released and is now available.
Those that say “keep your user documentation up to date, not only for others but for yourself in the future,” are absolutely correct. You will forget, and you will need to go through your old code to remember how your tool works. Might as well update the docs while you’re at it.