Muckturnier

News 16.11.2018–25.03.2019

Muckturnier 3.0 out now!

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

Weitere Änderungen

Für alle Änderung vgl. den ChangeLog!

17. Muckturnier der JU Leupoldsgrün

Das Muckturnier der JU Leupoldsgrün ist die Wiege des Muckturnier-Programms. Hier wurde die Idee dafür geboren, hier kam 2011 die erste Beta-Version zum Einsatz, und 2012 dann Version 0.1 – und auch jetzt wird das Turnier nach wie vor mit dem Muckturnier-Programm ausgewertet.

Am Freitag, den 22. März ist es wieder so weit: Die JU Leupoldsgrün veranstaltet ihr alljährliches Muckturnier im Schützenhaus in Leupoldsgrün. Die Anmeldung startet um 18.00 Uhr, los geht es um 19.00 Uhr. Für 100 Karter ist Platz. Das ist immer eine sehr schöne Veranstaltung, die man sich nicht entgehen lassen sollte!

Auf Facebook gibt es eine Veranstaltungsseite für das 17. Muckturnier der JU Leupoldsgrün incl. dem offiziellen Plakat.

Wir sehen uns dort :-)

Neues Versionierungsschema und Version 3.0

Die Versionierung von Muckturnier bedarf einer Überarbeitung. Ein durchdachtes und auch oft benutztes System zur Versionierung ist das Semantic Versioning. An das wird die Versionierung von Muckturnier ab dem nächsten Release angelehnt (nicht ganz so, wie es da steht, aber prinzipiell).

Die Sache ist eigentlich ganz einfach: Der erste Teil der Versionsnummer („Major“) wird hochgezählt, wenn es grundlegende Änderungen gibt. Der zweite Teil („Minor“) bei Funktionserweiterungen bzw- änderungen, und der dritte („Patch“) bei Bugfixes und ansonsten unverändertem Funktionsumfang.

Schluss mit „Null Punkt“

Seit fast sieben Jahren hat das Muckturnier-Programm jetzt die Versionsnummer „0.“, obwohl es einige grundlegende Änderungen gab, und das Programm seit Jahren produktiv eingesetzt wird.

Laut dem „Semantic Versioning“ ist Version Null für die initiale Entwicklungsphase gedacht. Sobald ein Programm produktiv eingesetzt wird, sollte es als Version 1.0 (oder wie die coolen Kids heutzutage sagen: „1.0.0“) vorliegen. Das hätte also schon längst passieren sollen, denn abgesehen vom Produktiveinsatz mag man es vermutlich mittlerweile durchaus als „stabil“ bezeichnen.
Wenn das nächste Release noch die neue Netzwerkfunktionaliät mitbringt (Anmeldung der Spieler an beliebig vielen Rechnern gleichzeitig und Vergleich von Ranglisten übers Netzwerk, bereits zu bestaunen in git master), kann man denke ich auch langsam von „Feature Completeness“ sprechen.

Die Null muss also weg. Da es aber zum einen da draußen durchaus Entwickler gibt, die mit dem Brustton der Überzeugung ihren ersten einigermaßen lauffähigen Brocken Code mit dem Titel „1.0“ ins Internet schmeißen und zum anderen schon sehr, sehr viel Entwicklungsarbeit in das Muckturnier-Programm eingeflossen ist, denke ich, dass „Version 1.0“ für das nächste Release nicht unbebdingt angemessen wäre.

Lassen wir einfach zwei Versionsnummern aus

Es gab seit Version 0.1 zwei fundamentale Codebasis-Änderungen: Die ersten Versionen waren in PHP, JavaScript und HTML programmiert und wurden mittels eines HTTP-Servers und Webbrowsers angezeigt. Dann gab es ein komplettes Rewrite nach Python und PyQt, und schließlich ein weiteres Rewrite für die jetzt aktuelle C++/Qt-Version.

Hätte ich damals (dem „Semantic Versioning“ folgend) eine „für den Produktiveinsatz bereite“ Version 1.0 getaggt, dann wären wir jetzt folgerichtig bei Version 3.0, oder – wenn man den Sprung von Qt 4 zu Qt 5 während der Python-Phase mitzählt – sogar schon bei Version 4.0. Aber man muss es ja nicht übertreiben.

Um dem Muckturnier-Programm nicht den „ungetestete, neue Software“-Anstrich der Version 1.0 zu verpassen, und der tatsächlichen Entwicklungshistorie Rechnung zu tragen, wird auf die Version 0.7.7 von Muckturnier jetzt einfach Version 3.0 folgen, und ab dann wird die Versionsnummer vernünftig hochgezählt.

Nur für den Fall, dass sich einer wundert, wo die Versionen 1.0 und 2.0 abgeblieben sind ;-)

Muckturnier 0.7.7: Langsam wird’s ;-)

Über der Auswertung der 1. Oberfränkischen Muckmeisterschaft sind ein paar Sachen aufgefallen, die besser/schöner/schneller hätten gehen können – worauf man nie gekommen wäre, wenn man kein Turnier mit 118 teilnehmenden Paaren ausgewertet hätte und dabei teilweise fast schon ins Schwitzen gekommen wäre.

Muckturnier 0.7.7 bringt ein paar substanzielle Verbesserungen für große Muckturniere, aber „kleine“ oder besser gesagt „normale“ (also welche in der Größenordnung von ≤ 100 Teilnehmern bzw. 50 Paaren) profitieren davon natürlich gleichermaßen.

