Alpha Version von Race Horology 0.3 verfügbar

Lang‘ nichts mehr gehört…

Man hat lange nichts mehr von mir gehört, nachdem die Skisaison abrupt durch COVID-19 beendet wurde…

Tatsächlich hat sich aber einiges getan – das Resultat hiervon ist in der ersten Alphaversion der Version 0.3 von Race Horology gemündet.

Schwerpunkt Datenimport / Startnummern und Export

Im Winter 2019/2020 war der Schwerpunkt der Entwicklung auf der Renndurchführung und dem Renntag selbst (siehe auch Die erste Version von Race Horology). In diesem Sommer habe ich den Schwerpunkt auf die Rennvorbereitung gelegt. Im Detail heißt dies, dass die Version 0.3 folgende Features enthält:

  • Erstellen von Bewerbsdateien / Anlegen von Bewerben
    Es mag vielleicht trivial sein, aber der erste Schritt ist das Anlegen der Bewerbsdateien. Hierzu muss man zukünftig nicht mehr DSVAlpin bemühen. Direkt nach dem Erstellen einer Bewerbsdatei kommt natürlich das Anlegen eines oder mehrerer Bewerbe – dies geht jetzt direkt mit Race Horology. Auch wenn die Umsetzung (noch) keine schöne Optik hat, ist dieses Feature immerhin enthalten.
  • Editieren / Importieren von Klassen und Gruppen
    Ein weiteres Feature ist das Festlegen der Klassen, Gruppen und Kategorien – letztere wurden übrigens bisher nur durch einen Buchstaben wie „M“ und „W“ unterstützt.
    Im wesentlichen ist diese Funktionalität analog zu DSV Alpin. Die Darstellung ist allerdings deutlich anders: Ich habe eine einfache tabellarische Darstellung gewählt, wobei man die Gruppen bzw. die Kategorie mittels Auswahlboxen bei der Klassendefinition auswählen kann. Die Reihenfolge wird mittels Drag & Drop festgelegt.
  • Hinzufügen / Entfernen / Editieren von Teilnehmern
    Natürlich darf das Hinzufügen und Editieren von Teilnehmern nicht fehlen. Neben dem manuellen Hinzufügen ist der Import in Version 0.3 enthalten. Ich habe mich hier an den Import von DSVAlpinX angelegt und einen Import mit variablen Feldern implementiert: Die zu importierende Datei wird eingelesen, eine Vorschau der Daten wird ähnlich wie in Excel dargestellt und eine entsprechende Feldzuordnung zwischen den Importfeldern und den Race Horology Feldern wird angezeigt und kann verändert werden. Diese Feldzuordnung wird soweit es geht automatisch „erraten“ und es sollten daher nur sehr wenige Feldzuordnungen manuell korrigiert werden müssen (sofern dies überhaupt nötig ist).
  • Startnummernvergabe
    Nach dem Import ist die Startnummernvergabe bzw. die Auslosung einer der wichtigen Schritte vor dem Renntag. Hier ist die volle Flexibilität von dem manuellen Zuweisen der Startnummern bis zur der automatischen Auslosung pro Klasse / Gruppe / Kategorie umgesetzt. Im Gegensatz zu DSVAlpin ist es auch möglich alle Klassen bzw. Gruppen mit nur einem Klick auszulosen. Die Auslosparameter werden übrigens durch die Rennkonfiguration initial übernommen, sodass eine manuelle Parametrisierung der Auslosung eigentlich nicht mehr notwendig sein sollte.
    Ein „Goodie“ für den einen oder anderen Verein dürfte die Startnummern-Blackliste sein. Hier werden die Startnummern angegeben, die nicht verlost werden dürfen – weil z.B. der Startnummernsatz mal wieder nicht vollständig ist oder eine Startnummer schmutzig ist.
  • Bugfixes
    Last but not least sind sehr viele Fehlerkorrekturen in Race Horology enthalten. Wer es genau wissen will, der kann sich die Liste der gefixten Bugs ansehen.

Noch nicht fertig…

Bei all den guten Nachrichten bleibt noch eine „schlechte“ Nachricht: die Version ist erst eine Alpha Version. Das heißt in der aktuellen Version sind noch Fehler zu erwarten und ein ausgiebiges Testen ist notwendig.

