2017-12-27 Gopher Server

The wiki is available as a Gopher server. This is weird, but it works.

Try it. lynx is a good Gopher client:

lynx gopher://alexschroeder.ch


lynx gopher://alexschroeder.ch/02017-12-27_Gopher_Server

Does anybody know why I need to start the pagename with the gopher type character? (or any character at all)?

As for monitoring, I use monit and have set up the following:

check process gopher-server with pidfile /home/alex/alexschroeder-gopher-server.pid
      start program = "/home/alex/perl5/perlbrew/perls/perl-5.24.0/bin/perl /home/alex/farm/gopher-server.pl --setsid --user=alex --group=alex --port=70 --log_level=2 --log_file=/home/alex/farm/gopher-server.log --pid_file=/home/alex/farm/gopher-server.pid --wiki=/home/alex/farm/wiki.pl --wiki_dir=/home/alex/alexschroeder --wiki_pages=SiteMap --wiki_pages=About"
    stop program = "/bin/bash -c 'kill -s SIGTERM `cat /home/alex/alexschroeder-gopher-server.pid`'"
    if failed
	host alexschroeder.ch
	port 70
	type tcp
        send "Alex\r\n"
	expect "#REDIRECT.*"
	for 5 cycles
	then restart
    if totalmem > 100 MB for 5 cycles then restart
    if 3 restarts within 15 cycles then timeout

The Net::Server is where you find stuff regarding all the command line options. --wiki, --wiki_pages and --wiki_dir are the ones I added.

Why gopher? Well...

“It’s actually rather nice to have a small ecosystem because no one’s running annoying ads in Gopherspace or trying to track your browsing habits,” he says. “The protocol makes the former hard and the latter almost impossible.” – Cameron Kaiser being quoted in The rise and fall of the Gopher protocol.
«The modern web is an ugly, massive, broken mess. This isn’t a secret or a new take or a controversial opinion. We stuff our webpages so full of tracking cookies and bitcoin mining advertisements and javascript apps that monitor your every move that it’s no wonder that modern web browsers are less effecient than ever.» — Gopher: Remembering the web that wasn't

This is nothing we can’t fix using HTML and HTTPS, but Gopher forces us to go without JavaScript and CSS and all that.



RFC 1436 remains relevant, I guess.

– Alex 2017-12-28 16:44 UTC

Work continues. I’ve added menus for page filtering, for search, for recent changes both major changes only and including minor changes.

Next up: page history.

Is there much else? I think soon enough the lingering question will be: how do we edit pages via gopher?

– Alex 2017-12-29 14:31 UTC

Writing unit tests makes me feel so much better.

– Alex 2017-12-30 04:56 UTC

On the Gopher web (what’s the name to use here, do we like the -verse suffix?), all the encoding problems of the early web are coming back. Latin 1 instead of UTF 8? No content negotiation? Not even encoding labeling? What are we going to do? Surely limiting ourselves to Latin 1 for menu texts is not good enough.

From RFC 1436: “It is highly recommended that the User_Name field contain only printable characters, since many different clients will be using it. However if eight bit characters are used, the characters should conform with the ISO Latin1 Character Set.”

It’s a different world out there. We need to talk about indicating encoding to clients.

Menu type m for metadata? e.g.


I’ve been using a Gopher client on iOS for a bit and being German speaker, I soon stumbled over encoding issues. If I search Gopherpedia for „Zürich“, the client crashes. If I search for „Zurich“ and click on the first link, „Zürich“, it also crashes.

– Alex 2017-12-30 09:51 UTC

Please make sure you contribute only your own work, or work licensed under the GNU Free Documentation License. See Info for text formatting rules. You can edit the comment page if you need to fix typos. You can subscribe to new comments by email without leaving a comment.

To save this page you must answer this question:

Please say HELLO.