Finger
Published 2020-04-30
Preamble
I've noticed finger mentioned by various people around gopherspace and the tildeverse. Recently, my curiosity piqued when I saw that the castor browser supports finger along with gemini/gopher. So I finally sat down and read the specification.
There's nothing remarkable here; the entire document is only 12 pages long. I love reading these short, simple RFCs. They fit well inside my attention span.
Perhaps more interesting than the protocol itself was the history behind finger:
Finger was created back in 1971 at the Stanford Artificial Intelligence Lab. Seeing a date that early in computing history is still hard for me to wrap my head around. In my mental model, computers don't even exist until the 80's. Everything before that time frame consists of
- NASA going to the moon
- Alan Turing
I love the controversy about the vulgarity of the name 🤘
"the Tops-20 systems deployed for undergraduate use at the university had their ``finger'' commands renamed to ``where'' because someone in the administration thought that the ``finger'' command verb might be interpreted in a rude manner." (Everhart 1999)
According to Emailman, "In prior days, when more people used shell accounts, "Finger Me!" was heard at campuses around the world!"
finger2020
I ended up writing my own finger server. I really couldn't help myself.
I went the systemd socket route this time. Credit to gophernicus for introducing me to this idea. Typically, I avoid this pattern with python scripts because startup time for the python interpreter is so slow and systemd spawns a new process with every TCP request. But for something like finger, where latency doesn't matter and server traffic is a rounding error, it makes writing the server really simple to not have to worry about networking.
My finger server is up and running here
finger michael@mozz.us (gopher mirror)
I resurrected the ASCII art from the 2018 version of my gopher server, which I originally stole from the aquarium BBS server via an art file dump that I happened to stumble upon.
It was a fun little weekend project. I probably won't do much more with it, but I will at least commit to keeping it updated when my contact info changes.
Finger URLs
Finger URL support is... iffy at best. There's an IETF draft for the finger:// URL format.
- links (the terminal web browser) supports "finger://mozz.us" but not "finger://mozz.us/michael". On top of that, it sends an invalid query string of "/W \r\n" instead of "/W\r\n".
- lynx (the other terminal web browser) supports "finger://mozz.us/michael", but "finger://mozz.us" doesn't display anything on the screen.
- curl doesn't appear to support finger at all, bummer!
Other finger servers
Here are some other working finger servers that I found
Source