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

  • Fell into the trap of my own design by fixing a bug in a service that’s not been touched in 3 years. The fix took about 10 minutes, so I thought about bringing the build up to date. Thirty minutes later and the build is still broken.

    It’s necessary work, but maybe not just before I clock off for the day.

  • This is how Markdown spreads: a developer learns of the format, starts using the format, likes the format, then puts it into every single application they come in contact with. Bonus points for it being a plain text markup format, requiring no more than a bog standard text field for UIs.

  • Super useful to have access to the developer working on a tool you need to use. Guy on the opposite side of the partition’s working on the support request tool we’ve using, and he’s been quite receptive to a few feature requires I’ve wanted, such as Markdown support.

  • The Stripe CLI doesn’t have a command for listing account tax IDs, but it’s still possible to list them using the get subcommand. For anyone else that needs it, here’s how you can list them:

    stripe get /v1/tax_ids
    

    And to get a single tax ID:

    stripe get /v1/tax_ids/txi_abc123
    
  • It’s a little surprising to see HTML tables being used for layout in this day and age. Granted, it’s HTML from an email newsletter which I understand lacks a lot of the styling support that browsers have for websites. But even so, I though we’ve moved on from these Dreamweaver-esque techniques.

  • Ate my words this morning. For reasons beyond me, I keep asking for lettuce instead of ham for my bagel. I usually catch myself, and the place I go to knows my usual order. But today things didn’t align, and I ended up with a lettuce, cheese, and tomato bagel. And you know what? Was pretty nice.

    Just so we’re clear, I take full responsibility for this. Those serving me were apologetic and offered to make me a new bagel. I declined: why should they be put out for my mistake?

  • This got me thinking of a project where I had to choose a notification sound for an alarm feature: something that required the operator’s attention but didn’t need them to take drastic and immediate action. I went for a tone that was pleasant to hear at first, but got annoying the more often you heard it. The theory I had at the time was that this would elicit an emotional reaction in the operator (in this case, annoyance) to cause them to take notice; but only for a moment, just enough for them to at least look at the alarm panel. This was not based on any science so I don’t know how effective it was, but it seemed to work on me.

  • Preparing myself for the AusAlert test by listening to the sample alert tone. Pretty decent tone, calm but demanding of attention. Although if I had my way, I’d probably change it to the PagerDuty “Pager Beeps” alert. Nothing spikes my heart rate like those damn high pitched trills.

    Makes it a good PagerDuty alert tone.

  • Seems to me the true winners are those that chose not to wake up at 5 AM today. ๐Ÿ˜

  • A bit more work on my Godot project. Finally started on music, which I hope to record myself. Got a pretty good level cleared fanfare, which led to the development of the track for the intro level. Turned out really well I must say. An amateur job, but a decent start. Here’s a sample:

  • This, and last, week’s earworm: The Red Planet, by Rick Wakeman.

    Started listening to this in 2021, while the pandemic was still raging. It fell out of rotation, but last week I thought I’d dig it up again. It’s quite good. Worth a listen if you like classic monophonic synth music. ๐ŸŽต

  • Also, in the interest of posterity, and in honour of all the UK level crossing videos I’ve been watching on YouTube recently, here’s a recording of the level crossing being removed in operation, taken last week. Apologies for the loud sirens emitting from the pedestrian gates.

  • The level crossing removal is in full swing at the moment. Trees have been felled, paths closed with detours in place, large machinery moving about. Hi-vis everywhere. ๐Ÿฆบ

  • Spyglass: OpenAI Makes ChatGPT ChatGPT Again:

    All that points to perhaps a disturbing trend where OpenAI doesn’t really understand their user base. Which you almost can understand given how they clearly stumbled into ChatGPT in the first place. Still, here they are with those billion users. A problem that all of their competitors would love to have. But still a problem if you want to fundamentally change what you are as a product.

    It’s amusing to think that sometimes the product chooses you.

    For what it’s worth, the new app is still a pretty crummy experience. Despite Chat being included alongside Work in the UI, the two are still very different beasts. The “Recents” sidebar now shows interactions with both Work and Chat as a “unified timeline”, complete with a mouseover showing which product the interaction is from, but there’s still no way for Work (which I am to understand is a rebranded Codex) to get access to historical Chat chats. This is something that Chat supported for a while now, and seeing them show up in the same section in the app gives the impression that the same is true here. And it’s not. It’s misleading and just bad product design. Either keep them separate, or migrate them already.

  • Well, I just found out that the task I was looking at, which I thought was going to be a quick manual config change, has blown out to a code change touching three services, plus a data migration. So, I guess next week’s work has been sorted. ๐Ÿ˜ฎโ€๐Ÿ’จ

    The bad part of finding this out on a Friday afternoon is the exhaustion you feel when you consider the size of the task, and after a busy week. The good part of finding this out on a Friday afternoon is that it makes little sense starting this now, and you know you’ll have something to work on next week.

  • Oof! I should’ve stayed in the sun. It’s freezing in the shade. ๐Ÿฅถ

    Auto-generated description: A partially eaten sandwich on a white plate with a fork and knife is set on a table outdoors, accompanied by a tablet displaying text.
  • An open protocol is more than just you open sourcing your implementation for me to look at it. It’s saying that I can open source my implementation without you having to look at it.

  • I can’t for the life of me understand why an SCP upload would stall out for multiple minutes. It gets to 5%, does nothing for about 8 minutes, then slowly finishes the upload at a crawl. Why? What the heck is it doing during that time?

  • ๐Ÿ”— Jim Nielsenโ€™s Blog: A Well Known URL For Your Personal Avatar

    The fact that this post from 2023 still comes to mind whenever I need to remember how to get my avatar image/URL suggests to me that this is a pretty good idea.

  • I’ve been seeing a lot of traffic attributed to Google this past week, significantly more than usual. It seems to enter from one or two random pages from the archive, and start spidering from there. Could they be model runs? A significant number of hits are from Linux, but the traffic seems to be coming from all over the world, not just a single country. Very odd.

  • I lost my static IP address when I moved to a fibre connection. I was considering getting rid of it anyway as I no longer had a reason to need it (although the part of me that’ll need to manage security groups going forward will beg to differ). It was nice to have it though: my own /32.

  • The beauty of having access to coding agents is that you get to create a tool shaped exactly to the problem you’re trying to solve. I’m working with some data in a PostgreSQL DB that has a JSONB column. This introduces problems in a typical client: either because only the first few characters of a multi-KB JSON structure is rendered, or the full JSON structure is rendered and it blows out the size of the table.

    So I asked Claude Code to make a client that would open the value of JSONB columns in a separate window, nicely formatted and syntax highlighted. I’m using it right now and it’s been a godsend. It’s hard justifying putting in the time to build this manually for a project that will probably only last a month or so. But asking the agent to do it in a day? Not a problem.

    I would also say it’s easy to do this if it’s not your money you’re spending. ๐Ÿ˜œ

  • Furthermore, it seems like PRAGMA journal_mode = WAL; is the only one that’s persisted. All the other pragmas only apply to the current session, something I wish Sqlite’s documentation was more clear about. Putting them into your DB migration script will do nothing.

  • ๐Ÿ”— Mort’s Ramblings: SQLite should have (Rust-style) editions

    Come for the opinion. Stay for the techniques on tuning an Sqlite database to support foreign keys and avoid DB lock errors.

    Via: Lobste.rs

  • ๐Ÿ“— Vibelog

    Well Read - A Fable Moment

    Asking Fable to make some changes to my RSS reader, as well as getting Fable to look at a problem Opus couldn’t solve. Continue reading โ†’

  • At the same time, I do recognise that not every bit of kit should have a complicated UI, particularly if those using it are just trying to get done what they need to do. I know for myself I’m not yearning to master pivot tables in Excel.

  • ๐Ÿ”— Robin Rendle: EP-1320 Medieval

    So the EP-1320 is not simple. You either learn itโ€™s way of doing things or go to hell. Like computers from before my time, this thing is modes-galore.

    There’s something to be said about the feeling of accomplishment that comes from learning a complicated UI. Things like this, or software like Vim or Photoshop, are not approachable or intuitive. But they still have something to offer: a sense of mastery.