Die neue Version von Muckturnier, dem Programm für die Turnierleitung, bringt vor allem Verbesserungen im Puncto Netzwerk. Verglichen damit war die Netzwerkunterstützung von Version 3.0 eher ein Technology Preview ;-)
Folgende Neuerungen gibt es in Version 3.1:
Netzwerk
Die Server- und Clientdialoge werden jetzt nicht mehr als extra Fenster, sondern wie die anderen Seiten (standardmäßig) als Tabs angezeigt.
Das Netzwerkprotokoll und die Server-Client-Implementierung wurden überarbeitet. Es gibt jetzt nicht mehr einen Anmeldungs- und einen Ranglistenserver, sondern nur noch einen Server, der sich um alles kümmert.
Die Anmeldung am Netzwerk ist jetzt auch mit bereits eingegebenen Ergebnissen möglich (potenziell abweichende Namen werden dann abgeglichen). Änderungen an Namen werden jetzt also auch während des laufenden Turniers verteilt und die Anmeldungslisten bleiben überall immer synchron.
Es können jetzt auch Markierungen bearbeitet werden, wenn das Netzwerk läuft. Alle Aktionen werden unterstützt: Neu anlegen, Bearbeiten, Verschieben und Löschen.
Alle Aktionen, die die ganze Anmeldungsliste betreffen, kann man jetzt auch mit einer laufenden Netzwerkverbindung durchführen: Alle Paare/Spieler markieren, alle Markierungen entfernen, markierte Paare/Spieler löschen und die ganze Liste löschen.
Der Vergleich von Ranglisten per Netzwerk gibt jetzt auch dann sinnvolle Ergebnisse aus, wenn durch unterschiedliche Ergebnisse verschiedene Platzierungen entstehen. Bisher wurde der 1. mit dem 1., der 2. mit dem 2. Platz verglichen etc., so dass eine unterschiedliche Platzierung zu einer Rasterverschiebung führte. Deswegen wurden ab dem ersten unterschiedlichen Platz alle nachfolgenden als verschieden angezeigt, auch dann, wenn die Punkte eigentlich identisch waren.
Auf der Client-Seite wird jetzt automatisch nach einem Muckturnier-Server im Netzwerk gesucht, so dass die IP-Adresse und der Port des Servers nicht mehr manuell eingegeben werden müssen.
Zuguterletzt wurden einige Probleme der Netzwerkinfrastruktur behoben, die unter Umständen zum Absturz eines Clients und/oder des Servers führen konnten. Abgesehen davon sollte es jetzt auch keine Speicherzugriffsfehler mehr beim Beenden geben, unabhängig davon, ob die Server- oder Client-Seite geöffnet ist, oder nicht.
Speichern lokaler Daten
Muckturnier kann jetzt lokale Daten speichern, die zwischen Programm-Sessions erhalten bleiben. Damit ist jetzt folgendes möglich:
Wiederherstellen der letzten Größe und Position des Programmfensters
Speichern von Vorlagen für die Turniereinstellungen neuer Turniere
Speichern von Vorlagen für Markierungen, die zu neuen Turnieren standardmäßig hinzugefügt werden
Anpassen der bisher hart codierten Zeichenketten für den Trenner zwischen den Namen der Spieler in den Paarnamen bei Einzelspielerturnieren und für das Bobbl-Symbol
Erstellen einer Vorlage für den Standarddateinamen neuer Turnierdatenbanken, bei dem auch Teile des aktuellen Datums verwendet werden können
Allgemeine Verbesserungen/Neuerungen
Sofern „Eingabe ohne Tischnummern“ nicht aktiviert ist, muss man jetzt immer einen Tisch auswählen (es ist als Voreinstellung nicht mehr der erste freie Tisch gesetzt). So kann es nicht mehr passieren, dass man während der ersten Runde aus Versehen nur die Namen heraussucht, aber nicht die zugehörige Tischnummer auswählt.
Wenn jetzt ein Paar- bzw. Spielername editiert wird (egal ob lokal oder per Netzwerk), dann werden beim neu Laden der Ergebnisse-Seite vorher evtl. eingegebene Daten wiederhergestellt, anstatt die Ausgangssituation anzuzeigen.
Bei Aktionen auf der Anmeldungsseite, bei denen potenziell mehrere Paare/Spieler gelöscht werden (z. B. „Alle unmarkierten Paare/Spieler löschen“) wird jetzt angeboten, vorher ein Backup anzulegen (per Voreinstellung aktiviert).
Automatische Markierungen: Es kann jetzt, abhängig vom eingegebenen Namen einer neuen Anmeldung, automatisch eine Markierung gesetzt werden (z. B. „Allein da“, wenn kein „/“ im Namen vorkommt).
Um (insbesondere auf keinen Displays) vertikalen Platz zu sparen, kann man jetzt den Fenstertitel und -rahmen sowie die Menüleiste ausblenden.
Abgesehen davon gab es noch eine ganze Reihe kleinerer Änderungen und Bugfixes. Der ChangeLog enthält wie immer eine ausführlichere Liste.
Lang, lang ist’s her, dass das Muckturnier-Programm (damals noch mit einem kleinen „m“, also „muckturnier“) in PHP, JavaScript und HTML implementiert war. Noch heute mag so manchem (mir jedenfalls) bei dem Gedanken ein kalter Schauder über den Rücken laufen.
Das Git-Repository von Muckturnier beginnt mit dem ersten mehr oder weniger funktionieren Code des Python-PyQt-Rewrites. Das erste in Git getaggte Release war Version 0.5 vom 12.07.2015.
Nun bin ich gestern über ein Backup meines alten Subversion-Repositorys gestolpert (was schon lange von keinem Server mehr gehostet wird). Das enthält unter anderem den alten PHP-Code von Muckturnier. Um der „guten alten Zeiten Willen“ habe ich den entsprechenden Teil des Repositorys kurzerhand nach Git importiert (war gar nicht so schwer!), als sog. „orphan“-Branch (also ohne Bezug zum bisher mit Git verwalteten Code). Die Tags für die alten Versionen habe ich auch rekonstruiert.
Der erste Code für das Programm landete Anfang 2011 in Subversion: Der initiale Commit „The forst kind-of-working code of muckturnier.“ [sic!] wurde am Freitag, den 4. März 2011 um 23.58 Uhr gemacht, mit sage und schreibe 1 354 Zeilen neuem Code.
Die Geburtsstunde des Projektes dürfte allerdings noch ein Jahr früher gewesen sein, noch ohne Versionsverwaltung. Im Release-Announcement für Version 0.1 vom 04.03.2012 schrieb ich damals „Nach dem zweimaligen öffentlichen Betatest auf dem alljährlichen Muckturnier der JU Leupoldsgrün […]“.
Das heißt also, das erste Muckturnier wurde mit dem Programm 2011 ausgewertet. Da war der Code ja aber schon geschrieben, also war es aller Wahrscheinlichkeit nach das 8. Muckturnier der JU Leupoldsgrün im Februar oder März 2010, wo ich den Entschluss fasste, dass die Welt ein Open-Source-Projekt für die Muckturnier-Turnierleitung braucht.
Die Tatsache, dass da ein meines Wissens nach nie veröffentlichtes PHP-Script (damals geschrieben von Sebastian Baderschneider) zum Auswerten zum Einsatz kam, dürfte der eigentliche Ansporn gewesen sein („das kann ich auch“ ;-).
Der Branch mit dem alten Code heißt „php“ und kann auch online bewundert werden. Falls es tatsächlich jemanden geben sollte, den das interessiert :-P
Am Freitag gab es bezüglich der 2. Oberfränkischen Muckmeisterschaft auf dem Hofer Volksfest einen kleinen Beitrag, zu finden in der Mediathek von TVO.
Nein, es gibt kein „neues“ Muckturnier-Programm. Es gibt nur deutliche Erweiterungen des Funktionsumfangs (demnächst gibt es Version 3.1 :-) Und nein, ich bin nach wie vor in keiner Landjugend und war auch noch nie in einer (wenngleich ich – zumindest meiner Meinung nach – ziemlich viel mit der Organisation zu tun habe). Aber zumindest haben sie schön auf das Leuchtschild mit „muckturnier.org“ gefilmt.
Nur um das hier auch nochmal zu sagen: Die Voranmeldung für das Turnier ist unter muckturnier.org/volksfest zu finden. Wir sehen uns spätestens dort :-)
Die neue Version bringt abgesehen von einem neuen Versionierungsschema vor allem die Möglichkeit mit, mehrere Rechner für die Anmeldung und Auswertung per LAN oder WLAN zu vernetzen, was vor allem für große Turniere eine deutliche Erleichterung bedeutet.
Muckturnier kann jetzt Netzwerk
Die 1. Oberfränkische Muckmeisterschaft auf dem letztjährigen Hofer Volksfest war bis dahin das mit einigem Abstand größte Muckturnier, was mit dem Muckturnier-Programm ausgewertet wurde. Auch bedingt durch die vielen Karter ging es nicht mehr nur um die Auswertung, sondern vor allem auch um die Anmeldung: Mehr als 100 Voranmeldungen und zusätzlich die Anmeldungen vor Ort wollten organisiert werden.
Es wurden zwei Rechner zur Anmeldung benutzt, um lange Schlangen zu vermeiden. Dank der kurz vorher eingeführten Markierungen klappte die Anmeldung und auch das Zusammenführen der beiden Datenbanken – aber nicht Endbenutzer-geeignet. Auch der Vergleich der Ranglisten der beiden Rechner (doppelte Buchführung um Eingabefehler zu finden) funktionierte dank der Prüfsummen-Funktion; auch hier eröffnete sich aber defintiv noch Raum nach oben.
Sowas gehört sich mit Netzwerk gemacht. Nur wie?! Mit Netzwerk hatte ich programmiertechnisch noch nie zu tun … asynchrone Kommunikation zwischen mehreren Teilnehmern? Aber so schlimm war es gar nicht ;-) Nach etwas (und etwas mehr) Einarbeitung und viele, viele Zeilen Code später gibt es nunmehr zwei Server-Client-Funktionen:
Anmeldungsnetzwerk: Ein Rechner fungiert als Server, an dem sich mehrere Clients anmelden können. So können mehrere Rechner für die Anmeldung genutzt werden, und alle Änderungen an der Paar- bzw. Spielerliste werden immer automatisch an alle Rechner geschickt. Alle Beteiligten sehen immer den aktuellen Stand.
Ranglistennetzwerk: Ein Rechner ist der Server, mehrere Clients können die Server-Rangliste anfragen. Ein Client vergleicht dann die Server-Rangliste mit seiner eigenen und zeigt etwaige Unterschiede an.
Verbesserungen am Windows-Installer
Der Windows-Installer legt jetzt Registry-Einträge an, mit denen die Deinstallation über die Windows-Softwareverwaltung möglich wird. Bei einem Upgrade wird die vorher installierte Version jetzt automatisch deinstalliert, damit keine veralteten Dateien übrigbleiben. Weiterhin wird bei einem Downgrade eine Warnung angezeigt.
Es wird jetzt automatisch das Installations-Zielverzeichnis der zuletzt installierten Version ausgewählt, sofern es eine alte Installation gibt.
Installer und Uninstaller sind jetzt mit eigenen Icons, Bildern und Willkommensseiten deutlich schicker :-)
Weitere Änderungen
Verbesserung: Wenn jetzt eine Spielstand-Spin-Box angeklickt wird, dann wird der bisher eingegebene Text (also der aktuelle Spielstand) komplett markiert, so dass eine Eingabe den bisherigen Spielstand überschreibt (und man den alten nicht erst löschen muss).
Neu: Es kann jetzt eine Standardmarkierung („Automatische Markierung“) ausgewählt werden, mit der alle neuen Paare/Spieler nach dem Anmelden markiert werden. Standardmäßig ist keine Markierung, also „(unmarkiert)“ gesetzt.
Bugfix: Wenn markierte Anmeldungen ausgeblendet sind und dann die ganze Paar-/Spielerliste gelöscht wird, dann werden die entsprechenden Markierungen jetzt automatisch wieder eingeblendet, damit beim nächsten Benutzen die jeweilige Markierung nicht (unerwarteterweise) auf „ausgeblendet“ gesetzt ist und der oder die markierte(n) Eintrag/Einträge „verschwinden“.
Bugfix: Das Programm konnte zum Absturz gebracht werden, wenn man in der „Markierung“-Spalte auf der Paare- bzw. Spielerseite den Namen einer Markierung editiert hat. Die ganze Spalte sollte natürlich gar nicht erst editierbar sein, und das ist jetzt der Fall.
Bugfix: Wenn man ein Paar bzw. einen Spieler umbenennt oder löscht, dann wird ein evtl. angezeigtes Suchergebnis wieder korrekt wiederhergestellt und aktualisiert, anstatt die Suche zu beenden und wieder die komplette Liste anzuzeigen.
Neu/Bugfix: Es gibt jetzt unter Windows einen „Kontexthilfe“-Menüeintrag, da Windows es nicht zulässt, das Kontexthilfe-Fragezeichen neben Minimier- und Maximier-Buttons in der Fenstertitelleiste anzuzeigen. Damit kann die Kontexthilfe jetzt auch unter Windows aufgerufen werden.