It lives!

Working through the Godot tutorial I posted yesterday, while at the same time trying to ignore my ego saying “Pff! I can do this already.” If that was the case, then the work would speak for itself. And on that topic, let me show you exhibit A. So yeah, maybe let’s go through the tutorial first.

Love a good opening theme, and the one used for Challenger: The Final Flight is a great one. Not sure I can listen to an extended version that goes for 8:43, but I can listen to the first 50 seconds of this all day.

Watching a YouTube tutorial about Godot. First lesson: it’s pronounced g’doh, with a short G, much like g’day. I was always pronouncing it go-dot.

Running PeerTube In Coolify

A guide for setting up a basic PeerTube instance on Coolify using a docker-compose file.

The problem with doing an MVP is that once you’re done, all you have is an MVP. Sometimes an MVP is necessary to get something out the door quickly, but it’ll slow you down later when you need something that’s beyond the capability of the MVP. Can’t use what you didn’t build.

This week’s earworm: 140 OST. 🎵

An album review for 140 (OST) by Schmid from 2018. Rating: Liked It. Review: If you’ve seen the game before, it’s clear that the composition took game-play as priority over the needs of making a song-like song. That is the right decision, but it does make the music laking in consistent themes for those that want something to listen too. But it’s still a good listen if you like EDM music.

Not quite sure how I got the “likes pictures of mushrooms” attribute on Bluesky’s Discover algorithm.

I vaguely remember a movie I watched when I was very young, like 4 or something. It would’ve been released in the late 80’s and was like ET, but terrifying, at least to my young eyes (not that I didn’t get freaked out by ET too. This is why I don’t watch scary movies). I only remembered scenes of it and for a while I wondered if I actually imagined it.

Yesterday, I got confirmation that the movie does exist: this YouTube video covers it. Turns out, all those years ago, I was freaked out by poorly made corporate propaganda. 😏

Well, got my evening sorted. 😫

Boxes of cold and flu tablets and drinking sashes layed out on a bench.

Gave Dave Winer’s Wordland a try today. I like it. It’s quite a nice writing environment to work in. Wrote a couple of long form posts in it, along with a few that were a paragraph or two, and the editor felt great to use. Does a good job growing with the length of the piece too.

Auto-generated description: A text editor displays a guide titled How To Start A Naming Convention, discussing strategies for naming conventions in technical environments.

I’m one of those few that hate the taste of coriander. I can’t confirm whether it tastes like soap — I’ve never eaten soap — but I do find it unpleasant. Actually had a bit of a reputation at a bánh mì shop on being the guy that didn’t want coriander on his sandwich.

Good on Obsidian for changing their license to allow free for commercial use. It can’t be easy walking away from money, but I couldn’t really see a way of getting work to pay for my use of Obsidian. And I use the heck out of Obsidian at work. It would’ve been hard moving to something else.

Prototyped a game I had in mind, sort of a 2D Sokoban-like thing, where you control a robot with a retractable pushing arm that is to push gems to a “receiver” tile. Not entirely sure if it’s fun enough to actually build.

Used PixiJS to build it. Not a bad framework.

Following on from my adventures in dealing with spam messages, it’s quite strange that Mail.app doesn’t have an option to always show the from address domain in the mailbox list. It took opening the message, plus an additional click to confirm whether a “spam summary” email I received this morning was a phishing attempt (it was). I rather not open those mail messages at all1, if I can help it, and seeing the domain — which should be enough, given that it’s usually some junk domain like “funnybone dot com” — could allow me to dispose of these messages using the context menu.

Everyone knows that email is no longer a trust-by-default communication medium, so it strikes me as odd that these basic facilities are not available in MacOS’s default mail client. Seems like it’s barely change at all in recent years. Oh no, that’s not true: it now gives AI mail summaries that are totally useless. A feature like this would be much easier to add, and be much more useful to me.


  1. This is mainly because Mail.app also doesn’t have an option to avoid loading images across the board, or unless it’s a trusted domain. It does this automatically if the message end up in the Junk folder, but given that these phishing attempts made it into the Inbox, my trust in this feature is pretty low. ↩︎

I’ve started seeing phishing emails that try to simulate those email spam summaries you occasionally get from centralised spam-traps. I don’t usually get these sorts of messages so my suspicions where heightened when I saw these emails this morning, and after checking the domain — which takes too many clicks to do, Apple! — my suspicions were confirmed.

