Amusing to see myself signing up to a new service. They either don’t offer to save my billing information, or they do and I’m like “NEVER!” Then I start using it and liking it. Eventually I start getting low balance reminders and I’m like “why didn’t you offer to save my billing information?” 🤦‍♂️

Another, slightly modified, DALL-E image. This one’s based on real events (i.e. what happened today during my walk).

A slightly modified DALL-E image. Prompt: an old industrial sign, like one seen in a factory. The sign should have an icon of a person with a hard hat on in silhouette. To the right should be black text days since I hit my head on a log. Below that is a metal card with the number zero. The zero be made to look like it's removable, like it's on metal pegs.

Spent a little more time working on my idea for Dynamo-Browse this week. Managed to get it somewhat feature complete this weekend:

I probably should say a few words on what it actually is. The idea is to make it quick and easy to run pre-canned queries based on the currently selected item and table.

Let’s say you’ve got a table with customer information, and another table with subscription information, and they’re linked with some form of customer ID. If you wanted to see the subscriptions of a customer, up until now, you’d have to copy the customer ID to the paste-board, change the currently viewed table, then run a query to select the subscription with that customer ID. It’s not difficult but it’s extremely tedious.

This change is meant to streamline this. Now, in a script function, you can define a “related item” provider which, if matched against the currently displayed table, will be given the currently selected item, and will return a list of queries that will display items related to the current item (depending on whatever definition of “related” will be). This will be presented to the user as a list. When the user chooses the item, the query will run and the results will be displayed.

Here’s an example of the script used for the screencasts:

