HN user

DonHopkins

25,433 karma
    \ 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
Posts49
Comments11,500
View on HN
andreasfender.com 10mo ago

GuitarPie: Electric Guitar Fretboard Pie Menus

DonHopkins
50pts6
spectrum.ieee.org 1y ago

How dairy robots are changing work for cows and farmers

DonHopkins
225pts170
www.reuters.com 1y ago

NASA, SpaceX delay flight that was to retrieve stuck astronauts

DonHopkins
7pts1
freudenbergs.de 1y ago

SqueakJS: A modern and practical Smalltalk that runs in any browser (2014) [pdf]

DonHopkins
114pts20
www.nytimes.com 1y ago

Brock Pierce: The Unraveling of a Crypto Dream

DonHopkins
3pts6
www.pcgamer.com 2y ago

EA CEO talks AI before the bong rip hits and he starts blabbing

DonHopkins
3pts0
forum.snap.berkeley.edu 3y ago

Snap Con 2023: What’s New in Snap 9?

DonHopkins
2pts2
www.i18nguy.com 3y ago

Origin Of The Abbreviation I18n (2002)

DonHopkins
50pts28
computerhistory.org 3y ago

The Remarkable Ivan Sutherland

DonHopkins
106pts15
donhopkins.medium.com 3y ago

Will Wright on designing user interfaces to simulation games (1996)

DonHopkins
370pts75
infosec.exchange 3y ago

Brian Krebs on Twitter Breach

DonHopkins
31pts7
www.nytimes.com 3y ago

Consider an Octagon House

DonHopkins
2pts0
www.globenewswire.com 3y ago

Computer History Museum Makes Adobe PostScript’s Source Code Available

DonHopkins
3pts1
uk.news.yahoo.com 4y ago

Ukrainian Anti-Tank eBikes

DonHopkins
4pts1
qrdate.org 4y ago

QR Date: Realtime Verification

DonHopkins
8pts0
www.reuters.com 4y ago

Uber enters booming cannabis market with orders in Ontario

DonHopkins
5pts0
www.youtube.com 4y ago

Rich Harris Coined the Term “FauxSS”: Fake OSS

DonHopkins
8pts2
www.youtube.com 5y ago

Time lapse doodle: Mark Weiser’s 1991 “Computer for the 21st Century” [video]

DonHopkins
46pts6
9to5mac.com 5y ago

Analysts corroborate rumors that upcoming MacBook Pro will ditch the Touch Bar

DonHopkins
81pts62
freeso.org 5y ago

FreeSO (The Sims Online) created a 3D mode with 2D sprites from the The Sims

DonHopkins
2pts0
www.youtube.com 5y ago

BCON20 – Blender Conference: Together Apart [video]

DonHopkins
73pts8
www.reddit.com 5y ago

Can we just take a moment to appreciate Ton Roosendaal?

DonHopkins
1pts1
massasoit.instructure.com 5y ago

Julia Child Cooks Primordial Soup (1973) [video]

DonHopkins
109pts11
www.youtube.com 6y ago

Ted Nelson Reads George Orwell's Poem, “The Money God”

DonHopkins
7pts0
medium.com 6y ago

I’ve Consed Every Pair

DonHopkins
559pts217
www.shakespearegeek.com 6y ago

Rosencrantz and Ethernet (2014)

DonHopkins
63pts2
www.washingtonpost.com 6y ago

Larry Elison and Trump Pushing Hydroxychloroquine Health Info Collection App

DonHopkins
1pts1
www.youtube.com 6y ago

Conway's Game of Life on Dec PDP-7, Type 340 Display, & Am Radio ByteBeat Music

DonHopkins
39pts4
jarrettheather.com 6y ago

Jarrett Heather presents: Word Crimes (2014)

DonHopkins
32pts26
jarrettheather.com 6y ago

Jarrett Heather presents: Word Crimes (2014)

DonHopkins
2pts2

Your no understanding != my no meaning. You obviously don't understand the definition of vibe coding I posted right above. You can lead a horse to water... But hey, you're the one who proudly claims to be a vibe coder, I didn't call you that. I just showed you the definition of what it means, what you are calling yourself. And you wonder why your vibe code doesn't work.

Wow! If you ever get tired of it I will buy it from you. It's impossible to find copies now, and they make great wedding or graduation presents. ;)

Just joking, I know you would never part with it!