And it got me thinking: why didn’t Apple’s Mail summary indicated that these messages were spam? Not that I have any expectation for Apple’s AI do so, but the conspiratorial part of me started wondering whether it actually did, and report it as such in the summary. Here’s how the message looks in the Inbox list:

Auto-generated description: A notification from Place I Work At details a spam report and mentions 15 emails in quarantine for a fake email address, dated 21/2/2025.

Could it be “spam report,” as in “this is a report on spam;” or “spam report,” as in “this is spam, and is made to look like a report?” I’ve not seen phishing attempts that try to look like these sorts of mail messages before, and I’m wondering if spammers and phishers are now trying to tailor their messages to try and fool the AI into producing an ambiguous dscription where the AI is trying to report the message as spam, yet the reader interpertes it to mean that the message is about spam.

Again, this is probably just conspiratorial thinking on my part, and I’ve just been one of the lucky ones to have not seen these phishing messages before.

Attending the DDD Melbourne 2025 Conference

Yesterday, I attended the DDD Melbourne 2025 conference. This was in service of my yearly goal to get out more, to be around people more often than I have been. So the whole reason I attended was to meet new people. That didn’t happen: I said hi to a few people I once worked with, and spoke to a few sponsors, but that was it. So although I marked it off my goal list, it wasn’t a huge success.

Auto-generated description: A stage featuring a Melbourne 2025 banner is set up in a theatre with people seated and colourful lighting.

But a dev conference is still a dev conference and I’d thought I’d write a few notes of the sessions I attended, just to record what I did get out of it.

Keynote

Emerging trends in robots, by Sue Keay.

The keynote interesting session about the state of robotics in Australia. Didn’t get a lot of specifics, but I did get a name for the robot I saw once in a Tokyo department store that, let’s just say, left an impression on me.

Auto-generated description: A speaker is presenting on stage with a slide displaying images of humanoid robots.

First Session

Are you overcomplicating software development? I certainly have been…, by Ian Newmarch.

This speaker was absolutely preaching my gospel around complexity in software development. But it took someone to go deeper into into why developers are prone to take an inherently complex practice and add additional complexity (so call “accidental complexity”). This is mainly due to human factors: ego, fear, imposter syndrome, and to some extent, to keep the job interesting.

Auto-generated description: A large screen displays a quote by Neal Ford about developers and complexity, set in a grand hall with colorful lighting.

Very reliable. Only real way to mitigate this is going back to principals such as avoiding premature abstraction, YAGNI, and KISS. Thing about principals is that they’re always a little hard to know when you need it. So remember to always keep a focus on the problem - what you’re trying to solve - and working with people can help here.

Second Session

How to Design Your Next Career Move, by Emily Conaghan.

This speaker went through a process of how one could reflect on what they want out of their career, and how to come up with what they need to do to bridge the gap to get to it. The process is rather methodical, which is not a bad thing, and there’s a whole workbook component to this. This might be something that’s personally worth doing though: it does feel like I’m drifting aimlessly a little.

Third Session

The Lost Art of good README documentation, by Swapnil Ogale.

Auto-generated description: A speaker is presenting on The lost art of good README documentation to an audience in a formal room with flags and ornate decor.

I found this one to be quite good. It touched on the properties of what makes a good README for a project, and why you’d want to (the reason is that a developer’s or user’s trust in a project directly relates to the support document). In short, a good readme should have:

  • A project overview: basically answering the question of what this project is, why it s, and why should one use it.
  • How to instructions: how does one install it, get started using it, etc.
  • How does one engage and contribute to the project: how they can get help, contribute changes, etc.
  • Credits, license and contact details

But even though these could be described as what a “good” README looks like, a takeaway is there’s no such thing as a bad README, apart from not having any README at all.

One other thing that I didn’t know was that README’s are traditionally capitalised so that they appear near the top in a alphanumerical listing of files. That was interesting to know.

Lunch

Yeah, this was the hardest part of the day. But it’s amazing how much time you can kill just by waiting in lines.

Forth Session

Being consistently wrong, by Tom Ridge.

I was expecting this to be a bit more general, like techniques for keeping an open mind or learning from one’s mistakes. But it was largely focused on task estimations, which is a weakness of mine, but seeing that this was after lunch and I was getting a bit tired around this time, I only halved listened. But the takeaways I did get are the importance of measuring, how long tasks take to travel across the board, how long they’re in progress, in review, etc.; using those measurements to determine capacity using formula’s derived from queuing theory; keeping the amount of work in progress low; and keeping task duration variance low by slicing.

