Some interesting links from linkage.lol that I want to note before accidentally closing my browser tab.

🔗 Blogging Resources Complements of Robert Birming
🔗 For Linkblog Fans

It’s also a site I’ve now subscribed to.

Another day trip, this time to Mt. Macedon (again. Yes I’m hitting the classics) 🌲

A gravel path leads through a grassy area lined with young trees toward a dense forest. A peaceful park setting features a gravel path, diverse trees, and a picnic table on a grassy area.

Phaedra, The lmika Track Arrangement

I recently learnt that the version of Phaedra I’ve been listening to for the past 15 years had not only the wrong track order, but also the wrong track names. This is not entirely surprising, given how this version was… ah, acquired.

But after learning what the order and names should’ve been, I think I still prefer my version. And yes, that’s probably because I’m use to it, but if the official album were to have these names and this order, I think it would actually work really way. I may go so far as to say that if I got a copy of the official album, I’d probably change it to match the version I been listening to.

In case your curious, here’s how the tracks are named in my version:

Official Version lmika Version
Phaedra Mysterious Semblance At The Strand Of Nightmares
Mysterious Semblance At The Strand Of Nightmares Phaedra
Movements Of A Visionary Sequent ‘C’
Sequent ‘C’ Movements Of A Visionary

I’m actually a little surprised that my version of Sequent ‘C’ is officially called Movements Of A Visionary and visa-versa. The name Movements Of A Visionary gives it a more mysterious feeling, which fits well with the small, soft, reverb-filled piece of music that it is. As for the track with has that name officially… well I just assumed the name Sequent ‘C’ made the most logical sense for a piece of music with a sequencer in the key of C. I don’t have an explanation for Phaedra or Semblance other than “long piece == long title,” but Phaedra just feels like a title that fits better for a piece of music that predominantly features a mellotron.

The tracks in the version I listen too are arrange in the following order:

No. Official Version Name lmika Version Name
1. Sequent 'C' Movements Of A Visionary
2. Phaedra Mysterious Semblance At The Strand Of Nightmares
3. Mysterious Semblance At The Strand Of Nightmares Phaedra
4. Movements Of A Visionary Sequent 'C'

The fact that Phaedra is the first track in the official version make sense, given that on vinyl it would’ve taken up an entire side, but I reckon starting the album with a small, soft piece — acting almost like a prelude — whets the appetite for the heavier stuff. This would be track two, which is 17 minutes long, and is quite dynamic in it’s contract across the piece. You then climb down from that into what I thought was the title track which — given that it appears as the third one in my version — gives the artists an opportunity to have a something simpler to act as the centrepiece of the album. Then you end with a relatively lively piece with a driving sequencer, that finishes with a decisive C(7) chord, making it clear that the album is now over.

So that’s how I’d name and arrange the tracks in this album. I don’t want to say that Tangerine Dream got it wrong but… they did get it pretty wrong. 😀

Old rail distance post found on the rail trail today, just outside of Loch. Only 95 km to Southern Cross station from here.

 A dirt path lined with trees leads to a bridge, with a sign displaying the number 95.

Walked part of the rail trail near Black Spur Creek. Was too slow to get a photo of the echidna but I did manage to get one of this white-necked heron. 🌲

A white-necked heron stands in murky water near some greenery.

Ok, breakfast is over. Time to leave the cafe and start my day-trip. South Gippsland is calling me. 🌲

It’s a bit of a shame to think that a piece of software that is “done” is considered abandoned. The constantly churning platforms these piece of software is running on doesn’t help. Operating systems are constantly being released with new standards, and security issues crop up and get fix. So it’s natural to assume that a software project that is never touched at all will break at some point.

But I think achieving “done” status for a piece of software is possible. We just need to defined “done” as not being required to change the code. You can still keep up with the platform if you’re still able to build the project, and I think the secret to achiving “done” this way is to be as close to the platform as you possiably can.

I guess the other requirement is choosing a platform that promises to maintain backwards compatability, both for the runtime and the developer tools. But those platforms certainty exist. Think about all those Unix C tools like “grep” or “awk” that haven’t really changed in 50 years, or all those websites from the late 90s that are still around. They’ve been built and deployed multiples times but I’m doubting people are making significant changes in those codebases.

Anyway, some random thoughts I had while browsing the web this morning.

I had all this work planned for the team to do while I was on leave. The minute I walked out the door, priorities changed and it was all put on hold. So I feel a little bad that I didn’t organise any backup tasks. Hope the team can occupy themselves over the next week. 😬

Idea For Syntax Highlighting for CSV Files

I may be one of the weird ones here where I find myself sometimes preferring to edit CSV files in a text editor. If the CSV file is small or simple enough, it can be a fair bit quicker to work in than opening a file in a table editor1. But I’ve never come across a text editor that has made this easy. Some of them give you the option to switch to a built-in table editor, but these are usually feature poor compared to text editing capabilities the application has (which makes sense, given that we are talking about text editors).

So I can see some benefit of text editors adding some form of “syntax highlighting” for CSV files. Much like how syntax highlighting works for source code, this would be geared towards making it easier to see the table structure of CSV data while preserving the overall textual nature of the file itself.

