I’m wondering if peoples love of a piece music has less to do with the music itself and more to do with positive associations with it. By today’s standards Phaedra should be completely unlistenable, and yet it’s remains one of my favourite albums in my collection, chiefly because of associated memories of listening to it amongst beautiful scenary.

Then again, it’s also a great album from the technical sense. Despite being very abstract, there’s still a lot there to tickle your ear, so to speak.

So maybe it’s a bit of both.

Trying out the image generator in ChatGPT (which I think is just DALL-E). A few friends of mine will get this reference.

DALL-E image generated using ChatGPT. Prompt: an image of a griffin playing bocce in the park with two other people.
Prompt: an image of a griffin playing bocce in the park with two other people.

I’ve been watching a lot of retro-computing YouTube videos recently and I find it amazing to think that much work involving a computer back then was to prepare something destined to be printed out. How things have changed. I can count on one hand the number of times I’ve used a printer this year.

Found this on the footpath during my afternoon walk (almost too late I might add). I’m guessing it’s a blue-tongue, based on its size and markings.

Suspected blue-tongues lying in the sun on a footpath

One last day trip today. Went down to South Gippsland to do part of the Great Southern Rail Trail. Entered the trail at Koonwarra and walked for an hour towards Meeniyan, before turning back.

The rail trail path crossing a road, with a road sign saying Great Southern Rail Trail arranged in a St Andrews Cross to resemble a level crossing cross-buck The rail trail running through a glade surrounded by pine trees

This is an older part of the trail, so unlike at Leongatha, there’s not a lot of rail infrastructure remaining. There are still some old telegraph poles though, which makes for interesting photo subjects.

A run-down, disused, telegraph pole with a stay thats leaning to the right An upright disused telegraph pole beside the trail on a bridge. Some trees and green hills are in the background

The trail now goes all the way to Loch so after lunch I entered the trail there and walked along it for another hour or so. You can get to it by crossing the suspension bridge at the memorial reserve.

The entrance of a suspension bridge, with the towers roughly 3-4 metres high, and an information plaque to the left. The scene is in shade from what might be oak trees The rail trail approaching the South Gippsland Highway which crosses the trail and a creek via a bridge The trail in an eucalyptus forest

The day was a little warm but otherwise very nice. Some stormy weather was beginning to form near the end. I managed to stay dry, but it slammed into me during the drive home.

It’s incredibly difficult to get a good photo of a Crimson Rosella. They’re quite skittish. But managed to get this shot before it flew away.

Crimson Rosella perched on a metal rail

I’ve started using Notion for my personal notes. It’s still early days, and I haven’t moved all my old notes from Obsidian yet, but so far I’m finding it quite good for this. I still use Obsidian for work but I think the more structured features that Notion has, like databases, etc. could come in handy. It’s a little closer to my ideal note taking app, which allows for both structured and unstructured data.

Structured features begets structured notes so I’m trying to put a bit more effort into arranging my notes than I did in Obsidian. I’ve put together some sections, sort of in a Johnny.decimal lite style, where the more permanent notes will live:

Screenshot of sections in Notion, organised in a Johnny.decimal style, with Administration, Projects, Work and Personal as top-level major sections

Being able to set coloured icons and header images for notes is a nice touch. Sort of allows me to re-live the days of Google Inbox when they added a nice header image for travel documents:

Header image of a note about Canberra, showing the War Memorial

I’m also quite impressed with the mobile app. I used it yesterday when I was out of mobile range, and not only was I still able to access my most recent notes, I was able to add new notes which eventually got synced when data was available. I didn’t test this too much and I really should as it would be good to know whether I’ve got access to most (all?) of my notes off-line.

I do miss Obsidian’s Daily Notes though. That was a nice feature for the more incidental things. But truth be told, it ended up being a dumping ground for notes that really should’ve been filed somewhere. Maybe a nice Notion feature is to add daily notes that will “disappear” after two weeks unless their moved into another section. That way you’re forced to file it or it’ll get archived/deleted.

Dare I say that it’s like “stories for notes”1? 😉


  1. Maybe there should be a “stories for jokes about stories”: any joke referencing a feature that was popular five years ago should automatically get deleted. 😄 ↩︎

🔗 Please, Expose your RSS

100% this!

It was only a year or so ago that I found out that RSS discovery was a thing (coincidentally-but-probably-not-really it was also a year or so ago when I first read Manton’s book which mentions this).

Before that, if there was a site I wanted to subscribe to, and there was no RSS link on the page itself, I wouldn’t bother. Apart from thinking that I needed the link to the RSS feed to subscribe, I also got burned so often by sites that didn’t even have RSS that I just defaulted to assuming there was no way to read their site in my feed reader.

