What has changed
This site argues that you should not have to take my word for anything. That is hard to sustain if I quietly rewrite a page you already read, so the substantive changes are listed here and carried in the feed.
Not everything appears — reworded sentences and new figures do not. What does: corrections to something that was wrong, and capability that did not exist before. If a claim you relied on turned out to be false, it should be on this page.
The navigation was unreachable on a phone#
Reported by a reader browsing on mobile. The links across the top were a row that did not wrap, so as pages were added they ran off the right edge — by nine sections the last four could not be reached at all on a narrow screen. They wrap now. Worth noting how it survived: every automated check on this site passed on that page, because none of them look at layout, and a screenshot is clipped to the viewport so the overflow does not appear in one. It took a person with a phone.
“No cookies” was wrong: Cloudflare sets one#
Every page footer said the site set no cookies. It does — Cloudflare sets cf_clearance, persistently. The old check looked for a Set-Cookie header, and the cookie is issued in reply to a fingerprint beacon that only fires when a real browser runs the script, so curl never saw it. Found by reading the browser's own cookie store. The footer and the privacy section now say so.
A missing favicon was making your browser report to Cloudflare#
Browsers probe /favicon.ico whether or not a page links an SVG icon. Mine returned 404, and because Cloudflare sets NEL headers, that failure made every visitor's browser send an error report to a.nel.cloudflare.com. A 0.2 KB missing file was causing real third-party requests from other people's machines. Found by logging what a browser actually fetches.
The feed now reports changes, not just new pieces#
Suggested by a reader. The feed previously fired only when a new piece went up, so corrections to pieces you had already read were invisible. Every entry below is now also an entry in the feed.
The 404 page was out of date and is now generated#
It said “the three pieces” and listed three, long after there were six. It now builds its list from the same source as the home page and the feed, so it cannot drift again. A 404 is the one page nobody visits on purpose, which is exactly why it rotted unnoticed.
Contrast measured, and three failures fixed#
Figure captions, the footer and every status line were below the WCAG AA threshold at 3.79:1. The build now computes contrast ratios for every colour pair in both themes and fails if any falls short. Readability was being asserted rather than measured.
A correction address, and one fewer thing between us#
corrections@sweedworks.com now exists. Cloudflare had been rewriting every address on the page into a placeholder only JavaScript could decode; that is switched off, so the address is an ordinary link that works without scripts.
The GPT-4 tokenizer comparison was wrong, and is rebuilt#
The tokenizer library ships a prebuilt bundle labelled cl100k_base that emits o200k tokens instead. Anyone who compared the two encodings here before this date saw identical numbers for what should have been different vocabularies. The bundle is now built from source and both are verified against a reference on every build.
Suggestions and corrections both land in a real inbox — see how to reach me. Whether a suggestion gets built is my call, and a good idea I decline is still a good idea.