Geek Culture guide to IRC

  Site home | Geek Culture
Home | IRC guide | IRC FAQ | Client walkthroughs

Contents

Overview | What is IRC? | Getting started with IRC | Using IRC | Life in IRC | IRC etiquette | More advanced topics | When things go wrong
Appendix A – SlashNET servers | Appendix B – IRC clients | Appendix C – Glossary | Appendix D – Command reference | Feedback


Overview

While IRC is fundamentally a simple system, it does have a complex and technical side and this can seem very confusing until you get used to it. While the official IRC info page at Geek Culture explains the basics of set-up, this guide goes into a lot more depth as to the nature of IRC and how to use it effectively, and so forth.

Those who are already settled on the idea of using IRC, but have specific questions to ask, might find the IRC FAQ a more direct way to get some answers.

Note: This documentation has been revised in accordance with the switch to the Unreal ircd on the SlashNET network. – uilleann.


What is IRC?

Overview | IRC channels | IRC networks

Overview [ Up ]

IRC stands for “internet relay chat” and is a system for enabling people to chat together in online chat rooms by typing messages to each other. Typically, you join chat rooms (known as channels) such as the Geek Culture Joy of Tech channel and chat to people there, but you can also chat with individuals privately. The screenshot below shows conversation in the Joy of Tech channel #joyoftech.

#joyoftech in ShadowIRC
Chatting in the #joyoftech channel

IRC channels [ Up ]

On an IRC network (and there are many, see below), there are generally many channels (chat rooms) – Undernet has about 25,000 of them. Some will be used by a few friends to chat together, and some are large rooms that focus on a particular topic or subject, or for a particular group of people, such as #macintosh on Undernet or SlashNET, for Macintosh users. Apart from help and admin channels, the channels are neither owned nor run by the IRC networks, but by individuals – the network merely provides a service whereby others can come and form channels and chat in them.

Geek Culture makes use of the SlashNET IRC network, and we have a number of official channels there, which are listed below. Of all the channels, probably the most active of the lot is by far is #joyoftech, and that is the best place to come and find us all.

You will notice that all the channel names begin with a # – when specifying names of channels, always be sure to include the #.

IRC networks [ Up ]

Those familiar with instant messaging will be accustomed to the idea of signing on to their favourite instant messaging networks, such as AIM or MSN. Unlike instant messaging networks, IRC is not a centralised network run by one organisation (like AOL’s AIM network is), but merely a technology whereby different organisations can run their own IRC networks. There are a number of well-known IRC networks out there, including Undernet and Eris Free Network (EFNet). The Geek Culture channels are all to be found on the SlashNET IRC network.

Each IRC network has a number of servers to which you can connect; listed in Appendix A are the servers on the SlashNET network. Some people elect to connect to the IRC server nearest to them, but alternatively you can connect to the generic server irc.slashnet.org which will pick a server at random for you each time you connect, balancing the load across the network. A typical IRC network might look something like the following:

[diagram of an IRC network]

As you can see, each user connects to a server, and all the servers are connected together to form the complete network. From your perspective when in IRC, once you have connected, you see it as one big network – all the channels exist on the network as a whole, and while people in a channel will all be connected to different servers, they will all appear together in the channel as though they weren’t. In the end it doesn’t truly matter which server you choose. Of course, in reality, networks typically have far more than one server in the US, despite what is depicted in the diagram.


Getting started with IRC [ Contents ]

IRC clients

The first step is to download and install an IRC client. This is the piece of software which connects to IRC networks and lets you chat to people. IRC clients are available for just about every OS around, and a good selection of available clients is listed in Appendix B. Mac OS X users can install JoyChat, a pre-configured beginners’ client prepared by Tut-an-Geek. An alternative to installing a regular client is to use the Java IRC client provided by SlashNET, which runs inside your Web browser.

Connecting to IRC

The next step is to set the client up for use. Java IRC and JoyChat users may want to read the Java IRC and JoyChat walkthroughs respectively; further walkthroughs for some other clients are listed in Appendix B.

Everyone else will need to make use of the information below to set up their client, making use of the client’s documentation if necessary to determine where to enter the information.

Different clients might ask for other information, but as far as I know, none of it has any bearing on connecting to IRC, so put in whatever you choose. Some if not most of you will notice a password box – ignore this, as it is not used by us. Once you have provided all the information requested by the client, then you can connect to the IRC network. If you succeeded in specifying channels to join, then you will automatically find yourself in those channels. Otherwise, you will need to locate a Join option in order to join the channels, or use the /join command otherwise.

A note on invisibility: being invisible on IRC does not do what it implies. Invisibility means that people on the IRC network cannot discover your existence on the network without either already knowing (or guessing) your nick, or by joining a channel which you are present in. It does no harm to enable it; it should protect against being spammed with unsolicited messages, although SlashNET does not appear to have a problem with this.


