Chase a Rabbit Down a Gopherhole


# A long time ago in an Internet far, far away…

Back in the dawn of the time when the Internet was fun and touted a
*The Information Superhighway*,
[gopher](https://en.wikipedia.org/wiki/Gopher_(protocol)) was a big
thing. But that [Wikipedia](https://en.wikipedia.org) article will
give you much more information than I ever could. Here is the deal in
short, [gopher](https://en.wikipedia.org/wiki/Gopher_(protocol)) was a
[protocol](https://en.wikipedia.org/wiki/Communication_protocol) that
handled the retrieval and display of plaintext documents in a
[client](https://en.wikipedia.org/wiki/Client_(computing)). You may
never have heard of it. There is a reason or two; 1) people really
liked blinking, bouncing, and sliding things, 2) greed. But this
article from
([minnpost](https://www.minnpost.com/business/2016/08/rise-and-fall-gopher-protocol/))
explains the whole thing in detail from start to finish.

I thought [gopher](https://en.wikipedia.org/wiki/Gopher_(protocol))
was long dead until I got bored of bouncing and blinking text, and
discovered that not only is
[gopher](https://en.wikipedia.org/wiki/Gopher_(protocol)) not dead,
but the [pubnix](https://github.com/cwmccabe/pubnixhist) is [still
alive and well](https://www.youtube.com/watch?v=QdB3msFJWyM).

In my home town, the local community college ran a [bulletin board
system (BBS)](https://en.wikipedia.org/wiki/Bulletin_board_system)
which provided a gateway to the, at the time, brand new internet and
allowed you to apply for a login to a PAUS (public access unix system)
and all that came with it; email, ftp, telnet, mud, mush, www, irc,
[gopher](https://en.wikipedia.org/wiki/Gopher_(protocol)),
[archie](https://www.makeuseof.com/tag/the-archie-search-engine-the-worlds-first-search/),
and
[veronica](https://en.wikipedia.org/wiki/Veronica_%28search_engine%29),
etc. Let me just tell you that the internet is full of nooks and
cranies where all these are still available.


## So what now?

Well you could investigate these cobweb corners of the internet, and
maybe contribute something as well. But how?


## Of shoes, and ships, and sealing-wax Of cabbages and kings

Maybe the most fun you will have is chasing a rabbit down a
gopherhole. But, to do that you need to know where the gopherholes are
and you need a vessel in which to travel. There are tons of
[gopher](https://en.wikipedia.org/wiki/Gopher_(protocol)) clients
available for just about any OS, and I have tested most of them. The
four I like are [gopherus](http://gopherus.sourceforge.net/),
[gild](https://github.com/xvxx/gild),
[lynx](https://lynx.browser.org/), and
[elpher](https://thelambdalab.xyz/elpher/). All have advantages and
disadvantages.


### gopherus

I like the way gopherus looks. You can configure the colors, even
making it look like an old amber terminal (tickles me), but the key
commands take a bit of getting used to. They are somewhat non-standard
for me, but that is because I use emacs like key bindings for
everything. However, once you get used to the keys gopherus has a
couple of neat features that are burried or non-existent in the other
clients. Those being **F9** *Download location to disk*, and **F10**
*Download all files in current menu to disk*. For info hoarding these
two gadgets are priceless. One thing I hate, is that **BACKSPC** is
used as back-page which makes entering text in the url difficult since
you need to use the delete key to expunge unwanted characters.

    Key bindings:
       TAB       - Switch to/from URL bar edition
       ESC       - Quit Gopherus (requires a confirmation)
       UP/DOWN   - Scroll the screen's content up/down by one line
       PGUP/PGDW - Scroll the screen's content up/down by one page
       HOME/END  - Jump to the top/bottom of the document
       BACKSPC   - Go back to the previous location
       B         - Bookmark current location
       DEL       - Delete bookmark (main screen only)
       F1        - Show help (this file)
       F2        - Go to program's main screen
       F5        - Refresh current location
       F9        - Download location to disk
       F10       - Download all files in current menu to disk

I give this a rating of one and a half penguins.


### gild

I'm just gonna say I give gild a rating of one full goatse. The only
redeeming quality of gild is that it is written in ldpl which is a
variant of COBOL and I think that is a neat trick. But gild is so
unuseable that I won't even bother describing it. Read the source for
fun and education, but don't install it.


### lynx

Maybe the best of all the
[gopher](https://en.wikipedia.org/wiki/Gopher_(protocol)) clients I
have tested is [lynx](https://lynx.browser.org/). Lynx is not exactly
a [gopher](https://en.wikipedia.org/wiki/Gopher_(protocol))
[client](https://en.wikipedia.org/wiki/Client_(computing)). It is a
text based browser that understands the
[gopher](https://en.wikipedia.org/wiki/Gopher_(protocol))
[protocol](https://en.wikipedia.org/wiki/Communication_protocol). Which
means that you can bounce back and forth between <http://> <ftp://>
and gopher:// like it was nothing. Plus! It runs in the terminal, is
light weight, highly configurable and more than I care to go into
feature-wise.  I give it a rating of twelve penguins, one unicorn, and
a cupcake.


### elpher

While elpher isn't the only option for browsing gopherholes in emacs,
it is the best. It's only real drawback is that it requires you to run
emacs, and that comes with a steep learning curve. Learning emacs is
well worth the effort, and not just for elpher.  The main positive for
elpher is that it is part of emacs which means that you can treat it
like any other emacs buffer. You can extend it and configure it to the
extent of your lisp knowledge.  I give it a rating of four
parentheses.


## Following a rabbit down a rabbit hole

Now that you know how to get there you need to know where to go. Maybe
the best place I've found to start, is gopher.black.

    lynx gopher://gopher.black

The above example shows how to get lynx to visit gopher.black. You
just open a terminal and type that command and feel elated.  Lynx
works pretty much as you would expect: arrow keys **↑↓** move the
cursor up and down the page, **←→** follow links and return to the
previous page, **F1** opens a great help screen, **TAB** moves forward
to the next link on the page. You can configure the keys so that they
resemble vi or emacs. There is just so much right with this browser,
that you could use it daily instead of firefox or chrome, I know
because I do.


## Some interesting asides

There are many many more clients that I have tinkered with and decided
against for various reasons mostly because of buggy behaviour, or
difficulty or the interface. Still, they are interesting. One thing I
found was that there is a reletively new
[protocol](https://en.wikipedia.org/wiki/Communication_protocol) being
developed, and in actual use called gemini.

From the website:

> [Gemini](https://gemini.circumlunar.space/) is a new,
> collaboratively designed internet protocol, which explores the space
> inbetween gopher and the web, striving to address (perceived)
> limitations of one while avoiding the (undeniable) pitfalls of the
> other.

What that means, I don't know. What I do know is that for the most
part, [gemini](https://gemini.circumlunar.space/) clients and
[gopher](https://en.wikipedia.org/wiki/Gopher_(protocol)) clients, can
be used interchangeably&#x2026;mostly.

See the links section for more.

This should help get you started.


# Links


## [archie](https://www.makeuseof.com/tag/the-archie-search-engine-the-worlds-first-search/) and veronica

[archie.icm.edu.pl (active web based archie
server)](http://archie.icm.edu.pl/archie-adv_eng.html) [Search Engine
History](https://bobbydotseo.wordpress.com/)


## gemini

[Project Gemini](https://gemini.circumlunar.space/) [Gemini
Clients](https://gemini.circumlunar.space/clients.html)
gemini://carcosa.net gemini://gemini.conman.org
gemini://typed-hole.org gemini://zaibatsu.circumlunar.space

tags: gopher linux