HNHacker News
TopNewBestAskShowJobs

DonHopkins

25,614 karma · joined April 13, 2014

    \ don@donhopkins.com

    FORTH ?KNOW IF HONK ELSE FORTH LEARN THEN

    : C(-; LICK SMILE NOSE WINK ;

    \ FORTH PAPER TAPE PUNCHER:

    : PT# ( L --- L/2 )
      DUP 1 AND IF 
        ASCII @ 
      ELSE BL THEN
      HOLD
      2/
    ;

    : PT. ( N --- )
      <# PT# PT# PT# 
         ASCII . HOLD
         PT# PT# PT# PT#
      #> TYPE
    ;

    : CUT
      ." -----------" CR
    ;

    : PTAPE
      CUT
      BEGIN
        KEY ?DUP WHILE
        DUP ." |" PT. ." |"  SPACE EMIT CR
      REPEAT
      CUT
    ;
Lisp -vs- Forth -vs- PostScript:

    ; Lisp:
    (defun caar (x) (car (car x)))
    (defun caaar (x) (car (car (car x))))
    (defun caaaar (x) (car (car (car (car x)))))

    \ Forth:
    : droop drop drop ;
    : drooop drop drop drop ;
    : droooop drop drop drop drop ;

    % PostScript:
    /poop { pop pop } def
    /pooop { pop pop pop } def
    /poooop { pop pop pop pop } def
submissionscomments
DonHopkins··on Ask HN: Who's still keeping a DOS machine up because the business depends on it?
Moltix would have been a better name than OpenClaw.
DonHopkins··on Ask HN: Who's still keeping a DOS machine up because the business depends on it?
It's tempting to write a PDP-10 emulator for the Atari ST called TOAST.

FWIW I'm developing "tiny-titan", a stand-in for Cambridge's Titan mainframe that talks to Heinz Lemke's 1972 PIXIE program over an emulated version of Neil Wiseman's PDP-7 <=> Titan link. It doesn't emulate Titan itself, just the conversation PIXIE had with it, so the unmodified 1972 PDP-7 code dials home and uploads its drawings.

https://en.wikipedia.org/wiki/Titan_(1963_computer)

>Titan was the prototype of the Atlas 2 computer developed by Ferranti and the University of Cambridge Mathematical Laboratory in Cambridge, England. It was designed starting in 1963, and in operation from 1964 to 1973.

https://news.ycombinator.com/item?id=49407938

https://news.ycombinator.com/item?id=40617894

Flight of the PIXIE - Yuja Wang:

https://www.youtube.com/watch?v=jDrqR9XssJI

UNIVERSITY MATHEMATICAL LABORATORY, CAMBRIDGE: Cambridge Supervisor - Planning Document 10 Software for the Titan/PDP-7 link:

https://cucps.soc.srcf.net/titan/supplan/pd10.htm

Here is a photo of Heinz Lemke operating PIXIE with the light pen and 340 display on the PDP-7 (also seen in the video above):

https://www.facebook.com/groups/779220482206901/posts/629772...

DonHopkins··on Show HN: Hacker Atlas - A map of what Hacker News talks about
It seems unlikely for a Sun worshiper to develop a philosophy of total brotherhood. Sun worship is usually a primitive superstition religion.

https://www.youtube.com/watch?v=WNfTwGu9FpU

DonHopkins··on Alan Kay: Shannon gave us a way of dealing with noisy channels [video]
Alan's lament about MVC applies to many things in computing:

https://news.ycombinator.com/item?id=8841428

>I asked Alan Kay about his thoughts on MVC:

[...]

>From: Alan Kay

>Things seem to hang on in computing just because they work a little bit.

>MVC was originally done at PARC almost 40 years ago. The good part was philosophical -- the idea to adapt the notion of "cameras" and "worlds" in the original 3D graphics stuff I participated in at Utah 45 years ago. The bad part of MVC was how we implemented it -- much too much machinery, etc.

>We (my various groups since then, including Viewpoints Research) have not thought about MVC since, but have used and devised various viewing methods over the last 20+ years. I like to do views as "watchers" which do not affect what they are viewing. There are lots of ways to do this. Similarly, I like to also use "watchers" (context sensitive to the views) to catch needed inputs. We have never done a really satisfactory automatic inverter for dealing with the loss of "dimensions" that happen when a view is made (but we have done some experimental ones).

>One important criterion is for end-users of all kinds to be able to easily make their own views in a very powerful ad hoc way via construction. We have done a number of adaptations and generalizations of how this can be done in Hypercard -- and this seems to work well (enough).

>Since we always roll our own languages and development systems, we don't care about problems that other systems might have. For example, we have very little knowledge about C#, etc. We do try to learn from the few good systems that are out there.

[...]

DonHopkins··on Alan Kay: Shannon gave us a way of dealing with noisy channels [video]
Speaking of vtables, at Kristen Nygaard's 100-year birthday celebration Bjarne Stroustrup also gave a fascinating talk after Alan Kay's, and they had some spicy back-and-forth discussion afterwards! Both call themselves Nygaard's heirs, anbd it was a delightful and respectful interplay between very different world views.

Kay came to Simula as a reader, turned it into Smalltalk, and later knew Nygaard and Dahl as colleagues. Stroustrup was taught by Nygaard in person, as a student at Aarhus, and then used Simula for his PhD.

Roughly: Stroustrup said he never took much from Smalltalk. What he took from Simula was the static part, compile-time guarantees and a direct map to hardware with zero-overhead abstraction, and C++ was never meant to be just an object-oriented language, since not everything is a class hierarchy or a virtual function. Kay argued that late binding pays for itself because the human is the slow part of an interactive system, and that static typing is a good idea applied prematurely. They agreed that the real job of an operating system or the internet is never to crash and never lose anything, and came at it from opposite ends: Stroustrup is working on guarantees against dangling pointers, out of range access, and uninitialized memory in C++, while Kay pointed out that Smalltalk protected every object dynamically.

Alan Kay's talk:

https://au.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=fe0...

Bjarne Stroustrup's talk:

https://au.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=fe0...

The discussion afterwards:

https://au.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=fe0...

If you hate llm generated summaries then you can stop here and go watch the entire video yourself, but here are timestamps and summaries for people who don't have five hours to spare (although I highly recommend it -- I was watching it in real time when I witnessed the feedback performance between talks):

4:56:49: Stroustrup says he was never much inspired by Smalltalk. What he took from Simula was the static part: compile-time guarantees. "It would be nice to say yes, but to be honest, not much."

4:58:25: Stroustrup on garbage collection versus scope-based resource management (RAII): nobody has managed to combine them. Java's finalizers are his example, and somene mentions Lars Bak, "also from here" (Aarhus), says never use finalizers, they're evil.

5:00:24: Banter. Someone asks whether there's anything he likes about Smalltalk, and the reply is "Anything you like about me?"

5:00:47: Kay agrees reuse isn't a good reason for much, asks why people cling to old languages, and brings up the CrowdStrike crash taking down hospitals.

5:02:05: Stroustrup says CrowdStrike was a violated configuration rule, not a language problem. Programmers and managers are conservative and "confuse familiar with simplicity." He's not saying C++ is right for everything, and Python's all-dynamic approach is successful.

5:04 to 5:06: Kay says late-bound slowness pays for itself because humans are the slow part of interactive computing. Computing is held back by corporate legacy, and PARC was lucky to build all its own hardware and software.

5:07: An audience question about the next ten years. Kay says operating systems and the internet put you in a different seat of responsibility: the goal is never to crash and never to lose anything.

5:08:59: Stroustrup agrees, but says he doesn't control any operating system. He's working on guarantees in C++: no dangling pointers, no out-of-range access, no uninitialized memory.

5:09:55: Kay says typing is a really good idea, just premature in its static form. Smalltalk's dynamic typing protected every object.

5:10:34: Stroustrup says it's very hard to get hardcore developers to stop believing they can crash a system.

5:11:59 to 5:13:40: Kay says the Smalltalk image was a complete operating system, and that he made a living writing microcode. The field is guilty of not keeping up with the hardware. Stroustrup says he tried to talk hardware makers into adding support features, in his PhD, and failed.

DonHopkins··on Alan Kay: Shannon gave us a way of dealing with noisy channels [video]
Self took the path of removing things instead of changing the syntax. It kept Smalltalk's keyword message syntax, made even smaller (no assignment syntax, variables are just slots you send messages to), and took away the classes. Only objects remain, and they inherit directly from other objects. Then Randy Smith and John Maloney gave it a visual syntax: in the Self environment you program by direct manipulation of live objects, opening outliners and editing their slots, so the environment is the syntax and the text is mostly incidental.

Your speed point is answered by the same work. Craig Chambers, David Ungar and Urs Holzle's compiler for Self (customization, inline caches, adaptive recompilation) was so fast that the technology went on to HotSpot and V8, and those ideas are why Java and JavaScript are fast today. Removing the classes made the language simpler, and the simpler language turned out to be easier to make fast.

https://selflanguage.org/

Then David Ungar, Harold Ossher and Doug Kimelman at IBM took the next thing away. Korz removes the objects and leaves the slots. A program is a flat sea of slots that belong to nothing. Each slot has a guard on named dimensions, and a message is sent in a context of dimension:coordinate bindings, mostly carried implicitly down the call chain the way "this" is in OO languages. The receiver is demoted to one ordinary dimension (rcvr) among any number, dispatch is symmetric over the whole context, the most specific matching slot runs, and a tie is an error.

The syntax is the least interesting part. The prototype was an interpreter written in Self, and the paper's examples look roughly like JavaScript with guards in front:

  {rcvr <= stack} pop() { ... }
  {rcvr <= stack, assertions <= true} pop() { ... check, then pop ... }
The semantics are the interesting part. The second pop is more specific, so it wins whenever the context says assertions: true. main() turns assertions on, and not one line of code in between mentions them: the binding flows down implicitly to every send underneath. You've added a new dimension of variation to a running program without touching anything between the top and the bottom. No layers, no aspects, no Visitor pattern.

If that sounds familiar, it's the same thing as Lisp Machine Flavors' before and after daemons, or CLOS's :before, :after and :around methods, or plain old subclassing: override a method, do some extra stuff first, call super (or call-next-method), then do some more stuff after. The more specific method gets the first crack at it, and decides whether and when the less specific methods run.

Korz just models that as slots with guards. The checking pop does its checks, then re-sends pop with assertions: false, which no longer matches its own guard, so the plain pop runs. Method combination isn't a language feature you need a MOP to change, it's a pattern you write with ordinary dispatch. (What "super" should mean in Korz is still an open question, since there's no class or owner object to be "super" relative to.)

Guards are simple: for each dimension, a slot can ignore it, require it to be bound (binding its value as a parameter), or require its coordinate to be or inherit from a given coordinate, like assertions <= true or rcvr <= stack. Coordinates are objects with parents, so "<=" means "is or inherits from", not numeric less-than, and matching a constant is just the case of a coordinate with no children. No arbitrary predicates, so no Pascal-style ranges like 10 < x < 20, unless you make a coordinate for the range and have its members inherit from it.

And "object" doesn't disappear, it becomes subjective. Group the slots by rcvr and you see ordinary objects. Group them by assertions and you see the checking layer. Group them by user and you see one person's view of the whole system. Same sea of slots, different cuts, and no cut is the privileged one. The name comes from Korzybski: the map is not the territory.

Korz: Simple, Symmetric, Subjective, Context-Oriented Programming (Onward! 2014):

https://dl.acm.org/doi/10.1145/2661136.2661147

Korz is multi-dimensional. Procedural programming is zero-dimensional, and object-oriented programming is one-dimensional (the implicit receiver parameter, usually spelled self, this, or rcvr), so both are the special cases 0 and 1 of Korz. Korz can dispatch on any number of parameters, none of them special like self or this, and the guards on the slots decide which slot is the most specific one to dispatch to.

So a Self program is just a Korz program that happens to use only one dimension, called rcvr. Objects are subjective and assemble dynamically depending on how you're looking at them (the coordinates of the dimensions), and in the special case of single dispatch on rcvr, everything looks like an object.

Call it the faith of our fathers. Kristen Nygaard and Ole-Johan Dahl gave us classes in Simula. Alan Kay gave us objects sending messages in Smalltalk. Claude Shannon had already given us a sender, a channel and a receiver, and object-oriented programming made the receiver the one privileged thing every message is about. David Ungar and Randall Smith took away the classes in Self. Then Ungar, Ossher and Kimelman took away the receiver in Korz.

Which makes it a lot like Philip K. Dick's "Faith of Our Fathers" (Dangerous Visions, 1967). The Party keeps everyone docile with hallucinogens, so everyone sees the same benign human Leader on TV. Tung Chien gets an anti-hallucinogen from a street vendor and sees what the Leader actually is, and it isn't a man. The reversal is that the shared view was the drugged one, and when he meets the underground, it turns out that each of them saw something different.

There's no single true form, just what each viewer brings. Single dispatch is the stuff in the water: it makes everybody see the same objects. Korz is the antidote, and what an object looks like depends on the coordinates you're looking from. In Dick's afterword he quotes John Scotus Erigena, from AD 840: "We do not know what God is. God Himself does not know what He is because He is not anything." A Korz object isn't anything either, until a context gathers its slots.

https://en.wikipedia.org/wiki/Faith_of_Our_Fathers_(short_st...

That's also why you don't need things like the Visitor pattern, which is a kludge for the fact that you can only dispatch on one parameter. Multiple dispatch is something some object systems support, like Common Lisp's CLOS and its MOP, but Korz takes it all the way and has no special case for self/this/rcvr.

https://en.wikipedia.org/wiki/Multiple_dispatch

The Finest Object System You've Never Heard Of: "The Common Lisp Object System is the finest object system in existence, and I bet you've never even heard of it."

https://mendhekar.medium.com/the-finest-object-system-youve-...

Why would you want multiple dispatch? The Margolus neighborhood for block cellular automata is a great example. Rules apply to all four rotations of a block of four cells, so the neighborhood is Center, Clockwise, CounterClockwise, and Opposite, instead of just one self. You can write elegant, concise rules that way, and the compiler can produce efficient code or lookup tables.

https://en.wikipedia.org/wiki/Block_cellular_automaton

I've had success applying the ideas from Self to a file system based object system for LLM orchestrated simulations (moollm). Then David Ungar told me about Korz, which totally blew my mind and made me rethink a lot of things -- but it's beautifully backwards compatible with what I've been doing with Self.

Here are some notes on applying Korz to cellular automata (with neighborhood and time dimensions), and to adventure game parsers and simulators like Zork (with direct object, verb, indirect object, location, and player dimensions). David Ungar assured me Zork is only coincidentally an anagram of Korz, but it's too sweet a coincidence to pass up, because Korz is really useful for elegantly modeling that kind of stuff.

https://github.com/SimHacker/moollm/tree/main/designs/korz

Recently I've been thinking about how to apply Korz to LLM driven simulations, which I'm calling Korz' (Korz-Prime):

https://github.com/SimHacker/moollm/tree/main/designs/korz/k...

DonHopkins··on Alan Kay: Shannon gave us a way of dealing with noisy channels [video]
My favorite part was how Alan's exuberant "I realize what the fuck is going on and it's just so amazing" got distorted by YouTube's speech to text transcription replacing "fuck" with "[__]", adding another layer of censorship noise and interpretation to the mix.

And how the conference's real time speech to text transcription honored Alan's "fuck", but would occasionally lapse into Danish, and say things like "We will eat your hands".

dang> Hopefully Don won't mind!

Of course not, and I hope Alan won't either, since in the recording he laughed and said "Yeah, this will be this will be fun."

DonHopkins··on Alan Kay: Shannon gave us a way of dealing with noisy channels [video]
Yes it's a pretty klunky interface. Easy to miss that there are multiple camera icons to the right of the time slider, and you can switch to see different feeds like the speaker or their slides. It's still kind of hit or miss with some of the speakers, but at least Alan got a chance to test things out and debug all the glitches before his talk, so he didn't end up repeatedly interrupting himself!

Here is the full list of links from the video description to other related and interesting topics.

I can highly recommend smoking a joint and watching James "Doctor Chaos" Crutchfield's "Space-Time Dynamics in Video Feedback" film, which he made at UC Santa Cruz in 1984, building on Ralph Abraham's video feedback experiments there in the 1970s:

https://www.youtube.com/watch?v=B4Kn3djJMCE

https://en.wikipedia.org/wiki/James_P._Crutchfield

https://en.wikipedia.org/wiki/Ralph_Abraham_(mathematician)

Kristen Nygaard 100 Years, Celebration Symposium (Aarhus University, Aug 27 2026):

https://cs.au.dk/nygaard100years/celebration

Entire Nygaard Symposium Recording (Alan Kay's talk begins at 3:27:49):

https://au.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=fe0...

Alan Kay:

https://en.wikipedia.org/wiki/Alan_Kay

Claude Shannon:

https://en.wikipedia.org/wiki/Claude_Shannon

Information Theory:

https://en.wikipedia.org/wiki/Information_theory

Noisy-Channel Coding Theorem:

https://en.wikipedia.org/wiki/Noisy-channel_coding_theorem

Audio Feedback:

https://en.wikipedia.org/wiki/Audio_feedback

Video Feedback:

https://en.wikipedia.org/wiki/Video_feedback

Live Looping: The History And The Practice, by Stephen Garza:

http://computermusic2008.wikidot.com/live-looping:history-an...

I Am Sitting in a Room:

https://en.wikipedia.org/wiki/I_Am_Sitting_in_a_Room

Alvin Lucier on "I am sitting in a room":

https://www.youtube.com/watch?v=v9XJWBZBzq4

DonHopkins··on Allow Carriers on Planes
It's only fair, since they allow planes on aircraft carriers.
DonHopkins··on 2DWillNeverDie
The indie game Tiny Life is an homage cover of The Sims, played in the key of The Sims 0 -- like Little Computer People, 1985, one person and his dog living on one floppy disk. It has in soul what it lacks in resolution, and soul was always the hard part.

https://tinylifegame.com/

Playing Tiny Life for the first time!

https://www.youtube.com/watch?v=nRLkrxRJiRI

One important premise of Scott McCloud's book Understanding Comics is that you can trade resolution for identification and empathy. Lower graphical resolution is not just pixels swapped for soul as if it were a compromise, it's the mechanism that produces the binding. Every specific a face carries is a specific that can contradict the player, so subtracting detail buys the player room inside the character. A photorealistic face is somebody else's; a six-pixel face is yours.

https://en.wikipedia.org/wiki/Understanding_Comics

Scott's point is that when the world is concrete but the person is iconic, the player wears the person while believing the place -- which is what The Sims did with mumbling low-poly people in carefully detailed rooms, and what LCP did with one man drawn in a handful of pixels whom players named and worried about for forty years.

He calls the effect "masking":

https://en.wikipedia.org/wiki/Masking_(comics)

Little Computer People Review (Commodore 64):

https://www.youtube.com/watch?v=xBRXWUVMAg4

The Sims wouldn't exist without This | Nostalgia Nerd:

https://www.youtube.com/watch?v=rYz_leh9J3E

That is why "soul over resolution" is not a hedge about the graphics, it's a claim about what the graphics are for.

Will Wright, Maxis, "Interfacing to Microworlds", Terry Winograd's user interface class at Stanford, April 26, 1996, previewing the Dollhouse prototype that became The Sims:

https://www.youtube.com/watch?v=nsxoZXaYJSk&t=4470s

Student: What about from person to person, you talking about the information that's contained within the objects, so there can be information in another person, that you want to interact with in the environment. Have you looked at any reasons why you would want to do that?

Will Wright: Oh yeah, I mean, that's that's the hard problem. I mean, simulating ants is hard enough, when you get to people there's really no hope.

There are two issues here. You can look at this as a technology. It's not a product right now. And there are a few directions this could go. I could see this becoming, let's say, a multiplayer network MUD kind of a thing. You might have a thousand people playing SimCity from the bottom up, each person building their own house in a big multi-user space. In which case that issue is a little less important, because most of the people are real people, and you're dealing with puppets.

As a standalone game, which is probably our closer target, we have to deal with the problem you're bringing up, which is how do we deal with people to people? And it's hard, I mean there's just -- I'm sure Terry can elaborate on that more than I can. But the best thing we can do is prop up a convincing illusion. We don't have to be doing a valid simulation of human personality. What we have to do is we have to put up something that's ambiguous enough to where somebody can read in what they want.

Actually in this thing what I have right now are people come up and they converse, but you don't hear what they're saying, they just gesture, and sometimes they look mad, sometimes they kind of look contemplative. It's kind of interesting how much people will read into that.

This is kind of dynamic that we've seen again and again where something happens in SimCity and they said "oh I was running my nuclear reactor near the red line, and then there was so much smoke coming out of it, this plane crashed, and because of that, this and that happened", and they'll describe this long causal chain of events that I know does not exist. I designed the simulation, I know that there's no linkage between the power output of the power plant, the planes crashing, but they're convinced it exists.

Don Hopkins: They're using it as a medium to tell stories about.

Will Wright: Yeah!

Don Hopkins: Where they're using it as a piece of paper, to write.

Will Wright: Yeah, that's exactly right. There's a parallel simulation going on here in the game. Everybody's taking a linear path through this, and they're basically, most people will attempt to understand things like this with a story. They'll think about "I did this, then that happened, because of that", and so the story becomes kind of their logical connection, their logical reverse engineering, of the simulation that they're playing inside of.

Now on the people's side, I think we can do a lot in this as a product, by propping up that illusion of people. Again, if this is a doll house, we don't want the dolls to be sentient things. We want the dolls to be interesting enough to where I can play games with them.

There was actually a really interesting doll that this company came out with. Oh, it was Worlds of Wonder, this really cool doll, I've got a couple of them after they went out of business. It's called the Julie doll. But it was like this $250 doll with voice recognition, and it said all these things. It had just a huge amount of ROM with digitized speech in it, and so it would sit there and try and have stupid conversations with you. And really it was kind of Eliza, or had keywords it would recognize, and give you these kind of non-committal responses.

But in the testing of that, well first of all it was a $300 doll. Who's going to buy the kid a $300 doll? So it was really more, it was actually the only doll I've ever seen that appealed to grown men. Grown men love this, I mean this is a hacker's doll.

But I talked to the guy who was working this project, and he said they put this in focus groups with girls. And they played with it for a while, and then after about a half an hour they take the batteries out, and keep playing with it.

And what was happening is that the girls were propping up this elaborate fantasy in their play, and the dolls were supposed to be a structure for that fantasy, they weren't supposed to be the fantasy. The doll was telling them what the fantasy was, and it was conflicting with what the girls were saying, and so it was interfering actively with their fantasy and their play.

So in that regard, I think we can actually kind of take that path with these people. And all we have to do is deal with them at a very local kind of a state machine, Braitenberg Machine kind of level, and say that they're angry, and they're hungry, and they're sleepy. And then we can actually do some things where maybe they have a little, what you might call, structural ambiguity about what they're actually saying.

One of the thoughts I had about this project in particular is that you'd see the people go up and they talk, and there would be some kind of a flavor to their conversation, but it would be more like Peanuts. When they did the TV show of Peanuts, you'd hear the adults talking, and the adults would always be like "mwa mwa mwa mwa mwa mwa", or soft, or loud. You can tell if they're mad, or angry, or what, but you wouldn't hear what they were saying. You'd have to read that into it.

I think this is the area where we sidestep the issue, just because as a commercial company we have to ship a game, we're not doing a research project. So that's a long winded answer, sorry. Yeah?

DonHopkins··on The Board Game of the Alpha Nerds (2014)
SORRY!!!!

https://youtu.be/oNG1DkS_f4g?t=132

DonHopkins··on Show HN: Make cursed fonts like Times New Bastard
I wish I could make Dijkstra Dingbats.
DonHopkins··on I Have a Confession: I Built This Site with AI – Please Forgive Me
Why are you?
DonHopkins··on I Have a Confession: I Built This Site with AI – Please Forgive Me
Then people could create their own custom models with silly names like Linux distributions or cannabis strains, and then it would be all about fashion and branding.

I know: Web rings for agents!

DonHopkins··on I Have a Confession: I Built This Site with AI – Please Forgive Me
I always feel bad and guilty when coding with emacs, giving me such an unfair advantage over people using vi. This is the old way and things can be done that seemed impossible but I always have a bad feeling for vi users.
DonHopkins··on The Download: why AI's latest breakthroughs and fears may be more hype than rea
That's a different alignment problem than the one that's going to wipe out all life on earth.
DonHopkins··on The Download: why AI's latest breakthroughs and fears may be more hype than rea
AI is putting parrots and parrot trainers out of jobs.
DonHopkins··on The Download: why AI's latest breakthroughs and fears may be more hype than rea
This made my day! I love it when people on Hacker News mention Stochastic Parrots, and they're actually referring to the paper and its authors, instead of just mindlessly performing a reflexive drive-by anti-ai shibboleth by parroting a phrase they heard on the internet without any understanding of what it means, or what paper it refers to, or who wrote it, or what the conclusion and responses to the paper were. Thank you!

But we have to have a talk about stochastic pelicans riding bicycles...

DonHopkins··on Claude Opus 5.5
The bike landfills from the bikeshare bubble are terrible, but I am not looking forward to the pelican landfills from the AI bubble.
DonHopkins··on People hooked on vapes try a new way to quit: cigarettes
https://en.wikipedia.org/wiki/Mr._Butts
DonHopkins··on People hooked on vapes try a new way to quit: cigarettes
You could always cut out the middle man and have cancer surgically implanted in your lungs.
DonHopkins··on Can gzip be a language model?
Your claim that suspected AI assistance proves the author isn't interested -- and therefore that the work is probably superficial -- is unsupported.
DonHopkins··on SAML: A fractal of bad design
Right, so is there a PHP SAML module that perfectly fits like a fractal hand in a fractal glove?

https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

DonHopkins··on Key symbols we lost to time, pt. 2: The Mac side
Don't forget the Terminal key, so you can summon the elevator with Terminal-E and buzz open the door in the elevator lobby with Terminal-D, all without getting up out of your chair in front of your Lisp Machine.

https://news.ycombinator.com/item?id=40634902

Guy L Steele wrote "Double Bucky" in 1978:

https://news.ycombinator.com/item?id=14372023

Double Bucky

(C) 1978 by Guy L. Steele, Jr.

(Sung to the tune of "Rubber Duckie")

    Double bucky, you're the one!
    You make my keyboard lots of fun
      Double bucky, an additional bit or two:
    (Vo-vo-de-o!)
    Control and Meta side by side,
    Augmented ASCII, nine bits wide!
      Double bucky, a half a thousand glyphs,
               plus a few!
        Oh,
        I sure wish that I
        Had a couple of
            bits more!
        Perhaps a
        Set of pedals to
        Make the number of
            Bits four:
        Double double bucky!
    Double bucky, left and right
    OR'd together, outta sight!
        Double bucky, I'd like a whole word of
        Double bucky, I'm happy I heard of
        Double bucky, I'd like a whole
            word of you!
(For those of you who are interested, the term "bucky bits" comes from Niklaus Wirth, known as "bucky" to friends, who suggested that an extra bit be added to terminal codes on 36 bit machines for use by screen editors.)

The UniPress Emacs icon was a unicorn, because after you held down all the modifier keys with both hands, you need a horn on your head to press the actual letter.

So "Uni[Corn Key]Press Emacs".

You can see it in the lower left corner of this screen snapshot, but the horn is covered by a tabbed emacs window:

https://en.wikipedia.org/wiki/Tab_(interface)#/media/File:Hy...

Sun format Unicorn icon from the UniPress Emacs sources:

https://github.com/SimHacker/NeMACS/blob/main/src/D.sun/unic...

DonHopkins··on Key symbols we lost to time, pt. 2: The Mac side
They didn't leave the functions out. They left the words off the keys and put the functions on Command-ZXCV, which you only know if someone already told you. The Extended Keyboard later printed Cut/Copy/Paste under F2-F4, or shipped a plastic overlay. That is a confession, not a design.

Xerox Star put labeled keys in a left-hand cluster meant to work with the mouse in the other hand, which is the Engelbart pairing. Apple chose not to. Printing Copy on C would have been the cheap half of that lesson.

The missing keycaps are still the small complaint. The theft was the words.

Ted Nelson, 1999, in his own type:

http://hyperland.com/TedCompOneLiners

>Consider the "clipboard" on the Mac, PC or XWindows. It's just like a regular clipboard, except (a) you can't see it, (b) it holds only one object, (c) whatever you put there destroys the previous contents. Aside from that, IT'S JUST LIKE A REGULAR CLIPBOARD IN EVERY OTHER RESPECT-- EXCEPT THERE AREN'T ANY OTHER RESPECTS!

>I see this pseudo-clipboard as stupidity at its height: a really terrible, destructive mechanism, excused by a word that makes it sound somehow okay. It is a further offense-- the greatest atrocity in the computer field, I believe-- that the crippled and destructive functions of this pseudo-clipboard have been falsely given the names "cut" and "paste"-- which for decades have meant something ENTIRELY different to writers, the function of parallel rearrangement with all things visible.

He said it again at BayCHI in 2021. YouTube's auto-captions turned one line into "many signs sound okay." I wrote him. He did not argue with the sense of the passage. He did correct one attribution: "long form work" is Tesler's phrase, from their emails, not Ted's. Cleaned transcript of the public talk (intent, not a court reporter):

Copy of HCI Constructs Then and Now with Ted Nelson:

https://youtu.be/dOLXLk8TbxQ?t=661

>So what does cut and paste mean today? Those holy words, referring to the highest faculties of an author's overview, have been assigned to a strange construct called the clipboard: an invisible buffer. You can't see it, and it holds only one object. In other respects it is like a physical clipboard, except there aren't any other respects.

>So cut and paste -- those formerly sacred words for the mind's highest faculty -- have been used to propagandize this abominable construct. These features should have been called hide and plug, but somehow using those familiar old words makes them sound okay, like the words "national socialism." So they could at least have made it visible and made it a stack for rearrangement. But oh no.

>Now this crime against humanity -- calling the hide-and-plug functions cut and paste -- was perpetrated by a good friend of mine, the late Larry Tesler. And he kept insisting to me -- we had many emails on the subject -- that the real cut and paste was only for very specialist long-form work.

NY Times copy boy (1960s): First morning task — scrape dried paste from glass pots, refill with wet library paste (three on city desk, foreign, economics). Reporters cut sections, paste down, rewrite between. Yell copy → pneumatic tube to typesetting. "This was called cut and paste and indeed it was."

Grandmother's Tolstoy story: Daughter's lecture — Tolstoy dictates two longhand copies; one filed, one cut up all over the dacha floor; walking in woods: "Don't touch my noodles"; returns to paste in new order and dictate next draft.

Slide (Ted Selker showed): Ted's 1965 ACM article noodles — bad reproduction of actual cutting/pasting with photo of real noodles.

A keycap that says Paste would still be hide-and-plug. It would just confess on the plastic. What writers meant was noodles on the table, everything visible, rearrange, then paste. Ted still does that with scissors.

Real cut and paste-- STILL NEEDED BY WRITERS !

https://www.youtube.com/watch?v=6_35RDA6r3g

>The terms "cut" and "paste" were redefined in 1984, when the Macintosh came out-- "cut" now meant HIDE and "paste" meant PLUG-- and as a result, there are no decent tools for large-scale rearrangement.

>Tolstoy cut his manuscripts into pieces that he called his "noodles"-- then he would rearrange them and paste them into a new order, adding text and crossing out, then dictating a new draft to his daughters, one to be cut up again. (My grandmother heard this in a lecture by one of his daughters.)

>Balzac wore a knife around his neck for cutting up his manuscripts-- but such rearrangement is impossible with today's computer software.

>Personally, in the 1960s I had huge paper cut at the factory-- about 14" wide by 40" long-- for massive rearrangement by REAL cutting and pasting of big manuscripts. I still have some of that big paper.

Cut and Paste, 2014, by Ted Nelson:

https://archive.org/details/cutnpaste_201909

>This shows the actual cut and paste process, done physically, that has been denied to us by software since those two words were redefined in 1984 to mean "hide" (on the invisible hideyhole called misleadingly the "clipboard") and "plug" (whatever's in the invisible hideyhole) to wherever you're pointing.

>Or since the letters used on both Mac and Windows are C and V, they could better have stood for Cram and Vomit.

Ted Nelson — invisible clipboard rant (source catalog):

https://github.com/SimHacker/WillWrightShowForFood/blob/main...

DonHopkins··on Can gzip be a language model?
Will Wright once described the same connection from the opposite direction: compression as procedural content generation.

In the 2023 discussion of "Demoscene accepted as UNESCO cultural heritage in The Netherlands" I posted a transcript from a video of Will Wright discussing the demo scene:

https://news.ycombinator.com/item?id=36599415

Will Wright Discusses the Demoscene:

https://www.youtube.com/watch?v=m7iuFVmTJus

>You can take any piece of content in the game, and imagine an algorithmic solution to it. Or also, you know, a way that the player could customize that object of thing.

>There's this group in Europe called the Demoscene that make these very elaborate demos for a computer that fit into very tiny little memory blocks, you know like 64K of memory, and you run the thing, and in fact it algorithmically generates about 100 megabytes worth of data, you know these rich 3D environment, generated music, generated wave files, generated animation.

>And they're developing techniques to generate, you know, huge amounts of interesting data, with very very simple, elegant, compression algorithms.

>And this is a skill that game developers used to have, back in the 8-bit days. That was the only ways to do a game like Karateka(?), was to find all these little tips and tricks to compress things and generate them algorithmically.

>But since the CD-ROM came out, and very cheap hard drives, storage is cheap, so basically we've lost that skill set, and now we attack all those problems with brute force. I think we've lost something by dropping that skill set.

[...]

https://news.ycombinator.com/item?id=36613058

[...] Here's a simple low-tech pre-LLM example that shows the equivalence of compression and procedural content generation:

Take a huge text file of HN postings, and compress it with gzip or compress or some other robust compression algorithm. The better the algorithm, the more the output will look like random noise. Then slice the compressed file in half, and replace the second half with random numbers. Then uncompress it. You'll find that at the point you sliced it, it keeps on writing out almost plausible text for a while, consisting of highly probably snippets of commonly encountered words and phrases, then goes downhill towards incoherence. It's not as coherent or confident as an LLM, but the point is to show how low the bar is for using compression for procedural content generation.

LLMs are essentially a form of compression of the world's knowledge or whatever they're trained on, not just word frequencies or pixel patterns, but also concepts and ideas. [...]

DonHopkins··on PDF Forgeries Are Surprisingly Rare (2022)
I have a confession:

This summer I downloaded a 2014 ACM conference paper from the Internet Archive, opened the PDF, changed the author's name on the title page, changed the email address, changed a GitHub URL in a footnote, rewrote the Author field in the file metadata, and put the altered file on the internet.

The paper is Vanessa Freudenberg's SqueakJS paper (DLS '14). She died in 2025. In 2024 the same paper won the SIGPLAN DLS Most Notable Paper Award, credited to Vanessa. Every public copy of the PDF still had the name she no longer used: ACM, dblp, Semantic Scholar, and every Wayback snapshot of the file on her own site. Same bytes. No corrected edition had ever existed.

She had already said, on this site, what she wanted. In 2021 she replied to me about Dan Ingalls's HOPL Smalltalk paper:

https://news.ycombinator.com/item?id=29125515

>Dan published an updated version of that paper here: https://smalltalkzoo.thechm.org/papers/EvolutionOfSmalltalk.... Would be great if you could cite that one next time. The main improvement for me is not being deadnamed. There are other corrections as well.

Dan had quietly put out a corrected PDF of that paper while she was alive, outside the publisher's version of record, because the official copy was too slow to say her name. I did the same thing for the one paper he could not: hers.

The coding agent (Fable, in Cursor) did the search and proved the negative. It proposed the two institutional paths: petition ACM under the name-change policy, or ask her co-authors to re-typeset from LaTeX. It would not propose opening the published PDF and changing the bytes. I had to tell it to. Two trained rules collided. Do not tamper with a historical document. Do not leave a deadname sitting there. The first one won until a human who knew her pushed.

I then wrote down why that push was legitimate, and put the constraints into a reusable skill so the next agent can mention the option with the rules attached, instead of hiding it. All five, or do not do it:

The subject asked, in their own words, or someone with standing acts on that record. The original file stays bit-for-bit, hashed, in the same directory. Every change is listed in a README and in a Note inside the PDF. The filename says what the file is. The publisher correction is pursued in parallel; the edited file is a bridge, not a replacement of the record.

Drop any one of those, and the same edit is just a silent substitution.

Doing it right is the part Gwern is pointing at when he says there is no everyday Photoshop for PDFs. TeX does not store a name as a string. It stores a TJ array with kern numbers between syllables, so ordinary grep never sees it.

The Times subset on the byline happened to contain every glyph for "Vanessa"; we still had to recompute the V-a kern and shift the Td so the line stayed centered over her affiliation. The sans subset used for the email ended at glyph 117, one code point short of the letter v. That font literally could not spell her name. We set the line in Helvetica, sized to match, and resized the link annotation so the clickable box fit the new URL.

Fable did not stop at the byte edit. It rendered page 1 with Ghostscript, cropped the header, and looked at the pixels with machine vision. The first pass was beautiful and wrong: the byline said Vanessa, the email underneath still said the old address. The next pass put the new email in Times, which rendered clean and was the wrong family. It swapped in Helvetica, recentered, and zoomed to 220 dpi next to the neighboring authors until the line sat quietly with theirs. That loop is why the file does not look like vandalism.

The original and the memorial edition sit next to each other. ACM's copy is still uncorrected. Option 3 of their name-change policy is the canonical fix; her co-authors are the right petitioners.

Her comment:

https://news.ycombinator.com/item?id=29125515

The 2021 thread, preserved:

https://github.com/SimHacker/moollm/blob/main/designs/presto...

Dan's corrected HOPL paper, the one she asked us to cite:

https://smalltalkzoo.thechm.org/papers/EvolutionOfSmalltalk....

The unaltered 2014 PDF (Wayback; her site is down):

https://web.archive.org/web/20250119071632/https://freudenbe...

Memorial edition:

https://github.com/SimHacker/moollm/blob/main/designs/presto...

Original, hashed, beside it:

https://github.com/SimHacker/moollm/blob/main/designs/presto...

Every edit enumerated:

https://github.com/SimHacker/moollm/blob/main/designs/presto...

The case, including the nudge:

https://github.com/SimHacker/moollm/blob/main/designs/presto...

Why the agent would not propose it, and the five conditions:

https://github.com/SimHacker/moollm/blob/main/designs/presto...

How the bytes were changed (Ghostscript and vision at minutes 68-84):

https://github.com/SimHacker/moollm/blob/main/designs/presto...

Renders and kerning:

https://github.com/SimHacker/moollm/blob/main/designs/presto...

The change-name skill (scan, discuss, edit, verify, publish):

https://github.com/SimHacker/moollm/blob/main/skills/change-...

PDF playbook:

https://github.com/SimHacker/moollm/blob/main/skills/change-...

ACM version of record (still the old name):

https://doi.org/10.1145/2661088.2661100

ACM name-change policy:

https://www.acm.org/publications/policies/author-name-change...

SqueakJS, where she moved the repo:

https://github.com/codefrau/SqueakJS

Remembering Vanessa:

https://github.com/SimHacker/WillWrightShowForFood/blob/main...

DonHopkins··on Avoiding the babbling-idiot failure in a time-triggered communication system
Alan Kay: Shannon Gave Us a Way of Dealing with Noisy Channels

https://www.youtube.com/watch?v=Cjntrqhn8pk

Alan Kay performs an improvisational avant garde layered audio feedback loop about Claude Shannon, live online during Kristen Nygaard's 100-year birthday celebration.

Alan was scheduled to talk about how encountering Simula sparked his early thoughts about objects. During setup, somebody had the live stream playing out loud near an open Zoom mic, so his own voice kept arriving back in his ears about 21 seconds late, over and over.

What he said was not random: "Shannon gave us a way of dealing with noisy channels." And: "I think about that almost every day. I realize what the fuck is going on and it's just so amazing." Shannon's noisy channel coding theorem is the math for exactly the kind of channel that was garbling him as he praised it.

[...]

DonHopkins··on What Sun got wrong
Speaking of another Steven, the Dell Dude:

Things were going great at Dell until its wildly popular advertising campaign suddenly came tumbling down over an unfortunate indiscretion on the Lower East Side that surprised absolutely nobody...

https://edition.cnn.com/2003/LAW/02/10/deli.dude.arrest/

>'Dell Dude' arrested for marijuana possession

>Monday, February 10, 2003 Posted: 3:55 PM EST (2055 GMT)

>NEW YORK (CNN) -- Benjamin Curtis, better known as the "Dell Dude" from the computer company's television commercials, was arrested Sunday while he allegedly attempted to buy marijuana on Manhattan's Lower East Side.

Steve The Dell Dude Commercial Compilation (DUDE WE'RE GETTING A DELL!)

https://www.youtube.com/watch?v=oJxTHMygpDY

DonHopkins··on One-Electron Universe
I'm too low energy to click on that link.
← PreviousPage 3 of 34Next →