a librarian and activist. This picture is from six days ago. Erin was giving a talk to programmers, an inspiring and harrowing talk, the point of which I think was, how about we take a look at where we are and what we’re building.
idea is, if you look at the past, and try to forget what you know about the present—the omnipresent surveillance, the erosion of society, the propaganda, how annoying everybody is on twitter—if you look back, you can recover a feeling that it didn’t have to be this way. And—she brought some examples.
Computer-Assisted Instruction software from 1979. In case you can’t read this, imagine you’re sitting in front of a green screen and the computer is like, “I hear you’re writing a paper, what’s it about” and you say,
same year I got a Commodore 64—a librarian somewhere took photographs of this dissertation and put it on microfiche and archived it, and then something something now it’s on the Web as a PDF? So, OK, I get the PDF.
this by COMPUTE! magazine, which was a paper publication that had long printouts of BASIC programs that you could type into your computer and run. I’m not making this up.
that matter any character on this page. Is that a K or an X? (Note: these are load-bearing integers, so a mistake is a big deal. If I get this digit wrong, it’s not like we get three thousand of something when it was supposed to be three thousand and sixty. It’s a line number. So we jump to the wrong statement in the program. The behavior becomes super strange.)
program, right? So I started with a regular expression to break BASIC code down into tokens. The part with the quotes, for example, matches a single BASIC string.
appear in a BASIC program. Like, BASIC programs can have numbers in them, so there’s a Number class. With methods for executing a number — it just returns the value of the number.
something to take the raw text and turn it into the objects, so I wrote a little parser. The nice thing about BASIC is there is no high-level structure to your code, no functions, no blocks, nothing. So if you can parse one line of BASIC, you can parse BASIC.
win any prizes for self-documenting code here, but basically, big WHILE loop, WHILE the status is “run”, run the current line of code. And that’s basically it. Wanna see it run? (DEMO)
think it’s beautiful. Somewhere along the line this code got converted from digital to analog and back to digital one too many times, and it came apart. Maybe: a computing future is never really lost until we first lose the computing past.