-
The most common integer type in Go is
int, and 90% of the time, it should be the one to use. There are some QoL issues with usinguint: values show up as hex in the debugger, linter complains about overflows. A 64 bit unsigned int is overkill for a retry count that’s likely to be less than 10. -
We all had a laugh when we learnt that Accenture employees use AI agents to convert PDFs to Markdown. But just now, I had to get a Slack AI agent to convert a Canvas to Markdown, so I can pass it to another agent. It’s clear we need Markdown export support across the board now. The agents demand it.
It should be easy for Slack to add this. Canvas’s are effectively block-based documents that are Markdown compatible. Heck, you type hashes for headings and backticks for code runs in the editor.
Oh, and BTW: it frickin’ worked! The agent produced a pretty decent Markdown export of the Canvas. We just need Salesforce to implement a proper way to do this, without spending tokens.
-
On Doomerism
Some thoughts about Terrence Edan’s post against doomerism. Continue reading →
-
Was on a walk when I got stopped by this magpie, who flew in front of me and looked up expectedly. I’m guessing it mistook me for someone else.
-
TIL about Game DevOps: the idea of merging features to
mainwithout checking that it will break anything, cutting release branches, stabilising those, and merging the fixes back tomain, which will most likely be unstable again by the next batch of merged features. The idea is that there are so many people working on the codebase that there’s no way to rely on CI/CD to ensure thatmainwill be stable after merges. There’s just not enough hours in the day for CI/CD to run. So you don’t promise stability there. You spend your effort stabilising the release branches.This is a complete reversal of the principals I learnt in my career, which is that
mainmust always be production ready. Usually to allow for a release to be cut at any time (like, for example, patching an issue in prod), but also because no-one likes to checkout a broken branch. I should probably ask my colleagues that had experience in the game industry about this, and see how well it worked for them.Follow up
Talked to my contact about this. He says that this is indeed a thing, and that main would usually be unstable because CI/CD runs would take too long. The reason, which I didn’t consider, is that the entire team is working towards a single artefact and it’s difficult splitting it out into separate repositories with their own CI/CD. But he did make the sense that it hated this form of working. It got so bad that one of the senior devs would need to spend every morning just stabilising main.
-
ChatGPT Briefings Via RSS
Using Hugo and ChatGPT Work/Codex to produce scheduled briefings that are available in an RSS reader. Continue reading →
-
Native Apps Are Not The Problem
On long review times, review governance, and side-loading. Continue reading →
-
I’m always in doubt that any directions I give to strangers actually help them (see this post). Today, I got positive confirmation that it did. Hashtag little victories.
-
Really enjoyed Simon Willison’s interview on Write That Blog!. Willison’s weblog has been a recent favourite of mine, and his approach to writing about technical topics is one I try to emulate. His post about what to blog about is one I usually turn to when I’m in a bit of a posting drought.
John Gruber’s link post is also quite good. His framing of blogging is perfect: recording an album, verses playing live music. I suppose you could describe my approach as “busking without a hat”. 😏
-
It’s my conjecture that companies that claim to be in the business of “revolutionising (placeholder)” are choosing hardware designs based on whether there exists an emoji that can represent their product. Apple/Google have gone with phone emoji (📱). Which, fair enough, they got in early. Amazon has gone with cylinder and sphere, which can sort of be represented as a coloured circle in a pinch (🔵). Now OpenAI is staking their claim on the doughnut (🍩).
So here’s my claim. I reserve… um… the petrol pump design (⛽️). It will be a device consisting of a cylinder atop something canonical that will taper in to a base. I don’t know what it will do, if anything, yet it will naturally be white, or black (whatever’s in vogue), made of matt plastic, and be something everyone will buy. It will revolutionise… um… putting things on side tables. Yes, that’s it. For too long side tables have too few pointless things on them. This will solve that problem once and for all.
Investors, you know where to find me. 😜
-
Dealing with numbered lists in any web-based WYSIWYG editor is always a pain. I don’t envy the developer tasked in building out that feature. At least the wiki I’m using allows you to start lists at arbitrary numbers, rather than forcing you to start at ordinal 1. Little victories I guess.
-
No, what BMW should’ve done is kept their seven-segmented displays. Then, on ignition, start cycling this on the dashboard clock. That would get me to tip my hat at the attempt. 😼
-
I’ve recently been aware of the use of “plonk” in Usenet culture to mean adding something to a kill/block list (h/t Reconcilable Differences). I may need to issue a “plonk” to BMW after they put an ad on the dashboard of their cars. They can’t be trusted with LCD screens.
-
SSH Cheatsheet
Various techniques for working with SSH. Continue reading →
-
The more I use websites that support keyboard shortcuts, the more I wish that more websites support keyboard shortcuts.
-
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.
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.
-
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.”
-
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. 😜
-
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.
-
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.