• Coding agents may help with coding, but it’s been my experience that the biggest time sink in software is dealing with all the rubbish associated with micro-services. Troubleshooting dozens of services, trying to see why they’re not talking to one another. Ain’t no agent that can fix that.

  • 🔗 Pixel Envy: On Software Quality

    I am somewhat impressed by the breadth of Apple’s current offerings as I consider all the ways they are failing me, and I cannot help but wonder if it is that breadth that is contributing to the unreliability of this software. Or perhaps it is the company’s annual treadmill.

    I’m almost certain that the devs at Apple are not happy with shipping software that doesn’t match this quality threshold. They’d fix all this issues with Tahoe and iOS 26 if they could (well, the one’s that are not just bad designs). They just don’t have the time to do so.

    Hardware takes months to setup, and once the lines are ready, it’s expensive to change them. So there’s huge resistance to change it near the end of the release cycle. Software’s malleability, in this respect, is a blessing and a curse. So easy to change, meaning that those making the decisions don’t see a cost in making these changes in the 11th hour. After all, it’s “just” software. But established software products are also resistant to change, and adding more cruft on the top just makes the change harder. Rather than fix things, devs spend all their time trying to get the bodged code working in concert while trying to meet the deadlines set from those that need features to sell. The result is lower quality software.

    There’s no escaping the “scope, quality, time: pick two” maxim.

  • Will the solution to my problems really be at the end of an infinitely long social media feed?

    Well, I don’t know. I haven’t reached the end yet. 😛

  • Missed my tram but thanks to the horrible traffic due to the rain, managed to catch it by walking to the next stop. Managed to lap the tram before it too, before it reached the dedicated track section.

    A tram and an SUV are traveling along a city street lined with trees and modern buildings.
  • 🔗 Steve Yegge: You Should Write Blogs

    An oldie but a goodie.

    The last big problem I grapple with is biting off too much for a single blog. I find that if I can write a blog in a single sitting, it’ll usually seem worth publishing, at least at the time. […] If I can’t write it in one sitting, I feel like I don’t have something concrete enough to say. […] I can only do that with coding, not writing.

    Yeah, I suffer from this too. I need to hit publish soon after writing the first draft, otherwise the resistance to finishing it gets too great.

  • The thing about DNS is that you’ve got one chance to get it right, otherwise your SOL for a good 15-20 minutes.

  • After almost 3 years to the day since buying it, my roll of cling wrap ran out. Took a lot less time to go through than my last roll of cling wrap. It was only 90 metres though, so that sort of tracks.

  • Getting software ready for go-live is a bit like landing a plane. Get what you have ready to go early, and once you’re done, just land it. Final approach is not the time to say “hey, what would be cool is if you can get this thing done too.”

  • I’m always at a loss of how best to represent a small number of items with a large number of properties in an SQL database. Tables feel great when the number of rows is dramatically larger than the number of columns. But when it’s the other way around, when you have one or two rows in a table with 30 columns, it feels strange. As if it’s out of balance.

    I do wonder if some of these alternatives could work better:

    • Having one DB table contain the items and another containing the item properties. This second table will only have four columns: id, item_id, property, and value.
    • Storing the properties in a JSON column or similar.

    These will probably work well for items with dynamic properties, or when only a subset have values at any one time. It would also be viable if one wouldn’t need to select on these properties, as querying this information would be a pain (although doable). Would it also work if the items don’t have dynamic properties? It’ll probably reduce the number of migrations involved.

    This is probably just a me problem, and I should just write the table “naturally,” with one column per property. It’s not like the database cares.

  • Sometimes a TIL (today I learnt) should really be classified as a WTTMT (wish they told me this).

  • For anyone else trying to use ESBuild with a build script, just note that attempting to run the build script using ESBuild will not work. Instead, you need to run it with Node:

    # Wrong
    $ esbuild ./build-script.mjs
    
    # Right
    $ node ./build-script.mjs
    
  • There’s lots to like about MIDI as a standard. The connectors are good (cables are plugs, instruments are sockets) and the protocol is easy to understand: 2-3 byte messages with support for vendor extensions. It’s not perfect (16 channels is a little limiting) but for a standard, it’s pretty good.

  • Don’t wish plumbing issues on my worst enemy (washing machine hose sprung a leak and needed to be replaced). 🥵

  • What percentage of the population would know about Linux? 10%? 15%? Smaller? Either way, seemed notable hearing someone in public say “Linux emulator” at the cafe.

  • Really enjoyed the latest episode of Revolution.Social with Anil Dash. A great discussion around ethics of using AI. Can recommend listening to it. 🎙️

  • It’s amusing (if it wasn’t so disappointing) to see all the layout bugs that still persist in Safari for macOS when you’re switching and closing tabs. Reminds me old-school CRTs with dodgy deflecting coils.

  • 🦆 Dialogue

    LLM Auto-complete Is…

    Duck: You writing code? Author: Documentation. Duck: And you're using an… Author: IDE? Yes, I am. Duck: Do you have that… Author: LLM-powered auto complete? I do, yes. And it's fine, although it does seem like the IDE's… Duck: Always trying to finish your sentences? Author: Yes. It can be quite… Duck: Bothersome? Yeah, I can't imagine how that must feel. 😛 Continue reading →

  • The Grand Prix is a lot of things: noisy, disruptive, expensive. But I wouldn’t call it “the fabric of our community.” 👎

  • Manton Reece:

    When I found out Current was going to ship this week, I postponed making a video preview of my own RSS reader because it would feel like I was interfering with Current’s release.

    I don’t know, mate. Some of us here on Android are hanging out for relief from what is a decades long drought of good RSS readers. Times are getting desperate, and I can hear the siren song of coding agents.

  • Ooh, one of the escalators on Southern Cross platform 9-10 has been refurbished. Very nice. We’re 1/3 of the way done.

    Auto-generated description: An escalator leads down to a train station platform, with people standing near the tracks under a large, industrial-style roof.
  • It’s kind of strange to hear the same PA voice make different announcements on different tram classes. Happy to say that doors will open on the left for E-class trams, but not A-class.

  • Does anyone else have this much trouble getting out and meeting people? Is it just a matter of practice? Is it just me that usually comes home feeling like a fool? Ugh!

  • No, I tell you what it is. It all feels a little too anonymous, at least for me. Having a smaller gathering where you all know each other will probably be better for me.

    Or maybe something with a little more structure. Where you’re given a role, rather than ask to come up with one yourself. 🤔

  • Coming to the realisation that in order to get the most out of a boardgames social gathering, you really need to have played a lot of boardgames, something I haven’t really done. And I’m not sure I like boardgames enough to develop this. Which makes me wonder if this is worth keeping up.

  • I do wonder how familiar my fellow developers are with descriptors like “snake_case”, “camelCase,” or “kebab-case.” Been trying to negotiate with someone over a data format and they used one themselves, but didn’t understand another. Maybe I should’ve used Pascal case (which I’m unfamiliar with).