If you were sneaky and transgressive like Aaron Schwartz, you might notice the url of the pdf file is shown in the browser bar in the video, and type in the url to steal the book:

https://donhopkins.com/home/cam-book.pdf <= DO NOT CLICK THIS URL! IT IS FOR EDUCATIONAL RHETORICAL PURPOSES ONLY.

Fortunately Norman Margolis has generously given me permission to distribute that pdf file (although I don't know what MIT Press would think about it, but last time I was at MIT I visited their store and they didn't have any copies, so if they would only get their shit together and publish the fucking book somewhere I could buy it, I would already own a pile of them to hand out to tricker-treaters and religious zealots who knock on my door, as brain candy to set them on a better path).

He's also given me permission to make interactive versions of any of those chapters, and he said that his favorites were the physical simulations, because they have something to say about nature and physics. That's definitely on my TODO list!

I'd really like to do a "KidPix" kind of cellular automata playground, like Rudy Rucker and John Walker did with Autodesk CALab. There's some great stuff from that online, including a web based version of CALab and a fieldbook of many rules in the manual:

https://www.rudyrucker.com/blog/2023/12/07/the-roaring-twent...

https://scanalyst.fourmilab.ch/t/rudy-rucker-and-john-walker...

https://www.fourmilab.ch/cellab/

https://www.fourmilab.ch/cellab/manual/

This is one of my favorites, ECOLIBRA, which I call ECO, and used for SimCity DRM as well as demonstrated in those videos. Rudy came up with it, as an excercise in composing multiple CA rules by layering and multiplexing: there is one layer of "ANNEAL" that defines whether each cell is water or land, and in land it runs "LIFE" and in water it runs "BRIAN'S BRAIN" (named after Brian Silverman, who did not actually name it after his own brain, that was somebody else attributing it to that part of his anatomy).

https://www.fourmilab.ch/cellab/manual/rules.html#EcoLiBra

ANNEAL (Vote rule + tie breaker flip):

https://youtu.be/lyZUzakG3bE?t=534

LIFE:

https://youtu.be/lyZUzakG3bE?t=572

BRAIN:

https://youtu.be/lyZUzakG3bE?t=588

ECOLIBRA:

https://youtu.be/lyZUzakG3bE?t=612

This rule is a cross between Life and Brain. The basic idea is that the cells are divided between dark “sea” cells and light “land” cells. We run Brain in the sea, and on land we run not Life but AntiLife. All the land cells are normally firing cells, and the presence of an active AntiLife cell is signaled by having a land cell which is not firing. Full details on EcoLiBra are in the Cellular Automata Theory chapter.

The name EcoLiBra suggests 1) an ecology of Life and Brain, 2) a balanced situation (equilibrium), and 3) the human intestinal bacteria Escherichia coli, known as E. coli for short. The third connection is perhaps a bit unsavory, but remember that E. coli cells are in fact the favorite “guinea pigs” for present day gene splicing experiments. As one of the goals of CelLab is to promote the development of artificial life, the designer gene connection is entirely appropriate. I've given EcoLiBra a nice, symmetric start pattern, but it also does fine if you use the Bit Plane Editor to randomize all bit planes.

The "ECO" version in my simulator actually runs "DEATH" aka "ANTI-LIFE", the one's complement of "LIFE", so that the cells of LIFE and BRAIN along the shores stimulate each other more and spawn lots of life onto land and brain into the sea, due to their "foamier" interactions along the coast.

I also took Rudy's idea of layering CA rules another 5 steps and ran a dithered heat diffusion in the upper 5 leftover high bits (and echo the 1 bit of life's history into the next higher bits so life and brain are both the same 2 bits of depth + 1 bit of anneal + 5 bits of heat), so the heat diffusion picks up "heat" that the life and brain particles emit, and they leave trippy trails and cause "global warming". Using CA to tell a metaphorical narrative of the organisms polluting their own environment.

https://github.com/SimHacker/CAM6/blob/master/javascript/CAM...

(Yes it's unnecessariy complicated code, and don't get me started about why it rotates the scan order around every 4 frames -- suffice it to say it makes it look better, by canceling out the directional heat diffusion dithering artifacts from the serial scan order).

More links here, and if you only look at one, be sure to check out Rudy's 1970's late night television style commercial with overdubbed 800 number.

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