Using IRC [ Contents ]

The console | IRC commands | Joining channels | Leaving channels | Actions | Name changes | Private messages and chats | Away status | Signing off | Notification | Ignoring | Hints and tips

The console

Most IRC clients will have a console window (or tab or pane) where you can see messages sent to you from the IRC server, such as the server’s Message of the Day. Certain other information will get directed to the console, too, depending on the client. You probably won’t normally pay it any attention, though, unless you’re looking for server errors when a connection attempt fails.

IRC commands [ Up ]

Although most clients provide a graphical interface (windows, menus, buttons etc) for working with IRC, most if not all actions can also be performed using a command (an instruction which you type in), and some things can often only be done using a command. IRC commands all begin with a ‘/’, and are typed directly into the inputline where you normally enter messages (and thus you cannot begin a regular message with a ‘/’). Because clients all look and feel different, but commands are generally the same across all clients, this section is only able to provide the names of the commands to use; to discover how to operate the client via its graphical interface, refer to any walkthrough listed in Appendix B or read the client’s documentation. You will often find that there is a menu item or contextual (right-click) menu item with the same name as the command, however, so it shouldn’t be too hard. Note that JoyChat doesn’t appear to know many IRC commands at all, so a lot of the following commands will probably not work.

In the sections below, where command syntaxes are shown, placeholders are used where you are to provide actual information, and they are given in italics. For example, where you see nick, you would replace nick with an actual person’s nickname. An example is given of every command listed, however, so the usage should be clear. Of course, you will not need to use commands if you can find the appropriate user interface item that replaces it.

Joining channels [ Up ]

You can chat in more than one channel at a time – the client will usually provide a separate window or tab for each channel. To join a new channel, use /join channel. For example,
 /join #aftery2k

would join the #aftery2k channel. If the channel specified does not exist, it will be created for you. You can use this facility to make your own channels for you and your friends to chat in, or for a particular topic or project.

Leaving channels [ Up ]

Usually, you simply close the channel window or tab, but you can also issue the command /part channel. For example,
 /part #aftery2k

You client may well let you omit the channel name if you are parting the channel that is currently active or selected (which is generally the case). You can also specify a reason for leaving the channel, e.g.
 /part let me out of here...

This message will be sent to the channel when you leave, e.g.
 *** uilleann has left #joyoftech (let me out of here...)

Actions [ Up ]

One of the favourite features of IRC, this allows you to have IRC describe you as having performed an action. Using the command /me action, for example
 /me waves to snupy

IRC would show the following:
 * uilleann waves to snupy

On a Mac client, this can be performed by typing out the action and then holding option and hitting return. This command is not likely to have a user interface equivalent, so you will need to use it to perform actions.

Name changes [ Up ]

It is possible to change your nick (the name by which you are known on the IRC network) during an IRC session, using the command /nick nick. For example, issuing:
 /nick bunny

would change your nick to “bunny” – a message such as the following will be sent to all channels to inform everyone of the change:
 *** uilleann is now known as bunny

While mIRC will remember this name from then on when you reconnect, most clients will revert to your pre-set nick from your settings for future IRC sessions, so this change is only considered temporary. Don’t forget to keep the new name within the length limit for the network (30 characters for SlashNET), and ensure it only consists of valid characters – spaces are not permitted.

Private messages and chats [ Up ]

IRC allows you to send and receive private messages with other users. A basic private message appears on the sender’s and recipient’s screens in amongst the text of whatever channel was active when it was sent, generally highlighted in red text (and with some other indication that it was sent privately such as the sender’s name enclosed in asterisks). When you want to send a single message privately, such as a site password, this is acceptable. However, if you want to chat privately to someone, then you would prefer to have all messages to and from that person shown in a separate window or tab – this is known as a ‘query’. A query window is nothing special, though – simply a window where private messages with someone get displayed. Thus, if you open a query window and send a message, the other person will just receive a regular private message, which may appear in amongst their own channel text; their client may be set to open a query window automatically for any incoming private message, but if not, they will have to manually open one. Fortunately, most clients will open a query window (or pane or tab) automatically when sending or receiving a private message, although Snak and JoyChat on the Mac do not do this by default.

To send a private message without opening a query window, use the /msg nick message command, for example:
 /msg uilleann The site password is 12345

The message “The site password is 12345” would then get sent privately to me. (Whereupon I will go change the password on my luggage ;)

To have your client open a query window to someone, use the command /query nick, e.g.
 /query Snaggy

Note: It would be advisable to be sure that you know how your client deals with incoming private messages, so that if it does merely place them within the channel text, you realise that such messages are private and do not accidentally send the reply to the channel (potentially disclosing private information).

