• It’s amusing to see what are obvious model training runs show up in the analytics. Huge, daily spikes spidering broadly through the archive (no individual page gets any more than a few visitors), all originating from one of a handful of countries.

    Auto-generated description: The bar chart with a trend line shows data values peaking significantly on the 28th of July and the 5th of August, with low activity on other dates.

    The latest spike is from Singapore, which got me thinking. I was unable to access my Coolify instance last night. I try to open the login page and all I’d see was a blank browser window. I opened the developer tools and checked the network tabs: all the connections were hanging, waiting for a response. I did manage to SSH into the VPS, which was also quite slow but usable. Checked CPU, memory, and available storage: all fine. So by all accounts, Coolify should be working.

    Then it occurred to me: that VPS is running in Singapore. Could it be that these model training runs are saturating the available bandwidth? Access to my Coolify instance was always a bit of a crapshoot. Sometimes it would be fine, other times it would be completely unaccessible. It was only when I saw the correlation between the two phenomena that I began to suspect: maybe my blame of Coolify’s performance has been misplaced.

    No matter. I’m back on using Dokku, and this new VPS is in Adelaide anyway, so hopefully this shouldn’t be too much of a problem now.

  • I’m not sure if I’m the only one that experiences this but SSH on MacOS seems to have awful keep-alive out of the box. Connections constantly hang when I look away for more than a few minutes. So I can recommend this change in your SSH config:

    # /etc/ssh/ssh_config
    Host *
        ServerAliveInterval 30
    
  • Decided to consolidate all my little web-apps on a new VPS (‘cause I know of the best ways to spend an evening 😉). Got a new VPS from BinaryLane which should take on the workloads of 4 existing ones. Had a bit of trouble with SSH. Turned out to be DNS, in that I was entering the wrong DNS address. 🤦

    Okay, that’s 3 out of 4 VPS migrated and terminated. One more to go, but it’s 11:04 pm and I’m tired so that’s for tomorrow.

  • Watching a screencast of myself going through a bunch of admin consoles to setup an integration (I need to write it up as a procedure, and I knew if I didn’t record it, I would forget what I did). It doesn’t make for great viewing, but hearing my off-hand comments about the crappy UX is amusing.

    If I can give a self critique: I can forgive the fillers (ums, ahs) and the misspeaks. We’re not talking about a well editied stream here. But I have a habit of starting a sentence and just trailing off, which is not great to listen to. Again, not a huge deal given what this is. But maybe improve on that.

  • Trains out. Now taking backup route out of city. Trying a new one: 86 tram to La Trobe Uni for a connecting bus. Tram is chockers.

  • Just learnt that Steve Yegge has changed blogging platforms again. He’s now writing on his own site. Sadly no RSS, but I also learnt that XCancel allows subscription via RSS to someone’s Twitter feed (HT @sod). So, doing the best I can under these less than ideal circumstances.

    Follow up

    Apparently that’s not enough. Inkwell is being blocked by XCancel, so this won’t work. Ah well.

  • Had an urge to work on Cyber Burger this past week. Added an interactive tutorial, plus a harder “B mode” with a few new elements. Just managed to get under the maximum size of the cartridge, although it was touch-and-go for a bit, and I did have to pull out the onboard help.

    Auto-generated description: Instructions for playing the game Cyber Burger are displayed, explaining how to move the basket left and right using the arrow keys.
  • Was the MacBook Neo ever offered in Macha Green, or did I just imagine/wish it was?

  • Enjoyed Adam Wunn’s post about FileMaker, via ATP. I’ve never used FileMaker, but as an avid reader of the technology section of the Green Guide back in the day, I always saw ads for it and wondered what it was. I guess one could, if they were be uncharitable, describe it as something akin to Microsoft Access. Anyone remember Access? Does Access remember Access? 😉

  • I must say that I happy to be so lucky my taste in music is such that the pieces I listen to could never be mistaken for AI slop. It helps that most of the pieces I usually listen to predate the frickin’ Internet.

    For context, the headline that prompted this post was “Is this Billboard Hot 100 Hit AI Slop: We can’t be 100% sure, but probably.”

  • 🛠️ Obsidian Headless

    See what happens when you fall down rabbit holes? You learn about things you’ve been wishing for a while. It’s beta at the moment but I tried it out on a headless Linux server and it seemed to work (at least in one direction). This opens up the possibility of using Obsidian for things. At the very least it gives me a better way for backing my vaults.

  • 2026 census done. ✅

    Just in time for NPM to finish installing a few billion packages. 😜

  • 🔗 Kev Quirk: Linkception

    So many links in one post. I ended up going down all kinds of rabbit holes off the back of this single post.

    Followed Kev down that rabbit hole and I agree. It was quite the journey.

    The backbone of the internet is the hyperlink, so go forth and link out to your fellow bloggers with reckless abandon. It’s what makes the web, the web. 🕸️

    Paying it forward in kind. Thanks, Kev, for the links.

  • 🔗 Unsung: Paste And Match Style is not the answer

    The problem is that PAMS is drunk with power and flattens everything on its way: [bold, italics, etc.] None of these are “style.” This is actual information that should not be removed. If you wire PAMS as your main ⌘V shortcut, or even if you use it occasionally, you might remove valuable data from text you’re moving around, without even noticing.

    I can sympathise that styles might be valuable information to some, but there must remain a way to remove this, leaving only the text. Too many apps implement styles badly, and most of the time, I find it much easier to copy as text and apply the styles again, despite how long it takes. That’s if I want to maintain the styling at all (most of the time I do not).

    Simply appealing to apps to improve Paste won’t give us that. Remove PAMS if you must, but for the love of God, make sure there’s something like a “Paste Without Styles” which allows me to paste text as plain text. And make it easier to set this as the default systemwide: why are we still rebinding system shortcuts to get this feature?

    (I did not expect to feel so strongly about this, but I just more fired up about this opinion as I wrote this. Paste as it’s implemented now just frustrates me sometimes).

  • I’m liking Zed but there were some features that Goland really excels at. Their handling of Git, for example. Rebasing, resolving conflicts, and doing branch comparisons on a single file were easier to do in Goland compared to Zed. Debugging is another one. Might keep that Goland license around.

    That said, running a script to regenerate mocks in Terminal and seeing the file status in Zed’s Git Changes panel update in in real time is pretty cool.

  • Coding agents love to write code. Sometimes the act of operating these things involves telling them not to. Worse is sometimes better. Not always: I wouldn’t put that opinion in their system prompt. But sometimes.

  • Interesting seeing how the verbs around vibe-coding are developing, since it hard to justify describing one partaking in such an activity as “coding.” I’ve seen a few describe it as “directing” the creation of an app, like a film director creating a movie. That’s a little fancy for me, and implies a level of hands-on that I feel is lacking in my vibe-coding sessions. Hence why my preferred term is “commissioning,” asking something to make it for me. Do what you need to do, and just tell me when it’s ready. I may have things that need changing, and I’ll come back to you about them. Otherwise, no news is good news.

  • Well, the “glow” of my new monitor lasted a whole… what? Five days? Last night I noticed a dead pixel near the middle of the display. It’s frickin’ tiny so I don’t think it’s worth going through the hassle of getting it replaced. I’ll see if I can live with it for now. 😩

    To be fair, it wasn’t an expensive monitor. So I guess you get what you pay for.

  • I wish something like HyperTexting was available for Android. I hate to admit it, but having something mindless to scroll while commuting would be welcome, and the social apps I use have a bit too much “person X said thing Y that I hate.” It’s exhausting. What HyperTexting has feels right.

  • Unsung: “Gravity is worth asking about.”:

    Not only is it very hard to create interfaces that have limitations, but a bad decision is not just precedent – it’s code that can be copied and reused. Existing code always had tons of… well, gravity, even before LLMs.

    Perfect analogy about how the existence of something in a UI usually results in more of that thing down the line. Code might be infinitely malleable, but it still takes effort to change. And as soon as you’ve paid it for adding just that one thing, adding thing two is significantly cheaper. This also applies to backend too.

  • What is taste? Is it deciding what to publish? Maybe, but equally important is choosing what not to publish. Maybe more so. 🤔

  • Maybe my colleagues are right: maybe I can learn to like working on infrastructure. I’m migrating something from a EC2/systemd service to Kubernetes Cronjob at the moment, and it’s an interesting task. Must be the novelty of it all but hey, a bit of novelty is never a bad thing.

  • Moonset over station.

    Auto-generated description: A nighttime scene of a park or wooded area illuminated by distant streetlights and building lights.
  • Got another track done for my Godot game. While originally intended for the grassland levels, I plan to use it for the coastal world as it sounds better suited to those. It’s based on a riff I recorded ages ago that I stripped to the essentials, and I think sounds better for it. Less is more.

  • Listening to my co-workers talk about their side projects and just coming away thinking “wow, that’s ambitious.” I then reflect on the relatively modest things I’m working on. Sigh. Maybe I need to get some of that ambition my colleagues seem to have in spades. Working on less things might help.

  • While visiting NWS in Maryland, back in 2016, I spent a day walking around Washington, DC. The Americans will cringe when they hear that I passed by this body of water and thought for a moment that it was the Lincoln Memorial Reflecting Pool. “A bit more natural than I was expecting,” I thought. I kept walking until I ran into the real thing: “Oh, that’s it.” 😅

    Auto-generated description: A calm lake is surrounded by trees and stone walls under a cloudy sky.

    Another random fact I remember of that trip: I was asked by four separate people to take photos of them. Twice by The White House, once by the World War Two Memorial, and once in the lift of my hotel. The last one was a local getting ready for an event of some sort and wanted me to take a photo of her in her dress.

  • The AusAlert system is based on the US one so we were told that some of us would see “Presidential Alert,” rather than critical alert or whatever it was. I thought the number of those seeing that would be quite small (it’s based on the phone OS version) but I know of at least three people who received such a message. They were all using OEM Android devices that are maybe a few years old so maybe their version of the core OS was missing those changes.

    I actually knew a guy that worked on the US alert system. He was working at National Weather Service while I was working at the Bureau, and the project we were both on involved us working relatively closely together. He talked about the alert system when he was visiting the Bureau, and although I can’t remember anything about it, it sounded fascinating.

    He was based in Maryland, and we would have a few phone-calls early morning my time and late afternoon his time. The Bureau required all international calls to go through reception, which wouldn’t open until 9:00, so I built a little Twilio server which would listen on a local number, say something like “Connecting your call” (or maybe even “Hello world”), and connect me to his number. In 2016, I got the opportunity to visit NWS centre at the University of Maryland as part of this project, and he invited us around to his place one evening and cooked us burgers with melted cheese on top. He was a nice guy. I wonder how he’s going.

  • Test successful. Happy AusAlert Day to all who celebrate.

  • Those concerned about the software industry regressing due to gen-AI needn’t worry. The software industry regressed long ago when JavaScript was chosen as the de-facto language for everything. 😒

  • Unboxed my new monitor today. Fits pretty well on my desk. I definitely appreciate the larger screen size and higher resolution. The monitor controls are pretty finicky, and it doesn’t seem to work via USB-C, or maybe I just don’t have the right USB-C cable. That’s okay, HDMI is fine.

    Auto-generated description: A widescreen computer monitor is placed on a kitchen bench with cabinets, an oven, and kitchen items visible in the background. Auto-generated description: Two computer monitors of different sizes are placed side by side on a bench in a kitchen setting. Auto-generated description: A computer monitor displaying coding software is placed on a wooden desk with an ergonomic keyboard, mouse on a mousepad, a desk lamp, a pair of blue glasses, and a stack of books including Code Complete.
  • Found this fella in the laundry trough under the bucket. Was a little reluctant to come on my hand so I can take it outside. It’s in the yard now. 🦎

    A small lizard with a dark stripe and a missing part of its tail is resting on a person's hand.

    I need to start a “lizard ingress” counter of some sort. This is number 3, maybe 4, this year? Not that I mind finding them around the house.

  • “Hey, looks like Apple Maps will now be used in Ford EVs.

    “Oh? Will they be getting the ads too?”

    That’s the thing about vendors who puts ads in software. The moment you’ve done it at least once, you’re now a vendor who puts ads in your software.

    I don’t know why I care. I don’t use Apple Maps. I think it’s because I see this form of enshittification in other products I do use. It’s also a shame seeing a company throw away their goodwill for a few extra dollars. (And yes, maybe there’s a bit of getting whipped up by all the RSS feeds I read).

  • 🔗 A time machine in Logic Pro:

    Like with most such apps, you can press R to record playing an instrument. However, if you forgot to start recording, or were just goofing around and stumbled upon something wonderful, you can press ⇧R and the recording will appear anyway

    This sounds like a really useful feature. There’ve been times I would play out a riff, found it good, reach to record it, only to completely loose the feel of it. I think recording all MIDI events since the start of the session is simpler than the whole discard-after-20-min-pause. It’s 3 bytes per event; we’ve got the space.

    Just tried it myself. Worked like a charm.

  • My regular walking track is closed so I had to go a little cross country.

    Auto-generated description: A winding dirt path meanders through a forest area with tall eucalyptus trees and scattered green undergrowth. Auto-generated description: A small, muddy stream flows gently through a lush, green area surrounded by trees and tall grass. Auto-generated description: Two birds are perched on a tree branch surrounded by dense foliage and tall eucalyptus trees.
  • Blog Design Update

    Significant design updates have been made to the blog, including a new search page, an improved archives layout, and the reintroduction of backlinks and paging features. Continue reading →

  • Ran into an acquaintance at the cafe. We started taking about what we’re planning for the weekend and I mentioned the game I’m working on. Which is a first for me. I don’t usually talk to others about my side projects. I tell myself it’s because they’re not interesting, but that’s not the entire truth. No, it’s something else, a little more unconscious that I’m not entirely sure I want to explore. In either case, he seemed interested, which was flattering.

  • Musings Of Faking a REST-API Client in Server-Side Rendered Templates

    Proponents of server-side rendering question whether a well-defined API can also work effectively with server-side templates, suggesting an approach where Go handlers serve both needs without requiring actual server round-trips. Continue reading →

  • I’ve tried the talking-to-AI a couple of times and every time I start a conversation, I freak the fudge out and close the chat. All the neuroses around speaking to new people come into play in spades. Yes I know it’s an AI, but I still get the feeling of been seen, like a deer in the headlights.

    Not looking forward to this being the dominant form of computer interaction.

  • Loved this banger of a line from John Gruber’s latest post:

    The work Apple ships is what mades the brand what it is. But now [Apple’s leadership are] stricken with the mindset that it’s the Apple brand that makes something a high-quality superior experience. If it comes from Apple it must be great — that sort of thinking.

    He was talking about ads but it applies just as much to their software quality. I’m no MBA, but I believe this is a case of making withdrawals on the company’s goodwill. Apple should maybe look at what their credibility balance is at the moment: seems a bit low to me.

  • There’s so much waiting in software development. Waiting for builds, waiting for reviews, waiting for deployments, waiting for coding agents. Waiting for Slack replies, email replies, or feedback from users that your bug fix is now working for them. You can only go so fast.