Tuesday, October 27, 2026

Smart Understanding

A robot instructor stands at a white board, which has two things
  written on it: a computer program and a description of that program as a flow diagram.
  The program, in a block-structured language, initializes a variable S to zero, 
  enters a loop with a variable i that ranges from 1 to N.
  Within the loop, there is a test of whether A(i) is greater than 0,
  and if it is, then the variable S is augmented by the value of A(i).
  By contrast flow diagram has four boxes that feed each other in a sort of pipe.
  The boxes are labeled 'Enumerate 1..N', 'Generate A(i)', 'Filter positive', and 'Sum'.
  The instructor has drawn a dotted line showing the correspondence between the initialization
  of a loop and the 'Enumerate' box in the flow diagram.

Setting the stage

In the early 1980s, after graduating from MIT, I worked at the MIT AI Lab on a project called the Programmer's Apprentice.

Looking back, although the details differ because we were using technology over 40 years younger than what's available today, the vision behind it wasn't that much different.

We programmed in a language called Lisp that continues in use today, but at the time was one of the most common languages used in AI research. Machines called Lisp Machines had hardware support for the language, and the Zmacs text editor of the time was very much like the Emacs text editor is today. The Programmer's Apprentice was written in Lisp.

To go with that, we wanted to have an AI-style assistant that could see the programs we were writing, understand them, and take abstract instructions in English about how to modify them, and would make those edits for us. Pretty much the same model as an agentic “AI” programmer might be today.

Under the covers

