Eine Einfuerung in USENET und tin

Begriffe wie USENET, netnews oder schlicht news kennt wohl jeder. Der richtige Umgang mit diesen Dingen und die effiziente Bewaeltigung der enormen Informationsmengen ist aber nicht unbedingt einfach. Insbesondere dann nicht, wenn man keinen guten Newsreader kennt und beherrscht. Diese Probleme sollen hiermit beseitigt werden.

Was ist das USENET ueberhaupt?

Am ehesten koennte man das USENET mit einem verteilten bulletin board system vergleichen. Es ist unterteilt in verschiedene Themenbereiche, sogenannte Gruppen (groups, oder auch newsgroups), von welchen es im Moment rund Dreitausend geben duerfte und umspannt die ganze Welt. Innerhalb einer Gruppe werden verschiedene zum Namen der Gruppe passende Themen diskutiert, sogenannte Threads. Ein Thread hat einen Titel (der Titel des ersten zu ihm gehoerenden Artikels) und besteht meistens aus einer Anfrage und eventuell einigen (1 bis in seltenen Faellen ueber hundert) Antworten und kann sich in mehrere Subthreads aufspalten. Die meisten Newsreader (Programme, um die news moeglichst komfortabel lesen zu koennen) sortieren die Artikel einer Gruppe leider nur nach ihrem Datum, dabei ist es viel angenehmer, die Artikel, die zu einem bestimmten Thread gehoeren, gerade nacheinander lesen zu koennen. Diese Moeglichkeit bieten sogenannte "threaded newsreader", wie z.B. trn oder eben tin.

Vorbereitung von tin

Zuerst einmal muss man tin sagen, woher die News zu beziehen sind. Fuer Studenten liegen sie auf neptune.ethz.ch, also ist folgender Befehl in einer shell (csh, tcsh) auszufuehren:
 setenv NNTPSERVER neptune

Die syntax fuer sh, bash und zsh ist:

set NNTPSERVER=neptune export NNTPSERVER

Damit tin weiss, dass es die News nicht auf dem lokalen Rechner findet, startet man das Programm mit der Option -r (remote) oder verwendet den Namen rtin anstelle von tin. Der Pfad von tin ist /usr/local/bin, der komplette Befehl zum starten von tin ist also:
/usr/local/bin/rtin
Wenn man /usr/local/bin in seiner PATH-Variable schon eingefuegt hat (z.B. in der Datei ~/.cshrc), genuegt
rtin

Zudem empfiehlt es sich, auch die obigen Zeilen zum Setzen des NNTPSERVERs in die jeweilige startup-Datei der eigenen Lieblingsshell einzutragen, damit man sie nicht jedesmal von Hand wieder eingeben muss.

Nachdem tin erfolgreich gestartet wurde, heisst einen das Programm ersteinmal herzlich willkommen. Nach dem Druecken einer beliebigen Taste erscheint ein mehrheitlich leerer Bildschirm. Falls man nur einige ganz bestimmte Newsgroups lesen moechte, deren Namen man schon kennt, kann man diese nun direkt mit 'g' anwaehlen. Dazu jedoch spaeter mehr. Fuer all diejenigen, die sich im USENET noch nicht auskennen und somit auch noch nicht wissen, welche Gruppen sie ueberhaupt lesen sollen, empfiehlt es sich, tin sogleich wieder mit 'q' zu verlassen. Das Programm hat naemlich eine Datei namens ~/.newsrc angelegt, in der alle im Moment auf diesem Server verfuegbaren Newsgroups drin stehen.

Die Qual der Wahl

Nun laedt man sich die Datei ~/.newsrc in einen Editor und schaut sie sich einmal an. Die ersten paar Zeilen sehen dann etwa so aus:
alt.3d! 
alt.abortion.inequity! 
alt.activism! 
alt.activism.d! 
...

Zuerst steht jeweils der Name der Newsgroup, dann ein Kennzeichen dafuer, ob es sich um eine vom Benutzer abonnierte Gruppe handelt (':') oder um eine, die ihn nicht interessiert ('!'). Danach kommen noch die Nummern der bereits gelesenen Artikel. Da bis jetzt noch keine Gruppe angewaehlt wurde, steht nach den Ausrufezeichen nichts und da erst recht auch noch nichts gelesen wurde, sind auch keine Artikelnummern vorhanden.