Namentlich:

Bessere Suchfunktion, Paar-/Spielerauswahl ist jetzt durchsuchbar

Die letzte Version brachte eine „unscharfe“ Suche mit, womit man nicht nur ungeachtet der Groß- und Kleinschreibung suchen konnte, sondern auch das Schreiben oder Weglassen von z. B. Akzenten etc. egal war. So weit, so gut, aber das ist nicht genug: Die Teilnehmer schreiben nicht brav „Nachname 1 Vorname 1 / Nachname 2 Vorname 2“ auf den Ergebniszettel. Wenn „Meier Bernd / Müller Peter“ angemeldet sind, dann bekommt man einen Zettel mit „Müller P. / Meier“ oder sowas, und das Geschmiere kann man kaum lesen.

Das Heraussuchen der Paare aus einer anfangs 118 Einträge langen Liste, teilweise die Namen in einer anderen Reihenfolge, sorgte für Stress. Das musste komfortabler gehen!

Der neuen Suchfunktion jetzt auch die Reihenfolge der Eingabe egal. Um beim obigen Beispiel zu bleiben: „Meier Bernd / Müller Peter“ findet man jetzt auch, wenn man nach „peter mueller bernd meier“ sucht. Oder nach Teilen davon. Allein das Eingeben von „me mü“ (oder auch „me mu“ oder „Be Pe“) listet den Eintrag als Treffer – und mit hoher Wahrscheinlichkeit als einzigen oder als einem einer Handvoll:
Getestet am Original-Datensatz der 1. Oberfränkischen Muckmeisterschaft ergab das Eingeben der ersten zwei Buchstanden jedes Nachnamens der Spieler in einem Paar in der guten Hälfte der Fälle nur noch einen einzigen Treffer.

Aber die eigentlich relevante Neuerung ist: Die Auswahlfelder bei der Ergebniseingabe sind jetzt genauso durchsuchbar, wie die Anmelde- und die Ergebnisse-Seite (was erstaulich schwierig zu implementieren war …).

Das beschleunigt das Eingeben (der 1. Runde) – auch bei wenigen Spielern – ganz erheblich, da man nicht mehr die ganze Liste absuchen muss, um das jeweilige Paar bzw. den jeweiligen Spieler zu finden!

Besserer Abgleich der Ranglisten mehrerer Rechner

Die letzte Version brachte sog. „Prüfsummen“ mit, mit denen man auf einen Blick abgleichen konnte, ob die Ranglisten von zwei Rechnern identisch sind, also alle Ergebnisse gleich eingegeben wurden.
Die Idee war gut, aber das Problem bei der Muckmeisterschaft war, dass natürlich nicht alle Ergebnisse auf Anhieb korrekt eingegeben wurden (bis auf ein einziges Mal in Runde 5), so dass diese Funktion uns in vier von fünf Fällen nicht ersparte, trotzdem die ganze Rangliste durchzugehen und nach den falschen Punkten zu suchen (und das dauert bei 118 Paaren seine Zeit …)

Jetzt gibt es einen eigenen Dialog für Prüfsummen. Oben steht die komplette Prüfsumme der Rangliste. Wenn diese nicht übereinstimmt, dann kann man folgendes machen: Die Rangliste wird halbiert, und für jede Hälfte wird die jeweilige Prüfsumme berechnet. Jetzt schaut man sich die Teil-Prüfsummen an. Weichen beide ab, dann teilt man die erste Hälfte wieder in zwei Hälften. Wenn nur die zweite abweicht, dann sind alle Plätze in der ersten Hälfte korrekt, und man teilt die zweite Hälfte weiter auf, weil da der Fehler liegt.

So kann man schnell den oder die falschen Ranglistenplatz/-plätze eingrenzen, ohne die ganze Liste kontrollieren zu müssen. Um beim Beispiel der Muckmeisterschaft zu bleiben: Halbiert man bei 118 Paaren einen Ranglistenabschnitt drei mal weiter, dann gibt es schon bloß noch acht Plätze zur Auswahl, die falsch sein können.

„Richtige“ Markierungen

Die bisherige Implementierung der Markierungen war etwas unorthodox: Es wurde entweder vor oder nach dem Namen des Paars/Spielers ein zusätzliches Zeichen gesetzt (Unicode-Zeichen 200B), und dann wurde geschaut, ob dieses Zeichen da ist, oder nicht. Für das Anmeldekonzept auf dem Volksfest hat’s gereicht :-P aber das war wohl doch eher ein Hack als eine vernünftige Implementierung.

Jetzt gibt es „richtige“ Markierungen. Und zwar beliebig viele in beliebigen Farben mit beliebigen Namen. Pro Markierung kann man auswählen, ob so markierte Namen fortlaufend (ohne ihre Position zu verändern) in der Liste bleiben, oder einen eigenen, sortierten, Block erzeugen sollen.

Damit kann man jetzt beispielsweise Markierungen für „Vorangemeldet“, „Auslosung fehlt noch“, „Allein gekommen“ oder was auch immer erstellen. Das ist jetzt auch wirklich die Implementierung des seit Äonen geforderten Features, die Möglichkeit zu schaffen, Paare als „Startgeld bezahlt“ zu markieren.

Weitere Änderungen

Eine Liste aller Änderungen enthält – wie immer – der ChangeLog. Viel Spaß mit der neuen Version!