The broad architecture of the Knowledge-Based Editor (KBE), or KBEmacs as it later came to be called, was very much like the way Large Language Models (LLMs) work today. Commands (similar to today's “prompts”) were issued to the KBE via an input box, the program itself would be digested into an internal representation, some transformations would be made to the program while it was in the internal representation, and then the result would be coded back up in Lisp (or whatever other language might be selected). At the time, Ada and PL/I were other languages that might be used.

A robot instructor stands at a white board, which has two things
  written on it: a computer program and a description of that program as a flow diagram.
  The program, in a block-structured language, initializes a variable S to zero, 
  enters a loop with a variable i that ranges from 1 to N.
  Within the loop, there is a test of whether A(i) is greater than 0,
  and if it is, then the variable S is augmented by the value of A(i).
  By contrast flow diagram has four boxes that feed each other in a sort of pipe.
  The boxes are labeled 'Enumerate 1..N', 'Generate A(i)', 'Filter positive', and 'Sum'.
  The instructor has drawn a dotted line showing the correspondence between the initialization
  of a loop and the 'Enumerate' box in the flow diagram.

What interested me at the time, though it seems routine now, was the idea of interacting asynchronously with another entity. Nowadays, people take agentic interactions for granted and there's been lots of intervening work on how to manage it all. At the time, we had the ability to spin off background processes and we had locking tools, but the rest of the mailboxing and coordination had to be spelled out by hand.

It was fun, actually. Charting the unknown. Something with the new “AI” people are unlikely to do any more. Now you just ask that it be done. That's convenient, but also a little intellectually sad.

Programmers bow to units of packaging called libraries. An apt metaphor in fact, because I think they often represent the packaged death of thought in the same way that great philosophy texts can represent as much the death of thought as the birth of it. Grand thoughts once having been thought, need not be revisited. Any goal of—much less right to—the simple joy of discovery is outright poo-pooed.
 —Kent Pitman, Whither Original Thought

A routine demonstration

Periodically, people would show up to see what we were cooking up. We had a well-practiced script that we felt illustrated the main ideas we were working with.

I was particularly interested in the interactions with the people funding us. They would watch everything carefully. I would watch them with equal interest.

Unlike some for whom we did demonstrations, it seemed obvious that they felt their role was to be a little bit skeptical. My sense was that they would watch as our interactions with the apprentice, directing it in English-like language to put a program together, and think “This is just form filling.” Form filling would not have been interesting. You could get that for cheap. They wanted to be wowed.

So they would watch with apparent boredom as the demonstration proceeded. I watched their faces. I could hear their minds. “Yeah, yeah. Bunch of forms being filled. Yep. Yep. More form stuff. Probably a garden variety template thing.” Their bored silence spoke volumes.

A less-routine response

Then an unusual command is issued. “Document the program.” That doesn't result in either a regurgitation of what has been said or a transliteration of the program into text. The documentation speaks at a high level about the structure of what the program is doing.

The funder is now alert to something unusual. They do a double-take. They pause and say, “Oh. It's smart.”

I am pretty sure I saw this effect more than once in different people. It really stuck with me. And I pondered why always in that moment. And why “smart”?

I came to believe that “not smart” meant a single representation being used in the ordinary way. A form to fill out. A function to graph. A program to execute.

“Smart,” I inferred after some thought, meant that the entity in question had different ways to approach a problem and could shift representation in order to accommodate the need of the moment.

A long-held idea

It wasn't a scientific proof, just an intuitive hunch, but it's been decades now that I have carried this in my head, watching the world to see what people think intelligence is. I have not found any strong reason to think that this is a terrible way to understand what we mean by “smart.”

When we know how to do something, we think of that as a method, an algorithm, a tool. But when we don't know how to do something, we have to improvise, to build something out of spare parts. Those parts have to fit together, and often they were not designed to go together. Correspondences have to be found that will let them align, communicate, and function as a kind of ad hoc machine of the moment.

Intelligence, it seems to me, is not the machine. It's the ability to cobble it together on the fly. It's why we have trouble looking at the ability to answer standardized tests as a true Turing test. Once the questions are known, there is no cobbling together. There is just executing of a known pattern.

Surprise is essential to testing intelligence. And that's why these funders were pleased. The outcome caught them by surprise. They trusted us not to have just wired up the answer, and so what they saw were signs of a toolbox of different models being seamed together dynamically. To them, it seemed to me, and still does, it was the earmark of intelligence.

 


Author’s Notes:

If you got value from this post, please “Share” it.

This is memoir, not autobiography. I did my best to piece together old memories. Although there is a recent project of mine to make a public archive of some of the artifacts. The sources to the KBE are available now at github as part of my history project. Jeff Shrager then took what I had restored and created code that runs again, with the help of an LLM, as part of his Executable Archaeology project.

The image was generated with help from abacus.ai's ChatLLM (Claude Opus 4.8 and GPT Image 2.5), with light post-processing by me in Gimp to reduce the resulting image in size for faster web download.

Monday, October 26, 2026

Unbearable Environmental Stress

A grayscale line drawing of a scene in a garage, with an open
          freezer full of fish in the background, and a 
          man carrying a gun slung over his shoulder in the foreground.
          There is a broken garage
          door behind him, as if he might have broken in. He holds one end of
          a fish that might be a small salmon, which he is pulling on as if
          fighting for it with someone who is outside the view frame, holding
          the other end and playing tug-of-war with him.

Large, furry canaries

Quite honestly, as I was skimming BlueSky and my eyes fell on the middle of a recent thread by Naomi Klein, before I saw the thread's start or end, I thought this was actually a thread about what people were doing now. It's not at all implausible they soon might be:

...breaking into garages and homes. Tearing doors off. Why? Because in southern BC, the salmon aren’t in the streams. Why? Because water levels are too low. Why? Weak snowpack and not enough rain. Why? We all know why.

— Naomi Klein (@naomiaklein.bsky.social) October 25, 2026 at 4:15 PM

When I ever-more-frequently speak openly of my fears about the possibility of a 2035 end to human civilization, it isn't that we'll drown or sweat to death.

It's this.

Food matters

When crops fail, and they will, many people will have no better options than the bears Naomi Klein mentions.

Crops can't hide in air conditioning like we do. Crops just die. As we do if not fed.

Anyone thinking “at least I'll be the one whose garage had food” is missing the point. It won't be pretty for any of us, those with a garage or those without.

A world full of people angry at being lied to and left behind will not act civilized.

A strong 401K is not protection.

We're totally unprepared

You may think you're smarter and have a gun, but food trucks won't have enough guns for the crowds, and roads only run if not littered with fallen food trucks.

You'll need a fully working ecosystem in that gated community of yours. Because you're not going to find one outside.

Maybe you prepped. But Climate Change is not temporary. Is your basement or cave or bunker ready for decades? Centuries?

  • Power, A/C & heat, water & sewage, hospitals, spare parts?

  • Room for kids and their kids? Will all get along in one room?

A prepped cave may be more fragile than many think.

We won't just adapt

Some think we will “just” grow crops elsewhere, a false hope sustaining our denial as Climate worsens.

Even if we did go north, people live there. And we couldn't keep doing it. There's not enough “North” for everyone who wants to go there.

Plus it's happening too fast as we prepare too little. Farms won't teleport or retool overnight.

Things can unravel fast

Three or eleven years ago, many thought the US democracy strong. Today, in 2026, it teeters, almost unrecognizable, its good name spoiled.

That good name had rested on foundations that were not as well-reinforced as many thought.

Holes poked in weak spots can topple things.

More efficiency won't save us

All this talk about improving efficiency in the markets ignores that Efficiency is not the singular god to which markets need pray, lest they feel the wrath of others not given their due.

Ruthless attention to Efficiency comes at the cost of neglecting Robustness, Sustainability, Health, Happiness—the list goes on. In sum, it begets a sociopathy.

This is the price that we paid when we quietly switched from stakeholder capitalism to shareholder capitalism in the 1970s.

(Interestingly, that story converges at the same turning point that Naomi Klein identifies in her book The Shock Doctrine.)

Nowhere to hide

We've been eroding the foundations of our ecosystem, and it's now eroding the foundations of our civilization in return.

That's because we don't live outside the ecosystem. It's not a thing to visit on weekends.

We live within it. So, as we kill it, we're killing ourselves.

We can't keep pretending the ecosystem is some infinitely resilient punching bag that, as we keep injuring it, will just bounce back for more.

It won't take this stress without breaking. Neither will we. It's all connected. We must fix it/us now, not later.

 


Author’s Notes:

If you got value from this post, please “Share” it.

This post began as a thread by me on BlueSky.

The image was generated with help from abacus.ai's ChatLLM (Claude Opus 4.8 and GPT Image 2.5), with light post-processing in Gimp to reduce the resulting image in size for faster web download.

Wednesday, October 21, 2026

The Triage Problem

A grayscale comic rendition of a surgeon operating on a patient in
          what looks to be the waiting room. A sign on the wall says 'Now Serving 19'
          but another conflicting sign on the pole of the surgeon's lamp says 'Now Pre-Serving 47'
          and the man he is operating on is holding receipt '47', 
          the sort of chit you get while waiting in line to be called by number.

Setting the stage

I need to give a name to something, a name for a problem I keep waiting for the “AI” community to solve. I'm not sure that community even knows the problem is there. Maybe. Maybe they're just calling it something else. But I call it “The Triage Problem.”

If you go to the hospital emergency room (ER), it might be because you are bleeding to death. Or are having a heart attack. Or any of a number of other things that require rapid expert intervention. And yet, at no ER I've visited am I greeted by that hospital's finest doctors. First I see a triage nurse. Why is that?

Truth is, people go to the ER for many reasons, not all of which needs the hospital's highest paid employees. The triage nurse who meets you is not incompetent. Quite the opposite. They are highly specialized to the specific need of rapidly deciding whether you need advanced care, or just something simple, so that easy problems can be handled more cheaply and urgent problems get used only when needed.

Childish antics and world resources

There's pressure these days to do everything with “AI”. Some are just curious to try, many have fear of missing out (FOMO). It's almost as if “AI” tech is trying to compete single-handedly with all other tech in the world. FOMO has become a specific marketing strategy by the “AI” industry, in order to grab market in a realm that is really a missionary sale, an attempt not just to push product but the very idea of a product, where there is not a specific immediate need.

While I get the fun involved in this, and the immense number of dollars, this seems wrong to me. The virtual gold rush that is the “AI” industry is also, sadly, a rush to consume planetary resources at enormous scale at a time when humanity can least afford it (and without paying for it).

A huge amount has been said about the potential benefits alleged for “AI” use, so I won't waste our time here talking about that. My concern at this moment is not about whether it's potentially useful in a bunch of places, but rather whether it's efficient in all of those places.

Efficiency would only hold them back, entrepreneurs might tell you, if they weren't utterly engrossed in the activity of putting us all at risk. Competition on efficiency comes later.

The alleged cost of capability

What's bothering me is not an issue of raw capability, even though the public brawl between tech giants trying to out-macho each other seems to always go to there. The issues are several, different, and subtle.

Let's start with power consumption. I feel strongly that Large Language Models (LLMs), the core technology that many today call “AI”, take too much power overall. This is a strong claim for me to make, seated off to the side while others work hard on this issue day-to-day. So why do I think it?

I'm going to offer a couple of examples that influence my intuition so you can see why it might not take detailed knowledge of the industry to challenge the claim that an enormous computer is needed to do this:

First, a lot of what these “AI” systems do, even the hard parts, could probably be done by a tool with not a huge amount more smarts than a squirrel in my yard, who seems happy to run on sunflower seeds meant for birds. No tool yet devised by the best minds the world can throw at it has made a device that will assure the birds get those seeds and the squirrels don't. Those squirrels may not speak English, but they are very smart. Honestly, I think they probably could speak English, they just don't see the need. So are they smarter, or am I? They seem happier in their world than many of us are in ours.

Second, and similarly, a 2-year-old child, fed only things like applesauce, manages to learn language from examples with no training. Humans are smart from day 1. They do not learn to be intelligent. They learn to use the intelligence they came with. They lack knowledge, but not capability. They do not ask us to deplete the world's resources building data centers in exchange for showing their potential. And humans already know how to compute many algorithms efficiently, so telling me that LLMs are just as good if we'd just burn more of the world's precious resources to let somebody prove it does not impress me.

Examples like this are why I'm convinced that even if more giant data centers help make “AI” smarter, that cannot be the only way to do it. And it isn't a good price.

A hatred of syntax

It's important, too, that we understand why people want natural language. It isn't just one reason. Part of what they want is to describe complex problems and have the answers by some intelligent magic. But part of it is that they just hate command syntax. These are actually two different things.

There is an almost-obsession with overcoming programming syntax, as if command line and programming syntax is some sort of cruel torture that callous programmers have inflicted on the world and this finally is the chance to put them in their place. I actually think there's something to the ire, but the proposed cure comes with a lot of issues.

Syntax may not be the world's biggest computational problem, but it is an impediment to access and non-programmers really do place great value on not having to deal with it. Never mind that by some accounts, human language has syntax far more complex than the things they're getting rid of. The point is that our human brains are well-evolved to dealing with natural language syntax and not similarly evolved to be happy with more formal syntaxes, in spite of the utility skilled programmers find in them.

It's a problem that non-programmers see clearly, but that experienced programmers find almost invisible. Users are comforted by natural language.

Formal languages still matter

Formal language syntaxes create important efficiencies exactly because they are precise, reproducible, and useful. But the market signal is clear: It needs to be behind the scenes. Natural language does not make a good programming language, but it makes a good requirements language. And prompts are really more about requirements than programming.

I can tell you for sure that we are not better off if we discard mathematical notation and say “whatever LLMs do internally is better.” There are few things I take such a strong stand on, but the issue of how to express ideas is something I've spent a lifetime thinking about, so I am not going to equivocate on this. There is room to disagree with me, certainly, but I am ready to take on that challenge if anyone wants to.

My posture is this: Let the LLM figure out interesting ways to write programs, but then after that make sure the thing they write is precise, deterministic, reproducible, and testable. You do not want to fly an airplane whose wing is designed by an LLM. You might, however, want to fly an airplane whose wing was designed by a program that had an assist from an LLM during writing. That's very different.

Generations of programmers did not learn algorithmic complexity just as a bridge strategy to LLM-speak. We learned it because the time and space complexity analysis it provides creates a kind of informational physics that no amount of LLM hype can overcome. It matters to do a database access with an index, not without. It matters to prefer O(n) or at least O(n*log(n)) solutions over O(n^2) solutions. LLMs cannot change that. They might sometimes get faster answers, but if so only because of excessive resource consumption—far too much computation thrown at problems that, in most cases, are unlikely to merit it.

Triage is too fundamental to “fix” later

But now we come to the crux of the matter.

In essence, The Triage Problem exists because an LLM both solves a human factors problem in the design of user interfaces (a desire to use familiar language, not formal language) and implicates the need for higher-than-necessary capability in the triage nurse.

A decision about whether to use the world-resource-consuming engine as the initial triage is not something that can be easily changed later. That sets a certain expectation, risking that the entire design will build in presumptions of this much power. Imagine if early triage nurses were senior surgeons.

It wouldn't just make them smarter, the entire architecture of the waiting room might change to take advantage of things they might want to do right there while waiting. And if someone later suggested that was inefficient, it might be hard to remove because by then other parts of the hospital might be relying on not seeing things they thought that early doctor would filter out.

Any decision to use the most advanced LLM as a triage element would call into question what triage was. There would be pressure to do serious intervention earlier in the system, and with different available information and tools. It would enable use of and perhaps come to actually need knowledge of or permissions for APIs even before resolving the simple question “can this be done more simply?”

Among other things, such an architecture violates the conventional wisdom of assigning roles the least necessary privilege to get their job done.

If enough consideration is given to the problem, my hope is that something less expensive could do the initial dispatch. Perhaps something with more modest capabilities, but still focused on the need. That doesn't sound impossible.

But, possible or not, it won't happen by accident. Someone will have to see The Triage Problem as its own kind of issue with special constraints and take those constraints seriously.

What's being questioned

When people like me say “you're not doing it right,” all the “AI” moguls hear, or maybe all they seem to want to respond to, is “you won't get there from here.” Perhaps it'd be too embarrassing for them to admit, that we might be saying “going the way you're going is too risky, or too expensive, or both.”

Risk is almost their compass arrow. They have more taste for it than we do. Ethics and prudence is a game for the weak, they would surely tell you. So a dangerous overuse of resources continues.

And as they proceed in this dangerous direction, they say, in a voice that carries no more believability than a small child who is very proud of an achievement but oblivious to its horrifying cost, “See? See? I can do it this way!”

But it was never an issue of “can you?” It was an issue of how. At this point we're in a position to say more specifically that The Triage Problem is really about this set of constraints:

  • We want to solve simple problems without invoking the fully general engine and fall back to fully general solutions only if cheap solutions fail.
  • We want something on the front that understands natural language.
  • If the thing on the front end is an LLM, then we can't get cheap access to an efficient problem solver. You can't wrap simplicity around complexity. You can't take something that always expends many resources and have it pretend to be the cheap things.

The stakes are high and the clock is ticking

The solution the industry has converged on is just “Send everything to an LLM. Let it call out to something cheap if it feels that's best.” As far as I'm concerned, that's not a solution because it doesn't satisfy the constraining requirements we've laid out for The Triage Problem.

Many are working on different harnesses that call LLMs in other ways. Maybe one of those will solve the triage problem. I'm not saying they won't. I kind of hope they will. I'm just naming the thing that I'll get excited about if they do it.

Because somewhere in my life, someone taught me that when you see a problem, you do these steps in this order to solve it:

  • See if there is a cached solution. If so, use it.
  • See if there is a well-known method. If so, use it.
  • Having exhausted on-hand information and on-hand techniques for cranking out information, only then invoke general-purpose reasoning.

This small program is everything about minimizing expenditure of resource. So invoking general purpose reasoning to execute it misses the point.

I honestly feel human survival depends on understanding that smaller solutions are needed, not bigger ones.

 


Author’s Notes:

If you got value from this post, please “Share” it.

The images were generated with help from abacus.ai's ChatLLM (Claude Opus 4.8 and GPT Image 2.5), with light post-processing in Gimp to produce a tighter thumbnail of one of the graphics and to reduce the fuller images in size for faster web download.

Saturday, October 17, 2026

Dogs in our Midst

A mostly-grayscale image of a dog with a headset, sitting at a
          desk. He is facing us. His screen is angled enough that we can see
          what's on it. The screen shows an apparent conversation between
          someone named 'Spike' and someone named 'Sadie'. In it,
          Spike says, 'Are you a dog?' and
          Sadie responds, 'Why would you think that?'.
          The pictured dog is probably Spike, not Sadie, since he wears a necktie
          as he sits upright at the desk, paws on keyboard.
          Behind Spike is a framed poster that says 'People helping people',
          apparently signed by a pawprint. He has a mug on his desk that says
          'Good dogs get work done'.

Rhyme, and reason

In the early days of the World Wide Web (WWW) cartoonist Peter Steiner created a cartoon depicting a dog seated at a computer console talking to a dog nearby with a caption that read “On the internet, no one knows you are a dog.”

There are parallels between then and now, between emergence of the dot-coms and the emergence of “AI”-enabled applications, so my gut impulse was to say, “There should be an updated version of that cartoon that says ‘With “AI”, no one knows you are a dog.’ ”

Where things diverge

With a few minutes of additional reflection, though, I realized that the situation was quite a bit more complicated, and such a trivial update isn't appropriate. As is aptly said by someone, “history does not repeat itself, but it often rhymes.” In other words, it's on us to learn lessons, yet not overgeneralize.

To start with, there was a kind of collective innocence in our society at that time that this cartoon captured. We had not yet been exposed to the deluge of pretenders and many saw opportunity in that statement, not cynicism. It seemed that with the power of the internet, and the emerging web, individuals at home could finally become whoever they wanted to be.

But the more I looked, the more I saw bigger differences. For example, the dot-coms were democratizing the world, not centralizing it, creating a collective whole that represented distributed opportunity for a lot of people. The “AI” industry is the opposite—a consolidation, almost like the inverse of the dot-com bubble, taking back the product of all that democratized tech and saying “we can do it all now, thank you very much.” A tech that has trained on the generously offered intellectual wealth of an entire planet now offers to replace that wealth with a single access point to that wealth.

Maybe not all. But they waste no effort saying that with each passing year, it will be smarter. They tell us that if we are not using the tech, we will be left behind. While the dot-coms presented a kind of joy in trying things out, this era is characterized more by a panic, what has been dubbed “FOMO” (fear of missing out), a sense that if you don't join up, you'll be forever left behind.

Never mind that it's the vendors who have the real fear. If “AI” fails, we'll all have to go back to our regular jobs and feeling valued in a globally competitive market again, and they will have nothing to show but a very cool toy—and a lot of debt.

Past promises

In the 1950's, we were promised that The Future was a bright thing with automation that would bring everyone leisure, but now we see a dystopia where jobs are ever at risk and we have to race ever faster just to not get behind.

This tool that does everything is not offered for people to own and develop individually in the way the Internet was. This tool is something very few people are qualified to build themselves, one almost has to rent the service and become completely dependent upon its capability and subservient to its restrictions and pricing. It is extractive, in other words.

The big players market “AI” as something that cannot be done without. Yet if that happens, every company will use this same tool for fear it cannot compete without it, and yet, even as it does this, it will know that its competitors are using the same tool, because no one can afford not to. Is that competitiveness, or the death of competitiveness, or does it even matter?

Clawing forward

And even the issue of “on the internet, no one knows you are a dog” is not the same. Everyone knows. Certainly everyone seeking a job knows “AI” can be asked to puff up their resume, and everyone receiving resumes knows that “AI” can be asked to remove the puffery.

Once it's on both sides, it's not a competitive layer. It's arguably just a tax. You can't not do it, but it may provide little value.

Larger raw capability? Maybe. But that's an untested claim. The public is doing the “research and development” (R&D) here. And not always voluntarily.

Some say there are more products that can be reached. Others counter by noting that the risks along the way will be greater, so there may be bigger problems. Certainly we're not doing a lot to plan for and manage the possibility of such problems.

If history is the Great Teacher, it seems to be asking us to learn from the absence of rhyme where we expect it. Perhaps to expect a different punch line. Something more like, “With ‘AI’, everything has gone to the dogs.”

 


Author’s Notes:

If you got value from this post, please “Share” it.

This post began as part of another essay I was writing. As sometimes happens, it took on a life of its own, so I spun it off as its own post.

The image generated with help from abacus.ai's ChatLLM (Claude Opus 4.8 and GPT Image 2.5), with light post-processing by me in Gimp to reduce the resulting image in size for faster web download,