Um nun aus den ueber 2300 Gruppen, die auf neptune gespeichert sind, die interessanten zu finden, sucht man am besten mit der Suchfunktion des Editors nach bestimmten Woertern, z.B. nach 'mac', 'unix' oder nach was es einem auch immer geluestet (einen etwas besseren Ueberblick erhaelt man, wenn man die Datei vorher sortiert. Sie sieht zwar sortiert aus, ist es aber nur am Anfang). Meistens findet man auf diese Art mehr Gruppen, als einem lieb ist. Folgende Aufstellung der verschiedenen Gruppen-Hierarchien soll eine kleine Hilfe sein, damit man sich in der riesigen Vielfalt leichter zurechtfindet:

Um die gefundenen Themenbereiche nachher im tin lesen zu koennen, ersetzt man das Ausrufezeichen am Ende der entsprechenden Zeile durch einen Doppelpunkt. Nun nocheinmal tin gestartet und es geht richtig los!

Erste Schritte mit tin

Hat man vorher (wie oben beschrieben) einige Gruppen in der Datei ~/.newsrc mit einem Doppelpunkt angewaehlt, so sieht der Hauptbildschirm von tin nun schon etwas interessanter aus. Zuoberst steht, wo man sich gerade befindet ("Group Selection". Die Auswahl der Newsgroups), sowie die Anzahl angezeigter Gruppen. Ein eventuell vorhandenes 'R' bedeutet, dass nur die Gruppen angezeigt werden, in denen sich ungelesene Artikel befinden und die restlichen unsichtbar sind. Darunter sind Zeilenweise die abonnierten Gruppen in folgender Form:
Nummer Artikel Name [Beschreibung]
Die einzelnen Spalten bedeuten:

Im unteren Teil des Bildschirms befindet sich ein kleines Hilfsmenu. Es ist uebrigens ueberall im Programm moeglich, mit 'h' eine Liste aller momentan gerade moeglichen Befehle und ihre Bedeutung anzuzeigen. Die wichtigsten davon im Hauptmenu sind: Pfeil hoch und Pfeil runter (bzw. 'k' und 'j') zum Verschieben des Cursor-Balkens und 'Return' zum Anwaehlen einer Gruppe. Hat man mehr Gruppen abonniert als auf einer Seite Platz haben, so kann man entweder wie gerade beschrieben durch die Liste scrollen, mit 'Space' seitenweise vorwaertsgehen oder mit 'g' und dem genauen Namen einer Gruppe direkt zu ihr hin springen. Ist endlich eine gute Gruppe gefunden, kommt man mit 'Return' zum Group-Level, wo man einen Ueberblick ueber die gewaehlte Gruppe erhaelt. Zuerst muss tin allerdings noch alle Artikel indizieren, damit sie nachher leichter zu Ordnen sind. Die auf den rifrafs installierte Version von tin ist leider nicht von neuestem Datum, deshalb kann sie die auf dem Server bereits vorhandene Vorsortierung der Artikel nicht ausnuetzen. Besonders beim ersten Anwaehlen einer Gruppe kann das ein Weilchen dauern (Es ist auch moeglich, tin einmal mit 'rtin -u -v' aufzurufen, um auf einmal alle Gruppen zu indizieren oder diesen Befehl in der privaten crontab einzutragen, dann wird die Indizierung z.B. ueber Nacht erledigt). Spaeter wird dieser Vorgang dann nicht mehr so lange dauern, da jeweils nur noch die neuen Artikel bearbeitet werden muessen.

Das Menu auf Gruppen-Stufe sieht aehnlich aus wie das Hauptmenu: Zuoberst steht der Name der Gruppe, sowie einige Zahlen. Die wichtigen sind die vor dem 'T' und vor dem 'A'. Sie zaehlen die Anzahl angezeigter Threads bzw. Artikel. Ein allfaelliges 'R' zeigt wiedrum an, dass nur die ungelesenen Artikel aufgefuehrt sind. Darunter folgen zeilenweise die einzelnen Threads mit folgendem Zeilenformat:

Nummer [+] [Antworten] Titel Autor
Die Bedeutungen sind:

Darunter ist wieder ein kleines Hilfsmenu, diesmal mit geringfuegig anderen Befehlen. Auch hier kann man mit Pfeil hoch und Pfeil runter (bzw. 'k' und 'j') die zur Auswahl stehenden Threads anwaehlen oder mit 'Space' seitenweise durch die Liste blaettern. Mit 'Return' zeigt man den ersten Artikel eines Threads an, und zwar auch dann, wenn man ihn schon gelesen hat. Auf diese Art wird man zuerst nocheinmal daran erinnert, worum es in dem Thread geht. Mit 'Tab' ueberspringt man den ersten Artikel eines Threads (falls man ihn bereits gelesen hat) und kommt direkt zum ersten ungelesenen. Zur besseren Uebersicht ueber einen Thread kann man ihn auch anwaehlen und sich dann mit 'l' eine Liste aller darin enthaltenen Artikel ausgeben lassen.