Apropos Testen

Ich freue mich über jeden, der einen Beitrag zu Race Horology leisten will – Testen und Ausprobieren ist sicherlich das, was uns alle verbindet und bei dem wir uns gegenseitig unterstützen können. Wer also Lust am (systematischen) Testen hat, der ist eingeladen mitzuhelfen.

… aber nicht nur Testen ist gefragt – auch Anleitung schreiben oder Programmieren hilft und bringt uns alle ein großes Stück näher zu einem vollständigen neuen Zeitnahmeprogramm.

Installer und Download

Die Version 0.3 enthält übrigens auch einen Installer, mit dem es jedem gelingen sollte, das Programm zu installieren.

Die Vorabversion Race Horology 0.3.0 Alpha 1 sowie eventuell neuere Versionen findet ihr auf Github.

Race Horology unter der AGPL v3 veröffentlicht

Im BLOG Open Source oder Bezahlen hatte ich bereits schonmal darüber geschrieben, ob und wie ich Race Horology veröffentlichen möchte.

Ich habe mich in letzter Zeit nochmal tiefere Gedanken darüber gemacht und bin zu dem Schluss gekommen, dass ich Race Horology unter der AGPL v3 veröffentlichen möchte.

AGPL v3

Die AGPL ermöglicht es jedem, das Programm zu nutzen, es zu modifizieren und es auch wieder erneut zu veröffentlichen. Auf der anderen Seite stellt es sicher, dass jede weitere Veränderung des Programms auch wieder unter der AGPL veröffentlicht werden muss (sofern veröffentlicht wird).

Es ist somit sichgestellt, dass Veränderungen, wie z.B. neue Features oder Fehlerbeseitigungen, möglich sind und dass diese auch zukünftig zur Verfügung stehen. Es steht somit einem langen Leben von Race Horology nichts im Wege – auch wenn ich persönlich eines Tages nicht mehr der Hauptentwickler sein würde.

Source Code

Der Source Code von Race Horology ist auf Github unter folgender Adresse zu finden:

https://github.com/svenflossmann/RaceHorology.

DSV Punkteberechnung und Live-Einsatz beim U14/16 Rennen in Kirchberg

Am letzten Wochende, dem 29.02.2020 und dem 01.03.2020 richtete der WSV Glonn zwei U14/U16 Rennen in Kirchberg aus. Eine perfekte Gelegenheit um Race Horology zu testen und neue Features auszuprobieren.

DSV Punkte Berechnung ist da

Um Race Horology bei diesem Event einsetzen zu können, war es für mich ein wichtiges Ziel, die Punkteberechnung inkl. Zuschlagsberechnung für DSV Schülerrennen implementiert zu haben. Vor der Rennsaison hätte ich nicht daran gedacht, dies haben zu können – ich war froh wenn man Zeiten messen könnte. Nachdem der Termin aber immer näher kam und ich unbedingt eine „grüne“ Race Horology Ergebnisliste bei dem Event haben wollte, war die Motivation am Sonntag vor dem Rennen so groß, in einer Hau-Ruck-Aktion die Punkteberechnung komplett einzubauen. Es hat geklappt, die Punkteberechnung ist drin!

Eine Anmerkung gibt’s allerdings: Die neue Ergebnisliste (siehe Beispiel) enthält die Punkte inklusiv Zuschlag. Eigentlich sinnvoll, da somit das Rechnen entfällt, dennoch vielleicht ungewohnt für die Meisten, die bisher DSVAlpin Ergebnisliste kennen.

Für mich war dies ein weiterer wichtiger Meilenstein, um Race Horology massentauglich zu bekommen.

Weiterer Live-Einsatz am Kirchberg

Der erste Live-Test von Race Horology war beim Kreisskisportfest des Lankreises Ebersberg. Damals noch mit doppelter Absicherung und sehr akribischer manueller Durchsicht der Ergebnislisten.

Der zweite Einsatz war beim SVM U8-U12 Rennen in Kirchberg am 15./16. Februar 2020. Auch hier haben wir Race Horology im Hintergrund mitlaufen lassen, aber die Ausscheidungen und offiziellen Messungen mit DSVAlpin gemacht und nur ide Listen letztlich mit Race Horology gedruckt.

