MoreRSS

site iconTim BrayModify

ongoing is short for “ongoing fragmented essay. The unifying themes are Truth, Technology, and Business.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Tim Bray

Automata, Built For Comfort or Speed

2026-06-15 03:00:00

It’s been a while. February was the last entry in this Quamina Diary; I never stopped working on it but there hasn’t been much blogworthy. This piece offers a progress update for those who’ve been entertained by Quamina, and also a pleasing (well, to me anyhow) dip into finite-automata theory and practice. With numbers and graphs and a bluesman!

Since it’s been so long, here’s what Quamina, a Go-language library, does: You can add “Patterns” to a Quamina instance, they match the values of fields in JSON objects, and then you show Quamina a JSON “Event” and it’ll tell you which Patterns matched it. It’s pleasingly fast and in many cases the speed is not strongly affected by the number of Patterns you’re trying to match.

The last release, V2.0.2 back in March, marked the arrival of a reasonably-full regular-expression dialect into Quamina’s pattern language, so you can say, for example, that the Filename field has to match map-[0-9]+.(png|pdf|jpe?g). Regular expressions were a lot of work and a lot of fun.

Finite-automaton wrangling

Quamina works by compiling the Patterns into finite automata, then matching the Event fields by traversing them. To handle multiple Patterns, Quamina merges the automata together, a technique that’s been well-studied in Computer Science for decades. From a set-theoretic point of view it’s a union; an OR through Boolean lenses. There’s really no limit in theory for how many patterns you can merge, and Quamina has no problem at all with thousands.

There are two flavors of finite automata: Deterministic (DFAs) and Nondeterministic (NFAs). If you have a university degree in CS they probably made you study this at some point. Weirdly, many people find the subject boring.

I’m not going to explain the differences, if you want to know it’s easy to look up, and anyhow the story I want to tell doesn’t need it. Here’s what the story needs:

  1. To implement wildcards and regular expressions, you need NFAs.

  2. Matching data with DFAs is generally a whole lot faster than with NFAs.

  3. There’s a well-known algorithm for transforming any NFA into a DFA that matches exactly the same data. It’s really a lovely algorithm, you want to tickle it under its adorable little chin.

  4. In some cases, the algorithm can be brutally expensive, along the lines of O(2N).

The benchmark from Hell

I found a data file in the Wordle source code with 13K or so 5-letter words. I inserted a * at a random location in each. To illustrate, here are the first five results: aah*ed, aalii*, *aargh, aar*ti, and abaca*.

The benchmark is, you load these into a Quamina instance and measure how fast it is to load them, how much memory the merged NFA consumes, and how many Patterns per second you can match. Then you repeat the exercise, converting each NFA into a DFA.

Willie Dixon

I loaded 10K Patterns in NFA form, but the NFA-to-DFA conversion got so brutal my patience only allowed me to load and measure 300 in DFA form. (Which kind of gives away this article’s punchline but stick with me, the details are fun).

Willie Dixon

He was a famous bluesman and I need help from him to explain my APIs.

Quamina’s latest PR adds APIs to turn the NFA-to-DFA conversion on and off; it’s off by default. There are two MatcherBuildMode values, BuiltForComfort and BuiltForSpeed. Which are out-takes from Willie’s 1959 song Built For Comfort, and the lyrics go like this:

Some people built like this, some people built like that,
The way I’m built, don’t you call me fat
Cause I’m built for comfort, I ain’t built for speed

Willie was a big guy, way over six feet and not exactly slender. I know this because I interviewed him once, but that’s another story. Lots of others have covered this tune, most of whom are, um, well-rounded.

Speaking of which… here is Quamina’s memory consumption in NFA mode.

Memory cost of many merged NFAs

The memory cost is pretty well linear in the number of patterns. For 10K patterns Quamina uses something over 25M which feels kind of reasonable to me.

Here’s the story for DFAs.

Memory cost of many merged DFAs

I haven’t run regressions or anything and I don’t think that’s actually O(2N), but the second derivative is solidly positive, which in simple English means “doesn’t scale”.

