Muckturnier

News

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 Muckturnierprogramm 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 Muckturnierprogramm 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 Webservers 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

  • Änderung: Es wird jetzt mindestens Qt 5.7 benötigt. Das betrifft aber nur die, die selbst kompilieren, und das dürften nicht allzu viele sein ;-)
  • Neu: Bei der Spielstandeingabe wird jetzt angezeigt, wie viele Ergebnisse (also Tische) bereits eingegeben wurden, und wie viele noch fehlen.
  • Verbesserung: Der Spielstand-Eingabedialog kann jetzt auch in abgebrochenen Bobbeln per Rechtsklick auf die Eingabefelder aufgerufen werden.
  • Änderung: Die Eingabe von abgebrochenen Bobbeln wurde überarbeitet: Einen Haken für die Runde gibt es jetzt nicht mehr (die Zettel kommen eh nicht in der richtigen Reihenfolge), stattdessen gibt es jetzt immer pro Bobbl einen „Als abgebrochen markieren“-Knopf, der auch alle folgenden Bobbl als abgebrochen markiert.
  • Bugfix: Beim Editieren (Löschen und neu Eingeben) von Spielständen werden bei als abgebrochen eingegebenen Bobbeln die gespeicherten Punktwerte jetzt korrekt voreingestellt und der jeweilige Bobbl auch als abgebrochen markiert.
  • Bugfix: Die Anzeigeoptionen („Gegenerische Tore berücksichtigen“ etc.) werden jetzt wieder korrekt gespeichert.
  • Neu: Der Turnierdatenbank-Dateityp „.mtdb“ wird jetzt mit dem Muckturnier-Programm verknüpft. Damit kann eine Turnierdatenbank z. B. per (Doppel-)Klick aus einem Dateimanager heraus geöffnet werden.
  • Neu/Verbesserung: Es gibt jetzt einen eigenen Dialog für den Import von Paar- bzw- Spielerlisten. Hier wird eine Vorschau des zu importierenden Datensatzes vor dem eigentlichen Import angezeigt. Etwaige Duplikate werden gesondert gelistet und können vom Import ausgeschlossen bzw. als potenzielles Duplikat markiert werden.
  • Verbesserung/Bugfix: Für hohe Punktzahlen werden jetzt beim Punktestand-Dialog Scrollbars angezeigt, und der Dialog wird nicht mehr abgeschnitten.

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

Muckturnier auf der 1. Oberfränkischen Muckmeisterschaft

Am gestrigen Sonntag, den 05.08.2018, wurde auf dem Hofer Volksfest die „1. Oberfränkische Muckmeisterschaft“ abgehalten – und ausgewertet wurde erfolgreich mit dem Muckturnier-Programm. Sage und schreibe 118 Pärchen, also 236 Karter, nahmen an dem Turnier teil, das damit bis jetzt das mit Abstand größte war, das mit Muckturnier ausgewertet wurde.

Sehr interessant war hier nicht nur die Auswertung, sondern vor allem auch die Organisation der Anmeldung. Bei so vielen Teilnehmern war das wirklich nicht trivial zu bewerkstelligen! Das Konzept hat aber reibungslos funktioniert, und wird als „Tips aus der Praxis“ (o. Ä.) auch Einzug in die Dokumentation des Muckturnier-Programms halten.

Die Entwicklung des Programms hat dieses Groß-Event auf jeden Fall vorangebracht: Es wurden einige gute Ideen gesammelt, wie man die Eingabe, insbesondere die der ersten Runde (in der die Auslosung noch nicht klar ist), weiter optimieren und noch schneller machen kann. Das alles wird ins nächste Release einfließen.

In der TVO-Mediathek findet sich ein Bericht über das Turnier, in dem ich auch kurz zu Wort komme. Update 09.08.2018: Mittlerweile gibt es einen etwas ausführlicheren Bericht mit einem bisschen mehr Screentime für mich – und da hält der Kameramann (bei 7:39) auch tatsächlich mal auf das Muckturnier-Banner mit Verweis auf muckturnier.org!
Nein, Muckturnier wurde nicht für das Hofer Volksfest geschrieben (das gibt es schon deutlich länger als den „Aufmucker“) und inwiefern die Turnierleitung hauptsächlich aus Mitgliedern der Landjugend bestand (weder Wolfgang Knappe, noch Matthias Knappe, noch meine Wenigkeit sind in der Landjugend) liegt wohl auch eher im Ermessen der journalistischen Freiheit. Aber nichts für ungut.

Mir hat es auf jeden Fall sehr viel Spaß gemacht, sich einer solchen Herausforderung und vor allem auch Verantwortung zu stellen (was im Falle eines Versagens des Muckturnier-Programms 236 zornige Karter mit mir angestellt hätten, will ich mir an dieser Stelle gar nicht ausmalen ;-) und ich freue mich riesig auf die für den 04.08.2019 angekündigte 2. Oberfränkische Muckmeisterschaft – natürlich einfach mal davon ausgegangen, dass ich da wieder mitorganisieren und auswerten darf.