Skip to content

Automatische Postings nach news.lists.misc

Wie ich bereits letzten Monat erwähnte, beabsichtigte ich die Liste der "German (language) regional hierarchies" zukünftig automatisiert nach news.lists.misc zu posten. Zu diesem Zweck habe ich jetzt ein wildes Shellscript gebastelt, das die aktuelle Liste, wie schon beschrieben, in zwei Teilen herunterlädt, um Einleitung, Überleitung und Ende ergänzt, prüft, ob sich seit dem letzten Download eine Änderung ergeben hat und postet das Ergebnis dann - vermittels yapfaq - nach news.lists.misc. Bisher scheint das recht gut zu funktionieren. :-)

yapfaq - yet another postfaq

Es gibt eine ganze Reihe von Lösungen, um FAQs automatisiert und regelmäßig ins Usenet zu posten:

Zum einen kann man dafür auto-faq von Ian Kluft und Paul W. Schleck nutzen, ein Perl-Script, das ich seit Ende der Neunziger für das automatische Posten diverser FAQs verwende. Es besteht aus einer Konfigurationsdatei, in der für jede FAQ definiert wird, wie sie nach wo gepostet wird. Die einzelnen FAQs sind als Textdateien abgelegt, über die Konfigurationsdatei werden die einzelnen Header und Pseudo-Header festgelegt; Message-IDs, Expires:- und Supersedes:-Header werden automatisch erzeugt. Gepostet werden die FAQs, deren Namen bei Aufruf des Scripts übergeben werden; das läßt sich via cron automatisieren, wobei für jede FAQ ein eigener crontab-Eintrag benötigt wird. auto-faq bietet einen ganzen Haufen an Optionen, hat aber den Nachteil, zum Posten zwingend inews - aus dem INN-Paket - oder vergleichbare Tools zu verwenden; außerdem bietet es eine Unzahl von Funktionen, namentlich auch zum Posten vielteiliger FAQs, die aber - jedenfalls für mich - keine Relevanz hatten. Und auto-faq wurde 1992 entwickelt und hat seit 1999, also seit über 10 Jahren, keine Änderung mehr erfahren …

Eine Alternative dazu stellt postfaq von Russ Allbery dar, gleichfalls in Perl implementiert. postfaq verfolgt ein anderes Konzept: hinterlegt in einer Textdatei wird hier nicht nur der Body der FAQs, sondern das komplette Posting einschließlich aller Headerzeilen. Konsequenterweise wird eine gesonderte Konfigurationsdatei nicht benötigt. Auch postfaq erzeugt die notwendigen Headerzeilen und postet die beim Aufruf angegebenen FAQs, was via cron automatisiert werden kann; es benötigt dazu aber keine externen Programme wie inews o.ä. Es wird aktiv gepflegt (letzte Änderung 2008).

Und eine weitere Möglichkeit ist yapfaq ("yet another postfaq"), ein Script von Marc Brockschmidt, das ich vor etlichen Jahren bereits einmal angetestet hatte, jetzt aber nirgendwo mehr wiedergefunden habe. Marc war aber dankenswerterweise so nett, mir die aktuelle Version (letzte Änderung: Februar 2003) zu überlassen; ich plane, yapfaq noch ein wenig für meine Zwecke zu bearbeiten und weiter zu entwickeln, as time permits. Einstweilen steht yapfaq über ein Git-Repository zur Verfügung.

yapfaq arbeitet grundsätzlich vergleichbar zu auto-faq: in einer zentralen Konfigurationsdatei wird definiert, welche FAQs in welchen Abständen wohin gepostet werden sollen. Die einzelnen FAQs sind als Textdateien abgelegt, wobei die Header durch das Script beim Posten gesetzt und ergänzt werden. Im Unterschied zu auto-faq postet yapfaq aber nicht nur eine bestimme FAQ, sondern alle FAQs, die "dran" sind, die also zuletzt vor - mindestens - dem definierten Zeitraum gepostet wurden. Es ist also nicht notwendig, für jede FAQ einen eigenen crontab-Eintrag zu definieren; vielmehr kann man yapfaq einfach täglich aufrufen, und jede FAQ wird dann gepostet, soweit sie "fällig" ist.

