Daily notes for 2023-04-03

· 1958 words · 10 minute read

Vimari and my Emacs origin story 🔗

Some time in 1991 I got a job at Indiana University. It wasn’t much of a job, but for someone who’d quit his job at a newspaper and had just spent a year flipping burgers at a place called “G.D. Ritzy’s,” it was okay.

Everybody at IU could get an account on a VAX cluster running VMS. You could log in on one of the many VT100’s scattered around campus, or telnet in via one of the Macs (SE’s mostly in the public clusters) or PCs (a bunch of Zenith 286’s.) If you had a modem at home you could get in that way, too. The machines in the cluster were all named things like “Rose,” “Jade,” “Aqua,” and other shades, so people called them “the color computers.” By early ’90s shared computing standards they were simple enough to use: You got a menu at login that offered the basics (email, directory services, interactive chat, etc.), and there was a small collection of utilities people wrote that you could install to do stuff like look up which user was logged into which terminal in a given lab (which broke whenever a terminal got moved, because the utility location database was put together by hand.)

The VAX clusters were hideously overloaded and logins were queued. At lunch I’d walk from my work building over to a nearby academic building that had a study carrel with a VT100 taking up all the desk area, start a login, open my lunch and finish most of my sandwich before my password would be accepted. Once in it was faster but still pokey, so I’d spend the hour doing email or bickering on Forum, the local discussion board.

I complained about how slow things were to a friend who was doing her PhD in biology, and she told me the resident nerd in her lab had helped everybody get “metal” accounts, which were much faster. I’d seen them in use but assumed they were reserved for some class of university person I was not. “No,” she told me, “just go to the computing services helpdesk in the union, and don’t say ‘metal,’ say ‘unix.’ You have to say you want a ‘unix’ account.”

Okay. Got it. So on my next stop by the union I went down there and told the help desk person “please give me a ‘unix’ account.”

He collected some information and jotted my username and password on a tri-folded pamphlet that said something like “UNIX At Indiana University.” The pamphlet served mainly to say “you’re about to use something that will remind you of MS-DOS just enough to confuse you but not enough to help you.” It also explained how to write an alias to make some things be more like MS-DOS, and it said if you wanted to write a file, you should use a program called vi.

I logged into my new account on a node called ‘silver,’ and right away noticed that the login was instantaneous, and that it dumped me into a bare prompt. No helpful menu. No nothing. I spent a lot of time in that pamphlet, learning that elm was for email, and that I had a choice of rn or tin for this thing called Usenet that absolutely kicked Forum’s ass, and that there were these things called man pages that were both often delightful and occasionally infuriating.

I was mostly interested in using my account for writing, though, since I could keep my work on a central machine and get at it from anywhere on campus or from home, where I had a Lear-Siegler ADM3A+ and a 300-baud modem. vi posed a small problem there, however, as it didn’t seem to have word-wrap. I mean, I am sure it probably did, but man vi wasn’t telling me how that might work.

So I made my way down to the UCS help desk in the student union again and said to the person at the counter, “I am trying to write with my unix account, and there’s no word wrap in vi.”

“Oh, huh. I don’t know. I just use WordPerfect. Um … the guy who knows unix is here.”

So he shouted over his shoulder, “hey, how do you turn on word wrap in vi? It’s for a unix account.”

“Oh, it doesn’t have it. Tell him to use Emacs.”

“Okay. Yeah. Um, you should use Emacs. It sounds like it has word wrap.”

Then he slid me a salmon-colored tri-fold pamphlet that said “Emacs at Indiana University.”

Okay.

The pamphlet said nothing about word-wrap, but I had a USENET account, so I asked whichever Emacs group I found first, and someone started me down the path. That’s it. 32 years later “I am an Emacs user” because in 1991 I couldn’t figure out word-wrap in vi.

“Unix” (I later learned I was actually using Ultrix) took over how I thought about computers. When I put the ADM3A+ aside so I could use an IBM XT I’d bought at university auction for $35, I reversed my journey of aliasing all the Unix shell commands to their DOS equivalents and installed something called 4DOS, which provided an improved shell for MS-DOS machines and allowed me to make Unix-like aliases. Dumpster-diving outside one of the academic buildings I found a complete set of disks and manuals for Borland Sprint, which was a word processor for DOS that included keystroke emulation layers for WordStar (whatevs), WordPerfect (hot), and Emacs (!).

That also primed me for my first “tech job,” sorting out a Sun pizza box that served as a printing queue for a pair of Xerox DocuTech’s in my office. When the thing went down, my boss grabbed me because “you know computers” and I was allowed to actually sit at the terminal, wherein I had my _Jurassic Park moment a year before Jurassic Park.