Nachdem uns aber auch hier keine größeren Fehler aufgefallen sind, haben wir am letzten Wochenende voll auf Race Horology gesetzt. Es lief zwar immer noch DSVAlpin im Hintergrund mit und wir haben auch die Ausscheidungen parallel mit beiden Programmen eingegeben. Die eigentlich Zeitnahme inklusive der Ausscheidungseingabe während dem Rennen, das Erstellen der Ergebnislisten mit oben erwähnter Punkteberechnung wurden komplett mit Race Horology erledigt und sofort publiziert. Alles hat ziemlich gut funktioniert, es gab nur einen kleinen Fehler bei der Startliste für den 2. Durchgang. In Summe für mich aber ein sehr gutes, optimistisches Zeichen und eine Bestärkung Race Horology bald öffentlich verfügbar machen zu können.

Danke ans WSV Glonn Team

An dieser Stelle nochmal Danke an das WSV Glonn Team, Race Horology mit auszuprobieren. Insbesondere an unseren Sprecher Thorsten Raith, der jetzt 5 Rennen mit eine „Race Horology powered Tablet“ kommentierte. Weiterhin an Klaus Breitschaft für seine Unterstützung und nicht zuletzt auch an Nils Schüller, der den Mehraufwand der „Doppelten Buchführung“ der Zeitnahme mit mir umsetzt.

Unser Sprecher Thorsten mit Tablet Unterstützung

Erster Live-Einsatz beim Kreisskisportfest Ebersberg

Gestern war Premiere für Race Horology – Race Horology wurde das erste mal bei einem Ski-Alpin-Rennen, genauer gesagt bei dem Kreisskisportfest des Lankreises Ebersberg, live eingesetzt.

Das Wichtigste

Das Wichtigste vorweg: Es hat im Wesentlichen alles sehr gut funktioniert. Die Zeiten wurden perfekt in Race Horology übertragen, der Sprecher hatte seinen Bildschirm auf dem Tablet im Zielbereich und konnte sich frei bewegen, das Livetiming auf rennmeldung.de zeigte zusätzlich an, wer sich gerade auf der Strecke befindet. Alles in allem ein sehr erfolgreicher Test.

Zwei Systeme

So ganz traute ich mich aber dennoch nicht, ausschließlich auf Race Horology zu setzen, weshalb wir zwei Laptops nutzten und die Zeiten zu beiden Systemen übertrugen.

Wir setzten dazu als Vorbereitung die Bewerbsdateien mit DSVAlpin auf, losten in DSVAlpin aus und erstellten anschließend die Startlisten mit Race Horology. Die Bewerbsdateien kopierten wir auf beiden Laptops in unterschiedliche Verzeichnissen, verbanden diese mit der ALGE TdC 8001 und starteten das Rennen.

Livetiming zu rennmeldung.de, sowie der View für den Sprecher auf ein Tablet realisierte ausschließlich Race Horology. DSVAlpin lief als Vergleichssystem zur Sicherheit mit. Nachdem wir schnell fertig werden mussten (der Regen war schon am Himmel zu sehen) machten wir die Ausscheidungen und die Rennauswertung am Hang mit DSVAlpin und DSVAlpinX – wir wollten sicher gehen, dass nicht unerwartetete Fehler auftreten. Ursprünglich wollten wir die Ausscheidungen auch am Hang mit Race Horology machen und die Ergebnislisten akribisch vergleichen – das holte ich später offline am Rechner nach. Die Urkunden am Hang druckten wir auch weiterhin mit DSVAlpinX.

Wer Interesse hat und die Ergebnislisten noch nicht kennt, kann bei rennmeldung.de ein Blick darauf werfen: Ergebnis Kreisskisportfest Ebersberg 2020.

Erkenntnisse