DE-Regio: Fehlerbehebung

Leider habe ich in den letzten Wochen - wie schon befürchtet - inhaltlich nicht mehr viel zur Liste der deutsch(sprachig)en Usenet-Hierarchien beitragen können, aber immerhin habe ich heute ein Update der Liste nach news.admin.hierarchies posten können. Bei deren Erstellung habe ich dann direkt noch einige Fehler - namentlich eine falsche Datenbankabfrage, die zu inkorrekten Angaben beim Aktualisierungsstand der Daten zu den einzelnen Hierarchien führte - im Code behoben.

INN-Funktionsweise: Expire

Wie ich vor anderthalb Wochen schrieb, fehlte meiner Beschreibung der Funktionsweise des Newsservers INN noch der Teil über Expire; namentlich deshalb, weil mir die Funktionsweise selbst nicht hinreichend klar war. ;-) Inzwischen habe ich aber, so denke ich, dank der hilfreichen Erläuterungen in de.comm.software.newsserver den notwendigen Durchblick gewonnen und die Beschreibung entsprechend ergänzt.

INN: Authentifizierung gegen MySQL-Datenbank

INN bietet vielfältige Möglichkeiten der Benutzerauthentifizierung an. Wenn man einer größeren Anzahl von Benutzern einen Zugang einräumen will, bietet es sich an, die notwendigen Daten - Benutzerkennung, Paßwort, etc. - in einer Datenbank zu halten, bspw. in einer MySQL-Datenbank.

Eine denkbare Lösung dafür, die neben Benutzerkennung und Paßwort auch Namen und E-Mail-Adresse des Benutzers erfaßt sowie ein Flag für aktive/inaktive Benutzer und eine Trennung nach verschiedenen Zugriffsstufen kennt sowie den Zeitpunkt des letzten Logins festhält, möchte ich hier vorstellen. Dazu gehört über das hier vorgestellte Script für den INN hinaus natürlich noch ein passendes (Web-)Interface, mit dem Benutzer angelegt und gelöscht sowie Paßworte geändert werden können etc.

Die Datenbankstruktur sieht folgendermaßen aus:

    CREATE TABLE IF NOT EXISTS `users` (
      `userid` int(11) NOT NULL auto_increment,
      `user` varchar(16) collate latin1_bin NOT NULL default '',
      `password` varchar(16) collate latin1_bin NOT NULL default '',
      `active` tinyint(1) NOT NULL default '1',
      `username` varchar(60) collate latin1_bin default NULL,
      `usermail` varchar(60) collate latin1_bin default NULL,
      `domain` varchar(40) collate latin1_bin default '<EDITME>',
      `llo` date default NULL,
      PRIMARY KEY  (`userid`),
      UNIQUE KEY `user` (`user`)
    );

Die Felder sollten weitgehend selbsterklärend sein; "llo" steht für "last logged in".

"INN: Authentifizierung gegen MySQL-Datenbank" vollständig lesen

news.szaf.org: neues Peering

Über allem anderen nicht zu vergessen: ich habe jetzt auch mit Viktor Kafkes visyn.net ein Peering aufgesetzt. Viktor bietet praktischerweise via GUP seinen Peers die Möglichkeit an, den Feed selbst zu konfigurieren und neue Gruppen aufzunehmen bzw. alte Gruppen zu streichen. Das ist wirklich praktisch, wenn man mal (ggf. testweise) eine neue (Teil-)Hierarchie ins Peering aufnehmen möchte, ohne alle Peers deshalb anmailen zu müssen.

Danke für das Peering!

control-archive 1.3.0: Patches akzeptiert

Heute hat Russ control-archive 1.3.0 releast, und die von mir letzte Woche submitteten Patches sind alle aufgenommen worden. Sehr schön! :-D