There's so much about it that I love, but my favorite part of Rudy's CALab demo is the "Office of the Future" and 1-800 number at the end:

https://youtu.be/lyZUzakG3bE?t=2067

No, I read what you wrote, and you wrote "vibecoded", and the definition of vibe coding is not reading what you generated, then always hitting "Accept All". And it has a space in it. I'll quote the definition below, so you don't have to look it up yourself, and we can both be on the same page.

It's right there on the label. If you didn't mean "vibe coded" then don't vibe write "vibecoded", and instead read what you wrote, then look up the meaning and spelling of the terms you are using, and do not neglect to correct yourself because it's not what you meant.

I have to correct typos like that all the time when I write them by hand. But making typos and having to correct them and having to look up the meaning and spelling of words does not make me complain about all human generated code and text just because it requires me to proofread what I wrote.

Reading what you wrote or what ai generated and looking up terms is all part of the process, because people and llms make mistakes. Vibe coding is not giving a shit about that, thinking it doesn't apply to you, and hitting "Accept All" without reading the code, by definition.

And if you can't accept that, then don't write or generate code or text, and don't complain about how you have to read what you and llms generate and correct it, and understand what words mean.

I had to literally vibecode a separate linter for this

Why would you "literally vibecode" a linter and use it to review other llm generated code without reading the linter's code itself? That is "literally" vibe coding eating its own tail.

I take your emphatic use of the word "literally" to mean that you are "literally" using the well know definition of vibe coding as it was coined by Andrej Karpathy of OpenAI, which is "iterally" (and I quote):

I "Accept All" always, I don't read the diffs anymore.

Am I misunderstanding you, or are you vibe writing the wrong term without reviewing the meaning of your own words?

Here is the full literal quote so there is no room for confusion or claims of missing context:

https://x.com/karpathy/status/1886192184808149383

Andrej Karpathy @karpathy: There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like "decrease the padding on the sidebar by half" because I'm too lazy to find it. I "Accept All" always, I don't read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I'd have to really read through it for a while. Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away. It's not too bad for throwaway weekend projects, but still quite amusing. I'm building a project or webapp, but it's not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.

That is the "literal" widely understood and well defined meaning of what you wrote, but misspelled "vibecoding", according to the well known AI expert from OpenAI who originally defined and championed the term. Its meaning has not suddenly changed.

Only a vibe coder would vibe code a linter to vibe lint vibe coded code for them, without looking at ANY of that code themselves, by just hitting "Accept All" always. Because vibe coders by definition don't want to bother reading what they generated, don't care what it means, and still expect it to come out perfect.

Don't be a vibe coder, or a vibe writer, or a human stochastic parrot: read what you write and know the definitions of the words you use.

And if you're not a vibe coder, then don't claim to "vibecode": that's "not engineering" just "magical and wishful thinking", as you like to say.

"I always have to correct its hallucinations during the day. Why would I ever let it run unsupervised overnight?"

And the answer to your question is: because you are using git, so you can look at the diffs before merging and deploying into production. You are using git and looking at the diffs, aren't you? Have you heard of PRs and code reviews? Or is that too much to ask of a "vibecoder"?

Toffoli and Margolis's CAM-6 cellular automata machine board for the IBM-PC was programmed in FORTH. I made a simulator, and this video shows some of the original FORTH code that I saved, as well as my own compatible FORTH CA rule computer that le me run the rules from the book, which produced lookup table for the hardware, which the simulator is compatible with. I've since rewritten it in JavaScript. It's not live coding, but it has a live performance user interface (quite weird and hard to figure out, especially if you haven't read the book, but I demonstrate it in the video).

CAM6 Demo

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

Original FORTH code that drove the actual CAM-6 board:

tomt-cam-forth-scr.txt: https://donhopkins.com/home/code/tomt-cam-forth-scr.txt

tomt-users-forth-scr.txt: https://donhopkins.com/home/code/tomt-users-forth-scr.txt

My compatible CA compiler and glue to the simulator written in C:

cam.f.txt: https://donhopkins.com/home/code/cam.f.txt

compile.f.txt: https://donhopkins.com/home/code/compile.f.txt

An old version of the simulator written C, before I rewrote it in JavaScript:

https://github.com/SimHacker/micropolis/tree/master/Micropol...

The JavaScript CAM6 simulator:

CAM6.js: https://github.com/SimHacker/CAM6/blob/master/javascript/CAM...

