3.5. IRC/Real-Time Chat Systems
Many projects offer real-time chat rooms
using Internet Relay Chat (IRC), forums where users and developers
can ask each other questions and get instant responses. While you
can run an IRC server from your own website, it
is generally not worth the hassle. Instead, do what everyone else
does: run your IRC channels at Freenode (http://freenode.net/). Freenode gives you the
control you need to administer your project's IRC
channels,
while sparing you the not-insignificant trouble of maintaining an IRC
server yourself.
The first thing to do is choose a channel name. The most obvious
choice is the name of your project�if that's
available at Freenode, then use it. If not, try to choose something
as close to your project's name, and as easy to
remember, as possible. Advertise the channel's
availability from your project's web site, so a
visitor with a quick question will see it right away. For example,
this appears in a prominently placed box at the top of
Subversion's home page:
If you're using Subversion, we recommend that you
join the users@subversion.tigris.org mailing list, and
read the Subversion Book (http://svnbook.red-bean.com/) and FAQ
(http://subversion.tigris.org/faq.html). You
can also ask questions on IRC at
irc.freenode.net channel
#svn.
Some projects have multiple channels, one per subtopic. For example,
one channel for installation problems, another for usage questions,
another for development chat, etc. (Section 6.4 in Chapter 6 discusses how
to divide into multiple channels). When your project is young, there
should only be one channel, with everyone talking together. Later, as
the user-to-developer ratio increases, separate channels may become
necessary.
How will people know all the available channels, let alone which
channel to talk in? And when they talk, how will they know what the
local conventions are?
The answer is to tell them by setting the channel
topic. The channel topic is a
brief message each user sees when they first enter the channel. It
gives quick guidance to newcomers, and pointers to further
information. For example:
You are now talking on #svn
Topic for #svn is Forum for Subversion user questions, see also
http://subversion.tigris.org/. || Development discussion happens in
#svn-dev. || Please don't paste long transcripts here, instead use
a pastebin site like http://pastebin.ca/. || NEWS: Subversion 1.1.0
is released, see http://svn110.notlong.com/ for details.
That's terse, but it tells newcomers what they need
to know. It says exactly what the channel is for, gives the project
home page (in case someone wanders into the channel without having
first been to the project web site), mentions a related channel, and
gives some guidance about pasting.
An IRC channel
is a shared space: everyone can see what everyone else is saying.
Normally, this is a good thing, as it allows people to jump into a
conversation when they think they have something to contribute, and
allows spectators to learn by watching. But it becomes problematic
when someone has to provide a large quantity of information at once,
such as a debugging session transcript, because pasting too many
lines of output into the channel will disrupt other conversations.
The solution is to use one of the pastebin or
pastebot sites. When requesting a large amount
of data from someone, ask them not to paste it into the channel, but
instead to go to (for example) http://pastebin.ca/, paste their data into
the form there, and tell the resulting new URL to the IRC channel.
Anyone can then visit the URL and view the data.
There are a number of free paste sites available now, too many for a
comprehensive list, but here are some of the ones
I've seen used: http://www.nomorepasting.com/, http://pastebin.ca/, http://nopaste.php.cd/, http://rafb.net/paste/, http://sourcepost.sytes.net/, http://extraball.sunsite.dk/notepad.php, and
http://www.pastebin.com/.
|
3.5.1. Bots
Many technically oriented IRC channels have a non-human member, a
so-called bot that is capable of storing and
regurgitating information in response to specific commands.
Typically, the bot is addressed just like any other member of the
channel, that is, the commands are delivered by
"speaking to" the bot. For example:
<kfogel> ayita: learn diff-cmd = http://subversion.tigris.org/faq.html#diff-cmd
<ayita> Thanks!
That told the bot (who is logged into the channel as ayita) to
remember a certain URL as the answer to the query
diff-cmd. Now we can address ayita, asking the bot
to tell another user about diff-cmd:
<kfogel> ayita: tell jrandom about diff-cmd
<ayita> jrandom: http://subversion.tigris.org/faq.html#diff-cmd
The same thing can be accomplished via a convenient shorthand:
<kfogel> !a jrandom diff-cmd
<ayita> jrandom: http://subversion.tigris.org/faq.html#diff-cmd
The exact command set and behaviors differ from bot to bot. The above
example is with ayita (http://hix.nu/svn-public/alexis/trunk/), of
which there is usually an instance running in #svn
at freenode. Other bots include Dancer (http://dancer.sf.net) and Supybot
(http://supybot.sf.net). Note
that no special server privileges are required to run a bot. A bot is
a client program; anyone can set one up and direct it to listen to a
particular server/channel.
If your channel tends to get the same questions over and over, I
highly recommend setting up a bot. Only a small percentage of channel
users will acquire the expertise needed to manipulate the bot, but
those users will answer a disproportionately high percentage of
questions because the bot enables them to respond much more
efficiently.
3.5.2. Archiving IRC
Although it is possible to archive everything that happens in an IRC
channel, it's not necessarily expected. IRC
conversations may be nominally public, but many people think of them
as informal, semi-private conversations. Users may be careless with
grammar, and often express opinions (for example, about other
software or other programmers) that they wouldn't
want preserved forever in an online archive.
Of course, there will sometimes be excerpts that
should be preserved, and that's fine. Most IRC
clients can log a conversation to a file at the
user's request, or failing that, one can always just
cut and paste the conversation from IRC into a more permanent forum
(most often the bug tracker). But indiscriminate logging may make
some users uneasy. If you do archive everything, make sure you state
so clearly in the channel topic, and give a URL to the
archive.
|
No comments:
Post a Comment