Auto-generated description: A speaker standing at a podium addresses an audience with a presentation slide that reads Estimation is waste.

These are all valid points, although I’m not sure how applicable they are to how we work at my job. But it may be a worthy talk to revisit if that changes.

Fifth Session

On The Shoulders Of Giants — A Look At Modern Web Development, by Julian Burr.

Despite being a backend developer by day, I am still curious of the state of web developer. This talk was a good one, where the speaker went through the various “milestones” of major technical developments in web technology — such as when Javascript and jQuery was introduce, when AJAX became a thing, and when CSS was developed (I didn’t know CSS was devised at CERN).

Auto-generated description: A presenter stands in front of an audience, showing a slide with two individuals wearing t-shirts that read I blame Immanuel for this behavior.

Going back in time was fun (R.I.P. Java applets & Flash) but it seems the near-term future is all React, all the time. And not just React in the traditional sense, but React used for zero-hydration server side components (Qwik) and out of order streaming (React Suspense). Not sure that appeals to me. Although one thing that does is that Vite is becoming the build tool du jour for frontend stuff. This I may look at, since it looks simple enough to get started.

Some other fun things: JavaScript style sheets was a thing, and Houdini still is a thing.

Sixth Session

Dungeons and… Developers? Building skills in tech teams with table top role playing games, by Kirsty McDonald.

This was the talk that got me in the door in some respects. I’ve heard of role-playing games being a thing for scenario planning, so the idea of doing it for team development and practice responding to things like production incidents. This consisted of the normal thing’s you’d expect from a role playing game, like character cards, a game master, and scenario events with a random-number generator component it it.

Auto-generated description: Four people are sitting on a stage with a large screen behind them displaying a web page and a wooden surface with a geometric object.

I’ve never played D&D before, so I was curious as to how these games actually ran. Fortunately, I was not disappointed, as the last part of the talk was walking through an example game with a couple of volunteers from the audience. Definitely a talk worth staying back for.

Locknote

Coding Like it’s 2005, by Aaron Powell

This was a fun look-back on the state of the art of web development back in 2005, before jQuery, AJAX, decent editors, when annoying workarounds in JavaScript and CSS were necessary to get anything working in Internet Explorer. This was just before my time as a practicing dev, and apparently trying to replicate rich-client applications in the web browser were all the rage, which was something I missed. It was mainly focused on Microsoft technology, something I don’t have a lot of personal experience in, but I did get flashbacks of using Visual Studio 2003 and version 1 of Firefox.

Auto-generated description: A computer screen displays a code editor with HTML and ASP.NET source code open. Auto-generated description: A lecturer stands in front of a large projected screen displaying a webpage titled Retro ChatGPT with colorful sections of text.

Lot’s of fun going down memory lane (R.I.P clearfix & YUI; rot in hell, IE6 😛).

Overall

I was contemplating not showing up to this, and even while I was there, I was considering leaving at lunchtime, but overall I’m glad that I stayed the whole day. It got me out of the house, and I learnt a few interesting things. And let me be clear: DDD Melbourne and the volunteers did an excellent job! It was a wonderfully run conference with a lot of interesting speakers. I hope to see some of the talks on YouTube later.

But, I don’t think I’ll be going to a conference by myself again. I mean, it’s one thing to go if work asks you to: I can handle myself in that situation. But under my own volition? Hmm, it would be much easier going with someone else, just so that I have someone to talk to. It’s clear that I need to do something about my fear of approaching someone I don’t know and start speaking to them. Ah well, it was worth a try.

Saw a couple of spotters at the gym this morning: two brush tail possums. Mother and baby I’m guessing.

Auto-generated description: A small animal, a possum, is perched on a ledge near the ceiling of a gym. Auto-generated description: A possum is peeking out from a narrow space above a cylindrical structure or duct.

“Get out more” goal for February achieved. ✅

Attended the DDD Melbourne 2025 conference. Technically I’m still attending it, as it’s not over yet, but it’s close enough to finished that I’m calling it now.

Swanson St, Melbourne. Been a while since I’ve walked this.

A quiet, tree-lined urban street features a couple of motorbikes parked on the sidewalk and several storefronts, including a Subway.