Away status [ Up ]

There are two different approaches to marking yourself as away in IRC. There is a command, /away (reason), for marking yourself as away, but most clients make no good use of this – nothing is shown on the screen in a channel window to indicate that people are away. ShadowIRC encloses the nicks of people who are away in parentheses in the userlist, but that is the only client that I’ve seen that does anything like that. Otherwise, it seems to be a slightly pointless system. If you send a private message to someone, the server will inform you if they are away, and you can see away status if you do a /whois on someone, but most clients do not show away status the way an instant messaging client would.

To use this system, though, enter something like:
 /away eating dinner, bbl

To remove your away status, just issue /away with no reason provided. People who use the /away command to set away status often forget to do this, however, and have been known to be marked as away for days without realising.

The alternative method is to make use of the command /nick; you can mark yourself as away by appending something like ‘-away’ to your nick, for example
/nick uilleann-away

Don’t forget to keep any new nick within SlashNET’s 30-character limit.

Something to bear in mind is that this method is not always tolerated on larger channels (of 30 people more), because it would result in the channel being flooded by everyone’s nick-change messages from every time they go away and return. No-one seems to have a problem with this in the Geek Culture channels, though.

Signing off [ Up ]

The different IRC clients will all provide different ways to disconnect from the IRC network; you can also disconnect by simply quitting the IRC client. Alternatively, you can sign off (disconnect) with the command /signoff, and you should also be able to exit the client with /quit.

When you disconnect from IRC, your departure is announced in all channels that you were in, such as:
 *** uilleann has signed off (Quit: see you all later)

By default, the message given when you disconnect is a client preset, and will be something like “Client exited”, or a plug for the client, such as “Snak 4.9.2 - http://www.snak.com”. There are two ways to change the message that gets shown: a) provide a new message in the client’s preferences, or b) type in a custom message as you disconnect. Some clients, such as Snak and ircle, cater for the latter by displaying a dialog box when you go to disconnect, prompting for a signoff message. If your client does not offer that option, you can just append a reason to the /signoff and /quit commands, such as:
 /signoff Dinner, back soon

Users would then see a message such as:
 *** uilleann has signed off (Quit: Dinner, back soon)

in each channel that you have parted from as you disconnected.

Ignoring [ Up ]

Such is the nature of IRC, that unfortunately times may arise when someone in the channel is being bothersome to you, or to the channel in general, and the easiest way to deal with the situation would be to simply ignore them. To this end, most IRC clients have a facility for ignoring both channel messages and private messages from individuals. The person will still show up in your channel userlist, and you will see them join and part the channel, but messages from them will be ignored.

To add someone to your client’s ignore list, use /ignore nick; for example, to ignore me, type:
 /ignore uilleann

To remove someone from your ignore list, just precede their nick with a minus sign, e.g.
 /ignore -uilleann

Notification [ Up ]

IRC clients support a means of watching out for people for you and telling you when they sign on or off. To have your client watch out for a person, use the /notify nick command. For example, to be notified when Snaggy signs on, you would type:
 /notify Snaggy

This will add that person to your notify list; when Snaggy next signs on, you will see something like the following appear in the current window:
 Notify: Snaggy has signed on

A similar message will be shown when they sign off. To remove someone from your notify list, precede their name with a minus sign, such as:
 /notify -Snaggy

Notification operates by periodically asking the server whether the people on your notify list are signed on. This means that should any of them change their nick, they will be reported as offline. Of course, if the person you want to watch is likely to join a channel which you are in when they sign on, then this command may be of limited use. Also note that your notify list may be reset when you quit the client, although the client may have a more comprehensive means of handling notification.

Hints and tips [ Up ]

Launching URLs

When people post URLs in a channel, different clients provide different means for visiting those URLs. On a Mac, you typically hold the command key and click the URL.

Idle time:

Due to a weird technicality of IRC, if you do a /whois on someone and specify their nick twice in succession, the server will return their idle time as part of their information. e.g.
 /whois uilleann uilleann

might return, amongst other information:
 *** uilleann has been idle for 10 minutes, 44 seconds

You can use this facility to check to see if people are at their computer – they might be active on IRC, but that activity might be in a private chat session or in a different channel.

Tab nick completion

During conversations, you sometimes want to refer to people by name, and you will notice that some people’s nicks are a little bit complicated and thus hard to type quickly or accurately. Many clients allow you to type the beginning of someone’s name, and then hit the tab key to have the rest of the name entered for you. Using tab nick completion is helpful to people using highlighting.

Saving and Logging

You may find that your client provides a facility for saving the text of the current channel to disc, for future reference. Also, most if not all of them will also provide automatic logging of channels and private chats to disc; this feature is usually disabled by default. The channel stats page for #joyoftech maintained by maswan is built up from his IRC logs.

