L’essentiel pour lire les newsgroups avec `slrn`

Il n’est pas très dur de chercher quelque chose dans la documentation officielle de slrn (le client NNTP le plus utilisé à l’ÉPITA, en console), mais je ne peux résister à la tentation de regrouper ici ce qui me semble le plus utile pour que plus personne n’ait d’excuse pour ne pas participer sur les newsgroups de l’école.

Fonctionnement général des newsgroups

C’est quoi les newsgroups ?

Sur le principe, on a à peu près la même chose qu’un forum comme vous pouvez en trouver sur le Web : il y a plusieurs sections, et les personnes communiquent en écrivant des messages dans les sections appropriées.

Les forums sont apparus avec le Web dans les années 1990, en revanche les newsgroups existent depuis 1979 : les technologies utilisées n’étaient pas exactement les mêmes, mais les utilisateurs d’Internet communiquaient beaucoup au travers d’un réseau de serveurs newsgroups appelé Usenet. Usenet est de nos jours bien moins utilisé ; l’ÉPITA a cependant conservé l’usage des newsgroups (dans une certaine mesure) pour la communication entre élèves et avec l’équipe pédagogique, surtout en première année d’ingénierie. Même si l’activité a drastiquement baissé depuis quelques années (au moment où j’écris, en septembre 2012), à côté de ça les forums de promotions se créent puis finissent par tomber dans l’oubli au cours du temps, devenant la cible de SPAMs ; leur fermeture va avec la perte de tous les messages qui y ont été posté.

Pour vous et moi, la première différence avec les forums est qu’on accède à ceux-ci avec le protocole HTTP, et donc par un navigateur. Les newsgroups sont accessibles avec des protocoles dédiés. Pour rester simple et pragmatique, disons que nous utiliserons le protocole NNTP avec le logiciel slrn pour à la fois lire et poster des messages. Ainsi, pour lire les newsgroups, on va se connecter à un serveur (dans notre cas, news.epita.fr).

Chaque groupe (équivalent d’une section d’un forum) a un nom qui ressemble à un nom de domaine : plusieurs mots séparés par des points, par exemple : iit.talk.citations. La liste des groupes est gérée par les administrateurs du serveur. Chaque groupe a un thème bien particulier, ce qui permet de classer les discussions : rien d’inhabituel. Certains newsgroups ont aussi une fonction bien particulière ; par exemple, dans le cas des newsgroups de l’école :

iit.test
Ce groupe est incontournable : il permet à chacun de tester que son lecteur de news est bien configuré (que les messages rédigés sont bien formattés, etc.). On peut y écrire n’importe quoi sans crainte de déranger personne.
iit.delation
Groupe autrefois au traffic inouï, on y retrouve comme son nom l’indique diverses délations de dites « mauvaises actions » de la part d’étudiants, de bocaliens, etc.
iit.adm, epita.adm, …
L’écriture de messages dans les groupes de ce type est réservée à l’équipe pédagogique. Leur lecture est en revanche recommandée à toutes les personnes concernées.
epita.adm.a1, epita.adm.isup, …
La lecture de ces groupes est obligatoire pour chaque promotion concernée (a1 = ing1, isup = Info Sup, etc.). Je n’ai aucune idée des permissions pour écrire dedans.

En septembre 2012, si l’on ne compte pas les groupes utilisés par la pédagogie en Ing-1 (c’est-à-dire les groupes réservés par les assistants, les projets pour Ing-1, etc.), on compte moins d’un article posté par jour pour la totalité des groupes. Il est donc tout à fait raisonnable de tout lire sans y passer trop de temps. Je recommande donc à chacun de s’abonner à l’ensemble des groupes.

Anatomie d’un article

Parlons maintenant des articles (un article = une news = un post = un message)… Informatiquement parlant, une news a exactement le même format qu’un mail : il s’agit tout d’abord d’un document texte, c’est-à-dire une suite d’octets affichables dans un terminal. Pour exemple, prenons le premier post venu sur iit.test :

Path: news.ig-iit.com!made by rockyluke!not-for-mail
From: Arthur <…@marmottus.net>
Newsgroups: iit.test
Subject: Dis moi petit pot de test...
Date: Mon, 10 Sep 2012 14:36:27 +0000 (UTC)
Organization: IONIS Institute of Technology
Lines: 9
Message-ID: <slrnk4rust.k5j.arthur@localhost.localdomain>
Reply-To: …@marmottus.net
NNTP-Posting-Host: marmottus.net
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: news.ig-iit.com 1347287787 3314 178.170.114.194 (10 Sep 2012 14:36:27 GMT)
X-Complaints-To: https://intranet.ig-iit.com
NNTP-Posting-Date: Mon, 10 Sep 2012 14:36:27 +0000 (UTC)
User-Agent: slrn/pre1.0.0-16 (Linux)
Xref: news.ig-iit.com iit.test:12320