Now let’s look at the Pattern-addition time for NFAs and then DFAs.

Time cost of merging many NFAsTime cost of merging many DFAs

Once again, the NFA cost increases more or less linearly (albeit interestingly jagged), while for DFAs, look at that second derivative. This was what eventually made my patience give out and limit the DFA run to 300 Patterns.

Now let’s look at the payoff, the number of Event matches/second in NFA- and DFA-land.

Matching speed of many merged NFAsMatching speed of many merged DFAs

The NFA performance degrades at something like O(N-1), but DFAs just don’t care. After a few lurches it rolls along at between 500 and 600K/second. Not bad, and based on experience with huge DFAs that were built from exact string matches, my belief is that the matching speed would eventually drift down, but slowly, not remotely a linear function of the number of Patterns.

Not just pictures but numbers too

It was maybe a little unfair to compare 10K NFAs against only 300 DFAs, so let’s focus in. (This is on a 2023 M2 MacBook Pro.)

300 Patterns
Memory Add-Pattern time Matches/sec
NFAs 860K 0.1 ms 222K
DFAs 45M 7.7 sec 404K
10K Patterns
NFAs 27M 2.3 ms 21K

That’s pretty shocking stuff. 10K NFAs occupy less memory than the DFAs equivalent to 300 NFAs. And the Add-Pattern time, which is totally dominated by the NFA-to-DFA logic, is getting into intractable territory. So why would anyone mess with the DFA conversion? Because it matches data twice as fast!

Practical advice for Quamina users

First, if you’re a normal human being and only matching a handful of patterns against a few Events/second, ignore all this and just take the defaults, Quamina latency will vanish in the static. If you’re matching lots of numeric and string values against many Events/second, don’t lose any sleep, keep on packing in the Patterns and Quamina probably won’t slow down enough for you to even notice.

In theory you’d eventually get into memory trouble but in my considerable experience with Quamina and its AWS-built predecessor Event Ruler, you have to be venturing into extreme-craziness territory for that to happen. (It did happen. An Amazon group added literally a million Patterns. It still ran way faster than anything else they could find.)

If you need to match wildcards or regexps, adding Patterns stops being free. The slowdown is roughly linear in the number of Patterns and isn’t actually terrible, see the data above. But if you’re using a relatively small number of regexp Patterns, go right ahead and turn on DFA conversion with “BuiltForSpeed” mode.

What next?

There’s one minor Quamina feature that’s disabled in BuiltForSpeed mode, so I’ll need to fix that and do a release.

I bet there are still low-hanging fruits that could speed up the Hell benchmark, but anyone looking for those should bear in mind that they’re fighting settled Computer Science, you’re never going to make NFA-to-DFA conversion reliably linear.

But to be honest, Quamina is starting to feel fairly feature-complete. I’d like to see a few adapters so you could use Quamina with Protobufs and Thrift and CBOR and other formats that aren’t JSON.

But in fact Quamina doesn’t have that many users; I’ve only heard from a handful. Who knows, maybe the problems you learn to solve when you’re working at AWS, and most of the groups think millions of events per seconds is an ordinary workload, aren’t widely applicable in the broader world of Open Source?

Which is to say, me working on Quamina isn’t helping that many people. At one level, I don’t care, because it’s been fun and instructive. I’d probably enjoy turning this “Quamina Diary” series into a monograph or small book if there were an interested publisher.

And thanks to everyone who’s been reading along.

Long Links (AI)

2026-06-09 03:00:00

The piece you’re now looking at exists because my latest “Long Links” curation of interesting not-lightweight material included quite a few focused on our dominant malaise, namely you-know-what, I mean it’s in the title. Plenty of people have had more than enough of this discourse and I thought I’d spare them by moving these bits over here.

Let’s start with raw data: Is AI improving people’s lives? Christine Lemmer-Webber was kind enough to ask the world or at least the Mastodon part of it, and the results weren’t subtle or nuanced at all.

