IRC Introduction

This article was sleeping in my hard drive. After talking about and describing IRC to a couple of friends, they showed interest on the subject and so I have decided to finish and publish it. This in no way is a complete article or one which you should rely on, instead it’s just a taste/introduction to IRC

This will be an attempt at getting you started with IRC, Internet Relay Chat. IRC can be a really powerful tool if used correctly and if you know how to use it in the first place. I will be going through the process of getting an IRC Client and going over its basic uses which will facilitate you with IRC.

In this tutorial, we will be using Silverex’ X-Chat 2 for Windows Build, as it is my preffered IRC Client. I do not care if you’re some type of annoying elitist scene kid that runs around using BitchX, irssi, or mIRC; the point of this tutorial is learning how to use the IRC Protocol, though it will not dive very deep into all of its commands, rather it’ll show you the basics. A Client is usually a program that allows you to access a generic type of service. I’ll try to give you an illusion of this though it’ll probably be pretty odd; Imagine the service being the freeway, and your car is the client. How is this so? Well, the car is the only means of accessing the freeway, you can’t literally walk into the freeway and use it, can you? Exactly the same thing with clients. Client applications aren’t only specific to IRC, the same is with BitTorrent, an example being BitTornado or BitComet, and Web Browsers such as FireFox are clients for world wide web service accessing. Anyways, let’s carry on.

So we now know that an IRC Client lets us actually ‘use’ IRC. So what is IRC exactly? IRC is a means of communications, specified here. It’s basically a communication service such as MSN, AIM, Jabber, etc., though those are actually the names of the clients, but I’m sure you get the point, since those clients are specific to a certain protocol. That’s right, IRC is a protocol, or a way of doing things. It’s what differentiates it from other messenger services. IRC has been around for a while now and is really mature, it’s used for help and support, typical chatting, Peer-2-Peer transactions, and many other things. The downside is that it’s not really well known to the vast majority of computer users. However, once they’re opened up to this world, they see how essential it is. There are IRC Bots which automate everything from help and support to handling Peer-2-Peer transactions, making IRC a very fast communication medium.

Okay, so I’ll stop talking about it and finally let you see what it’s like for yourself. First of all, go ahead and get my preferred Free X-Chat Windows Build, at Silverex, if you want a direct link, it’s here. So once you download it, install it as you normally would, but make sure that when it asks you what plug-in interfaces to install (It won’t be worded that way, but you should see it), such as Python, Perl, Ruby, or Tcl, uncheck them all, in other words, don’t install them, unless you know what you’re doing and have those languages installed.

Okay, now once it’s installed, go ahead and start it up, you should see this:

Of course it will look different for you such as the nicknames and all that, go ahead and change them to whatever you like. Basically, think of a name you’d like to go by on IRC, and then put it into every textbox on this window, that should do. Sometimes though, someone will already have your name in the server you’ll join, and it has most likely been registered so only the person with the password to it could use it, in this case, you’d have to choose a new one, but it’ll tell you and I’ll go over that later.


Anyways, this is the server list, it’s basically an easier way of joining servers and setting specific preferences for each one, for example if you’d like to be called something different in a different server, etc. Anyways, let’s practice this, scroll down and select the FreeNode server. This is arguably the most popular IRC server in the universe, it’s the server I mostly visit. This server, like many others, creates a channel you join if it doesn’t yet exist. So for example, say you wanted to join a channel called #iamanoobatirc, but it wasn’t created, or no one has joined it, then it’d be created, and whenever someone else would join that channel, they’d see you in it. This server, FreeNode, has countless channels. It has channels for everything you can think of, any project.

But wait, what the heck am I talking about, servers, channels, what?! Okay, I’ll give you an example. Imagine the server as a huge building with many rooms. Now, people go to that building to group themselves with other people based on what they want to talk about. So the many different rooms that are in that building would be for different things; one might be sports related, one might be for a book club, another might be for a fan club for a particular thing. In other words, a server is the actual thing you connect to, or the building. Then, once inside the server, you can join seperate channels based on what you want to talk about. In IRC, unlike in the real world, you could be in one channel, or ‘room’, at the same time, and continiously switch between them to simultaneously chat in a distributed manner. Okay that last clause in that last sentence might not have made any sense at all so just forget about it, you’ll understand in a minute.

Now that we know what servers and channels are, I can explain a little more. Just as channels are specific to what you want to talk about, servers are generally specific. For example, there might be a server dedicated to shady net business, which would have channels for people wanting to talk about hacking, virus writing, warez, and other weird things (undernet). There might be another one dedicated to free software or something similar, which would have many channels for many free projects such as firefox, gaim, xchat, and more (freenode). There are many many more servers dedicated to things such as gaming, programming, hacking, virus writing, technical support, and just typical chit chat, as well as other…things, but we won’t go into that. It’s almost as if all the internet users had a means of communicating with each other. It’s like, the web, and then the communicator, that being IRC.