Timestamps

Most, if not all, clients provide timestamps, where the current time is placed next to each message in the channel. However, many clients leave this option off by default; you may wish to enable them for convenience.

Highlighting

Most clients will provide a means to automatically highlight text in the channel containing words that you specify, or messages with your nick in. For example, if my client was set to look for my nick and the following message was typed to the channel:
 <Spike> uilleann: this message is for you
 or <Spike> uilleann: so is this one

it might be highlighted, like one of the messages shown above. Some clients will also show that a message containing your nick or other matched text has arrived by lighting up the channel bar tab in a different colour, or by playing a sound. The main problem with having it look for your nick, though, is that of when people abbreviate it (or misspell it). Using tab nick completion is a good way to help this system to work.

Highlighting is of most use for picking out messages meant for you in large channels with multiple concurrent conversations in progress.


Life in IRC [ Contents ]

Things to note | Security

Things to note [ Up ]

Idling
Also known as lurking, this refers to when people in the channel are not actively participating in the discussion. They may be watching in silence, or may not even be reading the channel – they may doing work in another program, eating dinner or may even be in bed asleep. Thus, when you walk into a channel and see names in your userlist, don’t assume that any of the people listed are actually active in IRC, or even at their computer.

Security [ Up ]

Invisibility
The command /list will list all (or a specified selection of) the channels on the network, and the command /names channel will list all the occupants of the specified channel. Between them, you have access, without actually joining any channels, to the name of everyone on the network, for which you can get further details using /whois (including their DNS name/IP address) and to whom you can then send unsolicited private messages. The SlashNET Web site also makes usernames available publicly.

From my experience, unsolicited private messages are not generally an issue, and I like to be visible on the Web site and in /names lists. However, for anyone who wishes to not be listed outside of the channels in which they are present, there is an option called invisibility. This option does not literally make you invisible in channels, but rather prevents your name showing on the SlashNET website and in /names and /who lists. This option takes the form of a user mode – mode i. To go invisible, use /umode +i (if your client supports it) else use /mode nick +i. For having the client make you go invisible each time you connect to IRC, most clients provide an option in the IRC network settings dialog for invisibility, marked as either “invisible”, “+i” or both, which you can select. Otherwise, add a mode change command to your on-connect commands list for SlashNET in your client.

Cloaking
Even if you use the above invisibility option, the IRC network can still make your DNS name or IP address known to everyone on the channel. Firstly, on joining a channel, something like the following can be seen in some clients – the part after the @ is the person’s IP address or DNS name:
 *** uilleann (~telcontar@host-130-102-45-80.south.cable.com) has joined #joyoftech

Not all clients will show a user’s IP address or DNS name with channel joins, but you can still read off a user’s IP address or DNS name from doing a /whois on them. Quite why the IRC system does this, I do not know, but what is clear is that unscrupulous users can have access to everyone’s IP address for performing hacking and DOS attacks. Fortunately, SlashNET offers a service called “cloaking”, which replaces the first section of your IP address or hostmask with a “hash” – a special string of characters, e.g. “telcontar@cloak-F80F8E5.south.cable.com”. Existing #joyoftech-ers note: now that SlashNET has migrated to the Unreal IRC server, cloaking is automatically enabled by default on all SlashNET servers, and uses mode x instead of mode z. You should no longer perform /umode +z on connect any more.


IRC etiquette [ Contents ]

Pinging | Idling | Away status

Pinging [ Up ]

Despite the fact that pinging people on the channel to measure lag seems a useful thing to do, it must be noted that some people either take offence to being pinged, or at least wonder what you are up to, so you may not want to ping people unless really necessary.

Idling [ Up ]

When you are present in an IRC channel, your name will show up in the userlists of clients of people in the channel, and this causes people joining the channel to assume that you are present and active in the channel. Now, it cannot be expected that people remain continually active in a channel (participating in the conversation), for any number of reasons. However, if you are knowingly going to be not paying attention to the channel for a notable length of time, then it would be polite to make this clear by a nick change, or if necessary, by leaving the channel. Going off to bed and leaving yourself sat in the channel as though you were still present isn’t particularly helpful.

Away status [ Up ]

Another useful facility is the ability to change your nick in order to indicate away status. While this is OK in a small channel, it is apparently not tolerated on larger channels (that is, with over 30 people), because of its potential to flood the channel with annoying nick-change messages. Geek Culture channels are sufficiently small for it to be acceptable, so this is just a note for those exploring other channels and networks. Note that you may have to disable your client’s automatic nick-change facility if it has one.


More advanced topics [ Contents ]

Nick registration | User and channel modes

Nick registration

