What is SDF ICF?
If you’re not familiar with SDF (http://sdf.org), it has been running near continuously since the mid 1980s when it launched as a BBS (https://en.wikipedia.org/wiki/SDF_Public_Access_Unix_System) for the anime Super Dimension Fortress. In the decades since, they’ve expanded to provided free access to Unix systems, hosted educational workshops, e-mail services, personal web hosting, IRC chats, and a variety of hosted Fediverse instances including Mastodon, Pixelfed.
At the end of September, SDF hosted the SDF Interim Computer Festival to support their launch of a new computer museum in Seattle, the Interim Computer Museum (http://icm.museum). The launch of another computer museum in Seattle is something I’m quite excited for, as we don’t really have one and haven’t since the Living Computer Museum and Labs ( LCM+L) seemingly closed its doors for good back in 2020. I mean, I guess RE-PC has a museum in their Seattle location, but it’s pretty underwhelming. The museum at RE-PC is neglected, nothing runs, and everything is dirty. They’ve essentially cordoned off a little corner of the store to put a bunch of old 70’s and 80’s computers they’ve got as e-waste; it’s pretty lackluster barely counts as a museum.
I was enthusiastic to bring some of my collection to show off, as we don’t really have anything like it since VCF Pacific Northwest was cancelled back in 2020 (and hasn’t been held since 2019).
So what all did I bring?
As usual, I overcommitted to the event and went into a mad scramble at the last minute.
The IRC Table
Back in Feb. 2023, I wrote about having a former Freenode server from the old days of the network (“The time I bought a Freenode IRC server”). I decided it would be a cool exhibit to run Zelazny as an IRC server, as a sort of virtual guestbook. In the week leading up to the event, I purchased a cheap SSD as well as a IDE to SATA adapter. While I do have the original drive from the server, it’s not really something I’d like to run because at this point it’s a nearly 20-year-old hard drive.
I installed Debian 12, and compiled UnreallIRCd as that’s the current meta for running IRC servers. That was the simple part of running an IRC server at an event, from here on out it’s all gross bodges. The internet connection available at the event isn’t something I could take inbound traffic on, I don’t really want to get in trouble tampering with the venue’s router. I could cheat and run the IRC server on something remote and connect up to that, but that’d be too easy and dishonest.
In the end, I used Tailscale to establish a tunnel between Zelazny and a Vultr instance I launched in their Seattle PoP. Tailscale is pretty resilient to unpredictable network conditions (like a venue I’ve never been to), and just works automagically so it was a clear choice. This is all good and normal so far - but it’s so much worse from here. There’s a few options I could use to get IRC traffic forwarded over the tunnel to the actual IRC server running at the event. The obvious one is iptables. Yeah, I didn’t use that. It’s worse.
I used Nginx. The web server.
Nginx has a feature that you can use to load balance any TCP or UDP traffic you’d like. A big one, and one of their examples, is to use it to load balance DNS. By setting just one upstream, you can use it as a simple port forward.
This is all you need to port forward using nginx:
It worked great. Except for the one snag I had to cleanup shortly after the day 0 exhibitor setup. By default, UnreallIRCd only supports 3 connections from a single IP. The downside of forwarding over nginx is that you don’t get any kind of real end-to-end network connection, as nginx terminates and reopens the connection as itself. All of the client traffic was hitting the IRC server from the Nginx server’s RFC 6598 space that it was using for the Tailscale interface. Pretty quickly I got reports of clients failing to connect, and had to adjust and restart the server.
But that’s not the only thing that was running for the IRC table. I also have an HP ThinkJet 2225C, the first commercially available inkjet printer, that I wanted to have as part of the exhibit. I ran a custom IRC client I wrote in Python in about 15 minutes on the server as well, its entire job was to listen to the #icf channel and print any messages received to my ThinkJet on a continuous feed of paper. The IRC printer client is available on GitHub alyxw/irc-lp0 - GitHub if you want to run a similar thing. I think the ThinkJet was the best choice for this kind of thing - it’s a line printer, much like a dot-matrix printer, but is nearly silent.
The printed logs are available here zelazny_printed_logs.zip.
I heard a lot of people’s memories of having used Freenode, and even some stories from people who specifically remembered using Zelazny due to it being the lowest latency server to their location. My favorite story was someone who had met their partner on Zelazny around 2010. It’s my favorite thing in my collection - nothing I have has anywhere near the historical significance of Zelazny. For nearly a decade, it was used by an unimaginably large number of people and touched countless lives.
The color dot-matrix printer
As I’ve posted about before, I have an Epson LQ-2550 color dot-matrix printer that’s always a fun thing to show off.
This one was a really last minute exhibit - I put everything together for it the night before the event. Rather than having a simple static display (what’s fun about looking at an old printer?), I decided to make it interactive by digging out an old Intel webcam from the 1990s and used it to take and print people’s photos on the dot-matrix printer.
The Weird old Hewlett-Packard StuffI used to live near the HP Corvallis site, and would often find myself at garage sales when I lived in the area.
From this, I have a number of weird artifacts that escaped with people who left the company, that otherwise never would’ve seen the light of day.
There’s enough of these weird little things that I’ll have to make a separate post of its own one of these days with nice photos, but in short:
- A pre-production HP 17B calculator with a number of notable physical differences from the final production model
- A clear HP 51649A inkjet cartridge full of colored sand, which was likely produced as a showpiece for their upcoming product.
- A pair of uncut HP 821921A circuit board panels. The HP 82921A is a seemingly cancelled 300/1200bps modem for the HP Integral PC, that I’ve been unable to find any evidence of ever existing other than a single mention of it in a product brochure for the Integral PC. None have shown up for sale throughout recorded history, and HP Museum is unaware of the part number.
- A variety of employee knicknacks issued to employees of the Corvallis site including coasters, pins, and buttons.
- A clear HP 51604A black inkjet catridge for the original ThinkJet, containing a $1 bill, issued to employees who were involved with the launch of a new production line as a symbolic “First Dollar of Profit”
I also have a decent collection of old department newsletters from the calculator division that I need to take some time to archive and preserve.
SDF Interim Computer Festival was a blast, and I met a lot of great people there. They’re holding a second one in March 2024 (read more at http://sdf.org/icf). I’m sure I’ll come up with something new and exciting to bring to the next one. Maybe something like an Itanium validation system that’s never seen the light of day.