The Joys of IRC --------------- Thu Oct 6 23:23:16 EDT 2022 --- Written on: x220 (openbsd) Listening to: Running Away by Vulfpeck (Live at MSG) --- ## Discovering IRC IRC first came across my radar a little out of college, when I started spending a good bit of time lurking in free software communities. But it wasn't always second nature--in fact my first dip was nothing but intimidating. I'll never forget the first time I downloaded irssi(1) and connected to freenode--I was immediately presented with my rDNS exposing that akarle was indeed using Boston MA FIOS and I logged off pretty quickly scared to be exposing my home IP (especially to a bunch of hackers!!). After I got over the IP thing (I can't remember if I discovered cloaking or used a proxy), I then was nervous to speak up--people here seemed to follow a strict etiquette ("don't ask to ask", etc). I didn't want to seem like a noob! Nevertheless, I felt cool just being there. In the room where it happens. I saw chat messages go by from programmers I held in high regard. It blew me away to have access to these people, even if I wasn't using it. When I set up garbash.com with Anthony, IRC was top of the list of tech I wanted to play around with, and I was not disappointed. ## Where IRC Excels After getting over the learning-the-ropes stages (setting up a bouncer for chat history, etc), I learned to appreciate IRC beyond the people there. IRC excels in a few ways: 1. Lightweight medium (super fast) 2. Open protocol (many clients) 3. Simple extensibility The low-bandwidth medium becomes super obvious when using a terminal client during the work day. Switching between Slack and catgirl(1) is night and day. The open protocol has been a boon for usage on our Tilde. Most of our members prefer to use the Gamja web client, which integrates really nicely with Soju for history. And lastly, the simple extensibility comes from the lack of security by default. I mean, anyone who can access the server can send messages? Under any nick not in use? A terrible recipe for public access, but a great choice for an internal-facing network, like a tilde :) It becomes easy to write tools that ping channels using just regular unix tools. I wrote my first such tool tonight, which is what inspired this post [1]. It uses curl(1) to fetch https and gopher feeds, sfeed(1) to parse the feeds, awk(1) to parse the parsing (and determine "new" feeds since the last run) and lastly nc(1) to connect to IRC and notify our main channel. It's that simple: nc localhost 6667 </dev/null NICK rssbot USER rssbot rssbot localhost :rssbot PRIVMSG #garbash :New post '$1' here: $2 QUIT EOM How cool is that?? If all goes well, it should get notified about this post :) [1]: https://git.garbash.com/alex/irc-rss-listener/log.html ## Looking Forward I'm optimistic that the work coming out of the great folks at sourcehut.org will keep IRC along for some time more. chat.sr.ht is a fantastic solution (running a SaaS version of Gamja and Soju), providing an easy cross platform way to connect to multiple servers (with things like history built right in). I can't say I've tried many other FOSS messaging protocols like XMPP or Matrix, but I do hope the future is open-protocol and not walled-garden like Discord or Slack.