Letztlich was das ganze ein sehr guter Test, eine positive Bestätigung, dass das Meiste sehr gut funktioniert (trotz der vielen Trockentests vorher). Auch Feedback konnte noch etwas mitgenommen werden, was so bei den Trockentests gar nicht aufgefallen ist – Dogfooding ist eben doch ein bewährtes Mittel in der Softwareentwicklung:

  • So ist der untere Bereich des Zeitnahmebildschirms noch nicht ideal. Aktuell zeigt er, das Ergebnis des aktuellen Laufs. Besser wäre es, die Läufer in der Reihenfolge der Zieldurchfahrt anzuzeigen – ähnlich der Sprecherdarstellung, sodass der Zeitnehmer, der üblicherweise nur am letzten Zieldurchfahrer interessiert ist, sich schneller orientieren kann. Die Ergebnisse werden ohnehin am rechten Bildschirmrand dargestellt.
  • Weiterhin sollte man eine weitere Instanz von Race Horology öffnen können, um paralleles Arbeiten zu ermöglichen (z.B. um den vorherigen Bewerb abzuschließen – wir hatten zwei Bewerbe mit unterschiedlicher Auswertung). Aktuell ist das Starten zweier Race Horology Sitzungen auf Grund des eingbauten Webservers nicht möglich.
  • Die Ausscheidungen könnten auch noch besser eingegeben werden können. Hier muss wohl nochmal mehr gemacht werden. 😉

Open Source oder Bezahlen?

Einen Grund, warum Race Horology entstand habe ich bereits im ersten Beitrag erwähnt. Ein weiterer Grund ist die Wartung und Pflege. DSVAlpin wird nicht mehr gepflegt und es ist aussichtslos, dass hier jemals noch etwas passieren wird. Es gibt natürlich andere Zeitauswertungsprogramme – mit Wartung und neuen Features. Diese kosten aber für die Verhältnisse eines ambitionierten kleinen bis mittleren Sportverein doch relativ viel Geld. Zeitnahme ist eben kein Massenprodukt und daher teuer.

Wie stellt man also sicher, dass aus einem Hobby-Projekt ein nachhaltiges Projekt wird? Wie kann man die Wartung und Pflege von Race Horology sicherstellen? Wie kann man neue Features hinzufügen? Wer beseitigt eventuell enthaltene Fehler? Wer reagiert auf Regelementänderungen?

Erster Gedanke

Mein erster Gedanke hierauf war eine Entwickler Community, nachdem Vorbild guter Open Source Programme wie GIMP oder Blender oder dem Webbrowser Firefox. Dies funktioniert gut, wenn eine gewisse kritische Masse motiviert genug ist aus freien Stücken an einem Projekt mitzuwirken oder man eine Art Stiftung (z.B. die Mozilla Stiftung) hat – die sich meist über (größere) Spenden und Sponsoren finanziert, die wiederum festangestellte Programmierer beschäftigt.

Daher die Frage: Gäbe es genügend Softwareentwickler unter uns, die Lust hätten, bei dem Projekt mitzuwirken, Features zu entwickeln oder Fehler zu beseitigen?

Zweiter Gedanke

Mein zweiter Gedanke war selbst viel Aufwand hier rein zu stecken und die Arbeit zu refinanzieren. Aber ganz ehrlich: Nimmt man die Preise für DSVAlpin und multipliziert dies mit der Anzahl potentieller Vereine, die Race Horology nutzen würden, so merkt man schnell, das der Aufwand nicht so ohne weiteres refinanziert werden kann.

Dritter Gedanke

Mein dritter Gedanke war eine Mischform: den Source Code öffentlich machen um somit die Möglichkeit der Zusammenarbeit zu schaffen und eventuell auf eine Art Spendenmodell zu setzen um zumindest die größten Unkosten teilweise zu decken.

Vierter Gedanke

Ein vierter Gedanke war noch anstatt auf Lizenzgebühren auf „Spenden für Features“ zu setzen – sprich: wenn jemand ein bestimmtes Feature benötigt kann er entweder das Feature selbst beisteuern oder mittels einer Spende ein bestimmtes Feature entwicklen lassen. Wobei in letzterem Fall eine Spende schnell in einem drei bis vierstelligem Bereich läge, wenn dies dem marktüblichen Preis entspräche. Klingt unrealistisch.

Was wäre mein Favorit?

