• Something in the rear cab of this tram is clicking. For a moment I thought it was the blinkers but it seems to correlate with the speed we’re going.

    An empty driver's seat inside a tram is visible, with a view of the street and a pedestrian outside.
  • It’s easy to get roped into the boil-the-ocean approach that coding agents tend to prefer when solving problems. Sometimes a subtler approach is called for. There’s still room in this world for the craftsman’s hand knowing just what tweak to make to have the system singing again.

  • TTL that h2c, the Go HTTP handler that allows for unencrypted HTTP/2 connections, does not do graceful shutdowns. When you call http.Shutdown() on a server using this hijacking handler, instead of draining the active request, it just kills the server. The good news is that it’s now deprecated in favour of http.Protocols, which doesn’t have this problem.

  • I appreciate people’s thoughts around best practices, but it does get quite tiring hearing them constantly editorialising the work, saying how bad or problematic it is. It’s especially grating when they’re explicitly task to improve it.

  • Under the clocks (a phrase I’ve not used in earnest despite being born and raised here).

    Auto-generated description: People are entering and exiting Flinders Street Station, an iconic historic building in Melbourne, Australia, with its distinctive arched facade and clock.
  • Flights to Canberra booked. Going to be looking after my sister’s cockatiels once again. Flight up there looks like it’ll be on a turboprop. Haven’t been on one of those in quite a while.

  • Overhead a co-worker give this advice to a junior during a design discussion:

    If you do what you’ve already done, you’ll get what you’ve already got.

    Bloody good advice.

  • Asked a coding agent to thread a new argument through to a client for me. It wrote the tests, updated the mocks, and supposedly reported the work as done. I then ran the linter and it reported the argument as unused. The coding agent didn’t actually use the new argument it added to all the method signatures. All the unit tests were passing because the mocks were matching on any value, not the specific value. Had to fix it manually.

    So yeah, a good reminder not to ditch the linters just yet.

  • Does Google use Google Workspace? If not, they should. Not because it’s great software, but because it’s far from it.

  • Manton Reece:

    To his later point about wireless networking, it’s true that wireless enabled a whole bunch of new mobile apps. But AI is not just a supporting technology. It’s inseparable from the new products that it enables. Makes sense to build new devices around AI assistants in particular.

    I don’t see it myself. I think people like using their phones too much for a complete wholesale replacement. If I could take the tiller of the Ship of Theseus for a moment, I reckon if it does come to pass, it’d be closer to what happened to Ethernet: Apple replaces the AppKit layer with a whole new AI-based interaction model, but it would still be called the iPhone. Maybe it’d still be called iOS. I guess they could call it SiriOS, if that brand wasn’t already tarnished (or they weren’t being “serious” 😛).

  • I wonder how often someone goes to a web search to get the correct spelling of a word, only to find a company using that misspelt word because it’s easy to trademark. Hasn’t happened to me yet, but those looking for the correct spelling for “pyjamas” may be in for a chance.

  • I don’t know why I don’t drink ginger beer more often. It’s actually quite refreshing.

  • 🛠️ Termius: Modern SSH Client

    For anyone who needs an SSH client for Android, I can recommend this one. I’ve been using it this last week to access machines on ssh.dev, and it’s been great. Works as well as any SSH client can on the phone.

  • Behold! Another testament to quality of Apple’s software: the launch experience of Apple Books when I wanted to find the name of a particular book.

    Auto-generated description: A digital screen displays a spinning loading icon with the status bar showing the time, battery percentage, and date.

    Took three attempts to finally get to the frickin’ library screen (or row, since the rest of the home screen was effectively a giant catalogue). 👎

  • Daring Fireball: AI Is Technology, Not a Product

    Levy’s argument reminds me of the hype around “the cloud” when that first became a term. It’s so meaningless when used broadly (e.g. “Everything will soon be in the cloud”) that it could mean anything.

    Hearing this reminds me of a story from In Search for Stupidity, in which Borland was trying to sell their suite of office products by extolling the virtues of Object Oriented programming. Techies’ gonna’ techie, and think everyone is excited as they are about their new toys or methodologies. But for heaven’s sake, know thy audience.

  • Incidently, I’ve been playing around with Gemini Veo’s video models recently, just to satisfy my own curiosity. The fact that a video is generated at all is impressive. But you’re not likely to get a good video, or even a mediocre video, out of the model by itself. Or at least, I haven’t yet. The best one the model produced still needed some work in DaVinci Resolve to fix the corny audio.

    I’ve not posted the videos anywhere, but I’m thinking of the montages I see on YouTube featuring these videos that are obviously generated by AI. And the signs are not hard to spot: bad audio, objects that don’t look like anything, someone speaking into a handset of a phone that already had a handset. These are all things I saw with the videos I asked to be produced. Posting those as they are, without any form of basic editing or even review, with my name attached to it would be embarrasing. Those that do, in my opinion, are engaging in the production in slop. The bar is that frickin’ low.

  • John Gruber finished one of his recent articles with this statement:

    I see no cognitive dissonance in being pro-AI, in general, but vehemently anti-slop.

    I completely agree. I’m generally okay with people using AI for things, but those using it should stand behind their work. After all, it’s not the AI’s name on the paper you’re submitting.

  • Too many digital overlay effects in Eurovision acts. Difficult to tell what’s actually on the stage.

  • Stunning day today. One of those days where you regret not doing your sheets.

  • SPAs written in React are to the web as Electron apps are to MacOS. You can find a good one if your lucky, but generally they’re terrible to use, they don’t respect any of the browser idioms, they break browser search, and generally contain stupid UI decisions that make using them annoying (you’ve already fetched the 100 items from the server, why are you showing them to me in pages of 10 items at a time?).

  • Building something with HTMX is such an interesting experience. Quite different to things like React, where the principal is ui = f(state). With HTMX, it feels like the UI is the state. Your web service is essentially a giant state machine for static HTML.

  • I sometimes wonder if my drive to seek out stock music from YouTube videos “tarnishes” it in some way. As in, disrupts the original emotions I felt when I first heard it in the video. Probably not. It hasn’t happened with any of the previous tracks. Why would it happen with the latest one?

  • In many ways, stock music isn’t really “interesting” music. It’s often long and repetitive, themes are usually flat and unexplored, there’s rarely any melody, and never any singing. That’s its role though: it’s to accent the subject, not to be the subject. So why am I so drawn to it? 🤔

  • From a podcast:

    Q: Are humans are going to spend their attention on essentially e-commerce sites?

    A: I think humans loved to shop.

    Pff! Not this human.

  • Listening to Antidote X by Van Sandano from Yuma 🎵

    Yep, more stock music I heard on a YouTube video, fell in love with, and had to seek out.