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.

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.
-
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:

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.

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.

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.

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.

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.

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).

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.

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.


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.


“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.

I think I tend to overthink things too much, if last night is any indication. It’s probably good, to some degree, to consider all outcomes of doing something, for no other reason than to satisfy a need for certainty when events go a certain way. But it might be that one could spend too long doing so, and miss any opportunities that come from it. It’s always harder to see things go right than it is to see things go wrong, or at least that’s how I seem to be wired.
I’ve seen this in my job too, where I feel (and it’s only a feeling) that my designs are more complicated then they need to be for similar reasons. Might not be related thought; just a passing thought while I go through this reflection.
Free motivational slogan for anyone wanting to start a line of sports-related T-shirts:
This SHIRT, that HURT, could’ve hit the DIRT.
Emphasis intentional.
I enjoyed Cory Doctorow five year anniversary post on Pluralistic. Even better was falling down the rabbit hole of reading his other anniversary posts, then branching out to his other posts such as his one on blogging itself.
Debugging Edge Lambdas is such a pain due to how long it takes to deploy them to test something. Not helping is that different layers have standardised on names that use URL
while others use Url
. I wonder if it’s better to just pick one case for the names I’m using, even if stands out from the other names following the particular “standard”.
Oh crap, I’ve gotta watch myself! I just configured a parameter in prod thinking that I was doing it in dev. Should’ve seen the warning signs when I got a permission error and had to boost to the next level. The change should be benign, but I need to be a little more careful.
I’ve been kind of anxious about tomorrow these past few days. I’m going to a single day developer conference alone, with no-one else I know or work with. This means I’ll be interacting with people I don’t know. That is the point of this — this activity is Feb’s “get out more” goal — but I’ve been partly wondering whether I’ve bitten off more than I can chew here.
But reflecting on it just now, it may not be as bad as I think. Most of the day will be the actual sessions. It’s the breaks that I’m anxious about, but I can probably deal with them. It wouldn’t be the first social gathering in a industry setting I go to where I didn’t know anybody. I was going to say it was, until I started writing this post, and recalled past instances where I’ve been in the same boat, and although I wouldn’t say it was easy, I lived to tell the tale. I may be able to step outside for a little while and go for a walk if I absolutely need to.
So it should be fine. I’ll give myself an out at lunchtime if necessary but I’ll try to stay the whole day.
Another Twitter embed bites the dust:

That’s all of them now. I can’t see any more uses of that short-code here. Guess I was right not to do that too often.
Have technically secured user no. 2 of UCL today, after sharing one of the tools that’s using the language with them at work. It’s just a shame that the docs are so far behind (read: not existent). All I really have are these blog posts about building it. Good thing he’s a reader 😛. (Hi, KK).
Things I’ve said out loud today:
What am I going to do about Norway?
I’ve got a plan but I’ve yet to rollout a fix yet. 😛🇳🇴
Making A Small Two-Letter Country Code Lookup Page
A small evening project where I made a simple site designed for Vivalidi’s sidebar to quickly lookup two-letter country codes defined in ISO-3166-1 alpha 2.