Logo

JourFix Tarock
Newsletter / Community Update
(Jänner 2023)

Der Monats-Reigen dreht sich wieder

Langsam haben alle die Feiertage abgeschüttelt, der Festtagsspeck wird wieder abtrainiert, die Tage werden länger und die Arbeit türmt sich vor uns auf. Willkommen im neuen Jahr 2023. Der langjährige Trott macht auch heuer nicht vor uns halt und wenn wir nicht aufpassen läuft er über uns hinweg und es ist Juli oder August. Daher greifen wir zu den Tastaturen und lesen die Pläne für heuer nochmals ganz genau durch.

In der heutigen Ausgabe sprechen wir über einen lange gesuchten Bug, der uns seit Anfang des Tarock-Projekts davonlief, über die Ängste der Programmplanung im aktuellen Umfeld und Eure Fragen, die sich über den Jahreswechsel bei uns eingefunden haben.

Los gehts - viel Spaß beim Lesen!

Wir haben ihn - der Bug ist tot

Seit 2017 jährt sich ein spezielles Ritual in unserer Programmabteilung. Wir sitzen kurz nach dem Jahreswechsel zusammen und starren auf die Datumsanzeige des Spielclients. Der 31. Dezember jeden Jahres geht und es erscheint der 1. Jänner - des gleichen Jahres. So auch heuer geschehen. Der 31. Dezember 2022 sprang bei uns auf den 1. Jänner 2022. Manche mögen jetzt sagen "schön - wir werden nicht älter", aber das können wir leider nicht bestätigen. Jedes Jahr wurden wir älter, aber der Jahreswechsel wurde nicht vollzogen.

Dabei hatten wir in der Vergangenheit viel getestet und überwacht. Der Wechsel des Jahres fand einfach nicht statt. Erst einige Stunden oder sogar Tage später sprang die Jahreszahl dann plötzlich und unerwartet um ein Jahr weiter. Um ehrlich zu sein: wir hatten schon die Hoffnung aufgegeben den Fehler noch zu finden. Vielmehr gab es ein stilles Einverständnis, dass wohl der Server eine Macke hatte und den Jahreswechsel verschlief. Ja, Informatiker können auch unlogisch sein.

Dann half uns ein Zufall. Wir hatten auf dem Server ein Programm laufen, welches verschiedene Dinge testete und neu einstellte. Im Silvestertrubel haben wir darauf vergessen. Es arbeitete fleissig weiter, sammelte Informationen über unser System und schreib Logfiles. Als sich jemand das dann am 1. Jänner ansah, folgte kurze Zeit später ein Ausruf des Erstaunens. Er hatte die Ausgabe unseres Spielservers mit den Ausgaben des Testprogramms synchronisiert. Das Testprogramm hatte pünktlich um 0:00 Uhr beim Jahreswechsel auf 1. Jänner 2023 umgestellt und seine Ausgaben mit dem richtigen Datum versehen. Die Logfiles unseres Spielservers hatten sich ebenfalls umgestellt und waren mit dem Testprogramm synchron. Lediglich die Ausgaben des Spieleclients verharrten weiterhin im Jahr 2022. Der Server musste etwas richtig machen, der Client hingegen etwas komplett falsch. Wir hatten einen Ansatzpunkt.

Es dauerte dann noch einige Zeit, bis der Fehler im Client gefunden war. Eine uralte Bibliothek aus dem Jahr 2016 hatte einen schlichten Schreibfehler in seinem Programmcode. Dort stand die Buchstabenkombination "YYYY", welche für eine vierstellige Jahreszahlangabe stand. Im Server stand bei gleicher Gelegenheit "yyyy". Auch das war eine vierstellige Jahreszahlangabe. Der Unterschied zwischen diesen beiden Formaten ist, dass "yyyy" korrekt mit dem kalendarischen Wechsel auf die neue Jahreszahl springt und "YYYY" erst nach dem Wechsel der Kalenderwoche. Der erste Tag der ersten Kalenderwoche des Jahres 2023 war der 2. Jänner. Der 1. Jänner war der letzte Tag der 52. Kalenderwoche von 2022. Irgendwer hatte 2016 nicht aufgepasst und bis jetzt hatten wir diesen Fehler nicht gefunden, da er immer erst in der letzten Woche des Jahres auftreten konnte. Eine Detektivarbeit mit "happy end".

Die Sicht der Programmplanung

In der Schule oder auch Universität ist Programmcode immer kurz, putzig, wohlgeordnet und Hilfe sitzt meist am Lehrertisch. Da liest man sich die Angabe durch, denkt kurz nach und hämmert dann das Programm in die Tasten. Zirka 200 Zeilen später ist es vollbracht, man holt sich seine Note und alles ist gut. Das waren noch schöne Zeiten ...

Heute haben wir ein Projekt vor uns mit knapp 2,6 Millionen Programmzeilen, wenn man alle Pakete, die HIlfsprogramme und die Serversoftware mit einrechnet. Das schreibt man nicht mal eben um und ändert auch nicht kurz einige Programmzeilen. Das braucht Planung.

Vorne weg: Wir sind stolz, dass wir seit dem Serverstart 2017 zwar jede Menge Updates gebracht haben, aber bisher *klopfen wir auf Holz* jede Version die Vorgängerin gut ersetzt hat. Das liegt daran, dass nicht einfach jeder in den Stammcode hineinschreiben kann und auch Änderungen dementsprechend intensiv intern getestet werden, bevor wir sie freigeben.