Außerdem wurde das Paket so weit aufgebohrt, daß auch Vermerke zu Hierarchien und entsprechende Sonderfälle jetzt aufgenommen werden können. Ich kann also, sobald ich wieder einmal Zeit finde (haha!), entsprechende Hinweise zu maintainten Hierarchien nachschieben und für die Hierarchien ohne Maintainter ggf. Änderungen des Gruppenbestands direkt zur Aufnahme in das generische active/newsgroups melden. Dann hätten wir wenigstens die deutsch(sprachig)en Hierarchien dort so weit wie möglich up-to-date.

INN-Funktionsweise: Steuernachrichten und Filter

Der Urlaub neigt sich endgültig seinem Ende zu, und - leider - ist die Todo-Liste, insbesondere hinsichtlich angedachter größerer Projekte, die man abends oder am Wochenende (zumindest bei meiner derzeitigen zeitlichen Belastung) nicht sinnvoll angehen kann, nicht merklich geschrumpft. Stattdessen habe ich mich (ungeplant) auf die Datensammlung zu Usenet-Hierarchien und danach dann auf den Umgang mit git konzentriert und am Ende eine ganze Reihe Dinge umgesetzt, die auf der ToDo-Liste eigentlich gar nicht vorkamen. :-)

Nachdem Newsserver in den letzten Wochen eine so große Rolle gespielt haben ist es jetzt zum Abschluss nur recht und billig, wenn ich (nach mehrjähriger Pause) meine Seite zur Funktionsweise des INN endlich um die noch fehlenden Teile ergänze; umso mehr, als ich meine Webseiten mittlerweile in ein git-Repository eingecheckt habe und daher auch den Umgang damit üben kann, insbesondere, was fraktionierte Commits betrifft. Das ist eine sehr nette Sache: man nimmt eine Reihe unterschiedlicher Änderungen vor, die nichts miteinander zu tun haben - bspw. eine Ergänzung der INN-Beschreibung auf der einen Seite und Richtigstellungen/Tippfehlerkorrekturen, über die man zufällig stolpert, auf der anderen -, und kann diese Änderungen aber selektiv committen, bspw. zuerst nur die Ergänzungen, dann die Änderungen, dann die Rechtschreibfehler. Das macht die Commits übersichtlicher und ggf. auch leichter zu reverten, weil man nur logisch zusammengehörendes auch zusammen committet, ohne daß man beim Editieren darauf achten müßte.

Ich kann also hiermit verkünden, daß ich die Abschnitte über Steuernachrichten (control.ctl), Filter und Reader-Authentifizierung sowie eine recht umfangreiche Linksammlung ergänzt habe. Fehlen nur noch Erläuterungen zum Expire, aber das muß ich erst einmal selbst verstehen. ;-)

Update 2010-01-26: Inzwischen steht auch die Erläuterung zum Expire online. Die Seite ist damit - endlich! - fast fünf Jahre nach ihrer ersten Erstellung komplettiert. Ich hoffe, sie hilft dem einen oder anderen (vermißt wurden die fehlenden Teile allerdings offensichtlich nicht, wenn man nach dem erhaltenen Feedback über die Jahre geht …).

Deutsch(sprachig)e Usenethierarchien: Update

In den letzten 10 Tagen habe ich auf meine diversen Anfragen hin eine große Zahl via Newsgroup oder per E-Mail eingehender Hinweise und Ergänzungen zu meiner Liste deutschsprachiger regionaler Usenet-Hierarchien (De-Regio) erhalten und - zusammen mit den Ergebnissen meiner eigenen Recherchen - die Liste entsprechend ergänzt. Ein Update habe ich auch nach de.comm.provider.usenet gepostet.

Angesichts der Vielzahl von kleinen und kleinsten Hierarchien, die mir mittlerweile benannt wurden und bei denen ich noch nicht sicher bin, wie und in welchem Umfang - und nach welchen Kriterien - sie in der Liste aufscheinen sollen (und nicht zuletzt auch deshalb, weil sich mein Urlaub dem Ende nähert und ich den derzeitigen Status dokumentieren und "einfrieren" will), habe ich ergänzend eine Seite im Heuhaufen-Wiki mit den Hinweisen eingerichtet, die noch nicht abgearbeitet sind.