Bonjour,

éyaéyaéyaéyaéyaéyaéyaéya

Cordialement.

-- 
Arthur « Marmottus » Crépin-Leblond
ING3

Au premier coup d’œil, on peut voir deux sections bien différentes :

  • Le headers (en gras) sont des méta-données permettant de joindre aux messages des informations utiles comme la date d’envoi (cherchez la ligne commençant par Date:), l’expéditeur (From:), le sujet (Suject:) et les groupes dans lesquels le message a été posté (Xref:).

    On peut aussi voir beaucoup d’informations qui se révèlent inutiles pour le commun des mortels. Rassurez-vous, slrn ne va pas tout afficher par défaut !

  • … et le corps du message, à la guise complète du rédacteur (c’est-à-dire vous !).

Remarquez que j’ai dit qu’une news pouvait être postée dans plusieurs newsgroups à la fois. Ce n’est pas une erreur, c’est d’ailleurs une pratique assez courante : cross-poster. Si vous voulez diffuser une information qui a sa place dans plusieurs groupes, au lieu de recopier votre article dans chaque groupe, il est possible de poster une news dans plusieurs groupes en même temps. Nous verrons comment faire la seconde possibilité plus tard, mais gardez en tête que la première est à bannir : si on a une news copiée dans plusieurs groupes, les lecteurs vont devoir marquer séparément le même texte comme lu, ce qui est peu pratique.

Aussi, quand on cross-poste une news, il est de bon ton de définir dans quel newsgroups vous voulez poursuivre la discussion. Imaginez que vous voulez annoncer une conférence destinée aux Info Sup : iit.assos.gconfs et epita.adm.isup sont alors des groupes de choix. Mais ensuite, les lecteurs de ces deux groupes vont-ils répondre sur l’un ? sur l’autre ? sur les deux ? Il est déconseillé de cross-poster toute une discussion, c'est-à-dire de cross-poster les réponses à un cross-post. Pour fixer les choses, il est d’usage de rajouter un header Followup-To: indiquant dans quel groupe en particulier répondre à un cross-post. Dans notre exemple, il suffit donc de rajouter le header Followup-To: iit.assos.gconfs pour que tous les lecteurs puisse répondre automatiquement dans le groupe réservé à l’association GConfs.

Les messages font généralement partie de discussions : on appelle thread l’ensemble des messages qui forment une discussion. Généralement, chaque message est soit un début de discussion soit une réponse à un autre message. Une discussion est alors un arbre de messages (pour les curieux, voir les headers Message-ID: et References:).

Il n’y a rien d’autre à savoir pour utiliser confortablement les newsgroups ! La partie sur les cross-posting peut paraître compliqué, mais on peut ne s’y référer que quand on veut cross-poster, ce qui arrive finalement peu souvent, par exemple lorsque l’on veut annoncer un événement qui concerne plusieurs groupes.

Configuration basique de slrn

L’installation du logiciel est hors de la portée de ce document : si vous êtes sur une machine de l’école, slrn devrait déjà être installé, sinon débrouillez-vous. ;-) Notez la convention concernant les touches du clavier : par « appuyez sur la touche T » j’entends comme si vous tapiez la lettre « t » (en minuscule), tandis que « appuyez sur Shift-T » signifie qu’il faut appuyer sur la touche « Shift », puis la garder enfoncée tout en appuyant sur la lettre « t », et enfin relâcher les deux.

La première chose à faire est de créer le fichier .slrnrc dans votre dossier personnel (/home/login/.slrnrc), qui va contenir vos options de configuration pour slrn. Supposons que vous vous appeliez John Doe et que votre adresse mail soit john.doe@example.com, vous pouvez commencer votre fichier de configuration avec :

set username "john.doe"
set hostname "example.com"
set realname "John Doe"
visible_headers "From:,Newsgroups:,Followup-To:,Date:,Subject:"
set sorting_method 9

Avec cette configuration, slrn va automatiquement placer vos noms et mail dans les messages que vous posterez et va par défaut limiter l’affichage des headers à l’expéditeur, les groupes sur lesquels la news est postée, le groupe pour répondre, la date et le sujet de la news, ce qui couvre la majorité des usages. De plus, quand vous parcourerez la liste des articles d’un groupes, ceux-ci seront groupés par discussion et triés par date (les plus récent en haut).

