Categories
general

Finger

There was an interesting post that came up recently about the history of the unfortunately-named finger command in unix here. This jogged a few memories for me, because I remember finger as being the early precursor to blogs, web pages, and social media platforms.

Back in the days of unix and logging into mainframes and big workstations through terminals, there was a program called who, which listed every user currently logged into the machine. That was cool, except when there were hundreds of people on a machine and it quickly scrolled past in an indecipherable flood of text. It would show you a few brief details about each user, like how long they were logged in, or what program they were currently running. This was, in a very primitive way, similar to the little green dot next to a name in a messaging program, that tells you if the person is online or not. (Or maybe they never logged out, and their terminal was sitting idle overnight in a locked office.)

The next level of granularity was finger. If you were logged in and typed finger jkonrath, it would show a bit of info about that account, like that user’s home directory, the shell they used, and where they last logged in, or how long they’ve been logged in. That can lead to some stalker-y situations, but this was decades before anyone really thought that through.

One cool feature about finger was that if you had a text file named either .project or .plan in your home directory and they were would readable, they would also be displayed. The former was a one-line thing, and the latter could be any length. I think the original intent when this was written back at Stanford in 1972, you’d set your project to “AI Lab, Compiler Division” and your plan would be something like “I teach M-W-F in the basement of the science building. I will be on vacation June 1-9. Contact Dave Smith for questions.”

I first got a unix account (ULTRIX, actually) at IU in December of 1989. One of the first things I was absolutely infatuated with was the idea of coming up with a perfect plan file. I was 18 and of course had Big Thoughts I needed to tell the world, probably involving dumb song lyrics or movie quotes. I think for months, the only thing I used my account for was setting a new plan file and playing the text-based Tetris game someone installed on there. But it was almost like a really rough social network, sort of.

At some point, a CS buddy (it may have been either Brad Ramsey or Jesse Martin) told me about named pipes. A named pipe was a way of creating a file that really was a redirect to a program. I don’t remember how this worked, but they showed me a way to create a plan file that actually ran a script which did a who command, looked for the person who was running the finger command, then print some cute message like “hey $username quit spying on me” and output that to the pipe. It worked great, as long as the person was on the same machine, which was almost never the case. (I forgot to mention: you could run a finger command to any other machine that had a finger server running. So finger jkonrath@gnu.ai.mit.edu would also work on my burner account over there.)

Most undergrads and casual users were over on the VAX computers at that time for their general email use, and that VMS system had some half-baked implementation of finger that didn’t entirely work right, or didn’t support plan files, or something. VMS had its own arcane commands, like the much less sexy SHOW USERS/FULL and the like. This led to Sid Sowder and 19 other people (including me) writing their own VMS utility programs to meld together the disparate systems into something more usable as a social network, way back when Mark Zuckerberg was probably still learning to read.

That’s all another story I’ve told before. But one tangent on it is that I wrote a replacement for the finger command, sort of. The thing was, we needed a database to store various things about users, like preferences and login times and dates and whatever. So I wrote a program for Sid called XINFO, which was a horrible Pascal database program where his utility program would stash login information. Then I wrote a couple of different client programs that could hit this database for information, like an XFINGER command which was everything the VMS finger command wasn’t. And one of the biggest draws to Sowder’s program was a WHOIS program that was all neat and pretty and would show you where your friends were logged in from and so on. So yeah, maybe I should have filed a patent on this and sued everyone. Or maybe I should have gone to classes and studied instead of doing this.

The plan thing had an interesting connection to present. Back in like 1992 or so, the Computer Science department installed this thing on their server that at first was touted as some king of super-finger doodad. It was a server that would show your plan file, but let you put graphics and markup text in it. It called these a HyPlan file. You would write them in this weird markup language which was apparently called HTML, and then people all around the world could use a special program to read your HyPlan and click links on it and go to other HyPlan pages. This was called the “world wide web” and of course I thought it was a stupid fad and made a dumb HyPlan that I think had a gigantic uncompressed audio file of like three seconds of a Cannibal Corpse song that would play when you clicked on it. The name HyPlan became Homepage and was forgotten, and thirty years later, people are using a distant relative of that same system to try and sell me boner pills. And once again, I should have gotten in front of this early and maybe patented selling books on the web or something.

Anyway, the finger command still works if you’re on a Mac. Maybe I should go back to just updating my plan file, instead of upgrading WordPress plugins every 17 minutes so this site doesn’t get hacked by Russians again.