PG NNTPBoard
Veraltete Informationen! Das NNTPBoard ist inzwischen produktiv im Einsatz: http://forum.junge-piraten.de/
Inhaltsverzeichnis |
Aufgabe
- Quellcode: Auf GitHub
Grundsatzdokument
Verfasst von Subanomic
Forum keine optimale Lösung
Im jetztigen Forum der Jungen Piraten ist momentan keine zufriedenstellende Aktivität festzustellen. Dies kann verschiedene Ursachen haben. Die Benutzung des Forums ist relativ umständlich und unübersichtlich, wenn man sich nur über bestimmte Themenbereiche informieren möchte. Die Wahrscheinlichkeit ist groß, etwas zu verpassen, für das man sich eigentlich interessiert. Mit wachsender Mitgliederzahl sowie wachsenden Foren und Topics erhöht sich die Unübersichtlichkeit des Forums immer weiter. Auch ist das Webfrontend nicht jedermanns Sache – dies zeigte sich auch in Rahmen der Umstellung von der ML auf das jetztige Forum durch vielseitig geäußerte, berechtigte Kritik. Die Anpassbarkeit des Webforums lässt zu Wünschen übrig und die persönlichen Vorlieben unterscheiden sich stark. Es steht außer Frage: Eine Alternative ist angebracht!
Ein weiterer Punkt, der explizit gegen die Nutzung von phpBB im Speziellen (gerade mit den SynCom-Patches) spricht, ist die Betriebssicherheit. Das Team Infrastruktur hat die Aufgabe, die Server der Jungen Piraten auf einem möglichst sicheren Stand zu halten. Dies geschieht in einem nicht unwesentlichen Teil durch die laufende Installation von Updates, gerade der Webapplikationen. Der Aufbau von phpBB macht es nahezu unmöglich, Updates zu installieren, nachdem der Ursprungsquelltext des Forums verändert wurde. Jedoch erfordert SynCom mehrere Modifikationen am Quelltext des Forums, welche jetzt schon ein Update der Forensoftware verhindern. Dies ist jedoch aus Sicherheitstechnischer Sicht untragbar.
Syncom als Alternative
Die Piratenpartei scheint sich genau mit dem gleichen Problem auseinandergesetzt zu haben und hat auch eine Lösung parat - „Syncom“ heißt das Ganze: ein Tool, das die Aufgabe hat, Mailinglisten, Newsgroups und das herkömmliche Webforum (phpBB) zu synchronisieren. So soll jeder selbst sein präferiertes Frontend für die Kommunikation wählen können – klingt zunächst mal sehr gut. Allerdings hat das Ganze den unangenehmen Nebeneffekt, dass jedem dieser Frontends ein eigenes Backend zugrunde liegt, dessen ursprünglicher Zweck einen völlig anderen Ansatz verfolgt. Die Synchronisation findet erst nachträglich statt. Wir sind gegen den Einsatz von Syncom. Die Gründe dafür möchten wir im Folgenden darlegen.
Wir sind der Auffassung, dass Syncom nur eine zusammengewürfelte, suboptimale Lösung ist, ein „Hack“, der gegen Standards verstößt und das Problem nicht bei der Wurzel packt. Eine solche Lösung ist in keinster Weise durch die einzelnen Bestandteile (ML, Newsgroup, Forum) vorgesehen und auch nur schwer skalierbar. Mit zunehmender Benutzung und zunehmender Userzahl wird die Synchronisation immer schwerer fallen, bis die Newsgroups, Mailinglisten und Foren irgendwann womöglich nicht mehr synchron sind. Dies wäre für die Kommunikation der Mitglieder sicher nicht förderlich, zumal ggf. auf Beiträge Bezug genommen werden könnte, die mangels Synchronisation bei einigen Usern nie eingetroffen sind.
Ebenso sind notwendige Updates der zugrundeliegenden Software nach der Anpassung nur noch schwer möglich. Wenn also beispielsweise eine kritische Sicherheitslücke in phpBB bekannt wird, so ist ein Update auf die gefixte Version nicht ohne weiteres möglich, da die am Quellcode von phpBB vorgenommenen Änderungen berücksichtigt werden müssen – ein schwerwiegendes Sicherheitsproblem.
Ein weiterer Nachteil ist die Formatierung. Ein in phpBB erstellter Thread bietet die Möglichkeit der Textformatierung, Einbindung von Hyperlinks, Benutzung von Smileys, Grafiken, etc. All diese Dinge sind in Mailinglisten und Newsgroups nicht vorgesehen. Ein in phpBB erstellter Beitrag muss also erst umgeparst werden, sodass er kein HTML bzw. keine BB-Codes mehr enthält, seine Formatierung in Form von Zeilenumbrüchen und Einrückungen aber dennoch beibehält. Selbiges gilt für Quotes – in Mailinglisten und Newsgroups werden diese in jeder Zeile mit einer spitzen Klammer (>) eingeleitet, während in phpBB dafür ein BB-Code existiert. Außerdem ist bei Mails und Newsgroups ein Maximum von 78 Zeichen pro Zeile vorgesehen. Es müssen also in beide Richtungen alle Beiträge erst umgeparst werden. Dies kann zu einer von der durch den Verfasser gewünschten Darstellung seines Beitrags stark abweichenden Version bei den MLs/Newsgroups führen.
Außerdem ist sowohl bei Newsgroups als auch bei phpBB das nachträgliche Bearbeiten der Beiträge möglich, ebenso das Löschen – sowohl durch den Ersteller als auch durch Moderatoren. Wenn das Ganze nun allerdings mit einer Mailingliste synchronisiert wird, so ist dies nicht mehr möglich, da Mails, wenn sie erstmal rausgeschickt wurden, selbstverständlich nicht mehr bearbeitbar oder löschbar sind. Die Lösch- und Bearbeitungsfunktion nur in Forum und Newsgroups beizubehalten könnte bei Benutzern der Mailingliste zu großer Verwirrung führen. Wenn beispielsweise ein Forenthread gelöscht wird, was soll dann mit Mails auf der ML passieren, die noch an das alte Topic gerichtet sind? Diese würden dann nur noch auf der Mailingliste kursieren, für Newsgroup- und Forennutzer allerdings nicht ersichtlich sein. Ähnliches gilt bei der Bearbeitung von Forenthreads: Man müsste für jede kleinste Änderung eine neue Mail an die ML herausschicken. Ich denke, es muss nicht näher ausgeführt werden, welchen Einfluss das auf die Übersichtlichkeit der Mailingliste hätte.
Ein weiteres Grundproblem bei einer Synchronisierung zwischen Mailingliste, Newsserver und Webforum ist die unterschiedliche Benutzereinstellung der Systeme. Ein Beispiel ist das sog. Threadkapern, was auf Mailinglisten häufig zu Problemen führt. Wenn diese Falschen Antworten im Forum gesynct werden, werden (u.U. wichtige Themen) nicht beachtet. Dieses Problem besteht jedoch allein vor dem Monitor (PEBCAK).
Für viele der bisher genannten Kritikpunkte stellen die Entwickler Lösungen vor, (wenn auch z.T. Noch in der TODO-Liste). Ich will auch keinesfalls die mit SynCom geleistete Arbeit schlecht machen – für das erklärte Ziel, Forum, Newsgroup und ML zu synchronisieren ist die Software meiner Ansicht nach gut umgesetzt. Das Problem sehe ich eher im Grundkonzept ansich: Das Konzept, mehrere Backends zu verwenden und zu synchronisieren, einzig und allein um den Usern Frontends nach ihren Vorlieben zur Verfügung zu stellen ist und bleibt ein unsauberer Hack. Und je mehr Kompatibilitätsprobleme durch Unterschiede in den Protokollen/Standards auftreten (s.o.), desto mehr Änderungen am Ursprungsquelltext der Ausgangssoftware müssen vorgenommen werden, und desto unsauberer und zusammengewürfelter wird damit das Endergebnis. Wie die UNIX Philosophie sagt: „Schreibe Computerprogramme so, dass sie nur eine Aufgabe erledigen und diese gut machen.“
Zu guter Letzt sollte noch festgehalten werden, dass bei einem Meinungsbild der Piratenpartei 19 von 40 Leuten einer Synchronisierung dieser Art negativ gegenüber standen, während nur 11 dafür waren. Kollektive Zufriedenheit scheint es also nicht zu geben. Dies nur als grobe Orientierung, wie die Piraten dazu stehen.
Es muss eine Alternative her, die die JuPis auf einer gemeinsamen Basis bzw. einem gemeinsamen Backend (Newsserver) verbindet. Ist dies gewährleistet, können durchaus mehrere Frontend Alternativen angeboten werden. Der einzige Nachteil dieser Lösung ist, dass die bisherigen Webfrontends für Newsserver gewöhnungs- und einarbeitungsbedürftig sein und einigen Nutzern als nicht benutzerfreundlich erscheinen könnten. Aber auch dafür gibt es Lösungen.
Eigenes NNTP Frontend
Unser Vorschlag ist die Entwicklung eines Webfrontends für das Newsprotokoll NNTP. Im Hintergrund läuft ein Newsserver mit Benutzeraccounts, Gruppen (Foren), Untergruppen (Unterforen) und Topics – im Prinzip genau wie ein Forum, nur unabhängig vom Frontend. Unser Frontend soll die Benutzerfreundlichkeit eines Webforums (à la phpBB) mit den infrastrukturiellen Vorteilen eines Newsservers verbinden. Dies hat den Vorteil, dass die Kommunikation zentral, demnach auch vollkommen synchron verläuft, die Wahl des Frontends jedoch nicht vorgeschrieben ist. So kann statt unseres Webfrontends auch nach belieben ein anderer NNTP Client genutzt werden. Auch kann man, anders als im jetztigen Forum, nach Wunsch nur diejenigen Gruppen abonnieren, für deren Inhalt man sich interessiert, was gerade bei einer wachsenden Zahl von Untergliederungen, AGs, PGs und anderen Themenbereichen einen immensen Gewinn an Übersichtlichkeit darstellt.
Ein solches Frontend ist bereits in Entwicklung und es haben sich schon einige Freiwillige gefunden (prauscher, eevo, thomas_sch und ich). Es wird in PHP entwickelt. Weitere Helfer sind jederzeit willkommen. Bis zu einer ersten nutzbaren Version wird es wohl noch mindestens einen Monat dauern, während der Einsatz von SynCom schneller von statten ginge, allerdings ist das Problem des Forums momentan nicht so akkut, dass wir diese Zeit nicht hätten.