D’ailleurs, la rédaction des messages que vous posterez avec slrn est déléguée à votre éditeur de texte favori. Il suffit de définir la variable d’environnement EDITOR pour désigner l’éditeur à utiliser.

# Avec Bash/zsh/ksh/…
$ export EDITOR="vim"
$ export EDITOR="emacs -nw"
$ export EDITOR="gedit"

# Avec csh/tcsh
$ setenv EDITOR="vim"
$ setenv EDITOR="emacs -nw"
$ setenv EDITOR="gedit"

Il faut aussi spécifier à quel serveur NNTP se connecter. Dans la majorité des cas, vous ne lisez les news que depuis un seul serveur : il suffit de définir la variable d’environnement NNTPSERVER :

# Avec Bash/zsh/ksh/…
$ export NNTPSERVER="news.epita.fr"
# Avec csh/tcsh
$ setenv NNTPSERVER="news.epita.fr"

Vous pouvez exécuter cette commande avant chaque lancement de slrn ou simplement la rajouter dans votre .bashrc/.tcshrc/…

Notez que le serveur news.epita.fr est accessible depuis l’intérieur du parc informatique de l’école mais aussi depuis l’extérieur, sans authentification. Il y a quelques années, il fallait se netsouler pour y avoir accès depuis Internet.

Enfin, si vous voulez suffixer vos messages d’une signature, créez le fichier /home/login/.signature. Voici ma signature, par exemple :

-- 
Pierre-Marie de Rodat <pmderodat@kawie.fr>… ou simplement PM
http://canartichaut.kawie.fr/

Notez bien la première ligne de la signature : deux tirets, un espace et un retour à la ligne. Ce marqueur bien précis sert aux lecteurs à bien différencier la signature du reste : ne vous trompez pas ! Gardez votre signature concise : les signatures de plus de 4 lignes sont considérées comme de bruit, de la distraction inutile.

De très nombreuses autres options de configuration sont possibles, notament changer tous les racourcis clavier : il suffit de lire la documentation !

Exploration des groupes

Il n’y a plus qu’à lancer slrn ! Au premier lancement, il faut dire à slrn d’initialiser le fichier qui va garder en mémoire les groupes que vous lisez, les articles lus/non-lu, etc. :

$ slrn -f .jnewsrc-epita --create

On peut lire sur le premier écran la liste des groupes disponibles : U pour « Unsuscribe », le nombre d’articles présents et le nom du groupe. La dernière ligne indique les touches à utiliser pour les actions les plus courantes.

Dans chaque écran, appuyez sur « Q » pour revenir à l’écran précédent ou pour quitter. « Ctrl-G » permet généralement de sortir d’un menu ou d’une action que vous voulez annuler tandis que « ? » permet d’afficher l’aide.

Vous pouvez naviguer dans cette liste avec les flèches Haut/Bas ou avec Page Up/Page Down. Par défaut, slrn ne vous inscrit à aucun groupe : en l’état, vous ne verrez aucun groupe au prochain lancement. Pour remédier à cela, positionnez le curseur (la flèche verte) sur le groupe auquel vous voulez vous inscrire et appuyez sur « S » : l’indicateur « U » devrait alors disparaître. Pour demander à slrn de vérifier une nouvelle fois les derniers messages postés, appuyez sur « Shift-G ».

Recherchez le groupe iit.test : pour cela, appuyez sur la touche « / » (« forward search ») puis tappez iit.test. La fonction rechercher devrait sélectionner automatiquement le bon newsgroup. Pour lire la liste des articles présents dans iit.test, il suffit alors d’appuyer sur « Enter ». Il y a généralement beaucoup de news déjà présentes : pour éviter de tout télécharger, slrn propose de n’en télécharger qu’une partie (« Read how many? »). Acceptez le nombre par défaut avec la touche « Entrer » pour lire toutes les news.

Quand on visite un groupe, tous les articles non-lus sont affichés (en gras). On peut lire dans l’ordre : le numéro du message, le nombre de lignes de son corps, l’expéditeur, le nombre de messages dans le thread et le titre de la news.

Il est possible de se déplacer dans la liste des threads de la même manière qu’à l’écran précédent. Par défaut, les threads sont repliés : vous ne voyez pas les différents messages qui les constitue. Pour déplier/replier un thread, placez-vous dessus et appuyer sur « Alt-T ».

slrn est capable de trier les threads selon différents critères (par date, par sujet, …). Pour sélectionner une méthode de tri, appuyez sur « Alt-S » et sélectionnez un des modes indiqués.

