FreeBSD, Lisp, Emacs, PostgreSQL & co.



As 2018 is now almost upon us, I decided I would celebrate the new year by making a quick jump backwards, in a time where Internet was a very different thing.

Down the gopher hole

In 1991, The Gopher protocol was invented, and suddenly, there was a easy way for everyone connected to the net to share information. The website Tedium has an excellent piece on the rise and fall of this protocol, and also covers modern usage of it. Modern usage? Yes, it turns out the gopher is still around and used by some, thanks to the dedication of Cameron Kaiser. He is the main driving force behind The Overbite Project, which brings gopher clients to almost all kinds of modern web browsers, in addition to a very handy Web-to-gopher proxy everyone can use to connect to a gopher server, without needing to install anything. He is also the maintainer of Veronica2, the search engine for the gopher space.

Why bother?

Gopher takes a different approach to information sharing as that of the web: where the web doesn't enforce any structure, gopher requires the documents be exposed hierarchically. There are directories, and inside directories are more directories or documents. What might seem like a constraint is actually a relief to both the contents provider and the reader, who can focus solely on the material itself. Sure, it can be done on the web (this is in part my excuse for such a simple website), but even so the inherent complexity of modern day HTML means that time has to be spent tailoring CSS settings for mobile devices, large screen displays, laptops of various shapes and sizes… This diverts the attention from the content and requires that one develops a bit of expertise on these topics. In other words, this can lead to a ton of yak shaving, enough to stock up on yak fiber to sustain the yak wool pillow industry for the next century.

Take back the web

Moreover, lacking any form of CSS means that nothing is imposed to the reader. There is a crucial difference in intention between sharing by transfering ownership of the knowledge, and selling the knowledge to the recipient. Where the web pushes you to the latter, where you are expected to convey your corporate image through a selection of (half-broken) tools for typesetting (fonts, positioning, etc.), gopher enables the former by insisting on nothing. The presentation is entirely in the hands of the client. Is the structure presented in a page or as menus in the client application itself? Do you have icons for the various file types? Which font is used, and which size, colour? Some plugins for modern web browsers exist that try to transfer some control to the reader over the pages he accesses, but the experience is actually very limited and, most of the time, doesn't work very well: there's always a section of the site that would refuse to adapt to the reader's taste. After all, this is what e-readers have been promising for years: go beyond the physical book and provide means to the reader to change the font, the spacing and the overall layout of the pages.

What now?

Since yesterday evening, you can access the contents of this site as a gopher hole, at the address gopher:// You can use one of the clients offered by the Overbite Project or others:

Funnily enough, Gopher Client for iOS requires iOS 11, which means my iPhone 5s, unable to ever run this OS, is not moder enough to allow me to connect to Gopherspace. I personally use OverbiteWX for Firefox, gopher.el for emacs (excellent client!) and the Floodgap proxy the rest of the time.

On the server, I run geomyidae over an ascii version of this site, generated by org-mode in emacs. As expected, the site renders better on mobile devices through gopher than as HTML pages, as I need to work on the CSS for that. This means that I need to devote a weekend to go though the usual sequence of finding and stealing a good one of which I can understand 20% of the code, tweaking and testing on my phone (which requires me to either upload the CSS to the server after every change or set up a local web server on my computer and change the firewall rules), settling on a layout I'm not too unsatisfied with, posting a message here announcing my victory over the terrors of the modern web, receiving millions of emails from angry readers informing me how broken the layout is on every other phone available on the market, picking up a book on modern CSS and quietly abandonning the projet after I have reached page 22 of 578.

Well, I think I will just keep writing, generate basic HTML and text files and not mind the rest. It's winter, yaks are cold too; they should be allowed to keep their coat of hair.



In the first version of this article, I shamefully forgot to include Lynx on that list. Luckily, @dotemacs was quick to point out my mistake…