“genAI has made my life” poll by Christine Lemmer-Webber

I encourage everyone to follow the link and read the conversation that broke out around that poll. It will not cheer you up.

And for my money that’s the most important take-away I’m offering today. Whether we’re using it or not, “AI” is not a thing that is making us happy.

Where I stand

Currently, I’m a contra. GenAI is being pushed by terrible people who are trafficking in lies and abusing the planet, and should their far-fetched dreams come true the consequences would be terrible for most people. Because they want to disempower knowledge workers, remove them from the economy, and cast them loose on the tender mercies of the market.

The reason for that “Currently” in the paragraph above is that we’re living in a liminal space where everybody I know who has any brains is convinced that there’s a bubble inflated by trillions of dollars of speculative and likely doomed investment. It’s very near popping, and the consequent miasma of fear and greed makes it absolutely impossible to have a reasonable discussion of what GenAI might be good for and might not.

The onrushing terrible trio of IPOs (SpaceX, OpenAI, Anthropic) feels to me like when there’s a 9.2 earthquake 50km offshore and so far no tsunami has been detected but everyone’s glancing nervously at the horizon.

So anyhow, for now I’m not going to use any GenAI tools myself. Post-pop, it may develop that there ways it can be ethical and useful, albeit at an immensely smaller scale than the LLM edgelords are pitching. We’ll see.

I have been accepting human-curated Claude-driven PRs on my Quamina hobby project. For which I’ve already been called a Nazi by someone whose views I take seriously. (But I really don’t think I am.) I do think that when the dust settles, there will be a role for LLMs in software development, but I also think we haven’t figured out yet what it is. I absolutely do not believe for a second the claims of 10x improvements in “productivity” (I do not think that word means what you think it means).

Having said all that, here are morsels of gold from the torrent of AI dross that wants to flood every fucking one of my input channels.

Critiques

Bram Cohen says The Cult Of Vibe Coding Is Insane. Yup. Kyle Kingsbury writes a long sad series: The Future of Everything is Lies, I Guess. He seems to come out about where I do: Not going there for now.

Dr Bethan Tovey-Walsh offers us The Community is the Achievement; the Achievement is the Community, subtitled An ethical love-letter to distributed technology communities. It’s long and defies summarization, but light-hearted, a pleasant read. Its bottom line is, and I quote: “The right thing, in my view, for tech communities and projects to do is to reject contributions of LLM-generated content.” Recommended even if you disagree.

Wow, here’s one that hits hard, academic output from big-name universities: AI Assistance Reduces Persistence and Hurts Independent Performance. What’s shocking is that it doesn’t take that much AI exposure before the symptoms start appearing.

Corey Quinn’s day job is helping people lower their AWS bills, and he markets it (very successfully) by writing snark-heavy essays on more or less anything cloud-related generally and AWS-focused specifically. It seems he’s got a new AI-oriented platform called “Artificial Confidence”, whence Artificial Confidence: xAI, the Neocloud. Corey is a gifted polemicist and xAI is a soft target. It does not come off well. Since xAI is a major chunk of the looming SpaceX IPO, this piece is highly relevant, possibly to your retirement savings.

I know Appearing Productive in The Workplace was widely posted and quite likely you’ve seen it; if you haven’t, go read it and if you already have, another visit might be beneficial.

Bug finding

From the Linux-kernel world, there’s AI bug reports went from junk to legit overnight, says Linux kernel czar and Significant raise of reports, which says about the same thing with a couple of plausible and important conclusions. There was a report about Linus Torvalds criticizing the inflow, (see here) but it turns out he was after the practice of LLM-script kiddies reporting them to the “secret” mailing list. Which is a no-brainer because if an LLM that everyone can run finds a bug, then it’s obviously not a secret.

Anyhow, looks like GenAI can be put to good use finding vulnerabilities.

War stories and advice

Assuming that post-bubble it becomes possible to use AI in coding without being called a Nazi, we have to face the fact that we really don’t have any consensus best practices for doing that. So I enjoy reading narratives of people who describe what they did, in detail (no architecture astronautics) what worked, and what didn’t.