Dabei sind zwei verschiedene Varianten zu unterscheiden: (1) Code wird weiterentwickelt, angepasst, erweitert. Dabei muss genau überprüft werden, ob sich der neue Code an die Vorgaben hält, Schnittstellen passen und die verarbeiteten Daten sich harmonisch ins Ganze einfügen. (2) Code wird neu geschrieben und ersetzt teilweise alten Code. Hier muss sichergestellt sein, dass die exakte Syntax eingehalten wird, die Schnittstellen passen und die neuen Daten irgendwie vom verbliebenen alten Programmteil übernommen werden können.

Wenn wir vom neuen Launcher sprechen, dann sind wir bei Typ2. Der setzt auf einem neuen Server auf, greift auf eine neue Datenbank zu, bietet neue Funktionalität und soll die bisherigen Pakete ansteuern können. Zugleich wollen wir nicht Fehler machen, die schon früher aufgetreten sind, sondern sie wenn möglich gleich beheben. Zu guter Letzt soll der neue Teil eine Zeitlang parallel zum alten System laufen, um eine Ausfallssicherheit zu haben. Erst wenn alles passt, wird nach und nach der alte Teil zurückgebaut.

Klingt kompliziert? Ist es auch.

Während wir inzwischen das neue Datenbankdesign abgeschlossen, die notwendigen Webseiten und Programme angepasst und den neuen Server installiert, eingestellt und die Software dafür geschrieben haben, geht es nun an die Integration in die Taron-Pakete. Da jetzt das Login vor die Startauswahl geschoben wird, braucht es zum Beispiel für die Onlinepakete dann kein gesondertes Login mehr, wovon wir uns eine bessere Spielerfahrung versprechen. Auch soll der jeweilige Vorgang von Download, Update, Verwaltung und Programmstart viel besser ineinandergreifen.

Zu jedem Zeitpunkt kann, wenn man nicht ganz genau aufpasst, ein kleiner Fehler passieren, der furchtbare Auswirkungen hat. Wir versprechen, wir halten die Augen offen, aber wenn mal doch etwas passiert, dann seid bitte nicht böse - wir tun unser Bestes.

[Rubrik] User fragen ...

- Beim Installieren des Programms kommt ziemlich am Ende eine Fehlermeldung. Aber das Programm scheint zu funktionieren. Darf ich es trotzdem benutzen?
Grundsätzlich kann man sagen, dass ein Programm, welches funktioniert, natürlich benutzt werden kann. Die geschilderte Fehlermeldung tritt unter Windows auf, wenn man den Installer nicht als Admin startet - dann fehlt ihm schlichtweg das Recht ein Desktop-Icon anzulegen. Keine große Sache, dass kann man leicht im Nachhinein selbst erledigen (einen Link auf PatchLaunch.jar legen und den zum Programmstart benutzen). Ein letzter Tipp: Wir haben auf der Webseite rechts oben einen Button mit der Aufschrift "Hilfe/FAQ/Links". Dort finden sich viele Hinweise zu möglichen Problemen bzw. Antworten auf häufige Fragen.

- Antwort des Supports: Wir informieren auch immer auf Twitter zeitnah über bestehende Probleme und Lösungen. Antwort des Kunden: Ich habe kein Twitter.
Die Antwort von uns müßte jetzt lauten: doch, haben alle unsere Kunden.
Auf unserer Webseite Tarock.at rechts unten gibt es eine Rubrik "Unsere akt. Tweets". Da spiegeln wir unsere letzten fünf Tweets auf Twitter für alle User, die selbst kein Twitter benutzen.

Wer Twitter selbst benutzt, ist jetzt natürlich herzlich eingeladen uns auf https://www.twitter.com/tarockspiel zu folgen. Das hilft uns bei der weiteren Verbreitung und bringt Euch immer alle unsere Tweets - nicht nur die letzten fünf.

- Ich hatte mal in den 90ern ein Spiel von Euch: Neolithic. Gibt es das noch auf CD?
Leider geben wir generell keine Spiele mehr auf CD heraus. Das hat damit zu tun, dass vor ca. 10 Jahren die Nachfrage von CDs ins Bodenlose gefallen ist und heute kaum noch jemand ein funktionierendes CD-ROM-Laufwerk in seinem Computer hat. Zusätzlich ist es so, dass wir damals für dieses Spiel als Publisher aufgetreten sind und nicht selbst erzeugt haben. Daher - leider, nein..

So, ein Zwölftel des Jahres ist bald rum

Oder mit anderen Worten: noch ca. 11 Monate - dann ist wieder Weihnachten. Wir sollten sehen, dass wir bis dahin ein schönes Jahr haben, es besser als die vorangehenden Jahre wird und wir uns wieder alle mal etwas leisten können. Vielleicht ist auch mal wieder ein Usertreffen im Bereich des Möglichen. Wäre schön.

In diesem Sinne wünschen wir weiterhin einen guten Start ins Jahr 2023.

Euer Tarock-Projektteam

TriangleProductions ist ein Business-Label von Spiel & Presse e.V.
http://www.triangle.at | https://www.tarock.at | ZVR 449871541