Browsers are getting better at surfacing this though. Vivaldi now shows an RSS indicator in the address bar when it detects that the site has one. But it’s small, and I’m usually not looking at the address bar after entering the URL, so it’s easy to miss. Really, nothing beats putting a link on the site itself.

Now, if you escuse me for a second, I just need to check that I’ve got a link to an RSS feed on my site…

Day trip to Mornington Peninsula. Did the Bushrangers Bay to Cape Shank Lighthouse walk, the Main Ridge walk, and the King Falls Circuit walk (known to me as the “bridge walk”). Conditions were pretty good.

An elevated photo of a beach with the sea on the right, a cliff in front, a road going along the ridge, and a green field on the left A path through a forest of eucalyptus trees A path through tea trees

I’m more than happy to give directions to anyone who asks, but afterwards I always fear that the directions I give end up leading them astray or leave them more confused than they were. Apologies in advance to anyone I do this to (like the family that asked where the rock pools were earlier today).

Defaults

I see that Gabz, Robb, and Manique — along with many others — have posted their defaults after listening to Hemispheric Views 097 - Duel of the Defaults!, which was a really fun episode. I thought I’d do the same.

  • Mail Client: Fastmail. Web-app on the desktop and app on mobile
  • Mail Server: Fastmail
  • Notes: Obsidian for work. It was Obsidian for personal use but I’m trying out Notion at the moment.
  • To-Do: Obsidian/Notion (todos go in as notes)
  • Photo Shooting: Android camera app
  • Photo Management: Google Photos
  • Calendar: Google Calendar
  • Cloud file storage: Google Drive
  • RSS: Feedbin. I mainly read it with NetNewsWire but I also use the web-app.
  • Contacts: Android contacts app.
  • Browser: Safari, Vivaldi
  • Chat: Mainly still use Android Messanger for SMS but started using WhatsApp more
  • Bookmarks: Linkding running on Pikapods.
  • Read It Later: None, but if I were to start, I’d probably try out Feedbin’s RIL service.
  • Word Processing: n/a
  • Spreadsheets: Google Sheets, Numbers (I don’t do a lot of spreadsheeting)
  • Presentations: Keynote, but giving iA Presenter a try at the moment.
  • Shopping Lists: Google Keep
  • Meal Planning: n/a
  • Budgeting & Personal Finance: n/a
  • News: ABC1 News, in a web-browser
  • Music: Alto (my own music app), Spotify
  • Podcasts: Pocketcasts
  • Password Management: 1Password
  • Photo Editing: Google Photo
  • Weather: Bureau of Meterology website.
  • Social Clients: Tusky (Mastodon)
  • Code Editor: GoLand (Jetbrains in general), Android Studios, or XCode
  • Text Editor: Nova
  • Hard Quiz Expert Subject: Probably the music of Mike Oldfield.

Scored myself based on the rules of the game and came up with 44 points. It was a little tricky as I’ve got both feet in separate ecosystems.


  1. Australian Broadcasting Cooperation ↩︎

Also got a bit of train spotting in as well. I parked at Kyneton station in the hope of seeing a train go by. Wish I could say my timing was strategic but in truth I was just lucky.

Enjoyed the day in Kyneton walking along the Campaspe River trail.

The Campaspe River, twisting towards the Kyneton town under a blue sky. The photo was taken from a bridge.

🔗 Google is moving Shopping List and other notes into one app to worry about, Keep

This is somewhat good news, as Keep is a decent note-keeping app. But it’s also concerning because there’s now one major place to keep your data that Google might one day abandon.

It’s striking seeing this line in the first paragraph. I use Keep for my shopping list. It works well, and it’ll be a shame if Google were to shut it down. But there’s also a risk of them being too focused on the app, where they cram some useless AI feature into it. Notion does this, and I wish there was a way to turn it off.

Yay, six day weekend! Gonna get my day walks in. 🌲

While poking through some old GarageBand projects I came across this track I wrote a few of years ago. I didn’t think much of it of the time, but over the last day or so, it’s started to grow on me.

I’ve been asked to prepare a presentation for work, which means I have an opportunity to use iA Presenter. It’s clear that I’ll have to unlearn my Powerpointing ways.

One thing Slack has recently started doing is formatting CSV snippets as tables. This is a great feature. Being able to paste a CSV export directly into a channel, without having to format it as an ASCII-art table to make it readable, is really nice.

Will try not to make too long a comment about how I generated a report for someone, with created and updated dates for each row, and the first question they asked me is which row is the most recent one. 😒

Why I Like Go

This question was posed to me in the Hemispheric Views Discord the other day. It’s a bit notable that I didn’t have an answer written down for this already, seeing that I do have pretty concrete reasons for why I really like Go. So I figured it was time to write them out.

I should preface this by saying that by liking Go it doesn’t mean I don’t use or like any other languages. I don’t fully understand those that need to dislike other languages like they’re football teams. “Right tool for the job” and all that. But I do have a soft-spot for Go and it tends to be my go-to language for any new projects or scripting tasks.

