Chapter 1. Connecting to IRC

Introduction: Hacks #1-4

One of the great features about IRC is its accessibility. You can connect to any IRC network using an IRC client (read: application). For many users, the IRC client is the friendly face of IRC, allowing you to chat with individuals or groups of users. IRC clients are available for virtually all operating systems. In fact, several different IRC clients are available for Windows, Linux, and Mac OS X, so you are spoiled for choice if you have time to experiment with all available choices.

This chapter will show you how to use some of the most popular IRC clients to connect to IRC. Later hacks will then show you how to go beyond the basics and enhance the functionality of some of these IRC clients by exploiting existing features and writing your own IRC client scripts.

IRC from Windows

Ask any Windows user what he uses to connect to IRC, and the chances are he will say mIRC.

mIRC is undoubtedly the most popular IRC client for Windows, offering lots of tools, functions, and features. mIRC is shareware, but this fact has not dampened its success over free clients such as Bersirc (http://bersirc.free2code.net) and ChatZilla [Hack #4] . This can be partly attributed to its ease of use, but seasoned IRC users will also find that it provides all of the powerful features they want. mIRC provides extensive scripting support, and thousands of mIRC scripts are available on the Web. mIRC is under active development.

You can grab mIRC from http://www.mirc.com. Like most Windows software, installation is quite straightforward, and it will offer you the chance to create a desktop icon to run it. The first time you run mIRC, it will pop up the Connect dialog automatically, where you must provide some details (as in Figure 1-1).

mIRC Options dialog box
Figure 1-1. mIRC Options dialog box
Full Name

This is where you can specify your full name (if you want!). Because this is visible to all other IRC users, most people try to protect their anonymity to some extent by entering something funny instead.

Email Address

This is obviously useful if you want other IRC users to be able to contact you, but most people tend to enter fake addresses for fear of spam.

Nickname and Alternative

Here you can specify your nicknames. Whenever you say something on IRC, it will appear to come from your nickname. Because all nicknames on an IRC server must be unique, the dialog requests an alternative nickname, as somebody else may already be connected and using your preferred nickname.

If you are ultraparanoid about your privacy, then make sure you leave the Invisible Mode checkbox ticked. This will make it harder for people to find you, unless they know your nickname or are in the same channels as you.

Click on the OK button, and you will be faced with the main Status window. Messages from the IRC server typically end up here. freenode is an IRC network where many people gather to discuss peer-directed projects, and it is often a good place to ask questions about Java, Perl, PHP, and other programming languages. You can use the freenode IRC network by entering /server irc.freenode.net into the Status window. After a moment, you will be connected to one of the servers in this IRC network.

When you join a channel by typing /join #irchacks, you will see a new window appear inside mIRC. This will be used to display all messages sent to that channel. It also contains a list of all users in that channel, as shown in Figure 1-2. Typing a message and pressing Enter will cause your message to be sent to the channel and received by all of these users.

Using mIRC
Figure 1-2. Using mIRC

You can send a private message directly to another user by double-clicking on her nickname. This brings up a new window in which you can talk directly to that user.

As you become more experienced with mIRC, you will probably feel like exploring the configuration options. With these, you can change colors, fonts, aliases, pop-up menus, and sounds and use advanced scripting features. Some of the hacks later in this book will show you how to get the most out of mIRC.

IRC from Linux

XChat is a popular IRC client with a graphical user interface. You can download the source code or precompiled binaries for a variety of platforms.

XChat can be downloaded from http://xchat.org, either as source code or in the form of precompiled binaries or packages. If you have a packaging system such as apt or Gentoo’s emerge, then you may be able to get away with apt-get xchat or emerge xchat.

Nicknames, Usernames, and Real Names

When you first run XChat, you will be presented with a Server List dialog box. The first task is to go down to the bottom and select Edit Mode. From there, you can see all your server settings. Next examine the top area marked Global User Info. The top three boxes are for your nickname . Most of the time, you will connect with your first listed nickname; however, if that name is already in use by another user, it will try again with the second and then with the third. You shouldn’t make these the same, but they can be close variants, for example:

Bob, Bob_, Bobby
Foo, FooBar, Foo_Bar
CoolDude, Cool_Dude, Kewld00d

Your username is used internally by the server to form your host mask, although some servers will try to use an Ident call [Hack #80] to look up your username instead. Your chosen username will be used if the Ident call fails. You can use your nickname, an alternate nickname, or just about anything you want here—although it may be truncated and must not contain any special characters. Your real name can also be anything you want, but it can be longer and can include spaces. As an example, your IRC nickname might be “Han” with username “solo” and real name “Harrison Ford.” Be as creative as you like.

Server Configuration

The next step is to configure your servers. XChat comes with a lot of servers listed, and it may already have the one you want; if not, you can click Add above the list of servers to create a new one. This will create a New Network. To rename this network to something more informative, slowly click it twice (don’t double-click, as that will make XChat connect to the server). Once you’ve done this, you should look at the list of Servers on the far right. This is a list of servers; each server is of the form server/port. Your network will be set with newserver/6667 and, unless you’ve explicitly set one up on your local network, chances are there is no server called “newserver.” So instead, click on this, and replace it with the address and port of the server you want. If you leave off the /port portion, the default port number of 6667 will be used. Most IRC servers will let you connect to this port, and many will even have alternative ports as well. Here are some example servers:

irc.freenode.net
irc.worldirc.org/6660

Finally, if you know what channels you want to connect to, place them in the Join Channels box. Use commas to specify more than one channel, for example:

#wikipedia,#java,#gimp,#jibble

You are now ready to connect to an IRC server. Click the Connect button and wait until you are connected. If you’d like to connect to another server as well, return to the list with Ctrl-S, or use the menu: XChatServer List. Select the new server from the list, but this time use Connect in a New Tab to create a separate tab for this new server. If you forget to do this, you will disconnect from your current server and connect to the new one in the existing tab.

Advanced Options and Autoconnects

If you use IRC only occasionally, you probably won’t mind picking your favorite network from the list every time you start XChat. But if you connect to several IRC servers regularly, you’ll probably want to connect to all of them automatically. To do this, select the network from your server list and check Auto Connect at Startup. If you do this, you may also want to check the No Server List at Startup option.

Setting Up Autologin

If you’re on a standard IRC network, you can usually set yourself up to automatically log in by specifying a Connect command in the server details screen. For example:

msg nickserv identify password

Notice that this command does not begin with a / character. If you’d like to use more than one command here, you need to set up a user command (as described later) with multiple entries and type its name here instead.

Selecting a Stable Server

Most IRC networks are made up of more than one server; many will list these at the network’s web site. In most cases, you will connect to a round-robin server, which will automatically pick a server and direct you there. Generally, you won’t need to change this, but you may sometimes want to connect to a specific server. If you find a particular server that behaves more stably that any of the others, you can set the server of your choice at the top of the server list for your network. You can then click the Add button to add another one in case your preferred one is down. For example:

Klagenfurt.AT.EU.WorldIRC.org, Bleisen.DE.EU.WorldIRC.org, irc.worldirc.org

Different Nicknames on Different Networks

If you want to use a different nickname on a certain network, select the network in the server list and uncheck Use Global User Info. You can then fill in a nickname, username, and real name for this server.

Setting Up the User Interface

The XChat interface can be customized in a number of ways. The first few are simple visibility options. Right-click a blank area in the IRC window, and you can select on and off options for the menu bar, topic bar, mode buttons, and user list buttons. Select whatever combination makes you happy. The next set is available from the menu bar or the right-click menu, SettingsPreferences. There are far too many preferences to detail here, so you may like to play around with them and see what you can achieve. Here are some items worth noting:

Interface/Text Box

Besides setting the colors and fonts for chatting, the checkboxes also affect the way you see your chat. Try turning on Nick Coloring or Timestamp, for example, or perhaps you prefer to turn off the Indented Nicknames feature?

Input Box

The Nick Completion Suffix is used for two things. First, if you type a partial nickname at the start of the line and press the Tab key, XChat will attempt to complete the nickname and add this suffix to it. Second, if you check Automatic Nick Completion, whenever you type a partial nickname followed by this suffix, XChat will replace it with the full nickname.

User List

The Lag Meter and Throttle don’t take up much room and are informative; it is a good idea to set this to Both. Here you can also change the user list sort order or set a double-click command.

Tabs

Tabs are used to store channel and server windows. This lets you adjust the layout of your screen and how you use tabs.

Colors

These settings let you change the colors of your text box and user list.

Chatting/General

Here you can set the default messages for when you quit IRC, leave a channel, or go away. You can add words that will trigger the highlight/beep feature. Also, if you don’t like the way XChat announces your away messages, you can uncheck that here.

Logging

If you wish to log conversations (for reference or for generating IRC statistics), you can check Enable Logging of Conversations here. You shouldn’t change the other options unless you know what you’re doing, especially if you want to use a third-party program to generate statistics.

Network/Setup

Most users won’t need to make any changes to the settings here, but there are some useful options for file transfers. This lets you change where XChat places incoming files or adjust the speed at which the files are transferred. If you are behind a firewall, you can also restrict the DCC ports used when you send files.

Hacking XChat

Here are some neat hacks you can do with XChat:

Tab in a window

If you want to remove a tab and give it its own window, press Ctrl-I. Press them again to place it back as a tab. You can also right-click on the tab and select Detach Tab. If you’d like to change the default behavior of windows and tabs, see the Preferences dialog box under the Tabs section.

Per-channel options

Right-click on a tab, and choose the Channel Name submenu. You can turn off join/part messages for the busy channels, set the channel to beep on activity for the important but quiet channels, or allow color pasting in the channel.

All-server commands

If you’d like to set up a command to go to all your servers or all your channels, type /allserv command or /allchan command. For example:

                  down south in Dixie

This will set your status to Away (and your away message to “down south in Dixie”) for all of the servers you are connected to.

Use colors

Many people recommend that you don’t use colors. They’re more often abused than used effectively. Many consider them to be garish and ugly. Furthermore, they’re not IRC standards, they’re not supported by all clients, and you can’t even tell whether another person’s IRC client has a white background or a black one. However, if you find you simply must use color codes:

%C##

Typing this as part of a message will cause it to be interpreted as a color code. The ## must be replaced with a two-digit number (see SettingsPreferences Colors for the list).

%B

This will make a message bold.

%U

This will underline your message.

%0

This will set your output back to normal, using the default color.

Alternatively, you can right-click the channel tab and select Insert mIRC Color Code.

Display output with /exec

Under Unix and Linux systems, you can display output from any command that you run. For example:

                  /exec uptime

This will execute the uptime command and show your system’s uptime and load averages. This, however, is displayed in the window and not sent to the IRC server. If you want to brag about your system’s uptime, though, you can do this:

                  /exec -o uptime

The output will now be sent to the IRC channel you’re currently active in.

You can also call commands that do not immediately exit. For instance:

                  /exec -o tail -f 
                  /var/log/httpd/access_log

This will print the accesses to your web server as they occur, if you really need to. You can even send input to the command with /execwrite, stop it with /execstop, resume with /execcont, and kill it with /execkill.

Be careful what programs you call. /exec -o yes or /exec -o cat /dev/urandom, especially in a DCC chat, will probably crash XChat, and they are generally considered silly things to try. Having heard that, you’ll probably want to try it just to see what happens.

Setting up auto-replace strings

An auto-replace is a string of text that gets automatically replaced with another. For example, XChat will automatically replace “teh” with “the” as you type it. To review or change this behavior or add new auto-replace options, go to SettingsListsAuto-replace. To add a new option, click the New button and then edit the New and EDIT ME regions. For example:

billy => Over and Under General War Commander Sergeant Billy Goat-Legs

Now, whenever you type in billy followed by a space or Enter, you’ll see his full title appear.

Setting up user commands

Setting up a user command in XChat is simple. First, go to SettingsListsUser Commands. Click Add New, and choose a name. Then you can type in your command. You can click the Help button for a list of substitution strings. Here’s an example:

whine => me whines, complains, and makes a nuisance of himself.

Now, go to your least-favorite channel and type /whine. You’ll be making yourself feel unwelcome in no time.

You can also give your commands arguments:

greet => me greets %2 in the manner of the Courts of Chaos.

You can now stab your friends in the back—erm—greet your friends with a flourish, with a simple command, like /greet Corwin or /greet JackBauer.

If you want the rest of your string to be used as an argument instead of just one word per argument, you use the & character:

hero => say &2 is my hero!

Now, with a simple /hero Linus Torvalds, you can cast your vote in support of free software!

Commands can be multiple action as well. They will be performed in the order listed, for example:

rofl => me is on the floor
rofl => me is rolling around...
rofl => me is laughing!!!

You can call external commands with the /exec command detailed earlier. For example, to counter those annoying mIRC “sysinfo” scripts, you could try this:

sysinfo => exec -o uname -a && uptime &&df -h | egrep "(hda1|hda3|hda5)"

If you have other system information scripts, you can call them instead of, or in addition to, the ones found here.

Tip

It is inadvisable to call exec multiple times in a row, because XChat can be running only one process per text box at any time.

Customize messages/colors and set sounds

You can change the message format and colors of any event in IRC or assign a custom sound to play. First, go to the SettingsListsEvents menu. Then find the event you want to change.

For example, to have a sound play whenever the topic changes, you would select Topic Change and enter a path to a sound file.

If you want your messages to be surrounded with, say, yellow square brackets ([]) instead of purple pointy brackets (<>), select Your Message and enter:

%C8[%O$1%C8]%O$t$2%O

The arguments to each message ($1, $2, etc.) are listed below the message as you select them. $t refers to the tabbed line, if you have Indented Nicknames on. %C, %B, and %O are color codes, as described earlier.

One often-requested format change is to display an @ in front of operators and a + in front of voiced users. To do this, modify the Channel Message format string like so:

%C2<%O$3$1%C2>%O$t$2%O

$3 will display an @, +, or nothing, as appropriate.

Add user list buttons and menu commands

Assuming you have the user list buttons turned on (right-click empty space, then select User List Buttons), you can add buttons to this list or to the user list pop up (which appears when you right-click a username in the chat window or the user list). The syntax for such a command is the same as for a user command, except the name of the command is used for the label of the button or the menu item, and there are more substitutions available. Use existing entries as guidelines if you want to.

Add CTCP replies

Care to set up some useful information for CTCP? Want to mess up people who PING and VERSION you? Using SettingsListsCTCP replies, you can set it up to do anything when someone sends you a CTCP message. In general, use the same guidelines as the other lists (and see Help for useful substitutions). Note, however, that the proper way to send a reply is:

nctcp %s (query) (result)

So a sample reply to a TIME request would be:

nctcp %s TIME Sat Nov 12 22:04:00 1955

This will ensure maximum compatibility with other clients.

Thomas Whaples

IRC from Mac OS X

Several IRC clients are available for Mac OS X. Check them out for your favorite features.

There is no shortage of IRC clients for Macintosh users. ChatZilla [Hack #4] , the truly outstanding IRC client integrated into Mozilla, is popular among Mac users and can also be used on other operating systems. Non-Mozilla users have many alternatives, too. Some applications, such as Fire (http://fire.sourceforge.net), combine IRC chat with ICQ, AIM, and JabberIM. However, because the features of IRC are different than the set for other chat applications, IRC users may find themselves frustrated with these programs. The server-channel model is not clearly supported, and sending standard IRC commands is difficult when they are not all fully supported. One of the friendliest and three of the more popular, and more powerful, IRC clients available for OS X are presented here: Conversation, X-Chat Aqua, Snak, and IRCle.

Conversation

Conversation (http://www.conversation.pwp.blueyonder.co.uk) is about as close as you’ll come to using iChat for IRC. It sports a rather iChat-like look-and-feel (Figure 1-3) with just about everything accessible through an intuitive set of buttons and switches and drag-and-drop support throughout. A Favorites list holds your best buddies and preferred channels so you can just log on and click your way to conversation. A Recent Channels and Users list helps you find that person you were chatting with yesterday or where you had that fabulous conversation last week. Or just set things up so you automatically log in and join your various discussion channels automatically.

Conversation, an iChat-like IRC client
Figure 1-3. Conversation, an iChat-like IRC client

While you’re best off comparing and contrasting Conversation’s feature set with the other clients covered here, it’s a good bet you’ll find it an intuitive vehicle for your first foray into IRC.

X-Chat Aqua

X-Chat Aqua is an OS X version of the popular Unix IRC client, XChat. It is freeware that can be downloaded from http://xchataqua.sourceforge.net.

When X-Chat launches, you are prompted to enter nicknames and personal information and to choose a server in the Server List window (see Figure 1-4). A list of networks is provided by default, and you have the option to add to the list. Once nicks and server are selected, clicking Connect will connect and open a server window.

The initial server list popup in X-Chat Aqua
Figure 1-4. The initial server list popup in X-Chat Aqua

X-Chat Aqua can use a tab- or window-based view of channels and servers. The default setup puts each channel in a tab at the bottom of the window as it is joined. Channels can be opened in new windows, instead of as tabs, by using File New Channel Window.

Figure 1-5 shows a connection to the freenode IRC network (shown at the top of the window) and three channels (shown in tabs at the bottom of the window). Channel participants are displayed in the bar on the right. While this window is white on black, colors can be configured to your preferences.

A main window for X-Chat Aqua
Figure 1-5. A main window for X-Chat Aqua

The File menu also has options to connect directly to a new server in either a tab or a new window or to use the Server List to establish a new connection. All commands and messages can be given in the input line at the bottom of each window, and some are also included as selectable options under the User menu.

Snak

The Snak IRC client is shareware that is free for 30 days. After that time, Snak will automatically quit after 30 minutes until it is registered for $20. Snak can be downloaded from http://www.snak.com.

The Server List is the window in the lower-right corner (Figure 1-6). Notice that the #rdfig and #mindswap channels have been grouped into one window, while the server, http://irc.freenode.net, is in a separate window in the upper right.

The main Snak window
Figure 1-6. The main Snak window

The first time Snak is launched, a wizard walks you through the process of creating a nickname and selecting a preferred channel. This information is stored in the Preferences. Connections to any server can be made through the Profile list. This window will come up by default and can also be found in the Windows menu. It lists all of the stored IRC servers with your preferred nick and startup commands. To connect to one of the servers, you can just locate it in the Server List and click Connect.

Docking is an interesting feature of Snak. Channels can be open in separate windows. Using the Dock command in the Windows menu, the windows can be changed into tabs in other windows. This allows you to group multiple channels any way you like; they need not necessarily be docked with the server window. Channels can also be customized by appearance. Each channel window can have its own color scheme, set using Edit Channel Settings.

IRCle

IRCle is a Macintosh-only IRC client. It is available as shareware from http://www.ircle.com. The trial period is 30 days, and all features are enabled during the trial. Registration is $20 and gets rid of the warning messages that will appear when the application is launched.

When IRCle is run for the first time, the Connections list needs to be modified. The Connections window should appear by default (as shown in Figure 1-7) but can also be found in the Windows menu if it doesn’t. There will be 10 default connections—the maximum number of server connections that IRCle supports—and they will all be configured to use the nickname “ircleuser.” To change this, click on a connection and then click the Edit... button at the bottom of the window. This will bring up a dialog box (Figure 1-8) where you can change your nickname, real name, exit message, and other properties.

Connections window in IRCle
Figure 1-7. Connections window in IRCle
Changing your nickname in IRCle Connection Preferences
Figure 1-8. Changing your nickname in IRCle Connection Preferences

To connect to an IRC server with this new nickname, select the connection in the Connections window, and then click the Server... button. A window with a long list of servers will come up. You can choose from that list or click Add to add a new server. Once you have found the server you want in the list, click it, and then click Select. The connection is now configured to connect to the server. Click the Connect button in the Connections window to attach to the server.

The server messages will appear in the Console window. The Inputline window is used to join channels, send commands, and type messages to a channel. Each channel will appear in its own window. Depending on which window is in focus, the Userlist window will change to show the name and participants of the current channel. Private chats established using /query will also get their own window. If someone else sends a private message to you without a separate window, the message will appear in the Console.

The multitude of windows in IRCle, as seen in Figure 1-9, can become overwhelming. A feature called the Channelbar is available to make them a bit more manageable. Found under the Windows menu, the Channelbar puts a bar across the top of the window with buttons for each channel, console, and chat window. Clicking a button brings the corresponding channel to the foreground. Using option-click on a button will hide the selected channel window without disconnecting from it.

IRCle running full screen
Figure 1-9. IRCle running full screen

Now that you know about lots of Mac OS X IRC clients, it’s up to you to decide which one you want to use. Perhaps after you’ve read this book, you may even be tempted to write your own.

Jennifer Golbeck

IRC with ChatZilla

Jump around platforms with the ChatZilla IRC client for Mozilla-based web browsers.

ChatZilla is a cross-platform IRC client written for Mozilla-based browsers. If you’re like me and work under various operating systems, you’ll have a consistent IRC interface across the board.

If you are using Netscape or a Mozilla build, ChatZilla is quick and easy to start using. If you are using Internet Explorer, Safari, or another non-Mozilla browser, you will need to download the latest version of either Netscape from http://home.netscape.org/downloads or Mozilla from http://mozilla.org.

Installing ChatZilla

ChatZilla can be installed directly through the web browser at http://www.hacksrus.com/~ginda/chatzilla. This page contains news and installers. Toward the bottom of the page, you will find the Download section. Several revisions will be listed in the table. If the version has a yellow star next to it, this means the release is probably stable but may contain some bugs. Releases that are expected to be stable will be marked with a green tick. Every version will contain a list of any reported bugs, so you can decide which one you want to install.

The last column of the table has install links, each pointing to an XPI file. These types of files are installers for Mozilla chrome packages. When you click an install link, you will be prompted to accept the install. When you click OK, the software will automatically download and install itself (see Figure 1-10).

Installing ChatZilla
Figure 1-10. Installing ChatZilla

Once the installation is complete, you should close your browser. Some versions of Windows may also require you to restart the operating system. Once all the restarts are complete, ChatZilla is ready to use.

Using ChatZilla

ChatZilla can be launched in three ways. The IRC Chat option will appear in the Window menu in your browser. Selecting this will launch the client. You can also use the irc command in the URL bar. Typing just irc: will launch ChatZilla. You can also type a full URL, like irc://irc.mozilla.org, and that will take the additional step of connecting to the specified server. These URL methods are currently the only way to launch ChatZilla if you are using the Mozilla Firebird web browser. Finally, if you launch Netscape or Mozilla from the command line, you can use the -chat option to start up ChatZilla instead of the normal browser window.

Once ChatZilla has launched (Figure 1-11), you can use all of the basic IRC commands. Nickname and command completion are both supported. After typing a few characters of the nickname or command, pressing the Tab key will fill in the rest. If there is more than one option for the characters you typed, ChatZilla will complete up until there is a choice to be made.

ChatZilla in use
Figure 1-11. ChatZilla in use

For example, typing /q followed by the Tab key will fill in the command up to /qu. It stops there because there are several options for what comes next. A quick double-Tab will display all of the options that can complete the text. In this case, ChatZilla shows the following line:

4 matches for "/qu": [/query, /quit, /quit-mozilla, /quote]

Mousing over a message will show the timestamp in the status bar at the bottom of the window. It also gives the nickname and IP address/hostname of the sender. Each sender’s nickname appears as a link next to the message. Clicking that link will open a private chat session with the person. Private messages and chats can also be started with commands. Typing /msg nickname message will send a private message to the nickname you provide. If someone sends a private message to you using the /msg command, it will automatically open a new tab to show your conversation. Using the /query nickname command will open this private tab as well, but without sending a message. The tab will be labeled with your chat partner’s nickname. Messages typed in these new tabbed windows are, obviously, private.

When sending messages, the default input field lets you type one line of text. For pasting multiline text, such as snippets of programming code where lines really matter, it can be tedious to cut and paste each individual line. In ChatZilla, there is an up arrow next to the input field (see Figure 1-12). Clicking that arrow expands the text box into a text field.

Default input field
Figure 1-12. Default input field

Multiple lines can be typed or pasted into the larger box (see Figure 1-13) and will appear in much the same way in the actual chat. Clicking the new, bent arrow next to the text area will send the message. To return to single-line input, click the down arrow.

Sending text with multiple lines
Figure 1-13. Sending text with multiple lines

If you are using multiline text entry, as shown in Figure 1-13, you will see this appear identically in your client, as shown in Figure 1-14.

The result of sending a multiline message
Figure 1-14. The result of sending a multiline message

ChatZilla has great support for changing the appearance of the chat windows with motifs. A few default options come installed. Several more motifs are available at http://www.hacksrus.com. However, motifs are just CSS files. That means that you can easily use a CSS from another web site or create your own motif especially for chat. To set a motif, choose a default one from the ViewColor Scheme menu or set your own. To use your own CSS file, either drag a link to the .css file into the message window, or use the /motif command.

               /motif 
               http://example.com/myMotif.css

Any CSS file accessible over the Web can be used in this way.

See Also

Jennifer Golbeck

Get IRC Hacks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.