ext.related_items("business-addresses", func(item) {
    return [
        {"label": "Customer", "query": `city=$city`, "args": {"city": "Austin"}},
        {"label": "Payment", "query": `address^="3"`},
        {"label": "Thing", "table": "inventory", 
            "query": `pk=$pk`, "args": {"pk": "01fca33a-5817-4c27-8a8f-82380584e69c"}},

ext.related_items("inventory", func(item) {
    sk := string(item.attr("sk"))
    return [
        {"label": "SK: " + sk, "table": "business-addresses", 
            "query": `pk^=$sk`, "args": {"sk": sk}},

Notice how the last business-addresses item specifies the “inventory” table, and that the “inventory” provider actually uses an attribute of the item. Here’s a screencast of that working:

This feature has been on the idea board for a while. I was trying to work out how best to handle the pre-canned queries, especially considering that they will likely be different for each item and table. Some ideas I had were adding additional UI elements that the user could use to configure these queries. These would go into the workspace file, a sort of an embedded database which is created for each session. This was pretty crappy, especially when you consider that workspaces usually only last until the user exists. It was only a few weeks ago when I considered using the scripting facilities to implement this (which, honestly, shows how much it remains under-utilised).

Anyway, I’ve only just finished development of it. I’d still like to try it for the various related items I tend to use during my day-to-day. We’ll see how well it works out.

Walked the Tuggeranong Lake this morning. Perfect day for it. The Eurasian Coots were making the most of it.

Large flock of Euroasian Coots swimming towards a pier of which other birds were preening. Buildings and a footbridge by the waterline in the background. Close up of the Euroasian Coots.

🔗 Hardcore Software 065. SharePoint: Office Builds Our Own Server (link pay-walled)

Yes, believe it or not, I’m reading about how SharePoint was built. I never had a lot of experience with SharePoint myself: although I did work at places which used it, I tried to stay away from Office documents as much as I could, sticking to things like wikis. And yes, I can understand why others may find it pretty crummy (the post gives a few examples of how crummy). But I did find some ideas SharePoint had quite interesting, such as the “everything is a list” concept. I do appreciate this consistent through-line in the product design, much like Unix’s “everything is a file” philosophy. I also like the fact that this extends to user-defined lists, like a very simple database.

Anyway, this paragraph caught my eye:

The idea of Office extended by a website for each Office user and team was incredibly important simply because it made using Office better. It was also a vision we had from the time we acquired FrontPage—everyone should have their own place on the web where it is easy to keep their work and share it with others. We were clearly too early. As we will see it was not just that the world was not ready, the world was anti-ready. SPS fit with the products of the era that remained top-down, complex, and under the full control of IT.

I yearn for the day when organisations make it easy for any employee to whip up an internal webpage for their team. Documents and wikis are nice, but they’re just so limiting in how they show information. The freedom to use real web technologies to present something as best you think you can, while also keeping the data “in house” (password protected, stored on servers the company controls, etc) is just an area on office tech that’s missing.

Case in point: I would love to be able to build a website showing the the status of backlog items that I can share with my team. I don’t want to manage the raw data myself: that’s all being tracked in Jira anyway. But Jira sucks, and it’s really difficult to show an overview of work, especially when they span multiple epics. Having something like a simple dashboard which will pull Jira ticket status and display them as maybe progress bars would be great.

But where am I to host this? Probably not best to do so on the open web.

See also the idea of small databases.

Notice this eastern bearded dragon on my walk today. Not something I usually see during my day to day (granted, I’m not walking my usual routes at the moment). It certainly saw me though.

An eastern bearded dragon on the ground in the alert pose

Really like the word “augment.” I’m using it a lot in the Jira tickets I’m writing. The job is not to modify something or change something; the job is to augment something. To making it better, at least functionally. Feels very positive.

Pocketcasts has started showing star reviews for podcasts I’ve subscribed to in the web-app.

Screenshot of Pocketcasts web-app showing the Aboard Podcast with 1 star review and the tick indicating that I've subscribed to the podcast

Count me as someone who thinks this is a dumb idea. Aside from the fact that it’s completely unnecessary showing stars for podcasts I’m already following (might be more useful if I’m browsing for podcasts, which is something I never really do; I tend to try out podcasts recommended by others), it completely irrelevant to me what others feel about a podcast. If I like it, that’s all that matters. So what that others don’t? Do I have to be reminded of that?

Always a great feeling when you see a bit of code, and you think to yourself “that’s a bizarre thing to do, who wrote this?” Then you turn on annotations and it turns out that the person who wrote it was you. 🤦

📺 Dave’s Garage - the Dave Cutler interviews

You know the feeling when you see a YouTube interview of someone talking about their work, and you’re left feeling “gosh, I wish that person also had a YouTube channel.” This is one of those interviews. Fascinating, if short, discussion from the architect of Windows NT.

Edit: This YouTube video might be the full interview. Via Michael Tsai.

🔗 DOS_deck

Experience classic games with modern convenience at DOS_deck. With full controller support and a carefully curated game collection, enjoy timeless classics and hidden gems, readily available for instant play in your web browser on devices you already own.

Filing this away to try later. Also interesting to see they’re using JS-Dos for this, the same thing being used by F5 To Run, which is cool.

Via Ars Technica.

Those familiar trails will have to wait a little longer. Got a bit of “bird watching” to do first. 🦜

Two cockatiels on a table, a yellow one perched by the edge, and a white one perched on some bird play equipment. There are two chairs by the table in shot

Anyone else miss the split-flap displays they had at airports? I mean, screens make much more sense: no mechanical parts, easier to display code-shares, etc. But they don’t come close to a split-flap display in imbuing the feeling of “I’m ready to travel.”


A small Christmas tree, placed next to a window, with the lights on and some ornaments, most of them of birds, one of them a crimson rosella. A lamp is in the background.

Best, First, Favourite

On Reconcilable Difference #221, Merlin and John introduced the concept of “Best, First, Favourite”. For a particular category, which would you consider the best (i.e. closest to a perfect representation of that category, in however you define it), which would you recommend someone who’s interested in starting should experience first, and which one is your favourite.

I thought it was a fun idea, so I’ve put together a few of my own.

It was hard coming up with categories for this one, particularly when considering “best” and “favourite”. You need to have had enough experience to know what makes a good “thing”, in order to judge it against all the others and come up with a “best” one. It also helps to have enough experience to avoid picking your favourite as the best as well. I tried picking categories in which my favourite is different than what I consider the “best”. And it might be that I lack variety in my life, but the list of categories that I managed to come up with was relatively short.

Nonetheless, here they are:

Category: Mike Oldfield music

  • Best: Tubular Bells 3. Oldfield was in his element here. A balanced helping of both accoustic and electronic, slow and moving, and very consistent in it’s theming.
  • First: Tubular Bells 2. It may seem that Tubular Bells should be the album to goto for a taste of Mike Oldfield, and it certainty has the Oldfield signature sound. But I’d suggest considering going with this album first, as it’s a bit more refined while having the same basic structure. It’s also the album that grabbed me.
  • Favourite: Crises; The Songs of Distant Earth. I’d probably put TB3 here as well, but in lieu of choosing something that I also consider the best, these two are probably my next favourite. Or it could just be the positive associations I have of them: Songs of Distant Earth reminding me of faraway places, Crises reminding me of home.

Category: Episodes of Seinfield

  • Best: The Parking Garage. A refinement of The Chinese Resturant, which was groundbreaking in it’s own right. Honourable mention: The Parking Space.
  • First: The Conversion. I think anything in Season 5 or Season 6 would work here. I’ve chosen this one as I wanted an episode which showcases all the character’s traits without having too many supporting character (that also features George’s parents). Honourable mention: This Bris.
  • Favourite: The Busboy. This is a series 2 episode, while they were still finding their feet. But it’s one of the first where the writers manage to have multiple plot threads all wrapped up together in a cohesive whole by the end, an attribute of the writing that I absolutely love. Honourable mention: The Dinner Party.

Category: Programming text editors (for MacOS)

  • Best: VS Code. I’m not a user of this myself but I can’t deny the amount of effort (and that sweet, sweet Microsoft cash) that’s going to this project. Certainly it’s the most capable out there for pretty much any language you need to work in.
  • First: Nova, depending on which language you’re working in. Obviously if you’re doing anything Apple related, it’s probably best to go with XCode or something. But I think for anything else, Nova is a pretty decent text editor, and definitely one worth trying for anyone starting out.
  • Favourite: Anything from JetBrains. When you feel like moving into something a little more integrated, especially for languages considered “complicated”, I can definitely recommend the IDEs from JetBrains. I use Goland in my day-to-day, with the occaional WebStorm for anything frontend that is considered large. Others include IntelliJ and Android Studios.

Category: Apple-related Tech Podcasts for anyone that has never heard a podcast before

  • Best: Upgrade. I’m not much of a listener of this one anymore, but it’s still a very well-produced show, and Jason really knows his stuff.
  • First: The Talk Show. I think having something a little more off-the-cuff is the way to get into the medium. You have to warm yourself into it, like you’re having a conversation with friends, and starting with something a little “produced” can leave you feeling as if you’re just another listener (which, I guess, you are but you shouldn’t want that feeling). I think the Talk Show fits the mould here. It did for me.
  • Favourite: Accidental Tech Podcast. Hands down. Informative and enjoyable to listen to. This is one that I do my best to catch every episode they release.

Category: Walks in and around greater Melbourne

  • Best: Sherbrooke Falls, Mt. Dandenong. This is not the longest, nor the most challenging, but it’s by far the prettiest. Walking amongst the great Mountain Ash is quite a moving experience. Be sure to have the soundtrack of the Atterborough documentary series The Private Life of Plants playing while you do.
  • First: The Domino Trail, Trentham This is about an 1.5 hours out of Melbourne but a nice easy rail-trail going through the lovely forest around the Domino Creek.
  • Favourite: Bushrangers Bay to Cape Shank Lighthouse: A two hour return walk that is moderately challenging with lovely scenes of Bass Strait. Don’t be surprised to run into a kangaroo or two (plus the occasional snake; look out for those).

Category: Pubs in and around greater Melbourne that make a decent parma

  • Best: The Panton Hill Pub, Panton Hill. This is a good 30 km out of Melboune area, in the green-wedge in a little town called Panton Hill. There’s not much there: a few houses, maybe a shop or two, and this pub. But they do a pretty solid parma there. Good fillet, decent balance of cheese and ham, and a good portion of chips and salid. It’s been a while since I’ve been there, so things may have change.
  • First: The Turf Bar, Queens St. If you’re visiting Melbourne for the first time, and you’d like to try a pretty decent parma, then I’d probably suggest trying out the Turf. It’s probably not the best pub in town: it’s more of a sports bar and can be pretty load when city-workers go there for Friday lunch or drinks. But I’ve been pretty impressed by the quality of their parmas. Be prepared to wait a little while for them.
  • Favourite: The Old England Hotel, Heidelberg. This is not the best parma out there, but they’re pretty consistent. One thing going for this place is that it’s easy to get to.

Trying a new commute. Getting off a station early and walking a bit along the river. Bumps the walking time from 20 minutes to half an hour, but might be more consistent.

Concrete path with a metal railing beside a river leading to a bridge with skyscrapers in the background.

There are too many people using power-tools around here. 🙉


  • “power-tool” is defined as any powered device that is not a lawnmower, and
  • “too many” is defined as any number greater than zero.

Got an idea for a new feature for Dynamo-Browse. Began working on it this evening, starting with the UI:

Recorded using VHS.

🎵 Epic Grandpa, by Izioq

This has been a bit of an ear-worm recently, after hearing it in this YouTube video (thank-you to those who credit composers in their videos). I think the Mellotron was the hook for me. Reminds me of Phaedra.

Manuel Moreale post on ad blockers got me thinking about how Gruber tries to record ads for the Talk Show that people might actually enjoy listening to (it works; I listen to them). Maybe that’s the approach others should take for their ads, rather than try to force readers/watchers to turn their ad blockers off.