IRC / Sistemi di Chat in tempo reale

Molti progetti offrono chat in tempo reale usando Internet Relay Chat (IRC), forum dove utenti e sviluppatori possono farsi reciprocamente domande e avere risposte istantanee. Anche se potreste fornire un server IRC dal vostro sito web, non è generalemnte il caso. Fate invece ciò che tutti gli altri fanno: fate andare il vostro canale IRC su Freenode (http://freenode.net/). Freenode vi da il controllo di cui avete bisogno per amministrare i canali IRC del vostro progetto, [17] liberandovi dal non insignificante problema di mantenervi da voi un server IRC.

La prima cosa da fare è scegliere un nome per il canale. La scelta più ovvia è il nome del vostro progetto—se disponibile su Freenode, allora usatelo. Altrimenti, cercate di scegliere qualcosa di simile al nome del progetto, e il più facile da ricordare possibile. Pubblicizzate la disponibilità del canale sul sito web del progetto, così che un visitatore con una domanda veloce lo veda subito. Per esempio, questo appare in modo visibile alla cima della pagina principale di Subversion:

Se state usando Subversion, vi consigliamo di unirvi alla mailing list users@subversion.tigris.org ,e di leggere il libro di Subversion e FAQ. Potete anche fare domande su IRC a irc.freenode.net canale #svn.

Alcuni progetti hanno molti canali, uno per sottoargomento. Per esempio, un canale per i problemi di installazione, un altro per le domande sull'uso, un altro per la chat dello sviluppo, eccetera (sezione chiamata «Gestire la Crescita» in Capitolo 6, Comunicazione discute su come suddividere i vari canali Quando il vostro progetto è agli inizi, ci dovrebbe essere un solo canale, con tutti quanti a parlare insieme. Poi, quando il rapporto di utenti per sviluppatore cresce, canali separati può diventare necessario.

Come farà la gente a sapere tutti i canali disponibili, a scegliere il canale in cui parlare, come sapranno quali sono le convenzioni locali?

La risposta è dire loro di settare l'argomento del canale. [18] L'argomento del canale è un breve messaggio che l'utente vede quando entra per la prima volta nel canale. Forinisce una guida rapida per i nuovi arrivati, e riferimenti ad altre informazioni. Per esempio:

Stai parlando su #svn

L'argomento per #svn è Forum per le domande degli utenti di Subversion, vedi anche
http://subversion.tigris.org/. || La discussione sullo sviluppo avviene in
#svn-dev. || Per favore non incollate qui lunghe trascrizioni, usate invece
un sito come http://pastebin.ca/. || NEWS: Subversion 1.1.0
è stata rilasciata, vedi http://svn110.notlong.com/ per dettagli.

E' scarno, ma dice ai nuovi arrivati cosa hanno bisogno di sapere. Dice esattamente per cosa esiste il canale (nel caso qualcuno vaghi nel canale senza essere prima stato sul sito del progetto), menziona un canale correlato, e da alcune direttive sulla funzionalità di incolla (paste).

Bot

Molti canali IRC tecnici hanno un membro non umano cosiddetto bot, che è capace di archiviare e rigurgitare informazioni in risposta a specifici comandi. Tipicamente, il bot è interpellato come ogni altro membro del canale, cioè i comandi sono inviati "parlando" al bot. Per esempio:

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

Questo dice al bot (che è loggato nel canale come ayita) di ricordare una certa URL come risposta alla domanda "diff-cmd". Ora possiamo interpellare ayita, chiedendogli di dire ad un altro utente di diff-cmd:

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

La stessa cosa può essere fatta usando una conveniente scorciatoia:

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

L'insieme di comandi e comportamenti può cambiare da bot a bot. L'esempio sopra è con ayita (http://hix.nu/svn-public/alexis/trunk/), di cui un'istanza di solito è presente in #svn su Freenode. Altri bot sono Dancer (http://dancer.sourceforge.net/) e Supybot (http://supybot.com/). Da notare che non c'è bisogno di particolari privilegi sul server per far andare un bot. Un bot è un programma client; tutti possono impostarne uno e metterlo in ascolto su un particolare server o canale.

Se il vostro canale tende ad ospitare domande ripetute molte volte, raccomando vivamente di impostare un bot. Solo una piccola percentuale di utenti del canale avrà la capacità di manipolare il bot, ma questi utenti risponderanno ad una percentuale sproporzionatamente alta di domande, perchè il bot permette loro di rispondere in modo più efficiente.

Archiviazione di IRC

Anche se è possibile archiviare tutto ciò che succede in un canale IRC, non è necessariamente atteso. Le conversazioni IRC possono essere nominalmente pubbliche, ma molte persone le considerano informali, semi-private. Gli utenti possono essere incuranti della grammatica, e a volte esprimere opinioni (per esempio, su altro software o altri programmatori) che non vorrebbero salvati in un archivio online.

Certo, ci saranno a volte estratti che dovrebbero essere preservati, e va bene. La maggior parte dei client IRC può fare il log di una conversazione su file su richiesta dell'utente, o non potendo, si può sempre fare semplice copia e incolla della conversazione da IRC in un forum più permanente (molto spesso il bug tracker). Ma tenere traccia indiscriminata di tutto può mettere a disagio alcuni utenti. Se archiviate tutto, fate in modo di dirlo chiaramente nell'argomento del canale, e fornite la URL dell'archivio.



[17] Non c'è nessun obbligo nè aspettativa che facciate una donazione a Freenode, ma se voi o il vostro progetto potete permettervelo, per favore considerate questa possibilità. Sono donazioni esentasse USA e loro forniscono un importante servizio.

[18] Per settare l'argomento di un canale, usate il comando /topic (argomento). Tutti i comandi su IRC iniziano con "/". Vedi http://www.irchelp.org/ se non siete famigliari con l'uso e l'amministrazione di IRC; in particolare, http://www.irchelp.org/irchelp/irctutorial.html è un ottimo tutorial.