Finger
------

It's fun to see ideas flitter like leaves across distinct and highly
niche communities.  The last few days has seen Gemini hit the
front page of Hacker News twice, one of which was a post reporting the
existence of the Castor [1] client directed at the "small internet" and
hence additionally supports the old Finger protocol.  Of course this
immediately had me reminiscing.

One of my earliest interactions with this protocol is solidly etched
in my memory for all the wrong reasons.  Back in 1994 or so I was
a young teenager excitedly exploring the internet via various door software
made available by my local BBS.  One of these doors allowed you to send
finger requests, and for some reason I requested the finger directory
of AusCERT: an Australia anti computer-crime organization.  This led
to a then highly-terrifying and now highly-embarrassing series of emails between
some scary people at AusCERT, the poor SysOp of the BBS, and me, while
the whole thing was sorted out and explained away as a silly kid pressing
buttons he shouldn't have pressed.
Shaun: if you happen upon this, I'm so sorry - you should know that I
still feel terrible about this! :-(

Erm yeah, so Finger.  Turns out I wasn't the only one reminiscing:
Mozz took the hint [2] from Castor and added a new finger server to
his machine at finger://mozz.us/michael.  Furthermore, he listed several
other servers still running scattered around gopherspace/geminispace.

Now that there are finger:// URLs popping up with apparent regularity,
I had to go and add finger support to Elpher, so that these links
resolve.  (Which they now do, as of version 2.6.)  Stupidly, I only
realized/remembered after finishing this that finger and gopher fit together
quite neatly, meaning that I could have simply interpreted finger:// addresses
as gopher:// addresses with a selector type of 0 instead of implementing
a simple-yet-dedicated handler.  However, now that it's done, I think
the way I chose is semantically cleaner as it means that Elpher is always
able to distinguish between gopher and finger pages.

(One fun thing about elpher, and I suspect it shares this with many
other text browsers, is that because it turns any and all URLs in
plain text into clickable links, it's absolutely possible to have an
easily navigable web-like experience composed entirely of plain text
finger pages.)

Of course, I've also hacked together the worlds stupidest fingerd by
copying Michael's systemd socket approach in combination with a 4 line
bash script: finger://thelambdalab.xyz/plugd.  Don't get too excited
though, it lacks even the most basic ascii artistry.

Anyway, that's enough navel-gazing for one evening!

Okay, maybe just one final comment - I've started to notice people
taking the text flow parts of the text/gemini mimetype spec seriously.
To this point I've been completely ignoring this in Elpher as much of
this seemed to be in a constant state of flux.  For instance, I've
completely lost track of the numerous deep threads on the gemini list
discussing when/when not to re-flow text.  However it looks like things
are starting to settle in ways that make text rendered using Elpher's
default Gemini renderer difficult to read, as it produces long lines
with non-word-sensitive wrapping.  Enabling visual-line-mode can
alleviate this, but things go back to ugly when following links.

If you happen to be one of the courageous few who are using elpher as a tool
for gemini exploration, expect some improvements in this area shortly.

Tschüss!

---
[1]: https://git.sr.ht/~julienxx/castor
[2]: gemini://mozz.us/journal/2020-04-29.gmi