Auf der Artikel-Stufe sieht der Bildschirm etwas anders aus als vorher. In der obersten Zeile steht das Datum und die Zeit, zu der der Artikel abgeschickt wurde (bereits umgerechnet in die lokale Zeitzone), der Name der aktuellen Newsgroup und die Nummer des Threads, zu dem der Artikel gehoert. Die naechste Zeile enthaelt die Anzahl Linien des Artikels, seinen Titel (invers) und wieviele Antworten darauf bereits geschrieben wurden. Der unterste Teil des Seitenkopfes ist dem Autor des Artikels vorbehalten, er enthaelt dessen e-mail Adresse, seinen Namen und die Organisation, von wo der Artikel abgeschickt wurde (z.B. 'ETH Zuerich'). In der Mitte ist ein Ausschnitt des Artikels und zuunterst wieder das kleine Hilfsmenu (welches sich uebrigens mit 'H' aus- und einschalten laesst). Ganz unten wird angezeigt, wieviel Prozent des Artikels bereits gelesen wurden und das Verhaeltnis gelesene/totale Anzahl Bytes. Mit 'Space' und 'b' scrollt man eine Seite weiter bzw. zurueck. Am Ende eine Artikels geht 'Space' zum naechsten Artikel eines Threads, oder, falls es der letzte Artikel war, direkt zum naechsten Thread. Die Tabulator-Taste fuehrt immer (nicht nur am Ende eines Textes) zum naechsten ungelesenen Artikel. Diesen sucht tin ebenfalls zuerst im aktuellen, dann im naechsten Thread.

Beantworten von Artikeln

Beim Lesen eines Artikels gibt es noch zwei weitere wichtige Funktionen, die man kennen und nicht verwechseln sollte: Persoenliches (reply, Taste 'r') und oeffentliches (followup, 'f') beantworten eines Artikels. Eine persoenliche reply wird als e-mail direkt an den Autor geschickt, waehrend ein followup in allen Gruppen landet, in denen auch der aktuelle Artikel verschickt wurde (meistens ist das nur eine, man kann Artikel aber auch in mehreren Gruppen verschicken). Der Text geht dann durch Tausende von Rechnern auf der ganzen Welt (ausser bei lokalen Gruppen) und belastet dabei sowohl Netzwerk-Kapazitaeten als auch unzaehlbare CPUs und Festplatten. Man sollte sich deshalb gut ueberlegen, ob es nicht auch genuegen wuerde, eine Antwort als e-mail zu geben. Viele Fragesteller im USENET bieten jeweils an, man solle die Antworten direkt an sie schicken, sie wuerden dann das Ergebnis falls gewuenscht ein paar Tage spaeter in einem followup zusammenfassen. Dies ist haeufig eine gute Methode, da e-mails wesentlich weniger Resourcen brauchen als USENET-Artikel. Nachdem man sich mittels 'r' oder 'f' zum Beantworten einer Frage oder zum Ergaenzen einer Antwort entschlossen hat, wird sofort der Editor gestartet, der in der Environment-Variable EDITOR der shell steht. Im Normalfall ist es angenehmer fuer die anderen Leser, wenn noch ein paar Zeilen des vorherigen Artikels im Text stehen, damit sie den Zusammenhang besser sehen. Beantwortet man mit den Tasten 'R' oder 'F', so wird der alte Text gequotet, d.h. ganz in den Artikel uebernommen, aber zusaetzlich wird vor jeder Zeile ein Doppelpunkt (laesst sich mittels Voreinstellungen auch in das gebraeuchlichere '>' aendern) eingefuegt, damit man die zitierten Stellen auch als solche erkennt. Aber Achtung: Quoten will gelernt sein. Es ist sinnlos und gilt im USENET als unhoeflich (gelinde gesagt), einen langen Artikel vollstaendig zu quoten und am Schluss einen winzigen Kommentar wie z.B. "me too" anzufuegen. Man sollte sich gut ueberlegen, welche Stellen fuer's Verstaendnis wirklich wichtig sind und den Rest wieder loeschen.

Ist man fertig mit der Antwort, hat den Text abgespeichert und den Editor verlassen, so steht man vor drei Moeglichkeiten:

