Jeff Keacher wanted to get his Mac Plus, now well into its third decade, online. It had been on BBSes and text-only Lynx via dial-up back in the day, but Keacher wanted to go full TCP/IP. And it worked. He even loaded Gizmodo for us!
The Mac Plus had been sitting in his family's basement since the mid-1990s, so Keacher's mum shipped it to him. And then he started strolling down memory lane with some Glider on the 8 MHz CPU, 4 MB RAM, 50 MB hard drive, and 512 x 384 pixel black-and-white screen. A few minutes after booting it up, though, one of the filter caps cracked on the external hard drive's power supply. But other than that the unit was in good working order.
Keacher knew he needed a web browser, TCP/IP stack, and strategy for connecting the computer to his home network. He solved the first problem with MacWeb 2.0 which was "both old enough to run on my Plus and new enough to render HTML and speak HTTP." And he managed to get mac MacTCP running on System 7.0. No DHCP, but at least it played nice with MacWeb.
The connectivity issue was trickier, because SCSI to ethernet adapters haven't been made in years, but Keacher had the idea to use the serial port and PPP or SLIP to be sort of like dialup without a modem. Keacher writes:
I set up my Raspberry Pi and ran some Cat-5 to it from the router. Using a level shifter and a variety of old adapters, I managed to get a serial cable working between the Pi and the Mac. That took care of the hardware.
Casual "variety of old adapters." Nbd. On the software side the troubleshooting went on for a while. Keacher needed a PPP client and found a basic PPP server called SLiRP for the Raspberry Pi. Basically the setup goes MacTCP — -> MacPPP — -> SLiRP — -> Ethernet connection — -> router — -> internet. With all of this working Keacher was getting throughput of about 19 kbits/s.
The major problem with MacWeb was that it didn't have HTTP 1.0 support, so Keacher's friend Tyler Hicks-Wright wrote a filtering proxy in Python, Requests, Flask, and Beautiful Soup. And then everything was finally ready. To the internet!
The great thing about this project is that it totally worked. Pages render, links are live, data loads. The setup is incredibly slow, OF COURSE, but as Keacher writes, "The goal was simply to introduce the Mac to the web. The meet-and-greet was successful." Go forth all you DIY-ers and make internet enabled devices where there once were none. [Keacher.com]