1980s Boy Scout Handbook cover

Ten months after finding inspiration in this delightful Perl Conference talk by VM Brasseur, I’ve fashioned for myself an acceptable setup for using IRC, the internet’s oldest and most open chat system. I have a practical purpose for doing so, far apart from nostalgia for a less commercial or colorful internet. But with any system so venerable — and, in my case, decades of personal-computing history — I can’t avoid starting my refreshed relationship with IRC by thinking back on my history with it.

I first used it as an undergraduate in the early 1990s, where it had already earned a reputation as foundational technology, boasting an array of implementations on any computing platform you could name. The Mac alone enjoyed a dizzying variety of IRC client programs. I don’t recall the name of the one I favored, but I do remember that it greeted you on launch with an orchestral-hit sound effect from an old Star Trek episode.

IRC has hardly gotten less nerdy, in the years since. I feel as comfortable saying that it will outlast the viable lifetimes of every younger chat system — yes, including the ubiquitous Slacks and Discords of today — as I do in predicting that people will rightfully keep inventing new systems anyway, because IRC remains completely unsuited for civilian use. It took me nearly a year of off-and-on, trial-and-error research to find a combination of magicks that let my laptop connect to IRC networks with the reliability, back-logging, and mobile-notification functions that Slack provides out of the box.

The details are not interesting, so I shall get them out of the way quickly: As my client program I use the excellent Textual for macOS. For ordinary IRC discussion, I have set up a ZNC server, and I proxy all my connections through it; this gives me persistent presence in any channels I choose. Furthering this, I installed Prowl on my iPhone, to which my ZNC instance relays notifications when folks mention my name.

The last pieces slid into place last week when I got over my shyness to ask the #textual IRC channel on Freenode to help me tune the application to my particular use-patterns, starting with having it automatically reëstablish all my various connections when I open my laptop back up. (Textual, fantastically customizable, scatters the controls for its myriad options in a dozen separate places throughout the interface. Only a bare handful appear where expected in the Preferences window; the remainder bury themselves layers-deep in the right-click menus of one onscreen feature or another. As with IRC itself, I strongly doubt many discover its details without active assistance.) Finally — applying my knowledge about IRC nickname commands and conventions from Vicky’s talk — I stole jmac on Freenode away from someone who provably hadn’t logged in for a year, presenting my case to a friendly “op” on the #freenode channel and receiving the blessing to re-register the name to myself.

When I was in fifth or sixth grade, we all received a creative-writing assignment: write 300 words about an recent accomplishment you took pride in, then read it aloud to the class. Every other kid, boy and girl alike, did the correct thing of describing a victory-clinching goal they scored on the athletic field. I alone transgressed by writing of a recent camping adventure with my Boy Scout troop, and for days my classmates mocked me, repeating “We decided to head up the trail to check it out!” whenever they saw me rounding the corner. I relate this memory as it comes to mind unbidden because I know exactly what I sound like, talking about this IRC stuff: I sound like an excited little boy, so totally at home with a new, pleasurable discovery that he has no idea how utterly unfit for his larger social context he sounds.

An XKCD comic strip about fragmented chat networks.

Why did I bother will all this? Like the above XKCD cartoon, I consider IRC primarily as the location where specific few chat-based resources (not to say people) make themselves available, and not at all as an all-encompassing chat solution. I would never suggest that civilian internet users learn IRC — but I would strongly recommend it to my fellow software engineers, especially those working with open-source software. The other cartoon image that comes to mind is that of the petitioner scaling the mountain, seeking the wisdom of the old guru dwelling in their aerie. That’s how I felt at the end of my months-long climb, finally getting this absurd setup to work reliably on my MacBook.

By cultural fiat as much as any other reason, IRC alone represents the best place to ask deep questions about certain open-source software projects. The community supporting Perl, my core day-to-day programming language, runs its own IRC server. Most every popular functional extension to the language as its own channel there, with the authors or maintainers of these modules quite often making an effort to check in frequently, happy to answer (eventually) questions posed by needy strangers. More generally, the Freenode IRC network hosts hundreds of channels for every flavor of open-source project, with ##linux at the top, on down through #perl, #textual, and (the semi-open) #macos, and ending with a long tail of channels populated only by their operators, often for young and hopeful projects.

Plerd’s “official” IRC channel sits among this latter clump, as of last week, and jmac lurks there — alone, as I write this, but listening just the same. I believe I’ve grown past the atavistic joy that comes solely from noodling with this system, echoing the pleasures of the the Mac LC in my dorm room. Already and instead I feel a stronger and more connected software professional from the handful of conversations I’ve enjoyed in the dozen-or-so channels, across two networks, that I have settled into so far.

Naturally, my next post on this topic shall reveal how I have already betrayed this practical recognition of a chat-fractured internet, detailing the ways I almost immediately began researching ways to force all my disparate chatty data-sources into a single IRC-shaped funnel. The outcome has proven as foolishly terrible as the motivation, and I look forward to describing it.


Next post: I read Ancillary Justice

Previous post: When the stakes are global, I’ll flaunt my privilege