IRC

From Dreamwidth Notes
Revision as of 01:38, 8 June 2022 by Alierak (Talk | contribs)

Jump to: navigation, search

For up to date information on Dreamwidth project (development, volunteer, staff, and operations) chat, see Chat. The rest of the information on this page may be out of date, especially since we're using Discord at the moment.

IRC stands for Internet Relay Chat, and is one of the oldest methods for group chat on the internet. Dreamwidth owners, contractors, developers/volunteers, users, and other interested parties occupy a number of IRC channels on the Libera IRC network.

If you are a Dreamwidth user new to IRC, this page and the IRC help page have information on getting connected and set up. For one-on-one help, try asking in [info]dw_volunteers. IRC is not required for volunteering, but can be very helpful and is where a great deal of social interaction takes place.

If you are a Libera/FLOSS user new to Dreamwidth, welcome! You can find out more about the project on this wiki, in the development information, on the website itself (Diversity Statement, Guiding Principles), and in the site FAQs.

Quick Reference

If you don't want to install an IRC client, Libera does offer webchat:

Connecting to IRC

If you're new to IRC, check out IRC help for more details.

Put the server (irc.libera.chat) and the channel (#dreamwidth) into your favorite IRC client. Pick a nickname to be known by in channel. This doesn't have to be the same as your Dreamwidth username, but it does have to be a nickname that no one else on Libera is using. (You can change it easily after you connect.)

Registering your nickname

It's generally best if you register your nickname once you've settled on one that is available and you like. Some IRC features require this. (If your preferred nickname has already been registered, you can sometimes get staff to assist you in registering it.)

In order to register your nickname on the IRC channel, use this command:

/msg nickserv register [PASSWORD] [EMAIL]

You will receive an email shortly with instructions. (Do not include the square brackets in the command.)

You can then identify yourself to the IRC server with this command:

/msg nickserv identify [PASSWORD]

(Do not actually use the brackets, just put in your password or email.)

Using your nickname

If for some reason you can't identify to the server in time, or otherwise need to change your nickname, these commands will work:

/msg nickserv identify [USERNAME] [PASSWORD]
/msg nickserv release [USERNAME]
/nick [USERNAME]

(Do not actually use the brackets, just put in your username or password.)

Culture

The owners ([info]mark and [info]denise) are the final arbiters of any IRC policy, issue, or debate.

Hazards

Hazards of hanging out in #dreamwidth include:

  • becoming hungry from all the talk of delicious food
  • starting to volunteer
  • putting more time in developing, providing answers in support, doing a code tour, etc.
  • becoming a project lead
  • buying more yarn or other fiber arts supplies
  • getting sucked into TVTropes, Wikipedia, and similar timesinks
  • getting earwormed (see also [info]earwormhole)
  • pun wars
  • conversations that started out perfectly rational and innocent degenerating (sometimes rapidly)
  • losing The Game
  • being owed a keyboard or monitor

Rules

Official Rules coming eventually. In general:

  • For the owners' peace of mind, no politics or religion (mentioning religion is fine; debating religious beliefs is not) in #dreamwidth.
  • Don't be a jerk.
  • Mind what the channel operators say. (Almost anyone with an '@dreamwidth/delegate/' hostmask has the potential to become an op, whether or not they are wearing their ops power at the time; there are a few others.)
  • Please do not automatically post full channel logs publicly. There is a quotes database (log in using your LJ or DW username), and use discretion if selecting sections to post elsewhere.
  • Some general guidelines are included below, although this is not intended to be a complete list, and ops will use their best judgment regarding specific situations.
  • [info]karzilla, [info]denise, and [info]mark have the final say.


Consider the Diversity Statement and the Guiding Principles and try to embody them. [info]denise in [info]dw_volunteers: a few words about IRC

Specific things that come up from time to time:

  • Some things are generally best in side channels:
    • Anything explicitly banned in #dreamwidth (politics, religion)
      • a clarification on religion: [21:02] <rahaeli> (also, I feel i should mention: religion is one of the Banned Topics in #dreamwidth, but the ban is on debating religious beliefs, not discussing religious-texts-as-literature or talking about theology from an academic standpoint; still, if anyone is uncomfortable about the topic PM me and I will ring the gong on the topic)
    • Extended off-topic chatter (particularly when it's just two participants), although 'topic' is sometimes hazy
    • Blatantly sexual content
    • Things that seem to be bothering other people
    • Any topic that an op has asked to be moved
  • #dreamwidth is not intended to be a Safe For Work zone, but it also should avoid the extended sort of "locker room" discussion that can be so off-putting as a first exposure to a FLOSS project. It's a delicate balance and ops appreciate all efforts to keep it from tipping too far.
  • It's appreciated when people describe links they share, particularly:
    • if you think it's going to be NSFW (the definition of "Not Safe For Work" does vary from person to person)
    • blatant sexual content, nudity, profanity or other words that might trip a workplace nanny-filter
    • auto-playing audio or video
    • large pages
    • images that aren't already captioned, audio and video that aren't already transcribed
    • flashing, blinking, or animated images
    • if using a short-URL service (tinyurl, bit.ly, and the like)
    • known timesinks like TVTropes
  • Spoilers, particularly for currently-airing or recently released media, should be avoided in main channel, particularly given differing release dates in different countries.
  • Misogyny, ableism, racism, nationalist insults, and the like are not appreciated, even in jest, or as part of a quote.
  • The #dreamwidth channels include people of all technical levels, from very experienced developers to complete neophytes, from advanced power users to complete neophytes, and sometimes the odd person who may not use Dreamwidth at all. In some cases, power users who have been around a while may know more about Dreamwidth's architecture than senior developers who have no experience with the Dreamwidth codebase. No one is under any obligation to assist in answering questions they do not feel like answering for any reason, but channel culture encourages a spirit of curiosity and shared knowledge.
    • Check your assumptions about the other person's technical level. Someone from a demographic group where software developers are rare may be that 1 in 5,000 (or however many); someone who has a generally solid understanding of the technical world may happen to have a gap in that specific spot. Even if "everybody knows it".
    • Asking about someone's understanding of the topic and the resources they've tried, to better understand their starting point, is usually appropriate.
    • Assuming that they have not already put in some basic research, because they are asking a question that seems obvious to you, is not appropriate.
    • When guiding someone through a process that may be unfamiliar to them, try to check in with them regularly to make sure that they're following along ok/you're still on the same page/if they might want a more advanced explanation.
    • Don't be rude or patronizing when explaining something. There's always potential for miscommunication, and technical explanations between mismatched skill levels can be especially delicate.
      • If you don't feel you can refrain from being rude and patronizing on purpose, you should bow out of the conversation.
      • Statements like "RTFM" (Read the Fucking Manual) and sites like lmgtfy.com and its ilk are used condescendingly more often than not; try another phrasing or method.
      • A "sorry, I phrased that badly" often helps when you didn't mean to be rude but it came across that way anyway.
  • Take care when expressing physical interaction. #dreamwidth is not a roleplay channel, and actions affecting other people can and will be interpreted similar to actual physical interaction.
    • Try "offers hugs" instead of "hugs", as that gives the other person the chance to accept or decline
  • Respect people's boundaries. Especially respect explicitly stated boundaries, but be on the lookout for less direct communication. Individual differences in communication style, sensitivity to the emotions of others, and other factors always have the potential for miscommunication and general badness; while this cannot always be removed, it can be reduced.
    • If you are uncomfortable with the way another party is interacting with you, you are encouraged to speak up, either directly or to a member of the moderation team. Please bear in mind that some people are less sensitive to indirect communication than others.
    • If a person who you are interacting with shows discomfort from the interaction, you are encouraged to proactively check whether your approach is okay, re-think your assumptions, or back off, even if they have not explicitly told you to stop or leave them alone. Please bear in mind that some people are less comfortable explicitly stating boundaries or saying no than others.
    • Respect off-duty time. Sometimes a person who is on a specific team or affiliated with a specific external organization just wants to relax and socialize, not talk about work, or wants to vent about work rather than keep working off the clock.
  • Private messages: site staff (and quite a few others) are open to an initial query being sent without asking in channel first. Therefore, there is no channel rule saying you must ask before sending a PM. However:
    • Is it something for that person specifically, or is it something that other staff members/volunteers might be able to answer? (If so, you might want to ask in channel if anyone is around who has time to answer questions about that topic.)
    • Many people will idle in channel, so an immediate response is not guaranteed.
    • If a specific person tells you of their preferences for PMs, that overrides general rules.
  • Try to use the Escalation procedures if something goes wrong.

On the lighter side: Book of Wholesome Hobbies

Getting Help

If something goes wrong in IRC, get help by:

  • Asking for help in channel
  • Asking for help in an adjacent channel (hopefully with staff or delegates present) where the problem isn't currently happening
  • Sending a private message to someone with "staff" or "delegate" in their hostmask (note: everyone has to sleep sometime, and sometimes clients lose private messages; if you've had no response within a reasonable amount of time, try someone else). "Can we talk", etc., is rarely a useful initial message; "There's a problem with ___" or "The current discussion about ____ is disturbing and I feel it's off-topic" is much better.
  • If no #dreamwidth staff/delegates are around and there's an urgent problem, available Libera staff can be listed using the "/stats p" command.

For Dreamwidth technical support:

General IRC culture

The main channel strives to be a genial, welcoming place where people who are interested in Dreamwidth (in general, even if they don't feel called to volunteer at the moment) can spend time.

Since many of us are trying to make fewer possibly hurtful assumptions about other people on the internet, do not be surprised if someone asks what pronouns you prefer to be used when referring to you: singular or plural, masculine or feminine, neuter, or other gender/gender-neutral pronouns. Sometimes people may make an educated guess, but if someone asks, it is most likely in the spirit of not making assumptions. It is always acceptable to decline to disclose information you do not feel like sharing.

Whoever's around on the hour (or whenever they notice it's been over 1 hour since the last announcement) is encouraged to announce a channel stretch break. These announcements sometimes give rise to assorted silliness.

Channels

#dreamwidth

Open access. General Dreamwidth chatter, including owners, developers, support, and cheerleaders. Occasionally NSFW.

Chatter about Dreamwidth itself and questions about how the site works are almost always on topic. There is very little set topic, so general discussion is all right as well. Common topics include programming and design, fiber arts, food, accessibility, home improvement, pets, languages and linguistics, et cetera. Many of the regulars happen to have known each other for years, but don't be shy. Asking questions and interacting is great! Lurking is fine too.

For the bosses' peace of mind, discussion of politics and debates over the validity of another person's religion are to be kept to other channels.

#dreamwidth-antispam

Access restricted. For the anti-spam team. If you are a member of the team and need access to the channel (all current team members may request access), say something in [info]dw_antispam and/or ping an op (asking in the comm may be slow; the op may be afk, and a ping could get lost in a client crash). Ops are Azz and theoretically zorkian. DWSpamBot is the resident bot, owned by [info]exor674.

DWSpamBot announces new spam and when the queue has been cleared. The command SpamBot: spam or DWSpamBot: spam makes DWSpamBot list the current contents of the queue. It sometimes pings out and fails to return. When this happens, a request to exor674 to bite spambot (after a reasonable time, like 20 minutes, has lapsed without it returning) will let them know it needs action. (Note that to work, that request needs to include the name "exor674"; something along the lines of exor674, please bite spambot? is suggested.)

When in channel, the best practice is to announce that you'll take care of the spam that you're headed for, to avoid collision as much as possible.

#dreamwidth-kvetch

Open access but officially unofficial.

This channel replaces #dreamwidth-bitch, and combines several legacy channels from the old server: #dw_bitch (complaints), #dw_nsfw (not-safe-for-work links and topics), #dw_tmi (way too much personal information), and #dreamwidth-hell (hellbot-spam and further complaints) as well.

The channel is intended for things that aren't appropriate in #dreamwidth, such as extensive complaints, NSFW discussions, medical TMI, and general TMI; possibly even politics and religion, too. Botspam (hellbot, bitspam, and reminderbot) is unregulated in this channel.

In practice there are also technical discussions that pop up here (even though they would be OK in main-channel), since this *is* a #dreamwidth- channel.

#dreamwidth-dev

Open access, intended for developers, other people actively working, and people quietly watching the work. A development/training/support/testing-focused channel without side-chatter.

This channel contains developers working on Dreamwidth's code. They can often give assistance and advice to other devs working on Dreamwidth, and can sometimes also offer assistance to people who are setting up their own installation of the Dreamwidth code.

#dreamwidth-docs

Open access, intended for documentation team. For discussing documentation. This may be obsolete and from the old server.

#dreamwidth-games

Open access. Officially unofficial, for funtimes including Zilch and Acrophobia.

#dreamwidth-ops

Access restricted. Owners, employees, contractors, and Nagios Alertsy the Annoying Wonder Bot.

#dreamwidth-support

Open access, intended for current, past, future, and questioning Support team. Intended as a resource for volunteers interested in helping with technical support of Dreamwidth users: to hang out, ask questions, and learn. Administrated by [info]karzilla.

People needing help with their own installation of the Dreamwidth code should try #dreamwidth-dev.

People needing help with Dreamwidth's features may find that there are more people who will be happy to answer any questions in #dreamwidth.

Other

There are sometimes impromptu channels created for specific discussions that do not fit regular channels. (Libera's policies seem to state that these should be in the ##dreamwidth- namespace? Or is it just ##?)

Bots

IRC bots are programs people can interact with in the IRC channel. They have their own usernames and different uses. [info]sophie (Sophira) programmed and hosts many of the bots; most are custom-written. The bots generally only speak when spoken to (with a few exceptions).

Infobot has been fed the wiki links for most of the bots on the server. Infobot, help <bot> will usually result in a quick link to that bot's documentation.

All bots present in official Dreamwidth channels must have permission from rahaeli and zorkian. Generally it is preferred to add features to an existing bot rather than add a new bot. If there is a bot feature that you would like to have in an official Dreamwidth channel, ask the owners and Sophira.

Alertsy

A Nagios bot that pages Mark/ops when the site is down. Or up. An archive of its messages can be found at @dw_alerts on Twitter.

Not to be mistaken for historical mentions of _nagios_, who is usually D being Very Silly at Mark's expense.

Alertsy speaks without being spoken to.


Bugsy

Bugsy was a bot that notified the channel when bugs are opened, closed, or receive patches (although the attachment-upload function of Bugsy broke with a recent Bugzilla upgrade and the bot hasn't been patched yet). It will also bring up more information about any bug that you link to or mention in channel.

bug <x> said in channel, anywhere in the sentence, will result in Bugsy linking the bug in question. If Bugsy isn't in the channel, Figment will normally ask him for you, as long as Figment is also in the channel.
@<x>
when starting a line with this, it does something, mostly Bugsy telling you that it wasn't a valid command (if you say "@denise that was awesome", for example).

Bugsy is currently out to pasture while we get to grips with Github Issues.

Fig-Bit

Fig-Bit has several different features, and will answer to "Figment" or "Fig" interchangeably, as well as "Infobot" or "info" and "Bit". The bot names are not case-sensitive.

Rumor has it that Fig has Easter egg responses.

Fig-Bit is present in #dreamwidth, #dreamwidth-kvetch, and #dreamwidth-support.

Infobot

There is a DW-specific infobot in the channel named Fig-Bit. Address all infobot commands to "infobot", rather than to Fig-Bit. You can use "info," instead of "infobot," for any of these commands if you wish.

Public Infobot Commands

Some commands can be used in all public channels that Fig-Bit is in.

infobot, <x>
This asks Fig-Bit to recall a factoid that was previously remembered. You can use this in channel or in PM.
Many useful factoids are stored in the infobot. If there's something that IRC should know, it may have been stored in the infobot.
infobot, ?<x>
This asks Fig-Bit to search for factoid names containing <x>.
infobot, ??<x>
This asks Fig-Bit to search for factoid names and values containing <x>. If you're doing a general search, this is probably what you want to use.
Private Infobot Commands

Some infobot commands can only be used in private message with the infobot, as programming the infobot can become spammy to the channel you are in. To reduce the potential for spammers messing with the infobot, your nickname must be registered and you must be authenticated to it in order to send private messages to Fig-Bit.

infobot, <x> is <y>
This is how you ask Fig-Bit to remember a factoid <x>. For example, you might say:
infobot, wiki is http://wiki.dreamwidth.net/wiki/
which would ask him to remember that the factoid "wiki" was the URL to Dreamwidth's development wiki. This command works only in PM. You can ask him to recall a factoid with one of the commands above. The symbol = can be used in place of is.
infobot, no, <x> is <y>
If Fig-Bit already knows a factoid when you try to ask him to remember one, he'll tell you that he already knows it and he won't remember the new definition. This command tells him to change the factoid to the new definition anyway. This command works only in PM.
infobot, forget <x>
This asks Fig-Bit to forget the factoid <x>. This command works only in PM.
Notable Infobot factoids
Infobot as help feature

Infobot has been fed links to the wiki entries on most bots. Saying Infobot, help <bot> will generally result in a link to the wiki entry on how to use that bot.

Other useful Infobot items
  • qdb
  • jargon
  • welcome
  • pep talk
  • teleporter
  • escalation

Bit

Bit is the decision-bot part of Fig-Bit. Ask Bit a yes or no question, or ask Bit to pick between comma-separated options. Bit will choose, or sometimes give you a more philosophical answer! (If you're not sure what pronouns to use when referring to Bit, just ask Bit, and Bit will tell you. Bit may be gender-fluid, as the answers do sometimes change.) Bit sometimes accepts botsnacks, depending on whim (and perhaps hunger, but nobody really knows), and, if accepted, will share them with Fig.

Bit may mistake a pick-one question for a yes or no question, for instance if the last option (prefixed by or) is itself a comma-separated list ending in and:

<V_PauAmma_V> Bit, pasta with cream and Swiss cheese or pasta with pesto, parmesan, and garlic?
<Fig-Bit> YES

To work around that, reword the last option:

<V_PauAmma_V> Bit, pasta with cream and Swiss cheese or pasta with pesto+parmesan+garlic?
<Fig-Bit> I'd suggest pasta with pesto+parmesan+garlic.
Bit, tally

will make Bit give a tally of the yes and no answers since the last time Bit was rebooted.

Bit, shuffle: (comma-separated list with the last item optionally preceded by and)

will make Bit return the list with the items randomly permuted (rearranged). The colon after "shuffle" is optional.

As Bit has not been specifically programmed to favor working on bugs, support, or code reviews over other (more frivolous) pursuits, it is clear that Bit just naturally favors these things, being a bot.

A video clip of the 'Bit' from Tron.

Support-bot

Fig-Bit is also a Support-bot, and will link to any support request mentioned in channel, and can be used to show a report on the current status of the support board. For those who are familiar with the support-bot Anna (from LiveJournal Support), Fig-Bit functions like her.

Support-bot commands can be addressed to Figment or Fig.

Figment, green
This asks Fig-Bit to retrieve the stats on the support requests without approved answers.
The "green" report is of the format:
<Total> green (<number> unanswered, <number> SNH) :: (<priority>) <category total> in <category> (<unanswered>+<still needs help>)
All public support categories are listed in this report.
"Unanswered" is new requests that have not yet received an approved answer.
SNH is "Still Needs Help": requests that are in need of an answer, but have already had at least one approved answer.
Asterisks before a category name indicate that the category needs attention, based on the number of open requests. (Senior support and the botmistress decide on the thresholds of how many open requests in a category at one time is typical; this can be reset as things change.)
request <x> or req <x> said in channel, anywhere in the sentence, will result in Fig-Bit linking the support request in question and giving a basic summary of the request. In #dreamwidth-support only, typing #<x> (that is, the support request number preceded by a hash) will do the same thing, which may be quicker to type.
Pasting a link to a Support request is like the above, but will only give the basic summary, with no link.
Figment, tags
This asks Fig-Bit to retrieve the bracketed tags in the subjects of support requests.
Figment, stars
This asks Fig-Bit to retrieve a list of categories that have reached their defined thresholds.
Figment, be Goat
Fig-Bit will give the green count in Goat style. (Goat was the LiveJournal Support support-bot before Anna.)
Figment, points <x>
Fig-Bit will give the number of support points for the given user or category, or (if not user or category is given) the total number of points available on the board if one were to leave an approved answer for all the open questions right now.
Figment, stale
Fig-Bit will give stats on the requests that have been open longest.
Figment, recent
Gives a detailed report of open support requests in multiple categories.
Figment, recenttags
Lists tags of current green requests.
Figment, kittens
Fig-Bit will give a list of the categories that are under their defined thresholds. (Categories = cats = small cats = kittens)
Figment, random
Fig-Bit will give a random support request, optionally within a given category.
Figment, search
Searches the summaries of green support requests for whatever you give it. This does not search the body of the request for performance reasons. Up to 5 results will be given in PM.
Figment, stats
Like the search command, but only displays a summary of the number of results found, without linking to the requests. Unlike search, the output for this command is not restricted to PM, and is allowed to appear in channel.

Reminderbot

This function is only available in PM and #dreamwidth-kvetch.

Syntax:

  • Remind me in <delay> <thing>
  • Remind me at <time> <zone> <thing>
  • Remind me again in <delay>
  • Remind me again at <time> <zone>

Reminderbot only understands numbers written as Arabic numerals, not as words. Reminderbot will understand 5, but not five.

If used in #dreamwidth-kvetch, the shortcut "again" stands for the last thing either requested or reminded in the channel, even if by someone else.

Shortcuts:

Instead of in <delay> or at <time> <zone>, you can use:

  • soon: after a random interval between 5 minutes and 2 hours.
  • later: after a random interval between 1 and 24 hours.
  • much later (or muchlater): after a random interval between 12 hours and 7 days.

Examples:

  • Remind me in 12 minutes DING COOKIES ARE DONE
  • Remind me at 5pm PDT PREPARE FOR AN EVENING OF AWESOME
  • Remind me again at 5:30pm PDT
  • Remind me later Not everyone is an asshole.
  • Reming me on September 26, 2022 at midnight UTC+03:00 Stanislav Petrov Day

This command does not need to be addressed directly to the bot.

The reminderbot uses time formats as seen in http://search.cpan.org/~muir/Time-ParseDate-2015.103/lib/Time/ParseDate.pm#DATE_FORMATS_RECOGNIZED - lettered time zones are case-sensitive and must be uppercase.

When specifying a time for the bot to remind you, the bot will probably use today or tomorrow (if that time has already passed today) in the bot's time zone. If you are in a different time zone than the bot, you might want to specify the date some of the time.

Others

These may be addressed to "Fig" as well.

Figment, countdown <time> <timezone>
Gives the time remaining until the specified time. fig, countdown 9pm EDT
Figment, gmt
Displays the current Greenwich Meridian Time.
Figment, utc
Same as above
Figment, is DW up?
Asks Figment to check if DW is up. "up" can be replaced with "down" synonymously. Figment also remembers how to check LJ.
Figment, math
A basic calculator.
Figment, latest <x>
Reports the last public entry posted by a Dreamwidth user. There is no default for this command; a username must be given.
Figment, twitter <x>
Reports the last tweet posted by a Twitter user. Defaults to @dreamwidth if no username is given. (The twitter account for Alertsy is @dw_alerts.)
Figment, botsnack
Not really its own command, but a nice way to reward our very useful bot.

RWHell bot

RWHell is currently on a sabbatical and not present in channels or accessible from Libera.chat.

You can feed items to Random Word Hell. When an item is fed to hell, hell will most likely spew out random items it has consumed. RWHell is present in #dreamwidth and #dreamwidth-kvetch.

feed <x> to hell
/me feeds <x> to hell
This feeds an item to Hell. Hell will probably at this point in time spew out one or two items it has been holding. It may also burp and not expel anything new.
(Hell recognises a number of synonyms for "feed". The current list is "feed", "send", "damn", "punt", "toss", "smite", "condemn", "hurl", "throw", "kick", "cast", "banish", "drag", "pull", "consign", "push", "shove" and "drop". These can also be used in their equivalent form as part of a /me - for example, "/me damns <x> to hell".) For all of those verbs, the suffix "into hell" is understood as much as "to hell" is. "Darn <x> to heck" also works.
feed that back to hell
/me feeds that back to hell
This feeds the last item hell spat back to hell, as one may expect. Instead of "that", you may also use "this", "these", "those", "it", and "them". The "feed" synonyms listed above also work for that variant.
hell, tally
This tells you how many items hell is currently holding.

RWHell does not have a search function, so the only way to know what is in hell at any given time is to have kept track (or ask hell's minder).

There is a separate level of hell for every channel that RWhell is in, so objects that are fed to it in its testing channel will not re-emerge in #dreamwidth, and vice versa.

Hell is rate limited in #dreamwidth, to avoid abuse. Hell is not rate limited in #dreamwidth-kvetch.

The rumor that hell is sentient is just that: a rumor. Really. We swear. ...We hope.

More on its history in Common Jargon and Random Word Hell.

Delegate IRC Commands

There are some commands that are used only by delegates - normally project leaders. These can be found on the IRC Advanced page.