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…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