Screen capture of Lex in Jurassic Park saying ‘it’s a unix system, I know this.’

It was a Unix sytem, and I did know it. Mostly. Enough that the Xerox support tech and I were able to communicate over a very long support session, determine that my boss kept turning the box off at night, which was keeping cron from running, and killing the print queue when /tmp filled up. From that point forward, some of my job was my old job and some of it was just doing computer stuff that needed to be done.

Being pointed to Emacs also started my education about Free Software (“open source” was years away). I’d never really thought about software as a thing you’d think about ethically. I thought shareware was cool but usually bad compared to the stuff you got at WaldenSoft, and that the best software had to be fished out of a dumpster outside the communications department building after some professor had moved on. Emacs was happy to educate me about all that, though.

When Linux turned up I was completely primed for it. I didn’t have the hardware or skill to install it, and wouldn’t until 1995, but wow was I ready for a real Unix on hardware I could afford.

Anyhow, the whole “vi vs. Emacs” thing was always the source of some wry amusement to me. When I wrote a book about Linux that had a whole chapter on the flame wars of the late 20th century Linux community the matter figured prominently. When we released a sample chapter on LinuxToday people felt this was divisive and unworthy of the open source community ethos:

Vi fans are proud of their hard-earned knowledge and mastery. You can find Web pages with buttons that read, “Crafted with the vi editor.” There are vi coffee cups with the commands you might need to know printed on the sides. Vi people take a ruthless pleasure in telling newbies to use vi. They know what the newbie’s getting into, and they aren’t about to warn them. If the newbie works in an adjoining cubicle, vi users sit quietly and listen to the newbie’s terminal beep over and over and over while the first lesson of vi is pounded into their skulls: You can’t “just start typing” with vi. People who want to do that are morally defective.

But personally I just sort of kept quiet about the whole thing outside of admitting that I was an Emacs person and sometimes mentioning that was mostly owing to an historical accident. I mean, when Puppet started doing stuff with Clojure in 2013, and suddenly Emacs-by-way-of-Spacemacs started turning up on more screens, I did feel a small surge of vindication, but also could not puzzle out the whole Evil thing.

But here I am, typing this on Emacs using Doom Emacs and keeping the Evil layer turned on because I got a little bored and wondered what life could have been like if someone had told me vi had word-wrap in 1991. Interestingly, because I have applied myself to learning and practicing vs. backing into the bare minimum over the years, I think I might be at least as proficient from the past several weeks of practice. I’ve got a janky, hybrid style right now, because Doom is set up to let a lot of Emacs keybindings still work, and also lets me use more traditional Mac keybindings for basic text operations. Maybe it’s less of a conversion to the vi keybindings and more an appreciation of Doom’s modal interface. But I do continue to find myself on the control key less, and I appreciate that.

Oh, right: It has taken enough that I added Vimari to Safari. It gives you a bunch of vim keybindings. The one I actually like the most is f to label all the links on the screen and jump to one.

Spacemacs 🔗

Speaking of Spacemacs, I did give it another look over the weekend just because Doom doesn’t use ~/.emacs.d and Spacemacs doesn’t look in ~/.config, so swapping configs is a cheap thrill. I completely get the charm, and could see myself using it if I’d have tried it before Doom, but I did find some config conventions a little less to my liking – they sort of tangle things up in a way that feels more error prone – and I found the out-of-the-box configs in Doom more to my liking.

John Wick Chapter 4 🔗

Al and I went to see the new John Wick movie over the weekend. It’s long and I would argue it is too much of its particular good thing. Running close to three hours, there’s a whole section I think they could have removed, losing little. At the same time, Donnie Yen is so great as Caine. Watching his more old-school cinematic martial arts style contrasted with John Wick’s sometimes awkward, brutally utilitarian “not going for a submission, just holding your head still so I can shoot it” fight choreography was cool, and it made me glad I’ve got Blind Fury, The 36th Chamber of Shaolin, and The Five Venoms lined up on Plex.

I guess it feels a little churlish to complain about 3-hour run times. I remember when even up-market Hollywood stuff was frequently coming in at under 2 hours, and it felt penny-pinching and sad.

Anyhow, tomorrow is a big day. Al helped me rehearse yesterday, and I’m sitting here in that state you get into when you’ve prepared right up to the point of over-preparation and you need to stop so your brain can consolidate it all and you can just go in and play your game, knowing that you’re going to tell the best possible story about who you are, then leave it to the people on the other side of the table to decide if they want that.

To quote the great Diego Sanchez:

GIF of Diego Sanchez chanting ‘yes’ as he walks in for a fight