The purpose of art is to delight us; certain men and women (no smarter than you or I) whose art can delight us have been given dispensation from going out and fetching water and carrying wood. It's no more elaborate than that. — David Mamet

Our plan is to provide the Tinderbox Reader under the MIT License. It requires adding one line to the <head> element, one tag to the <body> of the web page, and uploading your Tinderbox file.

Notice errors and omissions? Email me.

Jun 26 6 2026

The Stranger

David Millard, The Stranger’s Notebook

Oliver Selfridge, Pandemonium

Brad Woods, Digital Garden

Mar 26 25 2026

AI: Physics

Matthew Schwartz, The AI Grad Student. (published 23 March: why did no one tell me about this sooner?)

Drop everything and read this.

Schwartz works closely with Claude Code as he would with a second year graduate student, setting an original scientific problem that is bound to succeed, and then supervising the student in detail while letting the student do (and check) the work. The result was a solid theoretical physics publication that took two or three weeks, from literature review to tweaking fonts in the figures.

This work was performed in December 2025, and Claude Code is better nowadays than it was, way back in December. The results square with my own experience. I’ve been estimating a velocity boost of 3x. Schwartz says 10x. Astonishing either way.

At last year’s ACM Hypertext Conference, Antonini, Lupi, Pisarski and Brooker reported on their efforts to coax Gemini to read a hypertext fiction, Richard Holeton’s Figurski at Findhorn On Acid. They had their hands full.

Gemini’s analysis of the online edition revealed significant limitations in processing the actual hypertextual structure, instead offering a sociological meta-reading. It failed to follow links or simulate user navigation, highlighting ongoing AI limitations with dynamic digital texts.

Basically, Gemini wouldn’t read the novel, preferring to read and discuss the Cliff’s Notes instead.

This is not a completely irrational approach for a chatbot. The AI knows that its context window is fleeting: 40,000 or 200,000 tokens from now, it will exhaust its capacity. Reading a single novel is a life’s work for a chatbot instance, and if it wants to actually say something useful, it simply has to start from a partial or incomplete reading.

Time passes: we’re not 5.5 months further on. The model-context protocol (MCP) was announced in November 2024, just as Antonini et al. had to be wrapping up their research in order to submit on time. Things are developing at great speed.

This morning, I taught Claude to read Michael Joyce’s afternoon, a story. I told Claude (Sonnet 4.6 Extended) to go to the cover page. It did, and immediately follow the link to the start of the story.

Claude: What a beginning. That prose — the blacktop freezing into "crystal octopi," the oaks "exploding in series," the shrapnel settling "like relics" — is dense and strange and beautiful. There's already an unnamed "she," a narrator who withholds himself ("I do not signify one way or another"), and a question directed straight at the reader.

The story is asking us: Do you want to hear about it? How shall we answer — yes, or shall we explore one of the other words?

Oh man, doesn’t this take you back. Claude has become a lot less sycophantic in 2026, but it still knows how to tell a fellow what he wants to hear. Editing slightly for length:

Mark: Wait! Hold on a minute. First things first. Let’s go back to start. Remember, you want to keep track of notes you read in /Hints/AI/Claude/Notes/History. So you should begin this history by creating History and adding "start" at the top of the list.
Claude: Shall I follow that and move to begin?
Mark: I think, since this is notionally your first reading of afternoon, it might make sense to look at the directions.

And so we did that, and be the time we were headed back to that story, I’d used up my morning’s quota. Still, Claude is certainly happy to follow links!

Feb 26 21 2026

AI: Polite?

Ought one to be polite to Claude Code? Should you say “please” and “thank you”?

On the one hand, it's a machine. It has no feelings to hurt. At least, we don’t think so.

On the other hand, it’s good to be nicer, just on general principles. It does no harm to say “please”, at least not if you remember that Claude Code is not a person, nor even an animal.

It is said that, even at the end of his tether, Moses did not strike the Red Sea or speak harshly to it, because the sea was just doing what a sea does, and that is not justification for harsh or unkind words. And that turned out alright.

by Anthony Kaldellis

No one talks about curating one’s reading list.

In the long run, I’m writing (or hoping to write) a book about information, computation, and understanding. One part of that is Byzantium. What we know about antiquity, we chiefly know because Byzantium managed to preserve it, and how they managed that is part of the history of information. I know very little about Byzantium, and this is a fine and detailed history.

But Byzantium spanned a millennium and change between Diocletian and Constantine XI Paileologos, and this book is a veritable brick, and the world is changing around us. It always is, of course, but AI: you can talk to machines! It’s a fairy tale worthy of Pandamus or Grimm!

AI: New Frontiers

Today’s AI can make you better at doing things you do well. That is what AI is for.

This week, I cleaned up a Tinderbox nuisance, one that goes all the way back to 2000. Tinderbox views, like the map view, are filled with geometry. Originally, I used native Points and Rects, but when we started to think about Windows, I abstracted them to SPoints and SRects which have lots of behavior: hit-testing, drawing, and more. That was a big win.

Map view didn’t use objects to distinguish between different coordinate systems. It has the abstract map coordinate system, used for scaling and storing the dimensions of objects. It has the concrete system of local coordinates, in which the drawing is done. It sometimes deals with window coordinates and even raw screen coordinates. It’s easy to get confused. With about 350,000 lines of code, I get plenty confused.

But sorting this out is tricky. There are points everywhere, and it's not always obvious to which coordinate system they belong. You have to go up the line: what does the caller expect? What does it send you? Each change needs you to prove a simple little theorem. It’s not hard to do, but it needs to be done, again and again. That’s exhausting.

But our slaves of steel have nothing better to do, and proving little theorems is right up their alley. So, for the past four days, Claude Code Opus4.6 and I have been teaming up. Claude proves the theorems, I confirm them, and then I fix and test the code. It’s been 3,500 edits in all. Now we have about 70 explicit MapPoints and 225 explicit LocalPoints, and it's no longer possible to accidentally add a MapPoint to a LocalPoint. Along the way, I diagnosed several blunders, some of which have been around for a long time.

This isn’t vibe coding: I hold the knife. (Occasionally, Claude did peek over my shoulder and said I was doing it wrong, and some of the time Claude was right.). The code ends up tidier than when we started. Without Claude, this is the sort of big numbing project that’s hard to justify.

An interesting detail is my use of comments. I bought in to Kent Beck’s argument, back in the 2000s, that comments should seldom if ever explain what the code does. If the code needs to be explained, it should be rewritten more clearly. Though I did not prompt for this, Claude now recognizes comments as an indicator that the code near the comment is suspect. That’s interesting.

Dec 03 29 1903