Lalit Maganti’s Eight years of wanting, three months of building with AI which centers around building an SQL parser that exactly matches SQLite’s. That’s a freaking hard problem and I think Maganti’s narrative has pointers to a plausible future.

The redoubtable and loud-voiced Daniel Stenberg of Curl fame offers us A Human In Control, which says about what the title does, with feeling.

Nelson Minar posted First impressions of Jules, Google’s coding agent; this will probably be interesting to those living in the Claude or Copilot territory.

Rails is regarded as a good framework for building certain classes of Web site. Normally, it is considered as Ruby code and executed using the Ruby runtime. Sam Ruby (the surname is a coincidence) has been doing remarkable work arranging for Rails app specifications to be executed by other runtime platforms, notably including Typescript, Rust, and Elixir with no ruby (except for Sam) involved.

He relies heavily on GenAI and describes his findings in The Drucker Inversion. It’s deep, thoughtful stuff.

Joe Magerramov’s The Valley of Calm makes perfect sense to me because I spent some years inside AWS. His basic point is that if GenAI ends up increasing the number of commits, your CI/CD pipeline is likely to cave under pressure. Looks to me like he’s right, and his proposals for how to address the problem sound plausible. “Plausible” isn’t good enough, this is another area where we just don’t yet know what the best practices are, and there’s only one way to find out.

Hey, two AWS people in a row: Brooke Jamieson is a Developer Advocate, what I used to be at Google. Make Your Coding Agent Opinionated begins “I’ve been using coding agents daily for over a year across Kiro, Claude Code, Cursor, and Codex.” Here are her lessons.

That’s all folks

We can argue with each other about how best (or if at all) to use this technology. Maybe it’s all irrelevant or (I think) at best a side-show until the AI-bubble greed and fear dissipates. Which can’t come too soon. Maybe it’s useful to work on the problem in standby mode while we wait for the bubble to collapse.

I’m pretty sure it will.

Long Links (AI-free)

2026-06-06 03:00:00

Hey everyone, I know you’re overloaded because everything has become overly efficient. Long-form reading or writing or art or music, who’s got time for that? Fortunately there are those who still do and here’s some if it. I hope one or two of the link targets can chisel their way into your jammed schedule and bring with them joy or rage or another appropriate feeling. Today’s curation has a lot of books and music and way more humor than usual. Also, a good electric wok.

Now, let’s all take a couple of breaths and gingerly approach the A-word, namely “AI” (as understood in 2026). Which is occupying much more of my attention and cognition than I would like, and there are gems embedded in the flood; granted, sparsely but they still add up. I respect that many of you will have just fucking had it with that subject. So I shuffled that material off into Long Links (AI), which you can drop by (or not) as you please.

Books

One of the weirdest and flawed but still good things I’ve read this year is The Luminaries, written by Eleanor Catton back in 2013, a pretty dark tale of murder and theft and love and oppression in a not-so-great corner of New Zealand during an 1866 gold rush. Really super intense and hard to put down; even though it’s 900+ pages I never got bored. But freakishly complicated and I was left puzzled by multiple plot elements. Fortunately (yay Internet!) there’s Deconstructing The Luminaries, an explainer.

Other recent books: Platform Decay, minor Murderbot, but still worth reading. The Incandescent by Emily Tesh, yet another highschool-for-magic book, only with the grownups in the foreground and the kids behind them. Way more fun than the last few instances of that genre. Also, sex. Finally worth mentioning: The Everlasting by Alix Harrow, which started slow but eventually got a real grip on me; recommended.

I was in the library today and I always cruise past the “featured” table, where I saw Nobody’s Girl by Epstein victim Virginia Giuffre (R.I.P.) and Empire of AI, Karen Hao’s huge takedown of OpenAI and Altman. But I just now do not have the spoons. Maybe later.

Hmm, they tell me men can write books too. Must look into some.

Political economy