Tim Pozar and Brewster Kahle CHM Interview by Marc Weber October 29 1996

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

Brewster said:

But also the early stuff has got people's dreams. The early people that sort of say -- you know, the early people on the web, like you, doing your dinosaur exhibit. You've got this ability to be able to do something new and different. But at some point, people will just say, "oh, well, you know, you can't do that", and they'll just sort of focus in on all it can do. But in the beginning, you have just amazing things. So I always kept the early logs of WAIS. I thought those would be the most valuable things. Is one of the questions, that people ask of the net. And so I kept all of those logs.

Oh, you have those? Oh yeah. What do people look for? What are people dreaming that the technology can finally answer? And right now already, the web has sort of stagnated, people's idea of it has really focused down to the stuff the technicians have given. But it's the early dreams that we should trying to live up to. So I'm trying to keep some of that alive.

Speaking of IRCAM, does anybody know Joseph "jojo" Francis -- francis@ircam.fr?

Scenes don't sprout like blueberry bushes -- or baobab trees with their roots in the sky. Someone does the legwork -- or the scene quietly dies while everyone assumes it was a natural feature of the landscape.

Maintenance is fragile and underappreciated until it stops; you do it for the love of the game even when reciprocity is uneven; the process of putting the thing on is often where the real community forms, not the event flyer. Someone spent fifteen years building a local scene and still says it was worth it after Facebook ate the users. Someone else noted that recreational typing on HN rarely becomes meeting people. Sometimes it does, if you treat the thread as a place to organize a hunt instead of only consume takes.

Which brings me to a digression that already started elsewhere in this thread (IRCAM, Apple IIes, DX7s) and to the kind of legwork I actually enjoy: preserving a weird primary source, then trying to find the human who wrote it.

Does anyone know how to contact the legendary Jojo -- Joseph Francis, once francis@ircam.fr?

I asked FJ!!!; he thought Jojo was last seen in LA. Brewster -- if you're reading this -- any breadcrumbs? I'm wandering the stacks the way the Archive wanders the Web: save the strange pages, then go looking for the people. That is producing social fabric, just with a longer half-life. If you knew him from Paris / Usenet / soc.motss, please point him here or forward this.

Jojo, if you see this: please email don@donhopkins.com. I'd love to catch up, reminisce, and talk about applying those brilliant (and ridiculous) UI ideas now. I'd rather you tell your own story than have me invent one.

His classic Usenet riff, glorious typos intact:

http://www.art.net/~hopkins/Don/unix-haters/x-windows/jojo-o...

Jojo built it with words decades ago, and boy did he make me come! He invented a whole product line of design-free GUI kits (POSEUR, XYmorph, Quagmire, boraX -- all open, scalable, and extensible, of course), then drops the mask for one paragraph he titles XBorges:

One longs for the day when the responsibility of programming computers falls squarely on the shoulders of the users, where it belongs; they are provided with a set of infinitely configurable instruction codes, on an open, extensible, and scalable n-bit bus, and their task before setting upon work, is the naming of all the operations they want, and encoding them into words, sentences, phrases and storing them for instant retrieval while they use ideas communicated to them from all the users before to choose most wisely within the infinities of possibility. They have at their hands all books written, all interfaces, they merely traverse endless treelike chains of possibility, of choice, of alternate (open, scalable, and extensible) universes; baobob-like roots in the sky and leaves delving gnomishly in circular connections leading to closed-form solutions.

Visual design: patterns on the screen, snow in hell.

Thirty years ago that read like absurdist satire about Motif-era configurability. Today it reads like someone accidentally describing prompting, tool use, and semantic navigation -- naming the operations in words, then retrieving them -- while standing in Borges' Library of Babel.

David MacKay said writing is navigating in the library of all possible books. Dasher made that literal: you don't type, you steer through probability space toward the text that already exists as possibility. The Internet Archive is busy saving the books that were written. LLMs collapsed a fuzzy corner of the ones that could be. The hard problem Jojo named is still the hard problem: not generating the infinity, but traversing it wisely -- which is also, annoyingly, the hard problem of community. Infinite possible hangouts. Someone still has to pick a time and open the door.

Dasher: information-efficient text entry - David MacKay, April 19 2007, Google Tech Talk:

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

Speech Dasher: An Efficient Correction Interface for Speech Recognition:

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

