Author’s Note: When I started to write this, I thought about calling it a Beginner’s Guide to IRC, but that’s not what this is. This is a Field Guide to IRC designed for those who remember IRC from the early 90s as well as those who’ve never set foot in a chat room. This guide assumes that you can setup a client application based on simple instructions. This guide assumes that you have a good connection to the Internet.
Basically, this guide assumes that you have a decent understanding of what a computer does and how it works with other computers. If you don’t have that, IRC is probably not the place for you.
What is IRC?
IRC is a real-time many-to-many polysynchronous communications platform.
What’s that mean?
The best analogy I’ve ever heard for IRC is that it’s multiplayer notepad.
Okay, cool, but what is it really?
IRC is a client/server relationship. You run a client program on your machine, or access a web-hosted client program on the Internets, and that connects to a single server or a federated server network (like Freenode).
That means that IRC is a great way to talk to a bunch of people in a way that can be asynchronous and can be synchronous. It means that you can talk with people and they get the messages right away, which makes it synchronous, but in that it keeps a running log while you’re logged in, it is often used as asynchronous fashion, a program or session that’s open often but run unattended. Not everyone has the same level of synchrony with regard to IRC.
So, What’s the Topology of IRC? (OR: How’s it work?)
An IRC server, or federated server network, is comprised of many channels. Each channel is run by a set of admins. Each channel has a topic (generally) and that’s what gets discussed there. It’s not universal, and discussions will often stray wide afield, but generally speaking if you’re in a channel like ##osx-server, you’re going to be talking Macs and sysadminry. Same thing for if you’re in #jettamechanics, but don’t be surprised if they’re trading gags on the latest mechanic’s new tool calendar. Admins are there to steer things back if things go afield, but they often manage with a light hand.
Users have unique individual names, often controlled by NickServ, which makes sure that I can’t claim a nickname that’s in use without also knowing its password. Think of this as a way to make sure that you are always you. I use an identifier that clearly identifies me as me: I’m tbridge on Freenode. But, there are also people who use handles, and elsewhere I might also use the name of my Undead Warlock, Ampersand.
Each User can come in a variety of flavors: Unregistered, Registered, Voiced, Operators (Ops), and Admins. This is a hierarchy. Unregistered Users have no claim on the nickname they’re using (they haven’t registered with NickServ), while Registered Users have. Voiced Users can talk in a muted room. Operators can change the topic line for a channel, or perform disciplinary functions. Admins can make more Operators and Voiced Users, as well as change the topic, ban and permanently block users.
Most of the time, these aren’t going to be critical details, but this is why some users show up in the user list a little bit differently than others, which is a common question.
Okay, so how should I connect?
Well, there’s a couple different options. Freenode – where ##osx-server lives – has a good web client but not everyone allows access to webchat clients through firewalls.
There are some good client programs:
On Choosing a Good Nickname:
Like on every social service, you have to have a way to identify yourself on IRC. Generally speaking, you should pick something that clearly and uniquely identifies you to others. I would recommend using a username that’s aligned with your other social media presences if at all possible or available. I would not recommend using anything profane or offensive.
Getting Started at Freenode:
Once you download a program, you have to set it up. Every IRC Connection needs a few basic things to get going. They need a server name (where you’re logging in), a nickname (how you want to be identified to the server), and a channel where you want to chat. Some programs require all three, some only require the server.
NOTE: Many federated server networks have a single endpoint that, through round robin DNS and other technologies, allows you to connect to the network through a single hostname.
In the case of freenode, the server is irc.freenode.net, though once you connect, you’ll likely end up on one of their many author-named federated servers like scalzi.freenode.net or leguin.freenode.net or gibson.freenode.net. Don’t worry, they’re all connected.
For a channel, enter ##osx-server to start, since that’s the channel we’re talking about for this tutorial.
IRC has a couple command structures that you should be aware of. IRC generally operates with slash-commands (/join, /part, /nick) that work in and out of channel to participate in the server environment. Here are some good options that Freenode supports:
/join – Joins a channel.
/join ##osx-server – Joins the channel ##osx-server
/join #OnionTurnipBanana monkeyfrog – Joins the password-protected channel #OnionTurnipBanana that has a password monkeyfrog
/part – Leaves a channel.
/part ##osx-server – Leaves the channel ##osx-server
/nick – Alters your nickname
/nick JohnBob – changes your nick as JohnBob
/NickServ – Short for Nickname Services, this is a big one. There’s a lot to cover here.
/NickServ help – Shows you the man file for NickServ
/NickServ register password email@example.com – Registers your current nickname, with password “password” with recovery address “firstname.lastname@example.org”
/NickServ identify password – The proper method for telling NickServ that it’s really you.
/NickServ ghost YourNick password – Removes a user using your registered nickname, allowing you to reclaim your nick, helpful when you’re disconnecting and reconnecting.
The Social Parts of IRC
The IRC channel is a resource that you can use to help understand and solve problems. It is not, though, an on-demand resource that will cater to your every whim. On any given day, there may be 80-100 users in the channel, but not all are active. In fact, there may not be anyone active at all, if it’s after hours or on the weekends, and remember that the community is primarily situated in the Pacific and Eastern time zones, though there are often users from HST and GMT and other timezones.
So, remember these key tips:
1. This is a community and there should be give and take
2. No one is required to help, but they’re going to give you best effort based on their available resources
3. Be polite, say please & thank you, even if your problem is bigger than they have time for.
4. Do a modicum of research before you ask a question. Just Google it, at a bare minimum. IRC can be an awesome outboard brain for sysadmins to use, but we need to use it all together to be successful. That means that we share & share alike for information. Don’t be shy to help another admin, they’ll return the favor and pay it forward.
5. While profanity is fun, it’s best used against that stupid fscking server/process/Adobe Installer/power outage and not that person who’s trying to be helpful.
6. Folks notice who the high level participants are, and who’s being helpful. Those are good people to buy a beer for at the next conference.