But all these many possibilities, millions of channels, this would mean that there would be few people to talk to? Well that depends, if it’s a popular subject then no, there’d be many. I’ve been in channels that have have had over 900 users (freenode/ubuntu, freenode/gentoo), there’s no doubt that there’s some with many more than that. However, it’s not about the quantity, it’s the quality. Most of the times the people that use IRC have an adequate amount of knowledge (Unfortunately, not everyone), and it’s groups of people like these that build up strong foundations of a community. What I mean by this is, even if there’s only 10 people in one channel, the point is that they’re in there, so they’d be willing to help/talk with anything. Now imagine, if 10 people would do this, imagine 900?

Yes, this is the miracle of IRC. If you’re really that appreciative of technology, you might feel like I did when I first opened my eyes to IRC, it was like, “wow”, a whole different world right there. Imagine a channel such as freenode/ubuntu, having over 900 people, the conversation moves pretty fast with many people asking questions, others answering, others just talking, it’s really fast paced. Also, with innovations such as IRC bots, IRC conversations get a whole lot quicker. For example, in freenode/ubuntu, say someone has asked a common question. One of the regulars in that channel, instead of answering it, could make the bot do the work. He quickly watches the guy ask about where to get ATI video card drivers, and he says “!ati“. The bot, named ubotu in this particular channel, quickly recognizes that as a command and outputs what it’s been told to do when it sees that command. So the bot responds with the message, “You may get ATI drivers at blah, if you would like to know how to install them, go to blah, blah blah blah“. In other words, it further speeds up throughput.

Now that I’ve given you a little introduction to what it’s like, I’ll let you try it out. You should still have Freenode selected in the Server List window (XChat: Network List, scroll up if you don’t get it). If you would like to configure the way you connect to this server, go ahead and click edit, but I suggest you don’t do this yet if you don’t understand what I said. Now, with Freenode selected, click Connect on the bottom right. It should connect you to the server and you should see a window something similar to this:



Now, the bottom text box is where you type in messages and commands. So we’re now in the server, so we’re basically inside the building, we just came in through the door, now it’s our choice as to where to go. Sometimes we don’t have any way of knowing what channels there are, you either read about them or hear about them, but you could always try it and join any random channel you’d be interested in. For example if you wanted to join a channel where they talked about google, you can join #google. How do we join? Well that’s simple, you use the /join command. It has the following structure:

/join {channel}

An example would be

/join #google

Every channel has a number sign (#) in front of the name, so don’t forget to put it there. Let’s go ahead and join #ubuntu, so type /join #ubuntu. You’re now inside the #ubuntu channel, it might look something like this:



Now that we’re in here, we can easily talk to people. Whenever you say someone’s name, it gets their attention because (Usually) the IRC client they use highlight’s the line/message in which their name is contained, so that they could easily distinguish and follow conversations in situations where there’s 20 messages per second. XChat highlights the message in a red color however I believe this is configurable. Also, there’s tab completion, where you could type part of the person’s name and you press TAB and XChat compeletes the name and adds a comma (,) to the end. You can change this like I did to a colon (:), which is the norm in IRC conversations.

You might remember that I told you to choose various names just in case one’s already taken? Well, now it’s time to talk about that. What I meant was that, in each server, only one person could have a specific name, it doesn’t matter if you’re in a different channel; if you’re in the same server, you can’t use the same name. So let’s say there’s some idiot called Bob who goes in the server and calls himself blank, he joins #comingoutofthecloset. I go on and try to make my name blank, but it says it’s already taken. But I’m inside #hackersarestupid, why should it matter?! Well, if there’s already one person with that name in the same server, then you can’t use it. Because, imagine, what would happen if the other blank would join the channel I’m in? Then the server would get confused. But wait, does this mean that if I get the name I want, I have to leave my computer on connected to the server so that no one else would take it?! Nope, that’s where nickserv comes in. You can register your name with the server and password protect it. This way, if you’re not on, other people could use it, but if you want to connect and someone already has it, you just log in and it kicks them out (ROFL) and you get your name back.

So you want to register your nick/name? Simple, the command takes the following form:

/nickserv register {password}

So for example:

/nickserv register barneyandfriends

Of course, you do this when you have the nickname you’d like to register on. Okay, so now you registered, how do you log in?! Simple, the command takes the following form:

/nickserv identify {password}

So, for example, if you used the above example:

/nickserv identify barneyandfriends

Now you should be logged in. There are many more commands but they are beyond the scope of this article, any more coverage would render this article useless because there are far better tutorials out there which explain each command. Anyways, here are some of the places I go to:

irc.freenode.org - #ubuntu, #C#, #java, ##C, #C++, #python, #perl, #ruby, #php, #javascript, #html, etc.
EFnet - #win32, #winapi

To join a server, the structure is:

/server {servername}

Examples:
/server undernet
/server irc.freenode.org

0 Responses to “IRC Introduction”


  1. No Comments

Leave a Reply