IRC / 实时聊天系统

许多项目使用互联网多线交谈IRC)提供实时聊天室,作为用户和开发者互相提问并得到及时答复的讨论场所。即使你可以在你的服务器运行IRC服务器时,也不必为此事麻烦。而应该象其他人一样:在Freenode(http://freenode.net/)运行你的IRC频道。Freenode给了你足够的权利来管理你项目的IRC频道,[17]可以让你摆脱维护IRC服务器这类无意义的麻烦。

首先要选择一个频道名称。最明显的选择是你的项目名—如果在Freenode存在,就使用它。如果不存在,可以选择一个与项目名接近的名称,尽可能的易于记忆。在你的项目网站上将频道广而告之,这样期望快速提问的访问者可以立刻看到它。例如,Subversion主页上显著放置的方框中所出现的:

If you're using Subversion, we recommend that you join the users@subversion.tigris.org mailing list, and read the Subversion Book and FAQ. You can also ask questions on IRC at irc.freenode.net channel #svn.

一些项目有多个频道,每个子主题一个。例如,一个频道关注安装问题,另一个是使用问题,还有一个是开发聊天,等等。 (Chapter 6, 交流the section called “处理成长”讨论了如何划分多个频道)。当你的项目还年轻时,应该只有一个频道,所有人在一起讨论。之后,随着用户到开发者比率增加,也就有必要分开单独的频道。

人们如何知道所有的已有频道,以及在哪个频道讨论?他们何时交谈,如何知道当地的习惯?

答案是通过设定频道主题告诉他们。[18]频道主题是每个用户在进入频道时看到的一些信息。可以给每个新人一份快速指南,指出更进一步的信息。例如:

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.

内容很扼要,但是它告诉新人所必需知道的东西。它精确的说明频道的目的,提供了项目的主页(如果某人是游荡近来,而并非从项目网页过来),提及相关的频道,并给出一些指导。

机器人(Bots)

许多面向技术的IRC频道有一个非人的成员,叫做机器人(bot),它可以对特定的命令返回信息。通常情况下,这个机器人就像频道中的其它成员一样,命令是通过谈话传递给的机器人。例如:

<kfogel> ayita: learn diff-cmd = http://subversion.tigris.org/faq.html#diff-cmd
<ayita>  Thanks!

这是告诉机器人(以ayita登入了频道)记住以特定的URL回答“diff-cmd”的提问,现在其他用户可以向ayita讯问,并获取diff-cmd的信息:

<kfogel> ayita: tell jrandom about diff-cmd
<ayita>  jrandom: http://subversion.tigris.org/faq.html#diff-cmd

通过速记法可以得到同样的结果:

<kfogel> !a jrandom diff-cmd
<ayita>  jrandom: http://subversion.tigris.org/faq.html#diff-cmd

准确的命令集和行为方式各不相同。以上的例子来自ayitahttp://hix.nu/svn-public/alexis/trunk/),通常在freenode的#svn运行着一个实例。其它机器人包括Dancer(http://dancer.sourceforge.net/)和Supybot(http://supybot.com/)。请注意,运行机器人无需服务器的权限。一个机器人就是一个客户端程序;任何人可以设置一个并监听特定的服务器/频道。

如果你的频道一次次的得到同样的问题,我强烈推荐你设置一个机器人。只有一小部分频道用户会获得需要处理机器人的专业技能,而这些用户会回答不成比例的大部分问题,因为机器人可以帮助他们有效率的回复。

归档IRC

尽管可以将IRC频道发生的任何事情都归档,但这不是必要的。IRC对话名义上是公开的,但是许多用户认为这是非正式的,半私密的对话。用户会对语法不是很在意,而且经常会表达意见(例如,关于其它软件或其他程序员),这些都不是他们希望永久保存归档的。

当然,有时候摘要必须能够保存。大多数IRC客户端可以在用户要求的情况下记录对话到一个文件,如果不能,人们也可以仅仅是将对华拷贝和粘贴到固定的论坛(经常是bug跟踪系统)中。但是不加区分的归档所有内容会让某些用户不悦。如果你需要归档所有的事情,请确认你已经在频道主题明确说明,并给出了归档的URL。



[17] 没有要求或期望你能够为Freenode捐献,但是如果你或你的项目能够负担,请考虑贡献一下。他们在美国有一个免税的慈善团体,提供有价值的服务。

[18] 使用/topic命令设定频道主题。IRC频道中的所有的命令以“/”开头。如果你不熟悉IRC的使用和管理,可以看http://www.irchelp.org/;而http://www.irchelp.org/irchelp/irctutorial.html是一份完美的教程。