Das Wichtigste wäre mir, dass die Nachwelt selbst in der Lage ist, die Wartung übernehmen zu können oder neue Features hinzufügen zu können. Ich denke daher primär über die Freigabe des Quelltextes nach und werde dies wahrscheinlich auch demnächst tun.

Daher suche ich grundsätzlich nach Mitstreitern, Hoby-Informatikern, die das Thema der Zeitnahme kennen und Lust haben in der Freizeit etwas sinnvolles zu programmieren, um unseren Vereinen ein modernes Zeitnahmeprogramm mit vielen Features von und für Zeitnehmer auf lange Zeit zu sichern.

Daher der Aufrauf an die Hobby-Programmierer unter uns Skifahren und Zeitnehmern: Meldet Euch bei mir, wenn ihr hieran Interesse habt.

Wenn letztlich der dritte Gedanke sogar mit Spenden einhergeht, um auch mal ein Hackathon mit finanzierter Pizza zu bestreiten bzw. was wichtiger wäre die Kosten von Entwicklungstools zu decken, wäre ich primär zufrieden.

Die erste Version von Race Horology

Angefangen im März 2019 mit der Entwicklung von Race Horology, war ich voll motiviert und wollte möglichst viele Features implementieren – am Besten sollten alle der folgenden Punkte enthalten sein:

  • Übersichtlichere Zeitnahme
    Man soll sehen, welche Läufer am Start stehen, ein vorläufiges Ergebnis sichtbar sein – sowohl im Durchgang also auch gleich das Gesamtergebnis.
  • Anzeige für den Sprecher
    Es soll eine unabhängige separate Anzeige für den Sprecher existieren, bei dem der Sprecher auf seinen Wunsch die Daten sichtbar machen kann, die er gerade benötigt – also beispielsweise welcher Läufer ist aktuell auf der Strecker, wer steht am Start, welche Zeit hatten die letzten Läufer in Ziel, wie ist die Startliste – vor allem: wie ist Startliste für den 2. Durchgang
  • Transparente Rennkonfiguration
    Ich wollte gerne eine transparente Rennkonfiguration, bei der sofort ersichtlich ist, ob Addition oder Best-of-Two eingestellt ist. Es soll die Default-Gruppierung (Klasse, Gruppe, Geschlecht) einstellbar sein. Es sollen alle wesentlichen Startreihenfolgen unterstützt sein.
  • Einfacher Listen Drucken
    Ich wollte gerne Listen drucken. Aber vor dem Drucken auch den Inhalt sehen ohne zu Drucken. Das Drucken sollte durch einen Klick auslösbar sein. Und vor allem wollte ich nicht bei jedem Druckvorgang alle Konfigurationsdaten wie Durchgang, Gruppierung, mit/ohne Punkte erneut einstellen.
  • Urkundendesigner
    Ich wollte einen WYSIWYG – Urkundendesigner, bei dem man die Urkunde (typischerweise ein Vordruck im PDF Format oder TIFF) als Hintergrund sieht und man die Urkundenfelder wie Name, Platz, Zeit wie in „Power Point“ einfach mittels Hilfslinien platzieren kann.
  • Einfacherer Datenimport
    Ich wollte einen Datenimport, der einfach, sicher und immer funktioniert. Wenn mal Fehlermeldungen kommen, dann mit einem sinnvollen Text, der einem hilft, das Problem zu lösen.

… es sollte: „… einfacher, effizienter und moderner als DSVAlpin“ sein.

Schnell habe ich aber auch gemerkt, dass dieses Vorhaben zu viel für ein Projekt „nebenbei“ ist. Ich wollte das Programm aber unbedingt in der Saison 2019/2020 einsetzen. Daher stellte sich die Frage, was muss unbedingt drin sein?

Am Ende nahm ich mir vor, sich auf das Nötigste für den Renntag zu fokussieren. Weiterhin war es mir wichtig, Ergebnislisten erzeugen zu können, um Aufmerksamkeit untern den Zeitnehmern zu erzeugen und somit auf Mitstreiter zu hoffen, um eine Entwicklungscommunity um Race Horology aufzubauen, um die Entwicklung und auch Wartung in 10 Jahren sichern zu können. Hierzu aber in einem späteren Beitrag mehr…