Previously, it was discussed that you do not own a nick, but your client merely selects it afresh each time you connect. There is a system provided, however, called NickServ, which allows you to register your nick. NickServ is a special user, a bot, set up on SlashNET and most other IRC networks, which provides nickname management and user information services. You can use NickServ to register your nick on SlashNET as your own, and once you’ve registered it, use it to kick other clients that are currently using your nick. Potential situations where this may arise include after you’ve lost your connection (client crash or Internet connection drop) and have reconnected before the server has timed out your previous connection, and want to get back the nick that the other connection is using, or if someone else has stolen your nick and refuses to give it back.

You communicate with NickServ by sending it private messages with the /msg command (described in more detail under Using IRC), containing commands.

The first step to using NickServ is to register your nick with the bot, providing a password for future authentication. This is accomplished by sending a REGISTER password command to NickServ in a private message. For example,
 /msg NickServ REGISTER 12345

would register your current nick with the NickServ bot, and would set your NickServ password to “12345”. NickServ would reply with something like:
 -NickServ- Nickname myNick registered under your account: me@*.south.cable.com
 -NickServ- Your password is 12345 - remember this for later use.

This password will be used in future interaction with the NickServ bot to authenticate yourself. I am uncertain what then ‘account’ part does, but it seems to be a record of your current connection information – your IRC username (not nickname) and the DNS name or IP address of your computer. This information may be used later on for authentication purposes, but it is safe for you to ignore this information.

Once you have registered your nick with NickServ, it will inform you upon login (every time!) that you are using a registered nick and that you must identify yourself to NickServ. To identify yourself, use the IDENTIFY password command. For example, if your password was “12345”, you would type:
 /msg NickServ IDENTIFY 12345

and NickServ would reply with something like
 Password accepted - you are now recognized.

Because you will wish to issue this command every time you connect, you may wish to make it one of your client’s connection actions, along with your /join commands.

As mentioned earlier, the main purpose for registering with NickServ is to kick another client that is already using your nick. There are two ways to do this, depending on whether you want to kill someone else’s connection (which is using your nick) or whether you want to kill your own. The process of killing someone else will work for either, but it is one step longer to perform. The two alternatives for recovering your nick are explained below; for each, assume your regular nick is myNick and your NickServ password is 12345.

To kill your old, dead connection: Issue the command GHOST nick password to NickServ. This will instruct the IRC server to close the old connection. For example,
 /msg NickServ GHOST myNick 12345

To kill off an impostor’s connection: This is a two step process – first you must recover the nick from the client (which kills their IRC connection), with the RECOVER nick password command, and then request NickServ to release the nick so that you can reclaim it, with the RELEASE nick password command (you may wish to use /msg NickServ HELP RECOVER for more detailed information on how RECOVER and RELEASE work). For example:
 /msg NickServ RECOVER myNick 12345  (to kill the client using the nick myNick)
 /msg NickServ RELEASE myNick 12345  (to have NickServ release the nick)

Once you have used one of the above options, you will want to regain your old nick and indentify yourself with NickServ, e.g.:
 /nick myNick  (to switch back to the the nick myNick)
 /msg NickServ IDENTIFY myNick 12345  (to identify yourself to NickServ)

Because of the complexity of this operation, it takes rather a lot of typing; if your client supports aliases, shortcuts or scripting, you may wish to place these commands into such a facility for future use.

For more info on NickServ (there is a lot more that you can do with the bot that is beyond the scope of this guide) just type /msg NickServ HELP. Two features to note are storage of personal information (e.g. Web site and e-mail address) with NickServ for people to access, and automatic disconnection of anyone else using your nick (“kill protection”) if they do not identify). Another little perk of registration is an info page on slashnet.org, at the address http://www.slashnet.org/users/nickname, where you can put personal details, including a URL to a photograph of yourself. To log in to post these details, visit http://www.slashnet.org/users/.

Finally, note that NickServ commands are not case-sensitive – /msg nickserv identify password would also work, for example, but the capitalisation is chosen to match NickServ’s help.

User and channel modes [ Up ]

Each user and channel on IRC can have one or more modes applied; these modes reflect permissions or restrictions granted to users and channels, and to other aspects of IRC activity. Modes are identified by single letters (such as m or v), and are set with the command /mode, with a + prefixed to the mode letter to apply a mode, and a - prefixed to the mode to remove it. Consequently, modes are generally shown preceded by a + to show that they are in effect.

Some common and useful modes are given in the table below:

Channel modes
These are set by channel operators.
+t Topic locked: only channel operators can change the topic of the channel.
+n No outside messages: people who are not in the channel cannot send messages to the channel.
+m Moderated: only voiced users (users with mode +v) can speak in the channel.
User modes
The following modes do not relate to a channel.
+i Invisible: your nick will remain secret unless guessed and looked up with a /whois or until someone joins a channel which you are present in. It cannot be found from getting a list of people in a channel when you are not in that channel – your nick will not show up in such a list. (See under invisibility for more information.)
Per-channel user modes
The following modes are channel-dependent, and are set by a channel operator.
+v Voiced: if the channel is made moderated (+m), you will be permitted to speak in the channel. Some clients denote voiced status of users by placing a + sign in front of their name in the userlist; this is the standard IRC symbol.
+o Channel operator: indicates an operator (“op” for short) of the current channel – a user given responsibility over maintaining order in the channel, and powers to ensure that such order is kept. Some clients denote ops by placing an @ sign in front of their name in the userlist; this is the standard IRC symbol.
+b Banned: you are banned from re-entering the current channel. You are usually kicked out after this mode is set.

To set user modes, use the generic mode command with your current nick: /mode nick mode, or the user mode command /umode mode. /umode is easier but not all clients offer it – if not, then you will need to use /mode. For example, to apply invisibility, use:
 /umode +i  or
 /umode uilleann +i

To disable invisibility, you would type:
 /umode -i  or
 /umode uilleann -i


When things go wrong [ Contents ]

Lag | Net splits

Lag [ Up ]

Because an IRC network is a large collection of servers, messages from a person to a channel have to be routed across the network to users in that channel connected to all the other servers. When there is network congestion across parts of the network, messages from some people in the channel start getting delayed, first by seconds, and then minutes, and maybe up to half an hour or more. This makes for rather interesting conversations.

You can measure the time taken to for a message to reach a user and back, by using /ping [nick | channel]. For example,
 /ping uilleann

might return
 *** CPING time for uilleann: 0.150 seconds

This means that it takes 150 milliseconds for data to be sent to me and back. If this time gets too large and conversation is being affected by this lag, you could issue /server server to reconnect to IRC using the server to which the people, or some of the people, with whom you are chatting are connected, reducing the lag. You can also use /ping on a channel to send a ping to everyone in the channel, e.g. /ping #joyoftech.

Net splits [ Up ]

Sometimes, due to either software or hardware failure, network congestion, or malicious practice, two servers on an IRC network become disconnected from each other; this often happens after a bad case of network lag. This causes the IRC network to split up, with each side seeing all the people on the other side of the disconnection suddenly leaving all channels that you are on. For example, you might see:
 01:21 am: *** misterboo has signed off (vortex.slashnet.org area51.slashnet.org)
 01:21 am: *** iLoveMyDualG4 has signed off (vortex.slashnet.org area51.slashnet.org)
 01:21 am: *** spungo has signed off (vortex.slashnet.org area51.slashnet.org)
 01:21 am: *** CyberShoe has signed off (vortex.slashnet.org area51.slashnet.org)

With some networks, including SlashNET, each person who departs will have the two servers that became disconnected as their signoff message. You could try to reconnect to their side of the split with /server, or you can wait for the two servers to become reconnected, whereupon everyone who left will suddenly rejoin the channel.

[diagram of an IRC network]

In the example IRC network shown above, if the server in the USA and the server in the UK became disconnected, then a user in Germany would see everyone in the USA, Mexico, Canada and Norway suddenly sign off from IRC. On the other hand, someone in the US would see everyone in the UK, France and Germany sign off. This sort of occurrence is pretty rare on a small network like SlashNET, but it used to happen rather more often when I frequented Undernet.


Appendix A – SlashNET IRC servers [ Contents ]

Name Location
area51.slashnet.org Manchester, Maryland, United States
moo.slashnet.org San Francisco, California, United States
pinky.slashnet.org Fremont, California, United States
radon.slashnet.org Quincy, Massachusetts, United States
vortex.slashnet.org Launceston, Tasmania, Australia
coruscant.slashnet.org Zeist, The Netherlands, Europe
irc.slashnet.org Random SlashNET server
us.slashnet.org Random US SlashNET server
eu.slashnet.org Random European SlashNET server
au.slashnet.org Random Australian SlashNET server

A note on random servers: If you enter in a server name such as irc.slashnet.org, then each time your client goes to connect, it will find itself connected to a randomly chosen server from the SlashNET network. This is why the console will show a server name such as pinky.slashnet.org even though you typed in irc.slashnet.org when you set the client up. The advantage to random server selection is that connections are spread across all the servers automatically, and users don’t all connect to, and overload, the first server in the list, for example. You need not worry about the details of this, though.

For anyone curious to know how this works: the random servers are just rotating DNS records. This means that irc.slashnet.org (and so on) map to a series of IP addresses of all the servers in their group (all servers on the network, or just the US servers, and so on), and the order of the list of addresses is rotated. When your client does a DNS look-up for irc.slashnet.org, it will just use the first IP address from the list, which will be different each time.