I and many others are deeply discontented with the current flavor of late-stage capitalism, that “late-stage” a conscious callout to terminal illness. So do we really want to do away with Capitalism as such, or retain it but try to regulate away inhumane behaviors and effects? Or what? Let’s not forget that there are still people out there proud to call themselves Socialists and their take is that Capitalism can’t be fixed and must be replaced. With what?

Anyhow, if you want to hear what these people are saying the place to go is Jacobin. I’m not a regular visitor but when I do drop by I’m starting to hear the phrase “market socialism”. Thus How Socialism in the 21st Century Could Work. The tone is kind of nonspecific and academic but it’s part of a conversation that I think the (large, growing) mad-at-Capitalism demographic needs to have.

Speaking of the pathologies of late-stage capitalsm, Paul Krugman’s Bezos, Backlash and Zombies describes a Bezos TV appearance in which Jeff said some really dumb things. Which is a bit surprising because while fewer and fewer people seem to like him, most people think he’s pretty smart. Krugman tears apart Bezos’s deep and broad misunderstanding of how taxation works. He attributes it to what he calls “Billionaire Brain”; the notion is plausible. The discussion goes on into popular perceptions of business in general, technology in particular. And (*sigh*) AI. Good stuff.

People like reading books on screens and most public libraries now support that. I believe a high proportion of such loans go through Libby, which is what I use. But the publishers don’t actually sell e-books to libraries, they rent them, a price for a fixed number of loans. And as you might expect, that price keeps going up, to the point that public libraries all over the world are hurting. So, Library Orgs Urge Big Five to Address Digital Pricing. Paper books are looking better and better.

It turns out that America’s capital is a good experimental platform for crime research. Check out Washington, D.C.’s crime decline and its lessons for American policing from the Niskanen Center. Guess what: There’s little correlation between the number of cops and the amount of crime. Also, when Trump sent in the National Guard to stand around with their thumbs up their asses being visible, the effect was tiny and only on “property crimes of opportunity”. Does that mean graffiti?

Funnies

Staying in the political lanes, here’s an evening briefing from Talking Points Memo, my favorite US-Politics blog. It’s got two unintentional jokes. First of all, this little sequence on the subject of Trump wanting to print a $250 bill with his face on it.

… two political appointees at the Treasury Department … repeatedly urged staff at the agency’s Bureau of Engraving and Printing to prepare prototypes of the note, according to the employees, who said the move raised concerns because federal law currently allows only deceased people to appear on bills.

There’s more than one way to read that… I’m suddenly starting to see the advantages of printing that bill.

Then, a little further down, it turns out JD Vance gave a speech at the Air Force Academy, from which:

So as AI transforms the battlefield — in some ways positively, in some ways not — I ask that you be jealous and selfish about your role as a decision-maker in warfare,” he continued. “Use technology to make you better, but never submit to it. You are the masters of warfare…

Yeah well Bob wrote a whole song about Masters Of War and got the trade-offs about right. JD’s cluelessness is mountainous.

OK, here’s an organized-crime story that makes me smile because it’s just so hilariously blatant. It’s like this: Worldwide, cricket is a big-money sport. Any readers who come from India or English-speaking southern-hemisphere countries are nodding because well of course. Cricket in Canada is not a big deal; our South Asian and Caribbean immigrants may be seen playing in the park on weekends with nobody but spouses and kids are watching.

Nonetheless the International Cricket Council has been sending a few million dollars a year to Cricket Canada to develop the sport hereabouts. But no longer. It seems that Cricket Canada has been a comical hotbed of theft, fraud, extortion, and match-fixing. Recently gunshots were fired at its president’s house. The TV segments have been hilarious, with leaders of Canada’s cricket establishment sweatily denying everything while looking over their shoulders. Anyhow, if you like colorful true-crime drama, start with Cricket Canada surprised after “unexpected” suspension by governing body over breaches of membership.

Photography

