In the mid-90s I taught a night class on Unix, and was experimenting with shell scripts from The Unix Programming Environment. There was an example using a loop and the who command to alert you when someone logged onto your local system. My cousin was a professor at a university several states away, and we had already figured out the talk command. So I decided to expand the examples in the book to use finger. By parsing the reply, somehow I could tell if my cousin was logged on, and I would send myself a notice. There was an ISP in the same building, and one day the ISP engineer came to visit me with a stern look. He asked, "By any chance are you sending a finger command every two minutes to this university's mainframe?" I proudly answered, "As a matter of fact, yes, I am!". I eagerly got out my Unix book to show him what I was doing. He just said, "Stop doing that. They have a system console logging program that has churned out dozens of pages of paper printouts because of you". I sheepishly acknowledged my mistake and quit running the script.
show comments
OhMeadhbh
Also... When we moved from having multiple users per machine to multiple machines per user, services like finger on a specific machine didn't make much sense. It seems you should have one well-advertised machine that maps `foo@example.com` to a `plan.html` file somewhere. (If a user has multiple machines, which one do you query to get their daily .plan?)
Maybe the answer is to define a plan base URL as a DNS TXT resource on a particular DNS domain. For instance, I added the string `< plan https://bi6.us/PL/ >` as a TXT resource at _plan.hamrick.rocks. It should now be a trivial task to write a program called `finger-ng` that when I type `finger-ng meadhbh@hamrick.rocks`, it queries the TXT record at `_plan.hamrick.rocks`, extracts the plan base URL and then retrieves and displays a text document found at `https://bi6.us/PL/meadhbh%40hamrick.rocks`. I guess you could serve up a text/plain, text/html or even image/avif if you wanted to.
This, of course, assumes `bi6.us` is set up to allow me to update that file, but this is also straight-forward. Anyway, check back in a couple days and I'll have some code and I'll write the RFC/ID next week.
EDIT: I wrestled with apache and got it to understand files under www.bi6.us/PL/ should be served as text/dsd+plain, so you can hit `HTTPS://BI6.US/PL/MEADHBH%40HAMRICK.ROCKS` and get something that looks legit. And sure enough, HTTPS://BI6.US/PL/MEADHBH%40HAMRICK.ROCKS encodes to a smaller QR code than https://bi6.us/PL/meadhbh%40hamrick.rocks. (Though it looks like the HN text beautifier doesn't automagically produce links for URLs beginning with upper-case HTTPS.)
EDIT EDIT: Hmm... still doesn't say anything about privacy. What if you wanted to have a different _plan file for friends, a _plan file for family and a _plan file for co-workers? Clearly deep thoughts must be thunk.
show comments
jonathandeamer
Nice to see this here today. A number of hosts the article mentions are on the startpage of lookit, a finger client I've been building: happynetbox, plan.cat, thebackupbox's finger webring, etc.
The start page exists because finger has no discovery layer. finger @host lists users. lookit makes that list selectable, so you can wander a server instead of querying one address at a time.
Finger was only part of the social network. The multi-user aspect of Unix itself combined with standard tools such as who, finger, write, mesg, talk, mail, biff, etc. combined to form a fairly complete text-based social network.
elric
A discussion about Finger without a mention of WebFinger[1]? Similar in spirit, but HTTP based.
NAT makes this kind of stuff impractical now a days b/c you can't really host anything from your own machine (well you can set up port forwarding if you can access the router...)
The easiest modern solution would probably be git pulling from an Onion address (running git daemon so it's read only). Then, when your machine is on, people that want updates would just
(1) Looks like great reading. (2) Who compiled the archive, and how? This feels like one of those situations where a person records the evening news onto VHS for decades; except here they were running finger every day for decades? (3) Is there a more mobile-friendly way to browse it?
show comments
evilbob93
Funny thing: today at work, I was curious. Windows utility? try a few of the handles in the article.
Couple hours later, i get pinged in Teams by someone in the security group who, who was flagged for my activity. No harm, but he said that they watched it because it had been used for malware. Said I shouldn't use it unless i had some business need, would need to do a request apparently.
bketelsen
When GitHub released their status update feature I re-imagined finger for the modern world: https://github.com/bketelsen/finger I didn't advertise it, nobody cared. But it was fun.
egorfine
Impossible to run practically if your site is on CDN. Finger connects to the A record IP directly. Unfortunately.
mdwelsh
Man! I’m disappointed this article didn’t mention the coolest .plan hack of all time: you could link your .plan file to a named socket so whenever someone fingered you, an arbitrary program would run that spat out whatever output it wanted back to the client. Made for some very fun hacks, like randomly generated text every time you were fingered, or showing things like the current load on the server, etc…
dramm
I occasionally find myself longing for talk(1) to actually work on Macs.
OhMeadhbh
I used to work at Convex w/ Jay Finger, whose username was "finger". I thought it was funny I could `finger finger` and it would actually do something. This was back when we had multiple users per machine and in the old days if you didn't provide a domain name, the finger command would default to hitting `localhost`.
Also... I seem to remember more than one security issue with stock `fingerd` at the time. After the second or third flaw in fingerd, I think it was banned (as much as it could be) from machines at Convex. By the time I made it to IBM/AIX, it was a serious no-no to have running on your machines.
crmd
Fingering was huge at my university in the late 90s and seemed very focused on relationships. Passive aggressive and extremely emo .plans was very much a thing when some people’s feelings were hurt. If you were interested in someone you were definitely fingering them to see from where they were last logged in (we used to call this finger stalking).
Come to think of it I setup my first “date” (more like a hookup) over unix talk.
We had a legit proto social network going, all over telnet!
show comments
smalltorch
I like it.
Just one cell.
Heck, you could probably make a little program for HN to use the about box as the service and achieve the same thing.
show comments
zaik
> No encryption, no headers, no sessions. Pure simplicity.
AI smell?
show comments
Multiplayer
Ahhhhh memories. As far as I remember this didn't really spread beyond the PC game developer world. Back in the day we built an automated finger puller (poller) to grab all the game developers .plans and post them on PlanetQuake, etc (depending on which game they were working on). At the time it was considered a core feature for hot game news! Certainly the twitter of its' time for direct from the horse's mouth news.
show comments
guenthert
Not sure about the 70s, but today yelling "just finger me" towards your coworker won't end well.
ChaseRensberger
I started working on a "modern finger alternative" called winger: https://github.com/ChaseRensberger/winger, and was planning to write an article just like this! Glad to see other people interested in this stuff.
billfor
Don't forget Zephyr as well - the original AIM....
nutts
I set fingerd up on my OpenBSD host:
finger nutts@nutts.org
Also worth checking:
finger ring@thebackupbox.net
atleastoptimal
Protocol named Finger
[deleted]
ur-whale
finger is the best-named utility of the Unix world.
In the mid-90s I taught a night class on Unix, and was experimenting with shell scripts from The Unix Programming Environment. There was an example using a loop and the who command to alert you when someone logged onto your local system. My cousin was a professor at a university several states away, and we had already figured out the talk command. So I decided to expand the examples in the book to use finger. By parsing the reply, somehow I could tell if my cousin was logged on, and I would send myself a notice. There was an ISP in the same building, and one day the ISP engineer came to visit me with a stern look. He asked, "By any chance are you sending a finger command every two minutes to this university's mainframe?" I proudly answered, "As a matter of fact, yes, I am!". I eagerly got out my Unix book to show him what I was doing. He just said, "Stop doing that. They have a system console logging program that has churned out dozens of pages of paper printouts because of you". I sheepishly acknowledged my mistake and quit running the script.
Also... When we moved from having multiple users per machine to multiple machines per user, services like finger on a specific machine didn't make much sense. It seems you should have one well-advertised machine that maps `foo@example.com` to a `plan.html` file somewhere. (If a user has multiple machines, which one do you query to get their daily .plan?)
Maybe the answer is to define a plan base URL as a DNS TXT resource on a particular DNS domain. For instance, I added the string `< plan https://bi6.us/PL/ >` as a TXT resource at _plan.hamrick.rocks. It should now be a trivial task to write a program called `finger-ng` that when I type `finger-ng meadhbh@hamrick.rocks`, it queries the TXT record at `_plan.hamrick.rocks`, extracts the plan base URL and then retrieves and displays a text document found at `https://bi6.us/PL/meadhbh%40hamrick.rocks`. I guess you could serve up a text/plain, text/html or even image/avif if you wanted to.
This, of course, assumes `bi6.us` is set up to allow me to update that file, but this is also straight-forward. Anyway, check back in a couple days and I'll have some code and I'll write the RFC/ID next week.
EDIT: I wrestled with apache and got it to understand files under www.bi6.us/PL/ should be served as text/dsd+plain, so you can hit `HTTPS://BI6.US/PL/MEADHBH%40HAMRICK.ROCKS` and get something that looks legit. And sure enough, HTTPS://BI6.US/PL/MEADHBH%40HAMRICK.ROCKS encodes to a smaller QR code than https://bi6.us/PL/meadhbh%40hamrick.rocks. (Though it looks like the HN text beautifier doesn't automagically produce links for URLs beginning with upper-case HTTPS.)
EDIT EDIT: Hmm... still doesn't say anything about privacy. What if you wanted to have a different _plan file for friends, a _plan file for family and a _plan file for co-workers? Clearly deep thoughts must be thunk.
Nice to see this here today. A number of hosts the article mentions are on the startpage of lookit, a finger client I've been building: happynetbox, plan.cat, thebackupbox's finger webring, etc.
The start page exists because finger has no discovery layer. finger @host lists users. lookit makes that list selectable, so you can wander a server instead of querying one address at a time.
I just released a v0.2 beta, feedback welcome: https://github.com/jonathandeamer/lookit/releases/tag/v0.2.0...
Finger was only part of the social network. The multi-user aspect of Unix itself combined with standard tools such as who, finger, write, mesg, talk, mail, biff, etc. combined to form a fairly complete text-based social network.
A discussion about Finger without a mention of WebFinger[1]? Similar in spirit, but HTTP based.
[1] https://webfinger.net
NAT makes this kind of stuff impractical now a days b/c you can't really host anything from your own machine (well you can set up port forwarding if you can access the router...)
The easiest modern solution would probably be git pulling from an Onion address (running git daemon so it's read only). Then, when your machine is on, people that want updates would just
Though tbh.. the single-file setup of finger is cuter than a whole repo directoryRelated fun site: plan.cat (discussed at https://news.ycombinator.com/item?id=29248368 )
Haha... looks like I gotta get finger.farm up and running again... :)
Thx for the mention blogger!
https://github.com/jonroig/finger.farm
TFA includes a link to an archive of John Carmack's .plan updates, 1996–2010:
https://github.com/ESWAT/john-carmack-plan-archive/tree/mast...
(1) Looks like great reading. (2) Who compiled the archive, and how? This feels like one of those situations where a person records the evening news onto VHS for decades; except here they were running finger every day for decades? (3) Is there a more mobile-friendly way to browse it?
Funny thing: today at work, I was curious. Windows utility? try a few of the handles in the article.
Couple hours later, i get pinged in Teams by someone in the security group who, who was flagged for my activity. No harm, but he said that they watched it because it had been used for malware. Said I shouldn't use it unless i had some business need, would need to do a request apparently.
When GitHub released their status update feature I re-imagined finger for the modern world: https://github.com/bketelsen/finger I didn't advertise it, nobody cared. But it was fun.
Impossible to run practically if your site is on CDN. Finger connects to the A record IP directly. Unfortunately.
Man! I’m disappointed this article didn’t mention the coolest .plan hack of all time: you could link your .plan file to a named socket so whenever someone fingered you, an arbitrary program would run that spat out whatever output it wanted back to the client. Made for some very fun hacks, like randomly generated text every time you were fingered, or showing things like the current load on the server, etc…
I occasionally find myself longing for talk(1) to actually work on Macs.
I used to work at Convex w/ Jay Finger, whose username was "finger". I thought it was funny I could `finger finger` and it would actually do something. This was back when we had multiple users per machine and in the old days if you didn't provide a domain name, the finger command would default to hitting `localhost`.
Also... I seem to remember more than one security issue with stock `fingerd` at the time. After the second or third flaw in fingerd, I think it was banned (as much as it could be) from machines at Convex. By the time I made it to IBM/AIX, it was a serious no-no to have running on your machines.
Fingering was huge at my university in the late 90s and seemed very focused on relationships. Passive aggressive and extremely emo .plans was very much a thing when some people’s feelings were hurt. If you were interested in someone you were definitely fingering them to see from where they were last logged in (we used to call this finger stalking).
Come to think of it I setup my first “date” (more like a hookup) over unix talk.
We had a legit proto social network going, all over telnet!
I like it.
Just one cell.
Heck, you could probably make a little program for HN to use the about box as the service and achieve the same thing.
> No encryption, no headers, no sessions. Pure simplicity.
AI smell?
Ahhhhh memories. As far as I remember this didn't really spread beyond the PC game developer world. Back in the day we built an automated finger puller (poller) to grab all the game developers .plans and post them on PlanetQuake, etc (depending on which game they were working on). At the time it was considered a core feature for hot game news! Certainly the twitter of its' time for direct from the horse's mouth news.
Not sure about the 70s, but today yelling "just finger me" towards your coworker won't end well.
I started working on a "modern finger alternative" called winger: https://github.com/ChaseRensberger/winger, and was planning to write an article just like this! Glad to see other people interested in this stuff.
Don't forget Zephyr as well - the original AIM....
I set fingerd up on my OpenBSD host: finger nutts@nutts.org
Also worth checking: finger ring@thebackupbox.net
Protocol named Finger
finger is the best-named utility of the Unix world.
Maybe, an ssh version?
woah, never knew.. so cool.