Das ist also in der ersten Version drin:

  • komplett neuer Zeitnahmebildschirm mit allen nötigen Infos
  • Web-Interface welches auf einem unabhängigen Gerät angezeigt werden kann (e.g. ein Tablet oder zweiter Monitor)
    Typische Nutzer hiervon wären:
    • Sprecher
    • Starter
    • Trainer am Start
      (…, die die gefahrene Zeit des gerade gestarteten Läufers live sehen wollen.)
  • Livetiming von rennmeldung.de mit „noch mehr live“
    (man kann sehen wer auf der Strecke ist)
  • Neue Start- und Ergebnislisten
  • Auf der Ergebnisliste befindet sich ein „grafischer Einseiten-Ergebnis-Überblick

Und was ist nicht drin?
Nun, alles andere ist leider noch nicht drin. Insbesondere sind in der ersten Version noch kein:

  • Datenimport
  • Startnummernvergabe
  • DSV Punkteberechnung
    (kommt aber vielleicht noch im März 2020)
  • Urkundendruck und Urkundendesigner 🙁

Mir persönlich gefällt es nicht, dass diese Funktionen noch nicht enthalten sind. Aber: Race Horology ist nahezu voll kompatibel mit DSVAlpin bzw. DSVAlpinX, sodass man für die fehlende Funktion die altbekannten Programme benutzen kann.

Willkommen Race Horology

Race Horology wird ein neues Programm um Zeitmessungen bei Rennsportarten durchzuführen. 

Die Idee, ein neues Programm zu schreiben entsprang aus meinem ersten Jahr als Zeitnehmer beim WSV-Glonn. Ich wusste nicht so genau, worauf ich mich einließ – aber ich gebe zu, das Interesse am Rennzeitmessen war sehr groß. Die erste Ernüchterung kam dann beim Vorbeiten auf die ersten Rennen. Das Programm für alpine Skirennen war bis dato DSVAlpin. DSVAlpin ist prinzipiell kein schlechtes Programm – im Gegenteil: es erleichtert die Arbeit für die Zeitnehmer deutlich, die Ergebnislisten sehen ansprechlich aus, es deckt fast alle Standardsituationen ab und nicht zu letzt funktioniert es auch ganz ordentlich. Schaut man sich DSVAlpin aber im Jahre 2019 genauer an, stellt man fest, dass dies vor ca. 10 Jahren in der Entwicklung stehen geblieben ist – DSVAlpin wird seit ca. 10 Jahren nicht mehr weiterentwickelt.

DSVAlpinX von Bernd Altmann springt in diese Lücke und rüstet dringend notwendige Funktionen wie zum Beispiel eine Handzeitberechnung, einfacheres Urkundendrucken oder besseren Datenimport nach. 

Dennoch, fehlt für meinen Geschmack aus der heutigen Sicht noch mehr. Im Zeitalter von Tablets und Smartphones, sollte der Sprecher bei einem Skirennen eine eigene Ansicht bekommen, die es ihm erlaubt, das Renngeschehen live (und mit live meine ich wirklich live) mitzuverfolgen.  Zudem sollte es ihm möglich sein,  passend zu den Renngeschehen auf die aktuellsten Startlisten, Teilergebnissen und andere Daten zugreifen zu können. Bisher starren die Sprecher mit einem Auge auf die ausgedruckte Startliste, die wahrscheinlich noch dreimal gefaltet und durchnässt ist, und mit dem anderen Auge auf das Laptop des Zeitnehmers, auf dem nur ein Teil der für den Sprecher interessanten Daten einzusehen ist.
Weiterhin sollten alle existierenden Standardfunktionen moderner und einfacher bedienbar sein. Ein Urkundendesigner wäre nicht schlecht, einfacherer Datenimport und Datenexport, integriertes Livetiming für eg. rennmeldung.de oder FIS. Nicht zu letzt sollten sich alle wesentlichen Funktionen wieder in einem Programm befinden.

Das war die Geburtsstunde von Race Horology – im März 2019.

Wie sich allerdings herausstellte sind die Ziele aber nicht auf einen Schlag umsetzbar. Hierzu aber später mehr…