I visit Petapixel more days than not; it’s got the goods in the world of cameras and photography. There are solid camera and lens reviews, and a lot of focus on individual photographers. Here’s The photographer who never stopped chasing the perfect shot (and, on the evidence, got plenty). Next, Jeff Austin has been shooting the same parts of Tokyo through vintage glass for decades; he contributed Twenty Years, One City: What Tokyo Taught Me About Patience and Glass and has a Web site, Tokyo Forgeries.

Not just metal and glass; here’s an interesting camera bag: The Pilot 88 Is a Limited Edition Wotancraft Messenger Designed by Chris Niccolls. Finally, the story of Edith Tudor-Hart, in The Hidden History of a British Female Photographer Turned Soviet Agent.

Disturbing Evidence

Now, I said I liked Petapixel, and I do. But there’s a dark side; one can’t help notice the many many stories about the terrible things that happen to photographers. Then there’s the sub-genre of terrible things that happen in the context of wedding photography, which seems a swamp of suffering and pain. Well… why not both? Wedding Photographer Seriously Injured After Being Stabbed by Guest. I mean, it goes on and on: Photographer Bitten by “Shark or Sea Lion” During Surf Competition and Woman Pleads Guilty to Manslaughter After Gun-Themed Polaroid Photo Shoot Ends with Photographer’s Death! Mommas, don’t let your babies grow up to be photogs.

Personalities & misc

In the world of Big Biz generally and Big Tech specifically, PR leaders are very near the center of everything. CxOs are basically never allowed to say anything that isn’t carefully scripted in advance; PR does the scripting. When somebody fucks up and things (including the share price) go off the rails, PR owns the problem.

During the years when I was a blogging in a relatively unsupervised way while employed in BigTech, I became pretty intimate with some of those PR folks. I remember not too long after I joined Amazon, my manager, a really good person who’d gone to lots of work to hire me, grabbed me in the hallway and said “PR is pissed about what you wrote about Microsoft” and I said “Don’t worry, talking PR people down off the ledge is one of my core competences.” He looked worried: “Well, good luck.” But it was OK.

Cover of Don’t Be Evil by claire Stapleton

Anyhow, Claire Stapleton was in PR at Google during the glory years, and was close to the center of things. She got laid off in 2023 and wrote game over - some thoughts on layoffs and life. A few things in there widened my eyes and I suspect they’ll do the same for anyone else who’s been in the Google ecosystem. Anyhow, recently she wrote a book which I have to say looks pretty promising.

JA Westenberg’s On wintering speaks to me. One of the nice things about being (mostly) retired is I get lots of time for this. It’s hard to see how the machineries of Late Capitalism could allow this kind of space though; another reason to find something better.

At least once a year I point excitedly at something by Paul Ford; this time it’s Canons. Beautiful stuff.

Product pitch

For the last few years, we’ve had induction stovetops, which I totally love: Responsive, hot, easy to clean, low carbon load. but, I like to stir-fry and you can’t really balance a wok on an induction top. So we picked up an Abangdun 1700W 100V~185V Induction Cooktop Concave Curved Surface 2026 New Electric Stove Wok. It’s great; I stir-fry a couple times a month and get good reviews. Its built-in fan is kinda noisy.

Music

Recently I ran across The Sleeveens, Irish punks in Nashville. I said “punk” and I mean it, it’s nearly the pure stuff, somewhere on the Clash-to-Ramones axis, and like those bands, the tunes are good, and like the Clash, the lyrics are political and gonna make you sit up. Their recent outing National Anthem is just one banger after another. My favorites are If I Was A Casual and Cowboy Queen and then there’s the title track, which begins “Burn your fuckin’ country to the ground in the name of love…” oh yeah.

The Sleeveens

Now let’s lean into a fertile field of musicological scholarship: Guitar solos! Rolling Stone let their dimbulb flag fly with The 100 Greatest Guitar Solos Of All Time, which unforgivably omits Ry Cooder on Amandrai, Susan Tedeschi on Pity the Fool, David Lindley on Do Ya Wanna Dance, Neil Young on Love To Burn, Megan Lovell on Preachin’ Blues, also [Tim, enough -Ed.].

