IRC / Sistemas de Chat en Tiempo Real

Muchos proyectos ofrecen salas de chat utilizando Internet Relay Chat (IRC), foros donde los usuarios y desarrolladores pueden hacerse preguntas y obtener respuestas instantáneas. Mientras que se puede llevar un servidor de IRC para nuestro sitio web, por lo general no vale la pena. En cambio podemos hacer lo que todo el mundo: crear canales de IRC en Freenode (http://freenode.net/). Freenode proporciona el control necesario para administrar los canales IRC del proyecto, [31]mientras que nos evita la molestia de tener que mantener un servidor de IRC.

Lo primero que hay que hacer es decidir un nombre para el canal. La opción más obvia es utilizar el nombre del proyecto—si es que se encuentra disponible en Freenode. Si no, se puede utilizar algo lo más parecido al nombre del proyecto y que sea en lo posible, fácil de recordar. Hay que publicitar la disponibilidad del canal en el sitio web del proyecto, de manera que un visitante con una duda pueda verlo rápidamente. Por ejemplo, esto aparece en un contenedor prominente en la parte de arriba de la página principal de Subversion:

La respuesta a todo esto es publicándolo en el tópico del canal.[32] El tópico del canal es un breve mensaje que ven todos los usuarios cuando entran en el canal. Da una guía rápida para los recién llegados y apunta a información necesaria. Por ejemplo:

Ha entrado en #svn

El tema para #svn es Foro para usuarios de Subversion. Más información en
http://subversion.tigris.org/. || Las discusiones sobre el desarrollo
están en #svn-dev. || Por favor, no pegue transcripciones muy largas,
para ello utilice un sitio como http://pastebin.ca/ || Noticias:
Subversion 1.1.0 ha salido, más en http://svn110.notlong.com/

Es algo tosco, pero informa a quienes entran al canal lo que necesitan saber. Dice exactamente para lo que es el canal, muestra la página web del proyecto (en caso de que alguien entre al canal sin antes haber visitado el sitio web del proyecto), menciona canales relacionados y da algunas directivas sobre el pegado.

Bots de IRC

Muchos canales técnicos de IRC tienen un miembro no humano, un tal llamado bot, el cual es capaz de almacenar y regurgitar información en respuesta a comandos específicos. El bot se parece a un miembro más del canal, esto es, los comandos se hacen llegar "hablándole" al bot. Por ejemplo:"

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

Esto le ha dicho al bot (el cual está en el canal como ayita) que recuerde cierto URL como la respuesta a la pregunta "diff-cmd". Ahora podemos dirigirnos a ayita pidiendole al bot que le diga a otro usuario acerca de diff-cmd:

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

Lo mismo puede ser logrado con un comando más corto:

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

El conjunto exacto de comandos y conductas difieren entre bots. El ejemplo anterior utiliza ayita (http://hix.nu/svn-public/alexis/trunk/), del cual existe una instancia en #svn en Freenode. Otros bots son Dancer (http://dancer.sourceforge.net/) y Supybot (http://supybot.com/). No son necesarios privilegios específicos en el servidor para ejecutar un bot. Un bot es un programa cliente; cualquiera puede fijar y dirigirlo para que escuche en un servidor/canal en particular.

Si el canal del proyecto tiende a recibir las mismas preguntas una y otra vez, recomiendo utilizar un bot. Sólo un pequeño porcentaje de usuarios del canal adquirirán la habilidad necesaria para manejar el bot, pero serán los que sí lo hagan quienes responderán a una cantidad desproporcionada de preguntas, porque el bot permite que sean respondidas con mayor eficiencia.

Archivando IRC

Aunque es posible archivar todo lo que sucede en los canales de IRC, no es algo necesario. Las conversaciones en IRC pueden ser públicas, por lo que muchas personas piensan en ellas como conversaciones informales semi-privadas. Los usuarios puede que no cuiden la gramática y a veces expresen opiniones (por ejemplo, acerca del software o sobre otros desarrolladores) que no querrán que sean preservadas eternamente en un archivo en línea.

Por supuesto que existen extractos que deberían ser preservados. Muchos de los clientes de IRC pueden registrar conversaciones a un fichero bajo demanda por el usuario, o si esto falla, se puede copiar y pegar la conversación del IRC a otro foro permanente (a menudo, el bug tracker). Pero el registro indiscriminado puede incomodar a algunos usuarios. Si se archiva todo, hay que declararlo claramente en el tópico del canal y proporcionar una URL del archivo.



[31] No es un requerimiento ni tampoco se espera ninguna donación a Freenode, pero si usted o el proyecto se lo pueden permitir, por favor considerelo. Son una caridad exenta de impuestos en EE.UU. y proveen de un servicio muy valioso.

[32] Para establecer el tópico del canal se utiliza el comando "/topic. Todos los comandos en IRC empiezan con el signo "/". Si no se está familiarizado con la utilización y administración de IRC id a http://www.irchelp.org. Hay un excelente tutorial en http://www.irchelp.org/irchelp/irctutorial.html.