Im Inhaltsverzeichnis einer Gruppe wird ein eben abgeschickter Artikel allerdings noch nicht erscheinen. Es dauert meist einige Minuten, bis der Artikel auf dem Server in die Gruppe aufgenommen und weitergeschickt wurde.

Starten eigener Threads

Bis jetzt habe ich nur beschrieben, wie man auf bereits existierende Artikel antwortet. Wie aber beginnt man einen eigenen Thread? Eigentlich ist es recht einfach: Man sucht sich die passende Gruppe (mit scrollen oder 'g' im Gruppen-Menu) und tippt ein 'w' (write). Dann muss man einen Titel (Subject) eingeben, der moeglichst passend und kurz ist. So aussagekraeftige Ueberschriften wie "Help me" werden wohl von vielen Leuten gar nicht erst gelesen, weil sie nur diejenigen Artikel anwaehlen, die sie vom Titel her interessieren und den grossen Rest schlicht ueberspringen. Zu lange Titel sind auch nicht gut, weil sie in der Liste der Threads sonst nicht mehr vollstaendig zu lesen sind. Ist der Titel eingegeben, wird der Editor gestartet, wobei ein Teil des Headers bereits vorgegeben ist. An der ersten Zeile (Subject) gibt es eigentlich nichts mehr zu aendern, es sei denn, es ist einem in der Zwischenzeit ein besserer Titel eingefallen. In der zweiten Header-Zeile steht die Gruppe, in der der Artikel verbreitet wird. Man kann auf dieser Zeile auch noch weitere Gruppen angeben, aber man sollte das nur tun, wenn es unbedingt noetig ist! Einen Artikel, der auf diese Weise in mehreren Gruppen verschickt wird, nennt man "Cross-posting". Massives cross-posting von Artikeln (oder gar wiederholtes posten eines Artikels in jeder Gruppe einzeln) in unpassenden Gruppen ist im USENET aeusserst unbeliebt und kann zu ziemlich boesartigen Reaktionen fuehren. Wenn man zum Beispiel seinen PC gegen einen Mac eintauschen moechte, ist es durchaus angebracht, diesen Artikel in eine PC- und eine Mac-Gruppe zu cross-posten (aber nicht in alle PC und alle Mac-Gruppen!). Cross-postings sind auf jeden Fall besser, als den gleichen Artikel mehrmals in verschiedenen Gruppen von neuem zu verschicken, da cross-postings nur einmal uebertragen und gespeichert werden (in den Gruppen der Newsserver werden einfach Pointer auf den Artikel eingetragen). Zudem werden cross-postings in allen Gruppen, in denen sie verschickt wurden, als gelesen markiert, wenn man sie in einer davon gelesen hat. Die dritte Header-Zeile ist fuer das Gebiet der Verbreitung des Artikels zustaendig (Distribution). Meistens kann man hier einfach "world" eintragen, wodurch der Text weltweit ueberallhin verschickt wird, wo die jeweilige Gruppe auch empfangen wird. Moechte man einen Artikel nur gerade auf dem benutzten Newsserver lokal speichern und nicht weiterverbreiten, kann man hier auch "local" eintragen. Die letzten beiden Zeilen ("Summary:" und "Keywords:") sind freiwillig und werden nicht von allen Newsreadern unterstuetzt. Es emfpiehlt sich vielleicht trotzdem, hier ganz kurz etwas passendes einzutragen. Nachdem der Header richtig vervollstaendigt wurde, kann man den eigentlichen Text schreiben. Nach dem Speichern und Verlassen des Editors kommt wieder die bereits oben beschriebene Frage, was nun mit dem Text geschehen soll.

Nun muesste eigentlich das wichtigste klar sein. Wer seine neu erlernten Faehigkeiten mit einem Test-Artikel ausprobieren moechte, der kann das in der Gruppe alt.test tun. Falls im Titel nicht "ignore" steht, wird man in den naechsten Tagen von Mails aus aller Welt ueberschwemmt werden, die einem bestaetigen, dass der Artikel richtig verschickt wurde. Da die News-Installation aber eigentlich schon funktioniert, genuegt es, einen Test-Artikel nur lokal zu verbreiten.

So, dies muss fuer einen ersten Einstieg in's USENET und den Newsreader tin reichen. In einer der naechsten Visionen werde ich noch ein paar fortgeschrittene Themen behandeln. Fuer Fragen, Kritik und Anregungen stehe ich selbstverstaendlich gerne zur Verfuegung.

Felix Rauch (IIIC/6)
frauch@iiic.ethz.ch