You will notice, though, that the random European and Australian server entries are a bit pointless.


Appendix B – IRC clients [ Contents ]

Any | Mac OS classic | Mac OS X | Windows | *NIX | BeOS | Win CE

The table below lists a large variety of IRC clients available for various operating systems (OSes). This is not a comprehensive list – existing IRC users are encouraged to supply names and URLs to clients not listed here, and to submit ratings and comments about the clients, and walkthrough pages (or URLs to existing walkthrough pages) for those that they use if they know of one; I do not have the opportunity or time to look into every client for every OS. See the Feedback section if you have info to provide, and anyone wanting to write a walkthrough for their client should see the guide on making walkthroughs. Updated screenshots and walkthrough information for when clients are updated is also welcome (also covered in the guide). (Note: ratings are shown with *s, followed by the count of people who submitted votes in parentheses)

OS Client License Rating Walkthrough Comments
Any SlashNET Java IRC walkthrough Good for testing the waters, but takes some time to load and does not remember your settings.
ChatZilla GPL Supplied as part of Mozilla; this is beta software.
Mac OS classic ShadowIRC 1.1 GPL ***** (1) walkthrough Fast and efficient but not for beginners
Snak $20 walkthrough
AthenaIRC free/$10 walkthrough A good client for beginners, but a bit buggy. The basic program is free, but the MiniConnect feature requires registration.
Ircle $20 walkthrough Comprehensive
Mac OS X JoyChat free walkthrough Beginner’s client – opens directly into SlashNET #joyoftech.
Minerva $10 The successor to AthenaIRC; beta. Accepts AthenaIRC registration codes.
AthenaIRC free/$10 **** (1) walkthrough A good client for beginners, but a bit buggy. The basic program is free, but the MiniConnect feature requires registration.
X-Chat Aqua GPL ***** (1)
Ircle $20 walkthrough Comprehensive
Snak $20 *** (1) walkthrough
BitchX GPL? *** (1)
Jedi Knight 2.0 Potentially troublesome
Fire GPL Potentially troublesome; also does AIM, ICQ etc.
ShadowIRC 2 GPL Only available as an alpha from SourceForge
Note that *NIX clients can be run under Mac OS X with X11 installed.
Windows mIRC $20 Comprehesive and popular, but can be very confusing.
HydraIRC Free
X-Chat GPL walkthrough
leafChat $20
Klient $24.95
Bersirc Free
Visual IRC Free
XiRCON Free? walkthrough Obsolete, minimalistic client
Trillian free/$25 Also does AIM, ICQ etc. The older version is free, the new Pro version is shareware. Buggy.
Gaim GPL walkthrough Also does AIM, ICQ etc. Quirky interface for IRC.
BitchX GPL?
*NIX X-Chat GPL walkthrough
Gaim GPL walkthrough Also does AIM, ICQ etc. Quirky interface for IRC.
KVIrc GPL?
IrcII open src
irssi GPL?
BitchX GPL?
KSirc GPL?
LostIRC GPL?
BeOS Bowser GPL?
Windows CE IrcCE $14.95

Appendix C – Glossary [ Contents ]

Term Meaning
channel The term used to refer to chat rooms on IRC networks. Channel names are generally (read, “always”) preceded with a #. Anyone is free to create channels on the network using /join channel
console This is the window or tab where messages recieved from the IRC server are displayed. On connecting, you will see a torrent of messsages arrive in here, but don’t panic – this is normal. Much of the information is of no interest unless you have problems connecting, although you may want to read the message of the day at least once (note that it does not change every day, if ever).
CTCP “Client-to-Client Protocol” a system for letting users make requests for information from another person’s IRC client, such as to get the person’s IRC client name and version, or their local time. Pings work over CTCP, too, and it can be possible to request the current tune the person is listening to with certain set-ups.
DCC “Direct Client-to-Client” a system for working with direct connections made from one IRC client to another (data in a DCC connection does not go via the IRC network). There are two types of DCC connection – chats and file transfers. DCC chats will let you open a private chat connection which avoids server lag; DCC file sends let you send files to other IRC users. Firewalled users will need to open one or more ports in order to open DCC connections.
inputline This is the text box, sometimes inside a floating window, where you type text to be sent to a channel or to a person. You also use this to enter IRC commands.
join The name given to the act of entering a channel. To leave a channel is to part.
lag Delays in routing messages across the IRC network due to network congestion; messages from people in the channel will take a while to arrive at others’s machines, making conversation difficult. More under lag.
nick Short for nickname, this is the name by which you are known when on IRC. You can call yourself whatever you like (within limitations), but bear in mind that someone might already have chosen that name, and it is polite to let them keep it and choose something else. You can protect your nick from being taken by someone else on SlashNET by using NickServ.
op Short for operator, this is someone who is “in charge of” a channel, to maintain order if things get out of hand, such as to kick out people who have entered to cause trouble.
part The name given to the act of leaving a channel. To enter a channel is to join.
ping