Außerdem habe ich den Fokus des Projekts etwas verschoben oder erweitert, nämlich von "deutschsprachigen Regionalhierarchien" auch auf rein deutschsprachige internationale, nationale oder "special interest"-Hierarchien. Anlaß dafür waren Hinweise, daß Hierarchien wie at.* oder ch.* fehlten, die zwar unzweifelhaft deutschsprachig sind (für eine passende Definition von "deutscher Sprache" ;-)), aber nicht in dem von mir ursprünglich angedachten Sinne von "lokal oder regional". Andererseits fiel mir auf, daß mein Interesse bislang eigentlich weniger deutschsprachige als vielmehr tatsächlich innerdeutsche Hierarchien betraf. Mit dem Merge des Branches "de-regio-nonregio" habe ich daher eine Unterscheidung nach regionalen (deutschsprachigen), sprachspezifischen (deutschsprachigen nationalen oder internationalen) und (deutschsprachigen) "special interest"-Hierarchien eingeführt. Ersteres sind die bisher alleinig erfaßten Hierarchien mit lokalen oder regionalen Bezügen, zweiteres Hierarchien wie at.*, ch.*, de.* o.ä.  und letzteres schließlich Spezialfälle wie hamster.de.* o.ä., die weder direkt sprach- noch geographisch (oder institutionell) abgegrenzt sind, sondern thematisch.

Ich denke, daß das den Pflegeaufwand nicht übermäßig ansteigen läßt; das Usenet ist derzeit - egal in welchem Bereich - nicht gerade ein schnell bewegliches Ziel ("moving target").

news.szaf.org: Hierarchien ergänzt

Inzwischen bin ich - zwei bis drei Wochen später - endlich wieder da angekommen, wo ich eigentlich letztes Jahr zwischen den Feiertagen angefangen hatte: bei der Konfiguration meines Newsservers bzw. dem dort geführten Gruppenbestand, dessen Konsolidierung mich dann ja auf längere Ausflüge in die Welt der deutschsprachigen Regionalhierarchien geführt hat. :-)

Nunmehr sollen die Früchte dieser Arbeit geerntet werden, insofern habe ich nun nicht nur die Gruppenlisten der von mir geführten Hierarchien (soweit erforderlich) berichtigt und einige tote Gruppen entfernt, sondern mich auch entschlossen, welche weiteren Hierarchien ich führen möchte, namentlich Länder- bzw. sprachbezogene Hierarchien und "special interest"-Hierarchien wie bspw. linux.*. Nach entsprechenden Vorbereitungen habe ich diese Wünsche inzwischen an meine Peers kommuniziert, und die entsprechenden Feeds sind jetzt bereits umgestellt. So steht dem erweiterten Gruppenangebot auf news.szaf.org nichts mehr im Wege. Einen all.all-Feed möchte ich aber dennoch nicht haben; wozu bei meiner sehr kleinen Nutzerbasis ungezählte Hierarchien führen und Postings durchschieben, die hier kein Mensch brauchen kann?

Gleichermaßen bin ich am Sammeln von Peers nicht interessiert; das erhöht letztlich nur den Aufwand, ohne die Newsversorgung zwingend zu verbessern; je nach Abuse-Management kann es sie sogar verschlechtern. Und mein Ziel beim Betrieb eines Newsservers ist nicht in erster Linie ein Platz unter den ersten auf TOP1000.org. ;-) Dennoch freue ich mich, mit Telefonica einen weiteren großen Peeringpartner dazugewonnen zu haben.

Patches für control-archive

