Der Online Tag Master, kurz OTM, ist ein Datei-/ Download Manager für mein altes Mailboxsystem, dessen Quellen ich zuletzt 1998 angefasst habe. Dieses alte Programm soll nun einige Weiterentwicklungen erfahren bzw. von Grund auf neu programmiert werden. Obwohl die Software, geschrieben in Turbo Pascal, einwandfrei die letzten Jahre über funktioniert hat, sieht man ihren Quellen doch deutlich die Zeit an.
Technologische Zeitblase
Die BLUP BBS ist ein klassisches Mailboxsystem und wurde 1995 eröffnet. Auch heute noch ist sie ausschließlich per analogem Modem oder ISDN erreichbar. Im Jahr 2012 wurden rund 400 Besucher mit der freundlichen Meldung „CONNECT“ begrüßt; Tendenz steigend.
Die Mailboxsoftware und ihre Werkzeuge laufen unter dem Betriebssystem MS-DOS in einer DOS Emulation unter Linux. Aus technologischer Sicht befindet sich die BLUP in einer Blase, in der die Zeit nahezu still steht. Das System läuft wartungsfrei und die allermeisten Prozesse sind automatisiert.
Dieses System soll auch weitestgehend beibehalten bleiben, da es den besonderen Charm der Mailboxszene und ihrer Zeit ausmacht.
Von Brettern und Bäumen
Im Mailboxsystem der BLUP werden Nachrichten und Dateien in so genannten Brettern in einer hierarchischen Baumstruktur hinterlegt. Das Ganze ist vergleichbar mit einem Dateisystem, bestehend aus Verzeichnissen und Dateien. Dabei werden drei verschiedene Typen unterschieden: DIR, BIN, TXT.
Bretter vom Typ DIR bilden die Äste der Baumstruktur. Sie enthalten selbst keine Dateien oder Nachrichten, sondern nur weitere Unterbretter. Nachrichten finden sich in den Brettern vom Typ TXT. Hier können keine weitere Unterbretter folgenden oder Dateien abgelegt werden. Für diese sind Bretter vom Typ BIN zuständig. Analog zu den TXT Brettern, können auch sie keine weiteren Unterbretter enthalten oder Nachrichten aufnehmen.
Da besonders neue Besucher der Mailbox nicht auf Anhieb mit der inhaltlichen Unterscheidung der Bretttypen vertraut sind, wird innerhalb der BLUP auf eine all zustarke Vermischung verzichtet. Vielmehr gibt es deutlich unterscheidbare Bereiche für alle Datei- und Nachrichtenbretter.
Steuerung mit Potential für Verwirrung
Der Zugriff auf die Bretter und deren Inhalt erfolgt entweder über einen Kommandozeilen Interface mit einfachen Befehlen, wie BRETT, LESEN, SCHREIBEN, oder ein einfach gehaltenes Menüsystem. In beiden Fällen muss jedoch der jeweilige Brettname von Hand getippt werden. Auch hier gibt es deutliches Potential für Verwirrungen. Dateien und Nachrichten unterhalb der Bretter haben eine laufende Nummer und werden entsprechend über diese aufgerufen.
Weiteres Manko ist die systeminterne Suche nach Dateien und Nachrichten. Prinzipiell werden zwar die gesuchten Informationen gefunden, allerdings gestaltet sich der Zugriff auf die Treffer sehr umständlich. Die Suche listet lediglich die Fundstellen auf, ermöglicht jedoch kein direktes Aufrufen der gefundenen Nachrichten oder Dateien.
Online Tag Master
Um die Bedienung, gerade für neue Besucher der BLUP, zu vereinfachen, wurde von mir der „Online Tag Master“ (kurz OTM) entwickelt. OTM ist ein Datei-/ Download Manager, der es den Besuchern ermöglicht, innerhalb einer einfachen Textoberfläche mit den Cursortasten zwischen den Brettern zu wechseln und Dateien für den Download zu markieren (taggen). Außerdem ist eine verbesserte Suchfunktion integriert.
OTM beschränkt sich bei seiner Darstellung allein auf die Dateibretter (Typ BIN) und filtert Unter- und Nachrichtenbretter aus. Optik und Bedienung erinnern an populäre DOS Dateimanager, wie dem Norton Commander oder dem Dos Navigator und ermöglichen einen schnellen Einstieg.
Turbo Pascal, Bad Code Smell und andere Jugendsünden
Die Quellen des Online Tag Masters reichen zurück bis auf das Jahr 1998. Geschrieben wurde das Programm in Turbo Pascal von Borland. Ich hatte bereits in den Jahren davor zahlreiche Werkzeuge und Bibliotheken für die BLUP und das Mailboxsystem geschrieben, auf die ich zurückgreifen konnte. Besonders die interen Datenstrukturen und die Systemdateien waren nur spärlich dokumentiert. Zahlreiche Stunden (damals waren es hauptsächlich noch die Nächte) verbrachte ich mit dem Reverse Engineering, um dem System auch die letzten Geheimnisse zu entlocken und es für meine Bedürfnisse zugänglich zu machen.
Entstanden ist dabei eine Menge Code mit so genannten Smell, also schlechtem Programmierstil. Besonders überlange Prozeduren (Funktionen) und Code-Duplizierungen sind in meinen damaligen Quellen häufig vorzufinden. Daten wurden zumeist in globalen Arrays mit einer mehr oder weniger fixen Länge abgelegt. Der Code ist rein prozedural. Objektorientierte Programmierung kam nicht zum Einsatz. Kurzum: Man sieht dem Code sein alter an und heute würde man so einiges anders machen.
Trotz des in die Jahre gekommenen Programmierstils lief die Software über die Jahre hin stabil und zuverlässig.
Die Sache mit den zwei Herzen
Vor einigen Wochen habe ich aus einer Laune her raus, kleinere Änderungen an den OTM Quellen durchgeführt, die die Darstellung beim Blättern durch die Brett- und Dateilisten deutlich beschleunigen. Dabei keimten auch einige Ideen auf, die schon immer als Todo Hinweis im Quelltext auftauchten. Beispielsweise die Ablösung der bisherigen Teilung zwischen Brett- und Dateiauswahl hin zu einer integrierten Lösung, die auch wieder näher an der „Dateimanager Philosophie“ ist.
Aufgefallen ist dabei natürlich ganz besonders der oben genannte Bad Smell und es stellten sich mir mehrere Fragen, z.B. ob sich der Aufwand überhaupt lohnt und wieviel Aufwand überhaupt betrieben werden soll. In meiner Brust schlagen nun zwei Herzen: Aufwand und Code Qualität.
Lohnt es sich, überhaupt noch etwas an der Software zu entwickeln?
Ein ganz klares Nein. Die BLUP hat wie oben aufgeführt noch etwa 400 Anrufer pro Jahr. Davon nutzt nur ein kleiner Teil den Dateimanager. Außerhalb der BLUP wird der OTM auch keinerlei weitere Verwendung finden. Dazu ist die Software zu stark an das Mailboxsystem gebunden. Die BLUP ist außerdem die letzte Mailbox, bei der das System im Einsatz ist.
Allerdings hat sich bei der BLUP nie wirklich die Frage gestellt, ob sich noch etwas lohnt. Wenn man so anfängt, kann man die ganze Box gleich dicht machen.
Wenn es sich nicht lohnt, aber trotzdem realisiert wird, wird es dann wieder nur ein Hack mit Bad Smell?
Ich habe mir in den letzten Tagen meine alten Turbo Pascal Bücher hervorgeholt und mir die Spracheigenheiten für die objektorientierte Programmierung (OOP) angesehen. OOP ist in Turbo Pascal zwar nur rudimentär umgesetzt, allerdings hatte ich da sehr schnell brauchbare Ergebnisse. Die interne Brett- und Dateiverwaltung, sowie einige Hilfsroutinen sind bereits auf eine OOP Schnittstelle umgestellt.
OTM wird also von Grunde auf neu geschrieben. Allein die Bedienkonzepte werden übernommen. Das Programm wird auf ein stabiles Gerüst gestellt, denn es ist ja nicht klar, wieviele Jahre die Mailbox noch vor such hat.
Wenn es eine Neuentwicklung wird, wieso dann weiter Turbo Pascal und nicht eine moderne Programmiersprache?
OTM wird zwar neu geschrieben, die DOS Plattform mit dem Mailboxsystem bleibt jedoch weiter bestehen. Für DOS stehen zwar auch zahlreiche Sprachen zur Verfügung, z.B. C++ oder das neuere Free Pascal, allerdings hält sich der Mehrwert doch deutlich in Grenzen. Außerdem kann ich bei Turbo Pascal weiterhin auf die praxisbewährten Low Level Bibliotheken für die Mailbox Systemdateien zurückgreifen.
Warum erst jetzt und nicht schon vor 10 Jahren?
OTM war 1998 eins der letzten Programme, das ich auf meiner alten OS/2 Installation entwickelt habe. Kurz danach folgte der Wechsel auf die Linux Arbeitsstation. Turbo Pascal geriet damit in den Hintergrund und später auch in Vergessenheit.
Ausschlaggebend für das neu gewonnene Interesse war wohl ein Update meines Linux Servers und der installierten DOS Emulation. Diese hat zuvor speziell bei der Turbo Pascal Entwicklungsumgebung aufgegeben und teilweise den ganzen Server in einen Kernel Panic mitgezogen.
In meiner Brust schlagen zwei Herzen und das für Code Qualität schlägt deutlich lauter.
Bis zum Schreiben dieses Artikels war noch nicht ganz klar, ob ich die Neuentwicklung wirklich angehe. Durch das Neuentdecken von Turbo Pascal in den letzten Tagen, hat das Projekt jedoch deutlich an Fahrt aufgenommen und ich spiele sogar mit dem Gedanken, neben dem Online Tag Master auch noch einen Newsreader für die BLUP zu schreiben.
Bei weiterem Interesse an dem Thema bitte einfach Kommentieren oder E-Mail schreiben.