Toutes les news que vous allez trouver au départ sont évidemement sont non-lues. Pour en line une, placez-vous dessus et pressez « Enter ». L’écran se divise alors en deux : la partie haute contient toujour la liste des threads et la partie basse contient le message à lire: 

  • Pour cacher/afficher l’écran de lecture, appuyez sur « H ».
  • Pour cacher/afficher l’intégralité des headers, appuyez sur « T ».
  • Pour cacher/afficher l’intégralité des citations, appuyez sur « Shift-T ».

Dans la liste des threads, si vous voulez marquer tous les threads comme « lus », appuyez sur « C » et confirmez ensuite avec « Y ». Pour marquer un thread/article comme lu, ce sera « D » et « U » pour marquer comme non-lu.

Remarquez que lorsque vous visitez un groupe qui contient des news non-lues, les news déjà lues ne sont pas listées. Par conséquent, pour lire une news que vous avez déjà lue il faut d’abord lire toutes les autres !

Postons des news !

Rien de plus simple : appuyez sur « Shift-P » et confirmez que vous voulez poster avec « Y ». slrn vous demande alors le newsgroup dans lequel vous voulez poster : laissez iit.test et appuyez sur « Enter ». Donnez un sujet à votre nouveau post, appuyez de nouveau sur « Entrer » et pouf ! vous voilà dans votre éditeur favori, avec un squelette de news Vous avez déjà un certain nombre de headers, mais d’autres seront rajoutés pendant le posting. En gardant une ligne vide entre vos headers et le corps du message, tappez allègrement votre message en respectant les conventions (voir plus bas). Une fois que votre news est rédigée, sauvegardez, fermez votre éditeur et confirmez dans slrn que vous voulez poster avec « Y ».

La procédure pour répondre à une news est sensiblement la même : placez-vous en lecture sur la news à laquelle répondre et appuyez sur « F ». Le reste est identique !

Afin que les newsgroups restent un endroit convivial et pratique, il existe un certain nombre de conventions à respecter. De très nombreux documents ont été écrits sur ce sujet (« netiquette ») donc je vais faire court :

  • Restez courtois : encore plus que de face-à-face, l’ironie est dure à déceler et les propos sont souvent mal pris. À l’inverse, ne prêtez pas trop vite de mauvaises intentions à votre interlocuteur…

  • Configurez votre éditeur de texte pour ne pas dépasser idéalement 72 colones et dans tous les cas 80 colones de texte par ligne (il est normal de dépasser 72 colones en citant ce à quoi on répond). Au-delà de 80, on considère que certains équipements peuvent avoir des difficultés à afficher votre prose. Garder une certaine marge en dessous de 80 colones permet aux autres de vous citer sans dépasser ces 80 colones.

  • Relisez-vous et soignez votre orthographe ! Un article n’est écrit qu’une fois mais sera lu de très nombreuses fois, donc si vous soignez la présentation, ce sera autant moins de gêne pour toutes les personnes qui vous liront. Alors par pitié, faites un effort !

  • Essayez de ne pas dépasser 4 lignes pour votre signature : gardez le nécessaire et n’encombrez pas vos messages de choses inutiles.

  • Gardez un minimum de contexte quand vous répondez à quelque chose : citez ce à quoi vous répondez et réponsez en-dessous de la citation. C’est bien plus simple à lire ! Et ne tombez pas dans l’excès inverse : ne citez pas tous les messages précédents. Corolaire : ne faites pas trop référence à quelque chose que seules 2 ou 3 personnes sont capables de comprendre (« private jokes »), c’est très désagréable pour les autres. On va essayer d’être constructif, donc voici un exemple :

    Quel beau ciel bleu !
    
    Le 12 septembre 2012, Bidule a écrit :
    > Ma foi c’est un peu nuageux, et chez vous ?
    >
    > Le 10 septembre 2012, Machin a écrit :
    >> Quel temps fait-il là-bas ?

    Cet extrait est écrit en « top-post ». C’est bien moins facile à lire que :

    Le 12 septembre 2012, Bidule a écrit :
    > Le 10 septembre 2012, Machin a écrit :
    >> Quel temps fait-il là-bas ?
    >
    > Ma foi c’est un peu nuageux, et chez vous ?
    
    Quel beau ciel bleu !

N’oubliez pas de tester votre configuration en postant un message dans iit.test ! Quand on n’a pas l’habitude de poster, on ne peut pas faire attention à tout du premier coup…

Créé en setptembre 2012 et dernière mise à jour en août 2014