Some ideas I have for how such syntax highlighting could work:

  • Highlighting the column in which the carat is currently located
  • Make the header row fix in the editor, such that it always appears on top. Also highlight the current column header in a prominent manner (e.g. bold)
  • Reduce the prominence of the characters used for separation and quotation.

Here’s a mockup:

Auto-generated description: A table lists contact information with names, addresses, emails, and preferred devices.

Note that this list doesn’t include things like aligning the columns as if it was a table. While that would be nice — provided that it’s still possible to enter text as you would normally — I don’t think it’s wholly necessary. The same would go for things like changing the key bindings to make it easier to work with column data2. Again, nice to have, but unnecessary.

No, the goal here is to have all the features of editing CSV data as the text format that it is, while making it easier to see the table structure that the format encodes. Syntax highlighting works well for other textual formats in this regard, and I think it could also help here.


  1. Yes, you can open it in a spreadsheet, but… no. I’ve never liked editing CSV files in spreadsheets. They just seem to heavyweight for the types of edit I need to do. And they require excessive use of the mouse, which slows me down. ↩︎

  2. Some ideas for that: changing Option+Arrow Keys to move between columns, and adding keybindings for easily creating new columns to the left or right of the current column. ↩︎

🧑‍💻 New post on TIL Computer: Slow NATS Go Subscribers

I knew I should’ve bought two licenses to CleanShot X when I had the opportunity to get it at a discount. 🤦‍♂️

Think of what I could’ve done with those $9 USD. 🤔

A person hands over house keys to another in front of a 'Home for Sale' sign with a $9 price tag.

Five years ago, I wrote my first blog post. And despite the slow start, I’m extremely happy that I was able to keep it up since then. Blogging is not just what I do, it’s become part of who I am.

Here’s to the next five years, and hopefully many more. 🥂

I love the multi-carat support in Nova, Goland, and the other text editors that have it. I use it all the time. I wish it was built into every textbox I use, including the ones used by browsers and AppKit.

The view of the Stony Point line from Bittern station.

A railway track runs through a scenic landscape with trees and grass under a clear blue sky.A small train station platform is situated alongside a single railway track, with nearby parked cars and a partly cloudy sky overhead.

I finished my experiment with htmgo, building the worlds most inefficient world clock. It uses HTMX swapping to get the time from the server every second.

Auto-generated description: A digital world clock showing the current time and date for UTC and Australia/Melbourne on October 26, 2024.

It’s an interesting framework. Not sure it’s fully ready yet (you can’t change the bind port, for example) but might be useful in the future.

Had my first taste using Tailwind, since the framework I’m playing with includes it by default. Can’t say I’m a fan of it. One good thing I can say about it is that it comes with some pretty decent defaults, but I think much of that could be replicated using a good quality reset stylesheet. The rest, such as styling elements with classes — which I’m guessing are processed in some way, since I don’t think HTML classnames support punctuation like slashes and brackets — and configuring everything using JSON doesn’t appeal to me. Might make sense for larger teams, where frontend developers are separate from UI designers, but it doesn’t make sense for my little crappy projects. I think I’ll stick with CSS.

🧑‍💻 New post on TIL Computer: psql Techniques

I get why authors build quickstart tools for their Go package, thinking they’ll be helpful, but I implore them to resist. Focus that effort in making your package easily importable as a library. That’s many times more helpful than forcing your users to integrate new tools into their tool-chain.

I hadn’t considered adding a /save page to this site. That is, not until someone at work asked me if I could provide them a referral link to Hetzner. I wasn’t qualified to get one — haven’t met the minimum spending limits yet — but I was able to share one from a /save page from a fellow blogger. So my co-worker got some sign-up credit and I got to feel good about helping someone I respect online.

I’ve since added a /save page to this site, and it’ll feature a referral link for Hetzner as soon as I’m allowed to get one.

An Alternative Arrangement to Cursor Movement in Terminal Applications

I appreciate why many programs support Vim’s navigation control, using HJKL to move the cursor. A classic case of a successful application, built in an earlier time, with an earlier keyboard layout, still making an impact in the software ecosystem today.

But if I may make my pitch, I would suggest newer terminal applications consider using IJKL for cursor movement.

A standard QWERTY keyboard layout is displayed with the I,J,K,L keys highlighted in blue and annotated with an arrowing facing Up, Left, Down, and Right respectively.
Source image: Wikipedia, annotated by the author.

Not only does it emulate the inverted T of the regular cursor characters — a more comfortable arrangement to me — but I find myself naturally resting my hand there due to my typing style, with my index finger on the J and my middle finger on the I. There’s no need to move my index finger over to the H and reposition my other three fingers in a row if I wanted to move around. I always found that manoeuvre awkward, and it’s probably why I eschew HJKL in favour of the normal arrow keys whenever I’m using Vim. I’m moving figures anyway, might as well move them to something more comfortable.

In fact, I like the IJKL arrangement so much that I set it as the default in all the terminal applications I build. It probably won’t work well in Vim — the I key is pretty important — but if you’re building a terminal application, or using one that allows you to change your keyboard bindings, I’d recommend giving it a try.