Let this be a lesson to project managers everywhere: during long compiles, programmers' minds _wander_.I was reading a random blog post arguing a technical point, using XKCD as a base, and it drives me nuts when people use a _webcomic_ as their foundational dogma, so I maturely tweeted something snotty and vulgar to that effect:https://twitter.com/icculus/status/905832029555744768Which, to my surprise, elicited a bunch of "actually, a Gopher interface to Twitter would be cool" and you can only read so many of those before you google "gopher protocol" and discover it's so easy.Gopher is one of those things like Finger that is too simple to believe: a perfect little project for people looking to a learn little bit about BSD Sockets. Connect to TCP port 70, send a string that looks like a prehistoric URL, server sends back a bunch of lines and hangs up. Each line is an item with five fields split by tabs. That's it.So I wrote a simple Gopher server in perl:gopher://gopher.icculus.org/It's just enough to catch connections and toss them off to simple handler programs to do the actual work. Very unixy. Once I had that, just had to write something that talks to Twitter, and there you go: my tweet, delivered over Gopher, profanity and all.gopher://gopher.icculus.org/1twitter/tweet/905832029555744768It's worth noting that Gopher uses "selectors" that are more or less hyperlinks--you can even direct a Gopher client to another Gopher server, like we take for granted with URLs--but usually Gopher content is hierarchical; hyperlinking around like this thing does confuses clients that want to drill down through a tree of selectors, even though the protocol totally allows this. I've been spoiled by the world wide web's loose connections for too long. We all have.The fun part of this quick project was finding a real Gopher client to test with. They're surprisingly hard to find! Android and Linux delivered, if you were wondering where the hardcore hackers are living nowadays, but I couldn't find a native Mac client, Chrome had an extension that doesn't work anymore, Firefox has one that is going to fail when FF56 ships. iOS has one that hasn't been updated since 2010 (and thus will fail to launch in iOS 11). I ended up using lynx, curl, a web gateway to go full-circle and NETSCAPE NAVIGATOR ON WINDOWS 3.It's just not a big market at this point. :)Anyhow, this project is done. It was a few hours done in five-minute increments while other work compiled over and over. It was just for fun, and if you can't have fun on Patreon...you probably have a boss collecting documentation to fire you since you wrote a Gopher server on the clock in 2017.Source code is here: https://hg.icculus.org/icculus/icculusgopher/(The actual serious projects for y'all should be announced in the next few days. Very soon! One could even say The End of that work Is Nigh.)