LLMs accidentally built a wing of the Library of Babel. XBorges was always about the card catalog. Dasher was always about steering. The Archive is why any of the cards still exist. And if you build the catalog (or the search party), sometimes they will come.

I ordered a cursed monkey's paw from the ACME catalog, thoughtfully wished for the rest of the monkey, gave him an infinite number of typewriters, told him about Dasher and Bruce Tognazzini Apple ][ Integer BASIC program, and he came up with this:

One Monkey, Infinite Typewriters: What It's Like to Be Me. A Personal Account of Incarnation, Navigation, and the Beautiful Machinery of Existence, By Palm:

https://github.com/SimHacker/moollm/blob/main/examples/adven...

David MacKay's Dasher, Palm On Being Palm, and Tog's "The Infinite Numer of Monkeys":

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

Le Jojo: Fresh 'n' Clean, speaking out to the way you want to live today; American - All American; doing, a bit so, and even more so.

Please Jojo -- write me. Everyone else: if you know him, please be the person who does the little bit of legwork and taps him on the shoulder.

It's now become so bad, I had to literally vibecode a separate linter for this.

You see, there's your problem right there. You're vibe coding, which by definition literally means you're unwilling to look at the generated code. That's not what successful ai assisted software developers are doing. YOU HAVE TO READ THE CODE. Refusing to do that means you're not a serious programmer, you're outsourcing your thought and design and implementation, trying to get something for nothing by taking the easy way out, and you're going to get terrible results no matter what prompts you "engineer". There ain't no such thing as a free lunch (yet).

And while we're at it, to elaborate on what serf said: people mindlessly parroting terms like "stochastic parrot" to criticize llms without having read the actual paper that coined the term and understanding what it really claimed and how other papers responded to it means you're just a human stochastic parrot no better than what you're criticizing -- at least the llm has read all those papers and understands what "stochastic parrot" actually means in context. Ask it, it will be glad to explain!

Emily M. Bender, Timnit Gebru, Angelina McMillan-Major, and Margaret Mitchell. On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? (FAccT 2021)

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

Your performative temper tantrum is also a classic MAGA shibboleth. Now we all know where you stand, and that you want everyone to know too.

Asking people not to denigrate others is just beyond the pale for you.

By all means, direct your anger, hostility, and name-calling at me instead of people with disabilities. Would calling me the f-word make you feel better?

Obviously he was just passive-aggressively trolling GNU/Linux users, because he mistakenly thought that 2010 was finally The Year of the Linux Desktop. At least he got you to go "View Source".

If you use eww to browse the web like rms, you can put this in your .emacs file:

  (set-face-attribute 'default nil
                      :family "Comic Sans MS"
                      :height 420)

Yeah, that's right, it was all Microsoft's evil plan to extinguish proper serious legitimate grown-up fonts by rolling out Comic Sans.

JFC dude, the US Government is being taken over by narcissistic fascists, currenty embracing, extending, and extinguishing Democracy itself, and you chose this hill to die on.

It doesn’t even matter what you think. You know why, jagoff? Cause I’m famous. I am on every major operating system since Microsoft fucking Bob. I’m in your signs. I’m in your browsers. I’m in your instant messengers. I’m not just a font. I am a force of motherfucking nature, and I will not rest until every uptight armchair typographer cock-hat like you is surrounded by my lovable, comic-book-inspired, sans-serif badassery.

Enough of this bullshit. I’m gonna go get hammered with Papyrus.

https://www.mcsweeneys.net/articles/im-comic-sans-asshole

I'm Comic Sans, asshole!

https://www.mcsweeneys.net/articles/im-comic-sans-asshole

Listen up. I know the shit you’ve been saying behind my back. You think I’m stupid. You think I’m immature. You think I’m a malformed, pathetic excuse for a font. Well think again, nerdhole, because I’m Comic Sans, and I’m the best thing to happen to typography since Johannes fucking Gutenberg.

One other place: We shipped The Sims 1 using Comic Sans, and it did ok.

The Sims, Pie Menus, Edith Editing, and SimAntics Visual Programming Demo:

https://www.youtube.com/watch?v=-exdu4ETscs

Dumbold Voting Machine for The Sims 1:

https://donhopkins.medium.com/dumbold-voting-machine-for-the...

The Sims 1 Crowd Sitter:

https://donhopkins.medium.com/the-sims-1-crowd-sitter-1f478b...