-
Bugfix #20: unsaubere Gruppen möglich
Auch nach Änderungen an Prüfungen wird nun korrekt geprüft, dass eine Gruppe nur aus Prüfungen besteht, die alle das gleiche Prüfy, das gleiche Fach und die gleiche Art besitzen.
-
Bugfix #21: Fehlerhafter Export von Unterricht
Unterrichtsinformationen werden nun korrekt exportiert. Dies betrifft sowohl das Schreiben von Modell-Verzeichnissen als auch die Text-Ansicht im Reiter "Unterricht".
-
Export von Modell-Verzeichnissen optimiert
Beim Export von Modell-Verzeichnissen können Pläne mit exportiert werden. Dies betrifft nicht nur die manuellen Pläne, sondern auch die Pläne im Planpool. Daher werden potentiell sehr viele Pläne exportiert. Bisher wurden für alle diese vielen Pläne viele Dateien erstellt (CSV-Export, HTML-Version, Export für das hessische Schulportal, verschiedene Excel-Exporte, Seriendruck, ...). Dies dauerte sehr lange. Für den Export von Modell-Verzeichnissen werden nun nur noch die HTML-Version und die von Prüfungsplaner selbst lesbare CSV-Version exportiert. Andere Ausgabe-Dateien von Plänen müssen durch manuellen Export erstellt werden. Durch diese Verschlankung dauert ein Export nun nur wenige Sekunden statt bei vielen Plänen mehrere Minuten.
-
Schütteln von Plänen implementiert
Werden einzelne Pläne lange optimiert (über die Funktion "Optimieren" im Reiter Pläne), so kann es leicht passieren, dass die Optimierung in einem sogenannten lokalen Minimum festsitzt. Änderungen in der Größenordnung, die die Optimierung vornimmt bringen keine Verbesserungen mehr, aber indem man größere Änderungen vornimmt könnte der Plan noch verbessert werden. In einem solchen Fall konnte man bisher die maximale Anzahl der Teilmutationen erhöhen. Zudem war es möglich, über das Menü "Pläne" zufällige Änderungen am aktuellen Plan vorzunehmen und den Plan danach neu zu optimieren. Dieses Vornehmen von zufälligen Änderungen wurde nun unter dem Namen "Schütteln" im Optimieren-Dialog komfortabler implementiert.
-
Performance-Optimierungen
Die Hauptarbeit an dieser Version besteht in Performance-Optimierungen. Es wurden sowohl einzelne Implementierungen, als auch Datenstrukturen und auch grundlegende Algorithmen optimiert. Als Beispiel für eine Micro-Optimierung wurden an mehreren Stellen z.B. der Zugriff auf eine Map mit sehr wenigen Einträgen durch die lineare Suche in einer Liste ersetzt. Es wurden aber auch komplett neue Caches für oft berechnete Werte eingeführt und sogar der Algorithmus für die Auswahl der nächsten anzuwendenden Mutation grundlegend überarbeitet. Es werden nun wesentlich schneller Mutationen gewählt, diese sind aber weniger zielgenau gewählt als vorher.
Die Auswirkungen sind für den Nutzer hauptsächlich eine wesentlich schneller Suche nach besseren Plänen. Allerdings werden tendenziell leicht mehr Runden als vorher benötigt, da Mutationen weniger zielgerichtet gewählt werden. Zudem wird für die Suche wesentlich weniger Arbeitsspeicher als vorher benötigt. Die Auswirkungen sollten besonders auf sehr alten Rechnern mit wenig Arbeitsspeicher deutlich spürbar sein. Wegen Optimierungen bzgl. Nebenläufigkeit profitieren aber auch Rechner mit sehr vielen Prozessorkernen überproportional stark.
Die genauen Auswirkungen sind schlecht zu quantifizieren, da der Algorithmus stark auf Zufall basiert, und sich die Auswirkungen zudem je nach verwendetem Rechner und Modell unterscheiden. Man kann ganz, ganz grob mit einer Beschleunigung der Suche um den Faktor 10 rechnen. D.h. statt einer Mittagspause zum Optimieren von Plänen genügt nun eine kurze Kaffeepause.
Es wurde darauf geachtet, dass das Zustandsdateiformat unverändert blieb. Alte Zustandsdateien können mit dieser Version also weiterhin gelesen werden.
-
Bugfix #18: "max. Anzahl Mutations-Runden" wird ignoriert
-
Bugfix #19: Anlegen von Lehrys ohne Kürzel möglich
-
intensives Code-Review, Testen und daraus resultierende viele kleine Verbesserungen
Es wurden viele kleine Fehler gefunden und behoben, die aber den Nutzer nicht oder nur minimal beeinträchtigten. Ein typisches Beispiel ist ein Tippfehler (z.B. ein Buchstabendreher) in einem Tooltip-Text oder einer selten angezeigten Fehlermeldung. Zudem fand intensives Profiling statt. Als Resultat wurden einige Code-Stellen optimiert und Tuerks Prüfungsplaner rechnet schneller und verbraucht weniger Arbeitsspeicher. Insbesondere wurde die Caching-Strategie überarbeitet.
-
Exportiere Modell-Verzeichnis entfernt
In sehr früher Versionen von Tuerks Prüfungsplaner (lange vor der ersten veröffentlichten Version) wurden Modell-Verzeichnisse fast wie Zustände verwendet. Daher gab es eine Operation, die es erlaubte, ein einmal geladenes Modell-Verzeichnis mit einer neuen Version zu überschreiben. Seit langem werden Modell-Verzeichnisse aber nur noch zur Langzeitdatenspeicherung verwendet. Daher ist diese Funktion nun obsolet. -
Import-Dialog für Lizenzschlüssel verbessert
Expliziter Hinweis, falls Schlüssel nicht verwendet werden kann hinzugefügt. -
Tooltip-Texte überarbeitet
Tippfehler korrigiert, Formulierungen verbessert -
Bugfix #17: Fehlerhafte Prüfung von Lizenzschlüsseln
-
Verschlüsselung implementiert
Zustandsdateien werden nun verschlüsselt gespeichert. Über den Menü-Eintrag Datei / Verschlüsselung / Schlüsselbund erstellt man lokal einen privaten Schlüssel. Dieser wird geheim gehalten und dient zum Entschlüsseln. Den zugehörigen öffentlichen Schlüssel sendet man an Kollegys. Jedes Kollegy sollte seinen eigenen privaten und die öffentlichen Schlüssel der anderen Kollegys im Schlüsselbund eingetragen haben. Zustandsdateien werden dann so verschlüsselt, dass alle Kollegys diese entschlüsseln können. Selbst wenn man Zustandsdateien nicht mit Kollegys austauschen möchte, kann es sinnvoll sein, einen privaten Schlüssel zu erstellen, da damit Zustandsdateien im Dateisystem verschlüsselt gespeichert werden können.
-
Für kleine Modelle mit bis zu 30 Prüfungen steht nun auch ohne Lizenzschlüssel die volle Funktionalität zur Verfügung. Planungen für anonymisierte Modelle können aber ohne Lizenzschlüssel nicht mehr durchgeführt werden.
-
Unterstützung für Stundenpläne implementiert
Es können nun Unterrichtsstunden, die Lehrys halten sollen, bei der Erstellung von Prüfungsplänen berücksichtigt werden. Unterrichtsstunden, die mit geplanten Prüfungen zeitlich kollidieren, werden abgesagt. Solche Absagen werden negativ gewertet. Über ein je Unterrichtsstunde einstellbares Gewicht kann eine Absage entweder als Konflikt oder nur als negative Vorliebe gewertet werden. Über das Gewicht ist es also möglich, wichtige Stunden, die unbedingt stattfinden müssen, und unwichtigere, die abgesagt werden dürfen, zu unterscheiden. Zusätzlich ist es möglich, Stunden unabhängig von stattfindendem Unterricht abzusagen.Die Unterstützung von Stundenplänen beinhaltet viele kleine und große Änderungen:
- Erweiterung der grafischen Oberfläche um einen Reiter "Stundenplan" für Eingabe und Bearbeitung von Plänen
- zusätzliche Einzelbewertungen für abgesagten Unterricht
- Lehry-Pausen berücksichtigen jetzt auch Unterricht
- Globale Vorliebe für Tagesdauer berücksichtigt nun auch Unterricht und Termine
- neue Vorliebe für Tagesdauer ohne Pausen hinzugefügt, diese ergänzt die globale Vorliebe für die Gesamtdauer der Prüfungen an einem Tag. Sie zählt aber nicht nur Prüfungen, sondern auch Unterrichtsstunden und Lehrytermine.
- Einstellungen für Stundenplan hinzugefügt, insbesondere für neue Einzelbewertungen, neue globale Vorliebe und für nötige Pufferzeiten
- Im Reiter "manuelle Planung" gibt es für Pläne einen neuen Unterreiter "Stundenplan". Hierüber lässt sich der Stundenplan eines einzelnen Lehrys anzeigen. Dieser Stundenplan enthält, welche Unterrichtsstunden aufgrund des ausgewählten Prüfungsplans abgesagt werden.
- Im Reiter "manuelle Planung" gibt es für Pläne einen neuen Unterreiter "Lehry-Zeiten". Hierüber lässt sich kompakt anzeigen, wann bestimmte Lehrys mit was beschäftigt sind. Es werden Prüfungen, Unterrichtsstunden, Lehrytermine und Lehry/Zeit-Vorlieben angezeigt. Dieser neue Unterreiter "Lehry-Zeiten" ist einem gleichnamigen, schon lange existierenden Reiter in der Excel-Ausgabe eines Plans nachempfunden. Wegen der neu hinzugekommenen Unterrichtsstunden, ist eine solche kompakte Ansicht aber auch bereits während der manuellen Planung eventuell hilfreich. Die bestehenden Ansichten bieten keinen ausreichenden Überblick mehr, welche Lehrys zu einem bestimmten Zeitpunkt verfügbar sind und somit manuell für Prüfungen eingeplant werden können.
- Im Reiter "manuelle Planung" sind im Unterreiter "Statistiken" nun auch Informationen zum Stundenplan, insbesondere abgesagte Unterrichtsstunden zu finden.
- alle relevanten Ausgabe-Dateien um Stundenplan-bezogene Daten erweitert
-
Zustandsdateien speichern nun auch den Status eines Modells ("anonymisiert", "Beispiel" oder "normales Modell")
-
verbesserte Status-Meldungen bzgl. Lizenzschlüsseln im Reiter Modell-Warnungen
-
bessere Unterstützung kleiner Bildschirme
Tuerks Prüfungsplaner benötigt leider viel Anzeigefläche auf dem Bildschirm. Vorherige Versionen benötigten eine Auflösung mit einer Breite von mindestens 1280 px (die Höhe war bei dieser Breite dann kein Problem, egal ob 4:3 oder 16:9 Bildschirme verwendet wurden). Es wurden nun einige Optimierungen vorgenommen, so dass nun bereits eine Bildschirmbreite von 1024 px unterstützt wird. Dennoch ist eine Breite von 1280 px oft hilfreich und eine Breite von 1920 px oder mehr kann die Übersichtlichkeit von Tabellen mit vielen Spalten (z.B. die Tabelle mit Prüfungen) deutlich verbessern. Um kleinere Bildschirmbreiten zu unterstützen, wurden einige Umbenennungen vorgenommen:- Reiter "manuelle Planung" --> "Pläne"
- Reiter "Lehrytermine" --> "Termine"
- Reiter "Modell-Infos" --> "Statistiken"
- Reiter "Modell-Fehler" bzw. "Modell-Warnungen" --> "Fehler", "Warnungen" oder "Infos" (je nach Schwere der angezeigten Probleme)
- im Reiter "Lehrys"
- "Standard-Vorsitzendy" --> "V"
- "Standard-Protokollanty" --> "P"
-
Verbesserte Darstellung langer Listen von Einzelbewertungen
Es werden nun je nach Anzahl der enthaltenen Unterpunkte automatisch Ordner erstellt oder entfernt. Ein typisches Beispiel ist, dass Zeit-Vorlieben-Bewertungen nun (je nach Anzahl der Vorlieben) automatisch in je einen Order pro Tag gruppiert werden. -
Machine-Fingerprint kann nun einfach in grafischer Oberfläche zurückgesetzt werden
-
detailliertere Fehlermeldungen bzgl. Fingerprints
Statt wie bisher nur auszugeben, dass ein (etwa beim Herunterladen eines Lizenzschlüssels) eingegebener Fingerprint kein gültiger Fingerprint ist und man die Eingabe überprüfen soll, werden nun Details ausgegeben. Es wird z.B. gemeldet, dass der Fingerprint zu lang oder zu kurz ist, ungültige Zeichen enthält oder die enthaltene Checksumme nicht stimmt. Durch diese detaillierteren Ausgaben ist die Verwechslungsgefahr zwischen ungültigen Fingerprints und gültigen Fingerprints, die für die eigene Maschine ungültig sind, deutlich verringert. Bei ungültigen Fingerprints handelt es sich um Zeichenfolgen, die nicht als Fingerprint interpretiert werden können, da sie einen falschen Aufbau besitzen. Bei Fingerprints, die für eine Maschine ungültig sind, handelt es sich um prinzipiell korrekt aufgebaute Fingerprints, die aber nicht zur Hardware einer bestimmten Maschine passen. -
Bugfix #15: falscher Fingerprint im Anforderungsdialog für Lizenzschlüssel
-
Bugfix #16: Globale Vorlieben teilweise nicht änderbar
-
flexibleres Parsen von Datums-Strings, es wird nun u.a. korrekt mit 2-stelligen Jahreszahlen umgegangen
-
kleine Änderungen an Farbgebung der grafischen Benutzeroberfläche zur Verbesserung der Lesbarkeit bei Benutzung dunkler Themes
Einige Texte wurden immer in Schwarz ausgegeben. Bei dunklen Themes führte dies zu schwarzem Text auf dunklem Hintergrund. Nun wird die Standard-Farbe des benutzten Themes statt Schwarz verwendet. So wird für dunkle Themes meist ein Weißton statt Schwarz verwendet. Nachteil ist, dass für helle Themes der Text teilweise dunkelgrau ist und so der Unterschied zwischen aktiven Daten uns "ausgegrauten" Zeilen zwar sichtbar, aber weniger prominent ist.