So here it is: the reasons why I like Go.

First, it’s simplicity. Go is not a large language, and a large majority of it you can keep in your working memory. This makes Go easy to write and, more importantly, easy to read.

It might seam that a small feature set makes the language quite limiting. Well, it does, to a degree, but I’d argue that’s not a bad thing. If there are only a couple of ways to do something, it makes it way easier to predict what code you’re expecting to see. It’s sort of like knowing what the next sentence will be in a novel: you know a piece of logic will require some dependant behaviour, and you start thinking to yourself “how would I do that?” If the answer space is small, you’re more likely to see what you expect in the actual code.

But just because Go is a deliberately small language doesn’t mean that it’s a stagnant language. There have been some pretty significant features added to it recently, and there are more plans for smoothing out the remaining rough edges. It’s just that the dev team are very deliberate in how they approach these additions. They consider forward compatibility as much as they do about backwards compatibility, being careful not to paint themselves into a corner with every new feature.

Type parameters are a great example of this. There were calls for type parameters since Go 1.0, but the dev team pushed back until they came up with a design that worked well for the language. It wasn’t the first design either. I remember one featuring some new constraint-based constructs that did about 80% what interfaces were doing already. If that were shipped it would’ve meant a lot of extra complexity just for type parameters. What was shipped isn’t perfect, and it doesn’t cover every use case type parameters could theoretically support. But it made sense: type parameters built on interfaces, a construct that already existed and was understood.

This, I think, is where C++ fails to a huge degree. The language is massive. It was massive 30 years ago, and they’ve been adding features to the language every few year since, making it larger still. I see Apple doing something similar with Swift, and I’m not sure that’s good for the language. It’s already quite a bit larger than Go, and I think Apple really should curb their desire for adding features to the language unless there’s a good reason for doing so.

The drive for simplicity also extends to deployments. Go is compiled to a static binary, one that is extremely portable and could be easily deployed or package as you so desire. No need to fluff about with dependencies. This is where I found Go having a leg-up over scripting languages, like Python and Ruby. Not because Go is compiled (although that helps) but that you have less need to think about packaging dependencies during a deploy. I wrote a lot of Ruby before looking at Go, and dealing with gems and Bundle was a pain. I’m not a huge Python expert to comment on the various ways that language deals with dependencies, but hearing about the various ways to setup virtual environments doesn’t fill me with confidence that it’s simple.

And I will admit that Go’s approach to this isn’t perfect either. For a long while Go didn’t even have a way to manage versioned dependencies: they were all lumped into a single repository. The approach with modules is better, but not without some annoyances themselves. Any dependency that goes beyond version 1 requires you to change the import statement to include a vX, an unnecessary measure if the version change is backwards compatible. That’s not even considering packages that avoid this, and are forever on version 1 (or 0).

But since moving to modules my encounters with package dependencies issues remains quite rare, and once you’ve got the build sorted out, that’s it. No need to deal with packaging after that.

And I’d argue that Go rides that sweet-spot between a scripting language like Python and Ruby, and a compiled language like C (maybe Rust, but I know very little of that language to comment on it). It’s type safe, but type inferences make it easy to write concise code without excessive annotations everywhere. It’s compiled to an executable, yet memory is managed for you. I won’t talk about how Go does concurrency, but after dealing with Java threads for several years, using them are a joy.

I should probably balance the scale a bit and talk about areas where I think Go could be made better. The big one is error handling. While I do like the principals — that errors are values and can be handled as such — it does mean a lot of boilerplate like this:

foo, err := doThis()
if err != nil {
  return err
}

bar, err := doThat(foo)
if err != nil {
  return err
}

baz, err := doAnotherThing(bar)
if err != nil {
  return err
}

To the Go teams credit, the are looking at improving this. And I think there’s enough prior art out there for a solution that’ll look pretty nice without having to resort to exceptions. Maybe something like Swift’s guard statement, that can be used in an expression.

And yeah, other areas of Go, like it’s support for mobile or GUI-style programming and lacking a bit. That could probably be plugged with third-party modules to a degree, although I think because Go is not an object-orientated language, the seals won’t be perfect (take a look at Go’s implementation of QT to see how imperfect Go maps to a toolkit that assumes objects). And some gaps need to be plugged by Google themselves, like with mobile support (they do have something here, but I’m not sure to what degree they’re being maintained).

But I’m sure most of these issues are surmountable. And no language is perfect. If Go doesn’t work for a situation, I’ll use Java or Swift or something else. “Right tool for the job” and all that.

So these are the reasons why I like Go. And I think it all boils down to trying to keep the language simple while still being useful. And as far as my experience with Go is concerned, those maintaining it are doing a pretty stellar job.