Internet Relay Chat - IRC

Internet Relay Chat, or IRC, is a direct line to some of the most helpful people you will find anywhere. IRC has been around a very long time. It is based on a simple protocol where Chat clients like X-Chat connect to servers like Freenode.net. A typical server network like Freenode often has as many as 1800 channels running at once and thirty thousand users.

Chat Clients

Before you can start using IRC though, you have to have a chat client. Fortunately, all of the major Linux distributions come with IRC clients and most of the popular instant messaging applications that are in use like Gaim can also be used to chat on IRC. On Fedora Core, you can get to the IRC client by clicking on the Red Hat icon then Internet->More Internet Applications->IRC Client.

Figure 9. X-Chat Server List Window

X-Chat Server List Window

The above menu selection brings up a dialog box titled X-Chat: Server List as you can see in the above screenshot. If this is your first time using X-Chat, you need to check the fields at the top of the box and make sure you have three alternative nicknames selected and a user name. Although there is a box for your real name, it is generally considered a bad idea for you to put your real name into your IRC client. Depending on where you roam with your IRC client, you might want to keep some modicum of anonymity. In the main window of the Server List box, you will find a list of servers. If you are just wandering around learning about using IRC almost any server will do. The Freenode server is a good choice if you have questions about open source projects. Usually you pick a server because you are interested in a particular channel that you know is on that server.

Once you have selected the server, you hit the Connect button. This will bring up the main screen of the application. After a few moments a bunch of text will appear in the main window telling you about the server you have selected. Usually there is a Message Of The Day or MOTD that contains links to the policy page for the server. It's a good idea to check the policy page out so you know what's acceptable and what's not on the particular server. An example of what you might see connecting to freenode is given below.

Figure 10. X-Chat Main Screen

X-Chat Main Screen

Many servers provide a facility, called NickServ, that can be used to reserve your favorite nickname. If the server you have just logged onto has this facility there may be a couple of messages from NickServ at the bottom of the screen telling you that the nickname you are using is reserved by someone else. It's considered bad etiquette to impersonate someone else, so if you get this message and it's not because you have registered the nickname for yourself, you should pick another nickname. You can do this using the command /nick new-nickname.

Once the vital issue of your nickname is settled, you can join a channel using the command /join #channel-name. You'll notice that the channel name is always preceded by a pound sign (#). Once you hit return after entering this command the program will display the main chat window titled X-Chat[version]: nick-name @ server-name / #channel-name. On the right there is typically a list of the nicknames of other users of the channel. At the top of the main window a few lines will be printed right away that tell you the channel you are on and the topic which has been selected by the channel moderator. (Different channels have different ideas about how far you should stray from the topic.) The rest of the text in the main window will be the ongoing conversation among the various people in the channel.

Figure 11. X-Chat Logged Into Channel

X-Chat logged into channel.

The screenshot above shows what the screen looks like once you have successfully logged into a channeel using X-Chat. You can now contribute to the conversation by typing in the input box at the bottom of the chat window beside your nickname. When you hit enter, your comment is sent out to all the other people chatting on the channel.

Choosing The Channel

Selecting the right channel is often the key to getting the information you need. Fortunately it's often very easy to figure out where to start. If you are having general problems, ones that just have to do with using Linux in general, you can try #linuxhelp on freenode.net. If you are having problems that you think are specific to your distribution then you should try #distribution where distribution is the name of the distribution such as fedora or debian.

Most FOSS projects have an IRC channel associated with them. For instance, the popular multiplayer game, Freeciv, has it's own channel on Freenode, called #freeciv. Many projects, especially the larger ones, have more than one channel. There is a kind of defacto naming scheme that is used for the project channels as you can see in the table below.

Table 1. Standard IRC Channel Names

Channel NameExampleDescription
#application#freecivUsually the channel for general discussion about the product. You can use the /topic command to see what the current chat topic is. If you're in the wrong channel, /topic will usually print out a message that will send you to the right place. Sometimes this is the channel where the developers hang out and you'll be directed to the #application-users channel. See below.
#application-devl#mozilla-devlThis is usually the channel where the developers of the product hang out. It's not usually the best place to ask newbie questions, so you should try the general channel or the users channel first. If you still can't get help for your problem, this channel might be worth a shot.
#application-users#mozilla-usersThis is a channel dedicated to users. Usually the people on this channel are dealing with exactly the same kinds of problems that you are dealing with and there is usually someone around who can answer questions. If nothing else, they'll direct you to other sources of information like tutorials and mailing list archives.

If you use the /join command and provide it with a channel name that does not exist, it will happily create a new channel using that name for you. So if you find that you are the only person in the channel when you join, you might want to check the spelling of the channel name, make sure you have the correct server, or try a different channel name.

Each channel has it's own personality, which is changeable based on who is participating in the discussion. In my experience user channels are the friendliest ones, since the people in those channels readily identify with other people experiencing the same problems they are having or that they have just overcome. There are usually a couple of resident gurus that act as channel moderators and answer most of the tough questions. Developer channels are less patient with user questions. They are primarily intended as a forum for discussions about the ongoing development of the project code, not answering newbie questions. It's pretty easy to make friends in the IRC channels and there are several that I visit regularly now just to visit with the people that helped me so much when I was getting familiar with Linux.

Summary

There is a great deal more that can be said about IRC and X-Chat, but it's beyond the scope of our current discussion. There is an IRC mini-HOWTO at The Linux Documentation Project that goes into a lot more detail about IRC itself.

As when meeting any new people, it's a good idea to say hello and introduce yourself before you launch into your appeal for help. Each channel has it's own personality and some are a lot more friendly than others. It sometimes takes a while before you are acknowledged, especially if there is a heated discussion going on. It is also possible to feel that you are being ignored because it seems there are a lot of people on the channel but no one is responding to your questions. You have to remember that the people in these channels are scattered all about the planet, so it possible that many of the people listed as being in the channel just have their chat client up and aren't at the computer or they are otherwise occupied. Patience helps a lot.

Be patient and remember to thank the people that help you. They aren't being paid to help you, they are doing so out of the kindness of their heart and their desire to support the Linux community.