Wine, whine

Here’s something that comes up occasionally when googling myself, something that I do when I can’t write, which is pretty much constantly, especially when I wake up at five AM to write and I’ve only slept about four hours the night before: I once worked on the Wine software project, in the most trivial way, but enough to get my name in the list of contributors.  It’s one of the things on my ever growing list of crap I did a long time ago that I probably should have parlayed into some kind of career or fame or fortune, but did absolutely nothing with, either due to my own stupidity or poor fortune.  (At some point, I’ll make a web page of all of these.  And about ten years later, some other idiot will do the same exact thing and get a six-figure book deal out of it and everyone will call him a genius.)

Wine is an open source Windows compatibility layer written for Linux.  Basically, the goal was to be able to run a Windows program on a Linux machine, without actually buying and installing Windows on a PC.  You can now buy a virtual machine emulator like VMware and install Windows in it and run Windows software, but their goal was to reverse-engineer how Windows worked and then write this wrapper layer so you could run TurboTax or whatever the hell Windows-only software you needed to run on your unix machine.  This project started in 1993, and it was of great interest to me, because I ran Linux on a machine that I built, and I was too cheap to give Microsoft a hundred bucks or whatever Win 3.1 cost back then, and after spending all day and night sitting in front of nice SPARC stations, I didn’t want to go to the clunky monstrosity from Redmond.

I wrote Bob Amstadt an email and begged to help in any way possible, which wasn’t much because I wasn’t much of a programmer, and I’d never worked on Windows before, and I’m sure Win32 calls (which are made by passing like 17 parameters, 14 of them being pointers to structs that contain pointers to structs, and every single data type is some weird custom type) would have freaked me out.  (Like, instead of passing pointers to structs, I would just write shit into a temp file and maybe later remember to actually delete it, so my VMS C programs would litter your home directory with TMP.TMP files or something stupid like that.)  So he wrote back and put me in charge of his Listserv.

Do people even remember what a Listserv is anymore?  It’s a mailing list that you subscribe to by sending commands in an email message to a server.  I guess now people use Facebook or Yahoo Groups or some other web-based thing for discussion lists or announcement lists.  But back then, Listservs were social networking, and aside from maybe usenet, they were the only way a person could announce something to a huge group.

So Wine HQ had this listserv, and every time they had a build, they sent a message to the list.  I helped out pretty early in the process, and at that time, they were trying to get 16-bit Solitaire to launch, and would post stuff like “this build gets it to almost start before it crashes”.  The problem was, this list had a ton of people on it using these primitive Linux systems hung off of very tenuous connections to the internet – flaky UUCP gateways and modems that dialed up once a day to fetch their email.  We take it for granted that even our phones can constantly open a wide pipe to the internet through the ether, but this was when a good 14.4K connection to the world was a premium service.  So every time one of these messages went out to thousands of users, at least a few dozen were using some duct-taped together mail server that would flake out and bounce the message or get caught in some permanent mail loop.  And I got a CC of all of the errors to the Listserv, so I’d get a ton of these messages and then would have to figure out if the person’s account was permanently hosed, or if their email only worked on every other Tuesday, and I’d have to unsubscribe people from the list.  And I had to handle people who wanted to move their email from one address to another.  All of this was done with these commands I’d email in, like “DROP/NONOTIFY JOESMITH8724@OLYMPUS.CCLAB.UG.SOMECOLLEGE.EDU”.

I didn’t do the job for long, and I don’t remember when I stopped – probably when I had to go home over a break, or when the whole thing got boring.  I liked the idea of Wine, but it seemed like it would take a decade to implement, and it basically did.  This was when 32-bit Windows was on the horizon, and there was a lot of discussion about the future of the project, and how Windows 95 would derail the whole thing and set stuff back another year or two, and I lost interest.  I still ran Linux for a long time after that, and didn’t actually buy a Windows machine for the first time until 2000, and even then, I dual-partitioned it and spent more time in Linux.  But it’s part of that weird little spark of a dream I had to have this ten thousand dollar Unix workstation in my apartment, except I barely had the budget to buy secondhand used PC parts from usenet.

So Wine sort of mostly works now, and people use it.  And there’s this huge list of contributors, and my name is in it, although maybe it shouldn’t be, because I didn’t do much.  I suppose if I was more of a Type A personality disorder type of person, I could hem and haw about how I’m some kind of open source revolutionary and try to get some cred for this, but it’s like a bunch of Jawas saying they were responsible for blowing up the Death Star because they sold Luke Skywalker a couple of droids.

Okay, time to make the donuts.