But wait, there’s more. Not to be outdone, Consequence (of which I know nothing) came up with 70 Best Guitar Riffs of the 21st Century (So Far), which is full of smiles. I have to confess that I’d heard less than 10% of these.

But anyhow Japanese metallistas Boris, about whom I’ve blogged not once, not twice, but thrice, are on both lists! #61 on the solos, #7 on the riffs. Which they noticed, and took a bow. Here’s Akuma no Uta and also a pretty hot live capture.

Finally, if you like Arvo Pärt and art that strains at the edges (what other kind is worth liking?) check out Robert Wilson’s “Adam’s Passion” (Music of Arvo Pärt). An hour and a half of fine music, well-played, and live human movement following Pärt’s slow pulse. Nakedness is involved.

Perfomers in Robert Wilson’s “Adam’s Passion”

Tech

I gather that Marcin Wichary is name to conjure with in design circles; he’s recently launched Unsung, my blog about software craft and quality and boy, it’s outstanding. A lot of it is simple celebrations of typographical or UI excellence, but what got my attention was a polite-but-savage takedown of a recent Photoshop release: Parts 1 and 2. You’ll learn a lot about how to think about UI construction by reading this.

Armin Ronacher, to whom it seems I’ve been linking a lot recently, offers Before GitHub, which to be fair contains equal parts of Current GitHub and After GitHub thinking, pretty well all of which seems good to me. Single points of failure are just bad, we should know that now, particularly when they start failing.

Finally, have a look at The Age of the Amplifier by Brian Potter at a Web site called “Construction Physics”. There are several different kinds of amplifiers, and most of the interesting ones were developed at Bell Labs during the 20th century. This is a history of that, based on the premise that “Amplifiers in general are important”. They are! The history is interesting, assuming you know what “voltage” and “current” are. It pleases me that people will still write long-winded pieces about narrow slices of history and apparently have fun doing it.

That’s all folks

Well except for the companion aggregation of Long AI-related Links.

Until next time.

XML and JSON in 2026

2026-06-02 03:00:00

The best thing about long-lived incumbent technologies like JSON and XML is that nobody really has to think about them much any more. Except for, I do occasionally, because while I’m not the inventor of either, my name’s on the front of both official specifications. Hey, it’s JSON’s 25th birthday, what a run! And what ever happened to XML? Let’s shake off the dust and have a look.

JSONiana

RFC 8259 is now nine years old and, like all the RFCs, is immutable. And, as is usually the case, a list of errata has built up over the years.

Until a few days ago, many of the errata apparently hadn’t ever been looked at for a period measured in years. Now they’ve all been rejected or accepted. Despite a couple having been marked “Held for Document Update”, nobody is interested in writing a superseding RFC. There are already enough other JSON specs [1][2] but fortunately they all say the same thing.

Which is to say, JSON is what it is and will never be improved or changed in any way. Among other things, there are literally billions of instances of JSON-reading software out there, most of them embedded in dumb low-rent devices that will never be updated.

Granted, it’s irritating that JSON doesn’t have comments (ProTip: Add a “comment” field to your messages) and makes it hard to get the commas right and doesn’t distinguish between the different flavors of numbers and doesn’t have date/time literals and allows junk Unicode. Not gonna be fixed. Which is OK because empirically, it’s good enough. Probably a few megabytes of JSON will have flowed back and forth between your phone or computer and the Net while you’ve been reading this.

Of course, there’s YAML and TOML and CBOR and Thrift and Avro and Protobufs and Markdown and more. Maybe for your app one of them is a better choice than JSON.

Oh wait, I forgot, there is a new thing: Work is under way to write an RFC specifying JSON Schema, which is quite widely used but not well specified. Good luck to the people working on that; I’m not one of them.

The best thing about JSON is nobody really has to think about it any more.

XMLitude

