Specification vs. implementation

There are a lot of times when the specification says one thing but common implementations do another. Here are some especially common examples to watch out for.

UPDATE (4/14/2026): I was wrong about the source of the issue that led to me writing this article, but it’s still the same issue! It just happened somewhere else in the chain than my investigations led me to believe. Which still emphasizes the point.

Read more…

Why I dislike .well-known

There is a growing trend for new protocols to express themselves in the form of a well-known URI. It’s seen as an easy place to stash something where other interoperable software might want to probe for protocol support, as an improvement to the old ad-hoc behavior of things like robots.txt and favicon.ico and the like.

I am not personally a fan of it, for a few reasons.

Read more…

On LLM-based programming

Lately there’s been a brewing culture war in the software community regarding the usage of LLM-based coding tools (ChatGPT, Claude, Gemini, etc.), and I’m seeing a lot of hardline discourse on both sides, but especially from the anti-AI side of things.

First of all, to be clear, I am not in favor of LLM-based programming. My personal opinion is that LLMs are catastrophic to the environment and to the Internet as a whole (especially due to the added burden of every server being overwhelmed by the relentless AI-focused crawlers), and to the intelligence of the humans who wield them.

However, in the current landscape, I have also found myself (begrudgingly) using them on occasion to a limited degree, and in the mind of some folks, this probably irrevocably taints my code. So I’d like to at least discuss my perspective on them.

Update: Also it bears repeating here, as with everywhere else, that OpenAI is a key, willing part of the war machine, and so I will not intentionally be using any of their products for anything going forward, and taking every step I can to avoid unintentional usage.

Another update: The open slopware list is back, and after a discussion with the current maintainers I have opted to modify some of the language I used in this blog post to clarify my stance (namely that I am not in favor of AI). The substance and intention behind the post have not changed.

Read more…