IRC
Internet Relay Chat (IRC) is a form of real-time Internet text chatting or conferencing (IRC on Wikipedia). I consider IRC to be one of the best ways of getting expert help on anything to do with computers, but it is also a great resource for topics from English grammar to math to politics. IRC is also great for collaborating on projects in real-time (i.e., a nice way of saying "scrambling to get some help on a project"). Over the years I have become indebted to many folks on IRC; talking to a real person is different and superior in many ways to reading what was written to someone else, perhaps geared toward a very different circumstance. Since almost all technology is, in the final analysis, a means of connecting people, the possibilities with IRC are endless.
If you are a computer scientist, imagine being able to talk to the developer of a programming language you are trying to learn. If you ask someone on IRC how to convert a string to an integer, you will likely get a response such as, int i = Integer.parseInt(s.trim()); Contrast that with reading the documentation for String (8000+ words where "parseInt" doesn't appear). Ah, you should have looked at the documentation for Integer. And yet, the very useful s.trim() doesn't appear. As a reference, documentation is great. As a language learning tool, IRC is top notch.
If you are trying to fix your home computer, imagine being able to chat with three helpful systems administrators, each with five years experience with the exact software you are having trouble with. Compare that to reading the troubleshooting guide. Later on in this guide, I explain how the IRC helper plugin can help you and that you should empty the normal password field and fill out the one in the advanced tab. I learned that on IRC. The documentation says nothing about that.
IRC is a conversation and not an authoritative book, a conversation that you can begin by following this guide. Unfortunately, many people find it very difficult to get IRC working, so I made this article in order that people--whatever their background--may have access to this great resource.
This document is not an overview of IRC; it is more of a recipe: you will learn one way of getting started with IRC. For example, this document will only use the Pidgin IRC client software. If you want to learn how to use IRC in a different way, why, just ask someone on IRC!
Be aware that people on IRC are generally angry. There are several possible reasons for this:
They have not been outside for a long time
They use IRC to boost their ego by insulting others
They are unemployed and amuse themselves by being mean
They are upset that many people do not understand computers as well as them
If you are a very sensitive individual, you may want to forgo the benefits of IRC.
Take the following exchange as an example:
(02:54:30) grisarspisar: Well, I have to sleep now. Later.
(02:56:29) Brand0: loser
(03:03:48) KRS-: bahaha thanks brand0 i love irc.
This document uses the Human-Readable Scripting Language to give instructions, and I recommend you read that short introduction before reading this whole article. Often, the angle brackets (< and >) are used to enclose user-variables as in: <your user name>. This would be replaced by "johndoe" or some such thing. The following example will illustrate this:
Enter the following command:
/msg nickserv register <your password> <your real email address>
The above command would be replaced with /msg nickserv register secret_password john@domain.com and NOT /msg nickserv register <secret_password> <john@domain.com>.
0. Try IRC on the web
You can try IRC by going to the web-based version. Simply enter your desired username (use something unique and easy to type) and a channel name (like #ubuntu) and click connect. (Don't worry about the "Auth to services" box.)
Please note, many channels require authentication (that is, a linking of a nickname to an email address), and you will receive a "cannot send to channel" message. This authentication is not just an inconvenience; it helps cut down on the amount of spammers (people who annoy everyone on purpose) on IRC. Continue reading to part 4 in this article to learn about how to authenticate yourself.
1. Install Pidgin
You will need Pidgin (Pidgin on Wikipedia), the universal instant messenger (IM) client. You can download Pidgin from the Pidgin homepage (save it to your desktop or your install directory, not somewhere that you won't remember after the download is finished). Pidgin is cross-platform (it works on Windows, several Linux flavours, and the Mac) and comes with everything that it needs to get started on IRC. This guide will assume your operating system is Windows (because if you use a Mac, well, I hate Macs, and if you are using Linux then you probably aren't reading this guide. After you download Pidgin, install it (just keep clicking next right through the install wizard). At the last step, choose to launch Pidgin and click finish.
2. Make yourself an account
Usually, after you install Pidgin for the first time, you are presented with the "Account Manager". This window can be brought up later with (in HSL) Pidgin{PROGRAM}>Accounts{MENU}>Manage Accounts{MENU ITEM}>->. With the "Account Manager" window open, click the "Add..." button. Fill out the form as below (in the order below):
Protocol: IRC
Username: <your choice, but make it unique: something no one else would use>
Server: irc.freenode.net (this is the default and the most popular server currently)
Password: <leave blank>
Remember password <do not check (yet)>
Local alias: <leave blank>
You can take the defaults that show up in the Advanced tab. If you are behind a very strict firewall you may need to have TCP port 6667 opened outbound (talk to your "System Administrator") or make a proxy tunnel (beyond the scope of this document).
When you are done filling out the form, click "Add". Note that you have just created yourself a local account; no one has recorded the information you have just entered except for yourself. Later we will register your account with irc.freenode.net so that you can join certain "channels" (a channel is a group of people on IRC who can all send each other messages, i.e., messages sent to a channel are viewable to everyone "tuned in" to that channel) that require registration.
After you click the "Add" button, wait a few seconds. A Window may pop up from the "chanserv". You can close this or leave it open: it doesn't matter.
3. Join a channel and say "Hi"
One popular channel is #ubuntu (Ubuntu is a Linux operating system). You can join a chat in Pidgin by Pidgin{PROGRAM}>Buddies{MENU}>Join a Chat...{MENU ITEM}>Channel:["#ubuntu"]{INPUT BOX}>->
You can also add a chat permanently (so it appears in the buddy list during startup) with the following:
Pidgin{PROGRAM}>Buddies{MENU}>Add Chat...{MENU ITEM}>Channel:["#ubuntu"]{INPUT BOX}>-> With channels that you want to be closely tied to, a personal software project or a class discussion for example, I recommend checking both the "Autojoin when account becomes online" and "Remain in chat after window is closed" check boxes.
You can also join a channel by typing /join #<channel_name> while in another IRC channel. Note that the single hash mark (#) is used for peer-directed projects (such as the Python programming languages--the users direct that open source language), and the double hash (##) is used for non-peer-directed projects (such as Windows--Bill directs that one).
To talk to someone in particular, something that is necessary on large channels like #ubuntu and #python, you can begin typing his "nick", the nickname he uses to identify themselves, and pressing the tab button. For example to send a message to "schoppenhauer", you would type "scho" and then hit the tab key. The result should look like the following:
schoppenhauer:
(where there is a space after the colon). After you send a message with someone's nick in it, that person will probably receive a notification of some sort, most likely an audible beep, and your message message in a special format, usually bold and in a different colour. Note that the type of notification will depend heavily on the particular client the individual with whom you are communication has installed.
Here are some other useful channels:
come on #dordt-cs and talk to me.
use ##hardware and ##electronics to get help with computer hardware
use ##windows and ##windows-server to get help with Windows issues
use #<distro name> to get help with your favourite Linux distro (for example, #slackware)
use #<programming language name> to get help with learning a programming language (for example, #python)
4. Register your nickname
You should register your nickname (what you entered as your username in step 2 above) so that other people cannot use it.
First, open any chat window (such as #ubuntu). Next enter "/query nickserv" (no quotes) and hit enter. A new window should open up: this is a private chat between you and an IRC bot called the Nickserv (a computer who handles IRC registration). In this window you should enter the following (please use a strong password):
/msg nickserv register If you are using a nickname that someone else has already registered, you will be presented with an error. Otherwise, an email will be sent to your address with another command that should look like the following:
/msg NickServ VERIFY REGISTER Copy and paste that into the chat window that you have open with the Nickserv and hit enter. You should be told that you have successfully registered. To test this, try joining #python or #java. You will receive an error message saying that you must be "identified" to join those channels unless the registration process completed successfully.
You should now go back into the Account Manager and set the password and make Pidgin remember it for you:
Pidgin{PROGRAM}>Accounts{MENU}>
Manage Accounts{MENU ITEM}>
<your_nickname>@irc.freenode.net{LIST ITEM}>
Modify...{BUTTON}>
Password:["<your password>"]>
Remember password[check]{CHECK BOX}>->
Occasionally, when you log into IRC again (for example, if you have closed Pidgin or restarted your computer you will be logged out, and when you start Pidgin again, you will be logged back into IRC), your nickname may be in use, and you will receive telling you so. You will be logged into IRC, but your nickname will be changed: if it was "iamthebobguy", it will now, most likely, be "iamthebobguy1" (assuming that iamthebobguy1 is not a registered username). Since iamthebobguy1 is not a registered username, you will not be able to get on to channels that require authentication (such as #python).
Now, many people get annoyed unnecessarily at this, thinking that someone else is using their nickname which they registered. This is likely not the case. Your nickname is likely hanging around in IRC from the last time you logged in (i.e., it is a "ghost"). As mentioned later (in section 5) of this article, there is a "Disconnect ghosts (duplicate nicknames)" option in Pidgin. I use this plugin and it works (as of version 2.6.3). However, in case that plugin doesn't work, in order to reclaim your username from your ghost, a process called "ghosting" (for a different reason than your nickname is called a ghost: ghosting someone is the process of killing them without ever being noticed). Ghosting can be accomplished with three commands. The first one opens the nickserv channel, the second one ghosts your ghost, and the third one identifies you as your nickname again:
/query nickserv
/msg nickserv ghost <your nickname> <your password>
/msg nickserv identify <your nickname> <your password>
You should now, once again, be able to login to channels that require authentication (such as #python).
5. Get some plugins
What makes Pidgin great is that you can extend it with plugins. The Pidgin website has its own list of plugins. You can also grab the [Purple Plugin Pack][http://plugins.guifications.org/trac/wiki/PluginPack] which includes 50 great plugins. The plugins can be downloaded from the Pidgin Plugins download page (download the latest .zip archive).
Some of my favourites are the following:
IRC More (More IRC options) and IRC Helper (Helps IRC out a bit) are part of the Purple Plugin Pack (files here). The actual file to download is purple-plugin_pack-x.y.z.zip; simply extract the .dll files to /Pidgin/plugins/*.dll.
The Guifications plugin is hard to find (files here). These give you more GUI controls.
Off-the-Record Messaging (Encryption for messaging--installing this does NOT magically make "everything secure". The proper use of public encryption requires an understanding of the math behind encryption. This is not part of the Purple Plugins Pack; use the link to fetch it or use this dll file from pidgin-otr-3.2.0.)
After you install the first two in the above list, you can access more features in the "Advanced" tab in your Account Manager after you open your Freenode account for editing. Note: the IRC More and IRC Helper plugins are not configurable through the normal plugins window; they are account specific: the preferences they enable you to edit are to be found in the account management window:
Accounts{MENU}>
Manage Accounts{MENU ITEM}>
<your_nickname>@irc.freenode.net{LIST ITEM}>
Modify...{BUTTON}>->
I strongly recommend checking off the option "Disconnect ghosts (duplicate nicknames)". Note, when you use this plugin you must clear your password from the "Basic" tab after you open your account and insert it under the advanced tab:
'Accounts{MENU}>`
'Manage Accounts{MENU ITEM}>`
'@irc.freenode.net{LIST ITEM}>`
'Modify...{BUTTON}>`
'Password:[""]>`
'Remember password[clear]{CHECK BOX}>`
'Advanced{TAB}> `
'Username:[""]>`
'Auth name:[""]>`
'Nick password:[""]>`
'Disconnect Ghosts (Duplicate nicknames):[check]{CHECK BOX}>`
'Save{BUTTON}>->`
6. Use Pidgin for MSN/ICQ/etc.
Pidgin can handle all of the following protocols:
AIM
Bonjour
Gadu-Gadu
Google Talk
Groupwise
ICQ
IRC
MSN
MySpaceIM
QQ
SILC
SIMPLE
Sametime
XMPP
Yahoo!
Zephyr
So, instad of running multiple chat clients, just run one: Pidgin. Besides, who wants to watch the adds that Microsoft puts at the bottom of the MSN messenger? Go Pidgin. Go free software.
7. Some Advanced Topics
Pasting (also known as flooding) is discouraged (i.e., do NOT paste multiple lines of code into a channel unless someone asks you to). Use pastebins to avoid pasting large numbers of lines into an IRC chat room. In general, after you paste some code and hit the "paste" button, you paste the URL that you end up at into the channel that you wish to direct to your code. After pasting Examples of pastebins are the following:
http://paste.pocoo.org/ - A good general code pastebin http://mathbin.net/ - A pastebin for math http://erxz.com/pb/javascript - A Javascript bin with auto-announce, a feature that announces the URL of the paste destination in the channel to which you point it
Appendix A: Useful IRC commands
IDENTIFY--Register a nickname
REGISTER--Register a channel
TOPIC--Change the topic of a channel
Appendix B: Further reading
An IRC Tutorial (basic commands)
The IRC Primer (deeper commands)
The Channel Operators Guide (for when you want to make your own channel)
IRCHelp.org (some useful information)
Two useful posts: registering users and channels and controlling channels.
See How to Ask Questions the Smart Way (if you don't read it now, someone in IRC will send you there)
Learn how to run Pidgin in portable mode (this is very useful if you want to keep the same configuration across multiple computers)
Use my GTK config files to change your theme into mine. Here is just my /GTK/etc/gtk-2.0 files (you probably only need these).