HappyMacs Gopher Space Progress

A few posts ago, I mentioned that I had started a long term project to create a HappyMacs Gopher space for the purpose of sharing my archive of vintage Mac 68K and PPC applications with the larger vintage Mac community. I am happy to report that I have made substantial progress since then. This post provides a quick rundown on that progress.

Creating Gopherspace

The first issue to solve was that of where to host the new Gopher space. After investigating the big Gopher hosting sites and several of the large web hosting sites (none of which could even spell Gopher! 🙂 ), I ultimately opted to host the new Gopher space directly out of the HappyMacs lab. This was the most economical, certainly the most “fun”, and also allowed me to choose a completely distinctive URL for the site.

Public addressability therefore became the next issue – how to make a server in the HappyMacs lab publicly (but securely) addressable from the outside world. My ISP didn’t help at all – I am a residential customer and they would only provide fixed IP addresses to business accounts (which were prohibitively expensive). Since fixed IPs were clearly not possible, I ultimately settled for a Dynamic DNS (DDNS) solution. In such a solution, a cloud based DDNS service provides you with a fixed URL of your choosing, and then dynamically maps that URL to the ever changing DHCP-based dynamic IP address supplied by your ISP. In my case, I chose NoIP.com as my DDNS provider and selected “happymacs.ddns.net” as my URL.

no-ip_logo

With hosting and public addressability out of the way, I needed a Gopher server to run on the host! There were two major contenders in this field: Gophernicus and Bucktooth. I chose Gophernicus because it is written wholly in C/C++ and is fully POSIX compliant, which the author stated allowed it to be compiled on any *nix platform. Mac OS X is such a platform and so in theory, Gophernicus can be built for Mac OS X. Being adventurous, I tried it! The exercise was not entirely smooth sailing. The present stable distribution of Gophernicus is set up for current versions of Mac OS X, and did not work “out of the box” with Mac OS X 10.4 Tiger. However, my long experience of building software for Linux provided me with the skills needed to adjust the Makefile until Gophernicus did build properly, and shortly thereafter, I had a working Gophernicus server running on my Tiger-based G5 Quad.

G5

OK, hosting, check. Public addressability. Check. Gopher server, check. Now I needed a gopher space to serve! I knocked together a quick placeholder site and tested it, and all was well. Then I got to work on a little ASCII art and made the site a tad more attractive to look at.

Finally, I addressed the issue of a hit counter. Being not just adventurous but also curious, I wanted to know if this new Gopher space was getting any traffic, and if so, how much. That required at minimum some form of basic hit counter. Gophernicus helped me out here, with its ability to run external scripts. Gophernicus returns to the requesting client the output of any script it runs instead of the line in the gophermap that initiates the script. Hence, a script that implemented a hit counter and “printed” the counter’s value as its output was just what the doctor ordered.

Sounds good … now, how to implement such a script? More poking around revealed the existence of something I have never heard of before – “command line PHP”. I own and maintain multiple web sites, all written in PHP, and so I am very, very familiar with this powerful and (to me at least) intuitive scripting language. However, I have always thought of PHP as a server-side web capability, not a general purpose command line script language. As it happens however, since PHP 4.3, it can indeed be used for this very purpose. Exploiting this, I created the usual “hello world” script and it worked!

A little bit of cutting and pasting later, and I had extracted the PHP hit counter from one of my web sites and made it into a command line script, which I then embedded in my gophermap. Voila! One hit counter up and running!

PHP Hit Counter

…and that is where it stands at this moment. I have acquired a public URL, built a Gopher server, hosted it on my PowerMac G5 Quad, created an initial gophermap and put the whole thing online. You can view the result at:

gopher://happymacs.ddns.net

There is very little meaningful content at the above Gopher space at the moment, but all the critical infrastructure is now in place, and I can start filling out the software archive portions of the site over time. This will happen in fits and starts over the coming weeks. I am going to begin with the Mac OS 68K applications and then move on to the Mac OS PPC applications. Finally, I will add in the Mac OS X PPC applications.

That’s it for now. Good progress in a very short time. I think. Stay tuned – I will update you when the 68K archive comes online!

Advertisements

5 thoughts on “HappyMacs Gopher Space Progress

  1. Awesome. Your decision to put up a gopher coincides with my own discovery of gopher and a subsequent rekindling of my interest in old macs.

    I actually only tried out gopher last week. After noticing that there is (already) a lot of classic Mac software on gopher, it dawned on me that here was an efficient, pain-free way of getting software onto my old iMac g3. Not only was there a massive selection, much more than I had been able to find on sites like Macintosh Orchard, but with gopher downloading what I find is dead easy. With http, I find that even classilla is just too slow and that many modern sites are too difficult to use.

    With gopher, though, I could probably download thousands of applications a day without breaking a sweat, so to speak!

    So I look forward to your contribution, to say the least. Kudos!

  2. You might want to send your 10.4 patches back to Kim Holviala so that others can use Gophernicus on Tiger.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s