CARDiac, syntax coloring, view source and vibe code
If you'd like an essay-formatted version of this post to read or share, here's a link to it on pluralistic.net, my surveillance-free, ad-free, tracker-free blog:
In the mid-1970s, my dad – then a budding computer scientist, subsequently a math teacher – brought home my first computer: the CARDiac, a Turing-complete, all-cardboard papercraft computer that you could write and execute programs on:
CARDiac stands for "CARDboard Illustrative Aid to Computation," and it was created in 1968 at Bell Labs as a way to teach high schoolers how computers worked. I wasn't anywhere near high school age (I think I was in third grade?) but the CARDiac was revelatory. The year before, I'd had access to a teletype terminal and acoustic coupler that let me operate a PDP machine at the University of Toronto, and I'd been endlessly fascinated with the possibilities. I wrote simple BASIC programs, chatted with ELIZA, and messaged other system users, one keystroke at a time, all on paper (the terminal didn't have a screen, just a printer, and we fed it 1,000' rolls of paper towels my mom brought home from her kindergarten classroom, which I then rolled back up so she could put them back in the bathroom for the kids to dry their hands on).
Interacting with a computer in real-time was captivating, but it wasn't until I assembled and used the CARDiac that it all snapped into place. With the CARDiac, you composed simple programs with pencil and paper, then followed instructions that directed you to move paper tokens in and out of various slots representing memory cells and an accumulator. All an electronic computer does is repeat these crude mechanical operations, millions of times per second, using microscopic transistors. None of that action can be observed with the naked eye, of course. If you had a very sensitive multimeter and a very good microscope, it's conceivable that you could indirectly watch this intricate dance, but only on very early processors, and only if you drastically slowed down their operations.
Much later, I learned a word for what I got from the CARDiac: legibility. Together, the CARDiac and I made a working digital computer, with me standing in for the physics that propels electrons down the endless labyrinth of a microchip, like a pinball triggering various blooping, beeping bumpers. Though the computing we performed was sub-trivial (adding one and one was a major undertaking!), the physical performance of that computing imbued me with Fingerspitzengefühl ("fingertip feeling"):
This stood me in great stead in the years to come. To this day, when I think about my computer, I sometimes imagine those little cardboard tokens, shuffling in and out of the slits in my paper CARDiac. There's something very reassuring about this imagery. No matter how many levels of abstraction sit between me and the nanoscale transistors ranked in their billions beneath my fingertips, they are all undertaking those familiar operations I painstakingly performed on my child's desk all those years ago.
(This is one of the things that makes Science Comics Computers: How Digital Hardware Works such an amazing kids' book! By illustrating how a computer's operations are built up from simple boolean logic that can be represented as physical switches, the comic performs that same legibilizing magic that I got from the CARDiac:)
Not long after my CARDiac experience, my dad brought home an Apple ][+, which came with a schematic that revealed the inner workings of the machine in ways that I found visually striking, if significantly less accessible than the CARDiac:
(For me, at least. For the legendary hardware hacker Andrew "bunnie" Huang, it was the start of a journey that turned him into one of the world's virtuoso reverse-engineers and science communicators):
The Apple ][+ did very little when you took it out of the box. It came with a few floppies' worth of demo programs, and we bought a few more down at the local computer store, but most of the programs I ended up using with that machine were ones I typed in myself, from magazines I bought at the corner store (I spent half my magazine budget on Cracked, Mad and Crazy, the other half on computer magazines full of BASIC program listings).
Typing in a program, keystroke by keystroke, was another Fingerspitzengefühl-generating exercise. I wasn't much of a typist, so it was slow going, and of course I made a lot of typos. What's more, BASIC had already fragmented into several dialects by this point, so even a correctly typed program could fail to run until it had been adapted for the BASIC that shipped with the computer. Getting a program to run on my computer required me to hone my typing skills, but even more so, my problem solving skills.
After months of this, I (re-)invented the debugger, from first principles, coming up with lots of little tricks and gimmicks (many of them horribly inefficient) for identifying and solving my programs' errors. In later years, I had lots of opportunity to work with real debuggers, created and maintained by trained programmers who'd forgotten more than I would ever know about writing code, and my own cack-handed efforts to build my own version of their tools conferred a confidence and intuitive understanding that I could not have achieved otherwise. Figuring out the need for a debugger and then rolling my own (crude, inefficient) one made all debuggers more legible to me.
I think that "legibility" is an underrated trait. If a system is legible to you, then you have a superior basis for understanding it, improving it, and making it work again when it breaks down.
There's an old joke that goes, "physics is applied math; chemistry is applied physics, and biology is applied chemistry" (I've also heard versions that start with "math is applied philosophy" and carry on to "sociology is applied biology," etc). While this isn't entirely true, there's something profound in it: we understand and manipulate our complex reality by wrapping it in abstractions that package up a writhing, shuffling, vibrating machine inside a smooth, serene membrane with a sturdy and easily grasped handle. You could do chemistry using the tools of physics, but it would take hours to perform the kind of calculations a chemist does in seconds (just as it takes an eternity to add one and one with a CARDiac).
Nevertheless, there are times when it is useful for a biologist to think about chemical processes, and for a chemist to think about interactions at the level of physics, and for a physicist to do math. The membrane and the handle are essential, but sometimes you have to decap the sealed package and inspect and manipulate its internals directly. Problem solving, improvement and maintenance all require the ability to move up and down the stack of abstractions to figure out where to stick your probes and stage your interventions.
This is where legibility comes in. Interacting with physical processes improves your mental model. In Broad Band (a magisterial history of women in computing), Claire Evans talks about how the first programmers were women who did the "unskilled" labor of physically cabling components together, developing powerful Fingerspitzengefühl, with such high-fidelity, trans-abstraction mental models of the machines' operations that they became the world's best programmers and debuggers:
My early adventures in programming were so powerful and instructive because nearly all the programs I interacted with on my Apple ][+ were written in BASIC (not just the ones I keyed in, but also the demo software and much of the packaged software we bought). That meant that I could get a listing of any program I was using, peeling open the membrane to look at the machinery underneath. I could even laboriously trace the operations of that program using my toy debugger. This, too, was legibility: the ability to flip between the effects of the running code, and the instructions themselves (and then to mentally map those instructions onto the movement of cardboard tokens in my CARDiac).
This affordance was repeated later on the early web, thanks to the "View Source" function that came built into every browser, acting as a velcro tab for the membrane that separated rendered web pages from their underlying instructions. In my early years as a web developer, I copied, pasted, adapted, probed and traced HTML in ways that would have been instantly recognizable to the younger me, keying in those BASIC programs and ripping apart the commercial software on my computer.
I read somewhere that the Bell Labs scientists who created the CARDiac were worried that, thanks to transistorization, the next generation of programmers wouldn't understand the physical, material processes that unfolded when their programs ran, and that this would mean a loss of legibility and intuition and Fingerspitzengefühl. I can't track down the reference now, but it stuck with me, because the CARDiac is such a perfect way of preserving those virtues.
Modern computer science curriculum includes some chip design for just this reason (just as chemists study physics and biologists study chemistry). But there are plenty of programmers – better programmers than I ever was or will be – who taught themselves and never had a CARDiac or gave much thought to chip design. They work at different layers of abstraction and in different ways to solve different problems. Maybe they could improve their art by tinkering with FPGAs, but there's always something even the most skilled artisan can do to round out and incrementally improve their craft.
In the same way, there are plenty of programmers – better ones than I ever was or will be – whose journey started at higher abstraction layers than a teletype terminal or a CARDiac. Maybe they started with a browser's View Source, teasing apart other people's Javascript to create weird Myspace customizations. Maybe they tweaked a programmable block in Minecraft. Maybe they modded a Scratch game. Or maybe they recorded macros using Applescript or Hypercard or Visual Basic to automate a routine task, only to later open up the source code generated by the macro recorder to make fine adjustments.
Whether you're pasting source from Stack Overflow or recording a macro in Excel, you are just one operation away from unwrapping the membrane and exposing the code beneath it. And with the modern internet, with Wikipedia, with endless tutorial videos, you are one further operation from penetrating the high level code to get at the code beneath it, and the code beneath that, and the code beneath that, all the way down to the bare metal.
Which brings me to vibe coding. As I've written, there's a world of difference between writing code for production and writing "personal software" that solves a problem you have. Whatever deficits that code has (due to the fact that you're not a skilled programmer) are offset by the fact that you're the one making the tool (which means your needs aren't lossily filtered through a programmer's understanding of those needs):
There's nothing wrong with code that solves your problem, even if you don't know how that code works, even if it breaks in a couple of years, even if no one else could maintain, extend or debug that code. Personal software is fundamentally different from software made to be used and maintained by others:
Higher-level abstractions are necessary. Moving tokens between the slits in a CARDiac is a powerful exercise, but eventually you want to do something more substantial than adding one and one, and so you need to package up the mechanics of computing inside a membrane with an easily grasped handle (knowing that you can always open the membrane if need be).
The more automated code you generate – macros, pasted Javascript, Minecraft blocks – the greater the likelihood that you will be failed by a readymade, prefab component. At that point, you have means, motive and opportunity to open the membrane and start tinkering with the internals, and every time you do, you have a better chance of making a realization that improves your grasp on the whole system.
Automated code – whether from an LLM, View Source, Stack Overflow, or a macro recorder – is the top of a funnel. Many – most – of the people who enter the funnel won't slip further down the abstraction chute. They'll solve their problem (a virtue unto itself!) and move on. But the more people we put at the top of the funnel, the more chances our civilization gets to produce another skilled artisan who understands and can improve, iterate and repair the code the rest of us use.
This is also why I love Charles Petzold’s book “CODE” that takes you all the way from braille, binary numbers, understanding how logic gates work, all the way up to building memory, modern computer chips, low level programming, and operating systems. When read that, I felt like I finally understood how computers worked for the first time.
Computers are everywhere, most obviously in our laptops and smartphones, but also our cars, televisions, microwave ovens, alarm clocks, robo
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality✓ Free Actions
Free to watch • No registration required • HD streaming
*street shot of zohran mamdani clad in nasty lil suit and hard hat* five months ago i was elected mayor of new york city. in that time, we have managed to COMPLETELY defeat the Staten Island Minotaur at no additional cost to the new york taxpayer
“Authors should not be ALLOWED to write about–” you are an anti-intellectual and functionally a conservative
“This book should be taken off of shelves for featuring–” you are an anti-intellectual and functionally a conservative
“Schools shouldn’t teach this book in class because–” you are an anti-intellectual and functionally a conservative
“Nobody actually likes or wants to read classics because they’re–” you are an anti-intellectual and an idiot
“I only read YA fantasy books because every classic novel or work of literary fiction is problematic and features–” you are an anti-intellectual and you are robbing yourself of the full richness of the human experience.
"you are functionally a conservative" is such a good and clarifying insult
Literally right after I saw this post, I saw another post in a discord chat for BOOK EDITORS in which an outspokenly liberal editor talked about how Nabokov should have never been published because he wrote about p*dophiles and described women's bodies in ways that made her uncomfortable. She described his writing as "objectively terrible" and said she wanted to burn his books. And other editors were bringing up classics they didn't like and talking about how they wanted to throw them in the trash. This wasn't like a light "unpopular opinion!" conversation. This was actual book editors talking about how books should be destroyed and censored.
There is something so scary and toxic in global culture right now. The revival of fascism is influencing everyone's mindset and approach to art, regardless of where they fall on the political spectrum.
I see far more books being censored today than when I was a kid. Librarians handed me The Catcher in the Rye, The Sexual Politics of Meat, and Animal Farm when I was literally 8-11. My mom would never have taken a book away from me. I read everything from the Tao Te Ching to the Qur'an to atheist texts under my desk at school. Teachers thought nothing of it or encouraged it. Books seemed universally acknowledged as sacrosanct to me.
Now I can't find any adults who don't hesitate or want to make exceptions when it comes to censorship. Even the most liberal social activist librarians I know go, "well except for book X..."
Functionally conservative. It's so important to have the language to express that.
Actually, I did reports on book banning three separate times with three separate teachers, with three separate sets of parameters so I was able to write about the same topic in different ways, but this is specifically about the report I did in university. The actual specs for the report included that we were supposed to complete some kind of study or poll (this was not a science class). I put the questions out on a couple of forums I belonged to at the time and asked a few IRL friends as well. A lot of the questions were standard for this sort of thing, I think - were you ever assigned to read a banned book, did you ever read banned books on your own, did you read/were you assigned them BECAUSE they were banned or did you find out about them being banned later, what's your opinion on banning books, etc.
But there was one question I asked that ended up reshaping the entire thrust of my presentation: "Are there any books that you think SHOULD be banned, and if so, why?"
Here's the thing. Most of the forums I was posting on were fan spaces for a book series that, at the time, was one of the most banned/challenged books out there. It's a fandom that I have since entirely distanced myself from, that I one hundred percent do not recommend to anyone, that I will actively attempt to dissuade people from reading or talking about, and that I would like to not be popular anymore. I'm sure most of you reading this can guess which one I'm talking about (I won't name it or go into specifics because I don't want to trip any filters unnecessarily). But it was KNOWN that these books were banned in a lot of places. A lot of people wore the "I read banned books" badge with pride. I fully expected that the answer to that question would be a resounding "no" from the forums, and that I'd maybe get a few affirmative answers from one of the other spaces.
I was shocked. Not only did a lot of people come back with either "not exactly but I think we should keep [author] or [book] out of the hands of children" or "yes, [book]/anything by [author] should be banned because XYZPDQ", but not a single person who responded gave me the same answer. The only one I remember - keep in mind it's been almost twenty years - was that one person specifically said The Bone Collector, and for the "why do you think it should be banned" question, they only said, "No. I'm not explaining it. It's too horrible to even think about. Just believe me when I say nobody should ever be allowed to read this book."
I highlighted that last comment in my presentation, along with several other of my "favorite" official reasons for banning books - the Alabama school board that banned The Diary of Anne Frank in 1984 because it was "a real downer", the district that removed A Raisin in the Sun because it was "pornographic", the library that took Charlie and the Chocolate Factory out of circulation because it "might be hurtful to children without parents", and things of that nature - and pointed out that all of these were the same thing. This was somebody saying "I don't like this, therefore nobody should read it, and I shouldn't have to explain why." I also pointed out that if you can't give a good reason, the whole thing falls apart, and then I quoted "Smut" by Tom Lehrer:
All books can be indecent books,
Though recent books are bolder,
For filth, I'm glad to say,
Is in the mind of the beholder.
When correctly viewed,
Everything is lewd.
I can tell you things about Peter Pan
And the Wizard of Oz - THERE'S a dirty old man...
Go back to that paragraph I mentioned earlier, about those books that I no longer recommend to anyone. Notice how I phrased that. I don't recommend them. I will tell you all the reasons why I don't think you should buy them. I will tell you all the problems with the author, with the franchise, with the writing. I wish they were out of print, I wish they were deeply unpopular, I wish nobody would ever read them again.
But I still won't advocate for banning them.
It's so easy to twist a justification. Look at what I quoted up there! A Raisin in the Sun was banned for being "pornographic". One of the websites I used as a source responded to that accusation with "Did they read the same play I did?" At the time, I thought the comment was funny. Now, twenty years later, I realize: It was a buzzword. It was a convenient label. At the time of the challenge, just saying "it's pornographic" was enough. Obviously you're not some kind of sicko who wants to hear about all the pornographic details, are you? Freak! That's pornography! And they're teaching it in schools! We should get rid of it!
A Raisin in the Sun, for anyone who didn't study it at any point or read it (or watch the movie, which was very good), is a play/movie about a black family in Chicago in the 1960s. The family matriarch has been in domestic service for years, but she's just received a very large insurance payment from her husband's death and is retiring. Wanting to give her family, especially her young grandson, a better life, she goes out and buys a house...in an otherwise exclusively white neighborhood. The head of the homeowner's association (essentially) comes to visit them and offers to pay them a substantial amount of money to not move into the neighborhood, because segregation isn't officially a thing and they can't legally stop them from moving in, but they don't want them there. There's a lot more that goes on in the play, and I highly recommend you go and read it, but the point is that there is nothing sexual or titillating in the entire thing. The closest we get is a scene where the daughter (Beneatha, a college student) is gifted a traditional African dress from her boyfriend, who's Nigerian, and he shows her how to put it on over the clothes she's already wearing, and maybe the scene where the daughter-in-law (Ruth, a laundress) accidentally reveals that, having found out she's pregnant, she's planning to have an abortion rather than bring another child into the world/have another mouth to feed.
It's not pornographic. But someone didn't want it taught in schools, so they called it that to get it banned.
It's so easy to twist labels. If you, a liberal, agree that books with X trait are okay to ban, the people who don't want books to exist will find a way to say they have X trait, and then what are you going to do, admit that you like that sort of thing? Sicko! Freak! Pervert!
You don't have to like the book, or the author, or the topic. But if you're advocating for banning them entirely, you're functionally a conservative.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality✓ Free Actions
Free to watch • No registration required • HD streaming
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality✓ Free Actions
Free to watch • No registration required • HD streaming
here's a secret: whatever you're doing, you have to root for your peers with all your heart because it forces you to root for yourself too. I've seen people in various spheres of my life (workplaces, education, art, activism) fall into the trap of envy and resentment when they see others succeed while they struggle, and it always always goes hand in hand with them pulling back and giving up and stagnating.
when you let yourself get sour grapes about shit, you tacitly give up on yourself. when you sit around hoping other people will flop and fail so you can catch up to them, you stop trying. it's a fantasy of mediocrity, the vain wish that other people would walk so you could take the gold medal at a jog. wouldn't you rather come last place at 27mph?
t’es woke toi 😦🫵 toi t’es un woke left😔🙄 tu supporte les trans pis les pronoms toi 🤨🏳️⚧️ veux-tu savoir mes pronoms? 🥱🔥 mes pronoms? 😳😤 que/bec. fran/çais. bar/be/que. go/habs/go.🍁🏒 bleu pis rose 💙🌹 toi c’est quoi tes pronoms? vas-y. dis moj tes pronoms?🧐😪 joe/bi/den? ru/paul? 🤭😒 j’vas prier pour toi 🫤🙏
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality✓ Free Actions
Free to watch • No registration required • HD streaming