Ich hatte ja bereits darüber berichtet, daß mich der simple Wunsch, meinen Newsserver etwas aufzuräumen, über den Umweg über die List of Usenet public managed hierarchies auf eine mehrwöchige Tour durch die deutschsprachigen Regionalhierarchien geschickt, zum Aufbau von De-Regio und zur Installation von git gebracht hatte. Mittlerweile habe ich mich hinreichend sortiert, um für das control-archive-Paket eine ganze Reihe von Änderungen einzureichen, die ich nun in Form von git-Patches gebracht und per Mail an den Maintainer verschickt habe; mehr oder weniger das erste Mal, daß ich auf diese Weise irgendwo einen Beitrag leiste. Mal schauen, ob die Patches akzeptiert werden.

Mit git muß ich mich aber definitiv noch näher beschäftigen, sofern es da auch etwas unter Windows gibt; das scheint mir endlich mal ein VCS zu sein, mit dem ich klarkomme. :-)

"German (language) regional hierarchies"

Unter diesem Betreff habe ich - unter Nutzung der von mir vor einer Woche implementierten Funktionalität zur Erzeugung von gefilterten Listen aus den gespeicherten Daten deutschsprachiger regionaler Usenet-Hierarchien - soeben zum ersten Mal eine solche Liste nach news.admin.hierarchies gepostet, in der Hoffnung, auch so vielleicht wieder etwas mehr Interesse für die kleineren Hierarchien zu erzeugen oder zumindest einmal die Propagation zu verbessern. Ich habe vor, diese Liste zukünftig regelmäßig, vermutlich monatlich, nach news.lists.misc zu posten; das setzt allerdings eine entsprechende Automatisierung voraus.

Sic transit gloria mundi

Bisher sind die Ergebnisse meines Projekts zur Zusammenstellung von Informationen über die deutschsprachigen Regionalhierarchien eher bedrückend; etliche Hierarchien sind ganz tot, und in denjenigen, in denen sich Antworten auf meine fragenden Postings finden, scheinen die von mir gestellten Fragen leider eher als Anlaß zur kritischen Selbstreflektion mit dem Ergebnis "die Hierarchie ist tot, wir sollten sie vielleicht auch offiziell begraben" zu führen, so zum Beispiel in muenster.*. :-(

Das war nun wirklich nicht die Reaktion, auf die ich gehofft hatte. Eigentlich hätte ich mir eher einen Motivationsschub gewünscht … *seufz*

DE-Regio: Hierarchie-Listen erzeugen

Mein Verzeichnis deutschsprachiger Usenet-Regionahierarchien habe ich mittlerweile nicht nur um eine automatische Erkennung der vom Browser übertragenen Sprachpräferenzen - zusätzlich zur Möglichkeit der expliziten Auswahl - ergänzt, sondern auch eine Möglichkeit zur Erstellung eigener Listen aus dem vorhandenen Datenbestand nach vorgegebenen Kriterien ergänzt, bspw. zur Einbindung in eine Webseite oder auch als Textdatei, bspw. zum Posten ins Usenet. Durch Auswahl aus nahezu allen in der Datenbank vorgehaltenen Kriterien kann die komplette Liste der erfaßten Usenet-Hierarchien entsprechend vorgefiltert und dann eine entsprechende Liste als reiner Text (text/plain), als HTML-Fragment (zum Einbinden in eigene Webseiten) oder als komplette Webseite erzeugt werden.

Ich hoffe, daß - außer mir ;-) - jemand damit etwas anfangen kann.

Massenpostings

Nein, ich bin nicht unter die Spammer gegangen, aber ich habe mittlerweile den ersten Schub Postings mit der Bitte um Prüfung und ggf. Ergänzung der bei DE-Regio zusammengestellten Daten über die jeweiligen Usenet-Hierarchien versandt, die letztlich alle ähnlich aussehen; ich hoffe auf möglichst viele Rückmeldungen. Einen entsprechenden Hinweis habe ich auch nach de.comm.provider.usenet gepostet. Vielleicht führt ja alleine schon das Erfassen und Zusammenstellen des derzeitigen Status da und dort zu einer gewissen Belebung? Sicherlich werde ich auch die eine oder andere Newsgroup zusätzlich abonnieren. Mal schauen.