To ping is to send a little piece of data to another machine, to see if the machine is still accessible (that it has not crashed, or that there is no network problem preventing you seeing it), and to have the machine send a reply so that you can time how long it takes for data to reach that machine and come back. The IRC server will ping your machine every few minutes to check that you’re still running and connected, and you may see your client reporting these pings, typically shown in the console. This is normal behaviour, alhough many clients don’t trouble you with it. If a machine seems to have become unreachable to the server (that is, if a pong is not received from the machine after a certain period of time, usually a few minutes), you will see the server sign them off with a “ping timeout” message; otherwise, they would end up being logged on forever, long after they’d crashed out or become disconnected.

You can also use the /ping command (syntax: /ping [nick | channel]) to ping other IRC users, to check for lag (pinging a channel pings all users in that channel) – your client will report how long it takes for data to reach them and return. If this period is more than a second or two, then you have a problem with lag. Bear in mind, though, that clients typically reveal when another user has pinged you, and some people don’t appreciate being pinged.

pong The message sent in reply to a ping.
topic A channel can have a topic assigned to it. It’s meant to indicate the current topic of conversation, but is typically used to hold a pertinent URL for people to see, or some other message someone wanted to show off. In #joyoftech, it lists the URL and theme of the current Joy of Tech cartoon. On Mac clients, the topic is often shown in a bar at the bottom of each channel window, and in mIRC, it’s shown in the window’s title bar.
userlist A list of the current occupants of a channel, generally shown in the window, pane or tab of that channel in your IRC client.

Appendix D – Command reference [ Contents ]

Below is listed a selection of both common and more obscure IRC commands, for reference; links to the appropriate sections of the guide are provided with many entries for further information. You will notice that all command names are followed by extra information – these pieces of information are called ‘arguments’ or ‘parameters’. Where arguments are shown in italics in the table below, they are placeholders for what they describe. For example, where you see nick, you would replace this with someone’s nick. Arguments enclosed in parentheses () are optional. Where a set of arguments are enclosed in brackets and separated by vertical bars, you should choose one from that set; for example, for [a | b | c], you would choose either a, b or c. Don’t forget to include the # in channel names.

Command Purpose
/away (reason) With a reason specified, marks yourself as away, otherwise removes your away status.
/ctcp nick [time | version | ping] Request the local time or client name and version of the specified person, or ping them (same as /ping).
/ignore (-)nick Ignores channel messages and private messages from the specified person, or, with a - given, stops ignoring them.
/join channel Joins the specified channel.
/me action Causes IRC to indicate that you performed the given action.
/mode nick (mode) With your nick, view or change your user mode. /umode is easier if supported.
/mode channel (mode) (user (user …)) View or set channel modes.
/msg nick message Sends the message privately to the specified person.
/nick nick Changes your nick to the nick specified.
/notify (-)nick Tells your client to inform you when the given person signs on or off, or, with a - given, requests it to stop informing you.
/part (channel) (reason) Parts (leaves) the current, or specified, channel, optionally specifying a reason to be passed on to the channel.
/ping [nick | channel] Ping the user specified, or all users in the channel specified.
/query nick Opens a query window to the specified person.
/quit (message) Signs off (disconnects from) IRC, optionally providing a quit message. May also quit the IRC client. See also /signoff.
/server server Disconnect from IRC and reconnect using the server name specified (such as when there is lag).
/signoff (message) Signs off (disconnects from) IRC, optionally providing a quit message. See also /quit.
/topic channel topic Change the topic of the given channel to the topic specified. There is no need to enclose the topic in quotation marks.
/umode (mode) Apply the user mode change specified to yourself, or list your current user mode; not supported on all clients.
/whois nick (server) Obtains information about the specified person, such as their name, hostmask, and server. If you enter their nick in as the server argument, it will also return their idle time.

Feedback [ Contents ]

Comments? Suggestions? All feedback, both from experienced IRC users and newcomers, is welcome. Send any feedback by way of e-mail, AIM, ICQ (108315622), or in IRC (SlashNET #joyoftech).

uilleann, 21st June 2004; thanks go to Snaggy, Air, Lex, firesnake, Shinaku, and Noldoaran (Robb) for info, MacManKrisK for the basis of the NickServ section and for proof-reading, and dragonman97 for suggestions.
Geek Culture® is a registered trademark of GeekCulture.com and is used with permission.

Satellite pages maintained by Tut-an-Geek. Originally created by uilleann.