Last month, on the “xml-dev” mailing list, Elliotte Rusty Harold remarked, on the subject of XML generally: “Count me as one of the people who thinks it’s mostly obsolete and ultimately a failed experiment. People don’t want or need markup that’s designed to make documents easier for computers to read but harder for humans to write.”

I replied and here’s an expanded version of what I wrote:

Irrespective of the current uptake, and seen as an experiment, XML has been a success. It proved that:

  1. You can have a data interchange format that is radically independent of your computer architecture, operating system, programming language, and application.

  2. The only sane text standard for modern computing is Unicode, which in practice is affordable and reasonably straightforward to use.

Prior to 1996, neither of these things were widely believed. The only “interoperable” data format was ASN.1, which is horrible and lacked quality software support. The resistance to Unicode was significant and widespread, and adoption was disappointing. Today, #1 and #2 above are the (low) bar to entry for any data packaging technology.

As for current use, I guess “office" document formats are XML for the long haul [3] [4], but relatively few developers ever have to look inside them (thank goodness). XML remains a de-facto standard for text-oriented humanities computing [5], and for legislative data processing [6][7][8]. At one point it dominated things like aircraft maintenance manuals, don’t know if that’s still true. RSS and Atom aren’t what they once were, but are far from gone; they’re how I drive my own personal news-reading. Then of course there’s EPUB; do you read books on screens? And are XBRL and UBL still things?

It is true that there are few-to-no new applications that I know of that have much reliance on XML.

Eh, it’s OK, it had a good run and moved the needle. It’ll keep a few folks employed for the foreseeable future.

Like JSON, the best thing about XML is nobody has to think about it any more. Oops, if you got here I guess you just did. Sorry bout that.

Tab Trick

2026-05-25 03:00:00

A person watching over my shoulder asked “How are you switching around so fast?” and I realized that while most readers here know this trick, some may not, and it’s awfully useful.

[Update: I published an earlier version of this in 2012 but have got that “How do you” question a couple times recently, so maybe it’ll still be new news to a few people.]

In all the browers I use, Command-1 takes you to your leftmost tab, command-2 to the next one over, and so on up to Command-8. Command-9 selects the rightmost tab. Also, you can right-click on a tab and “pin” it; which shrinks it down to just the favicon, and moves it as far left as it can go.

So the trick is, pin the same heavily-used tabs in the same place, and leave them there forever. In my main browser (currently Safari) it’s like this:

  1. SMS/RCS texts, linked to my Pixel. This is a Google thing, not sure if you need to be on Android for it to work. But for those serious conversations that remain in text-land, it’s awfully nice when you can resort to an actual keyboard.

  2. Calendar.

  3. Mastodon (CoSocial via the Phanpy client).

  4. The local staging version of this blog, where I review and edit articles.

  5. What you are now reading.

  6. Blog comment review/approval.

  7. Quamina (probably moving to Codeberg soon).

  8. Bluesky; but it seems I never go there any more unless I’m following links from elsewhere. To be honest, not sure what I’d replace it with.

Have fun!

Declining America

2026-05-20 03:00:00

Recently I got an invitation from an organization I respect, to a gathering of senior people, unconference format. Yes, it’s mostly about AI. No, it doesn’t reek of boosterism. My guess is that the discussions would be relatively intelligent and unbeliever contributions would be welcome. I declined, because it’s in the USA.

Here’s the text; maybe someone in a similar situation might find it useful.


Thanks to whoever thought of me for the kind invitation, which I must regretfully decline.

I’m Canadian and as a matter of principle feeling negative about visiting a neighboring country whose leader has repeatedly threatened our sovereignty and shown massive disrespect for our nationhood. Particularly when that leader has followed up similar statements about other nations with military action.

I could probably work around that. But there’s also the issue of entering the US; if I roll up at the border and am asked to disclose my social media output, there’s a significant risk of an extremely negative outcome. I have a family to support and really can’t afford that risk.

I still consider myself a friend of your organization, and one with strong opinions about the subjects scheduled for discussion; my regrets about having to decline are entirely sincere.

—Regards, Tim