Ein Fototool entsteht – Photography Toolbox Fortschritte im Oktober 2020

Nach dem Septemberrelease und den doch recht umfassenden Änderungen, die im letzten Monat an 2 zentralen Stellen gemacht wurden, musste ich Anfang des Monats feststellen, dass sich dabei doch noch einige Fehler eingeschlichen hatten, so dass einige Funktionen noch nicht wie gewollt wieder funktioniert hatten. Fazit: Mehr testen.

Aber auch diesen Monat gab es zwei große Baustellen, doch dazu gleich. Die letzten Monate haben gezeigt, dass die Entwicklung des Tools doch recht komplex geworden ist und die Übersicht zu behalten immer schwerer wurde. Insofern habe ich seit Ende September für die Code-Verwaltung Git-Hub im Einsatz. Dort pflege ich jetzt auch alle Fehler und Verbesserungspunkte, so dass ich jederzeit sehen kann, welche Themen noch offen sind. Auch hinterlege ich mir dort Projekte für jeden Monat, in denen ich festhalte, welche Punkte ich in dem betreffenden Monat bearbeiten will bzw. schon bearbeitet habe. Ich hoffe, dass mir das bei der Organisation etwas hilft, zumindest bislang hat es schonmal gut funktioniert.

Nun aber zu den Neuigkeiten im Oktober. Die zwei größten Umstrukturierungen unter der Haube waren:

  1. Die Separierung weiterer Funktionen in separate Module. Dies betraf: GUI-Funktionen, die Inputbox, das Parameterfenster und die XMP-Generierung
  2. Überarbeitung / Optimierung des Imports

Die Separarierung der Funktionen hat dabei überraschend gut geklappt, auch wenn es ein bisschen wie eine Operation am offenen Herzen war. Aber diese Änderungen führen zu einer besseren Kapselung von Funktionen und damit auch zu einer besseren künftigen Wartbarkeit.

Die Überarbeitung des Imports war dagegen komplizierter. Dies jedoch nicht wegen der Optimierung, sondern aufgrund der Tatsache, dass ich bei genauerer Analyse festgestellt hatte, dass einige Funktionen unter bestimmten Konstellationen nicht funktionieren, bzw. nicht zu Ende gedacht waren. Ich hatte ja schon bei der ersten Entwicklung festgestellt, dass der Import (neben dem Umbenennen/Verschieben von Fotos) so ziemlich das Komplizierteste ist, was ich in dem Tool umsetzen will. Insofern ging viel Zeit in diese Funktion und auch unzählige Testläufe, bis ich sie a) stabil und b) möglichst fehlerfrei hatte. Das gleiche muss auch noch bei der Umbenennen-Funktion erfolgen, aber das steht für kommenden Monat auf dem Plan.

Neben diesen beiden großen Punkten gab es aber auch ein paar Verbesserungen im Detail:

  • Einige Optionen des Top-Expanders wurden in den Settings-Tab verschoben, so dass Einstellungen des User dauerhaft erhalten bleiben und nicht nur für die laufende Session
  • Die Spracheinstellungen wurden jetzt aufgeteilt in GUI, CloudVision, GeoLocation und Exiftool. Die Einstellung GUI ist jedoch zunächst noch inaktiv bis zu einer Umsetzung der Lokalisierung
  • In den durchsuchbaren/filterbaren Exifdaten sind nun auf die Stichworthierarchien enthalten
  • Geolocation-Daten (Land, Bundesland, Stadt) können nun optional auch in die Stichwörter gespeichert werden (auch als Hierarchie)
  • Cloud Vision fragt nun immer alle Ergebnisse ab. Eine Einschränkung auf die Anzahl wurde entfernt. Die Einschränkung auf die Konfidenz ist nun nur noch ein Filter . Damit ist keine neue Abfrage notwendig, wenn man eine andere Konfidenz wählen möchte
  • Alle 7 Tage wird die Datenbank bereinigt und gesichert, um Datenverlust und -korruption zu vermeiden
  • Die Warteschlange zur Abarbeitung von Transaktionen im Tool enthält nun auch Zeitdaten zum Start und Ende. Damit sind bessere Analysen möglich
  • Einstellung zur Hinterlegung von Dateitypen, welche keine xmp-Sidecar-Dateien erhalten sollen
  • Vorbereitung einer Sortierfunktion für die Bilderliste
  • Anzeige eines Histogramms
  • Die Einstellungen zum Umgang mit XMP-Dateien wurden in das Settings-Modul verschoben
  • Es gibt jetzt Standardordner, welche in den Einstellungen hinterlegt werden können und welche bei der Auswahl eines Ordners beim Import, im Browsermodul oder bei der Auswahl eines GPS-Dateiordners zuerst angezeigt werden
  • Performanceverbesserungen beim Filtern von Daten, der Anzeige von Bildern, sowie dem Verschieben und Löschen von Bildern
  • Performanceverbesserungen bei Rückgängigmachen von Transaktionen
  • Performanceverbesserungen beim Selektieren von und Navigieren zwischen Bildern, sowie beim Setzen von Ratings
  • Anzeige von Ratings, Labels auch direkt an den selektierten Fotos, sowie von weiteren Daten als Tooltip. In der Folge wurde allerdings die Anzeige der selektierten Fotos auf 25 gleichzeitig beschränkt, um die Performance bei der Aktualisierung dieser Daten akzeptabel zu halten.
  • Einbau eines Debug-Mode, der mehr Informationen während des Programmverlaufes ausgibt und damit ein guter Ansatzpunkt zur Fehleranalyse und Performanceoptimierung ist

Ansonsten wurden auch einige Fehler bereinigt, u.a.:

  • Sofern beim Import Metadaten in XMP-Dateien geschrieben werden sollen, wurde bislang bei Dateien ohne XMP-Dateien (z.B. DNG, JPG) keine Modifikationen erfolgen. Dies wurde korrigiert, so dass nun in den Fällen die Originaldatei modifiziert wird
  • Entscheidung bei Metadatenänderungen, ob XMP oder nicht verwendet wird war nicht immer korrekt. Ebenso war die Umsetzung hinsichtlich Performance nicht ok
  • Die Zeitverschiebung beim Import hat nicht funktioniert
  • Metadatentemplates im Browser können nun auch gelöscht werden
  • Bei Import, Umbenennung und DNG-Konverter wird nun vor Start eine Mindestprüfung auf Validität der Parameter vorgenommen
  • Anzeige des Zeitbereichs der Fotos im GPS-Bereich funktionierte nicht (immer)
  • Filter der Dateiliste im Import-Modul war noch nicht implementiert. Funktioniert nun.
  • Der Start von Cloud Vision brach ab, da Boolean-Parameter statt Integer übergeben wurden.
  • Wurde ein leeres Stichwort in der Stichwortliste gelöscht, wurde die gesamte Liste gelöscht
  • Durch mehrfaches Klicken konnte es dazu kommen, dass der Prozess zur Generierung von Vorschauen mehrfach angestartet werden kann. Dies führte zu unnötiger Prozesslast
  • Scrollbar im Settings-Tab ergänzt
  • Autonummerierung hatte nur bedingt funktioniert beim Import
  • Das Verschieben von Dateien im Rename-Modus hat nicht funktioniert
  • Initiale Ordner für Vorschauen und Exiftool hatten Probleme wg relativen Pfaden
  • In seltenen Fällen konnte es vorkommen, dass 2 Operationen auf eine Datei zugegriffen haben. Dies konnte im Extremfall dazu führen, dass die Datei im Anschluss nicht mehr vorhanden war. Dies wurde behoben, in dem die Aktionen nun strikt sequentiell abgearbeitet werden. Ergebnisse und Fehler werden nun auch in der Datenbank protokolliert und im Falle von Fehlern der User direkt informiert.

Daneben habe ich aber auch wieder einiges dazu gelernt, u.a. über Klassen in Powershell, wie ich mit ImageMagick ein Histogramm exportiere und wie ich Elemente in der GUI verschieben kann. Diese neuen Erkenntnisse haben neue Möglichkeiten und Ideen hervorgebracht, die in den kommenden Monaten dann auch ihren Weg ins Tool finden werden.

Mitte Oktober war ich zudem eine Woche auf Fotoreise mit Frank Fischer von der FF-Fotoschule in der Toskana, so dass ich auch wieder neues Bildmaterial mitgebracht habe, welches ich mit dem Tool wieder sortiere und verschlagworte, so dass ich auch hier wieder ein paar Tests durchführen konnte, die weitere Fehler/Verbesserungspotentiale hervorgebracht hatten sowie an manchen Stellen gezeigt haben, dass die Performance noch nicht so war, wie gewünscht. Viele dieser Punkte konnten dann in der Testphase in der 2. Monats noch behoben wurden. Gerade im Bereich der Performance ist es ein stetiger Kamp und oft kämpfe ich hier um wenige Millisekunden, denn in der Anwendung fühlt sich selbst eine halbe Sekunde wie eine Ewigkeit an.

In Summe waren die Punkte in diesem Monat zwar nicht spektakulär, aber zahlreich (über 60 Punkte wurden abgearbeitet) und ein wichtiger Schritt, denn die Verbesserungen machen sich im Detail wirklich bemerkbar und die Optimierungen haben die Komplexität im Tool um einiges verringert. Daneben haben viele Tests geholfen, zu prüfen, dass deutlich weniger Fehler auftreten. So waren die letzten 10 Tage im Oktober fast nur noch dem Testing gewidmet, um sicherzustellen, dass die neuen und alten Funktionen so funktionieren wie sie sollen. Damit ist hoffentlich vermieden, dass das jetzige Alpha-Release so fehlerhaft ist, wie es das letzte leider war. Mein Ziel ist es, auf diesem Pfad der Entwicklung noch ein November-Alpharelease zu veröffentlichen und Ende Dezember dann in die Betaphase zu gehen, denn so langsam denke ich, kommt die Reife des Tools in diese Richtung und ich brauche ein wenig die Rückmeldung von anderen Nutzern, um noch Fehler zu finden oder Verbesserungspotentiale zu identifizieren.

Für die Statistik:

  • es wurden 24 Verbesserungen umgesetzt und dokumentiert
  • es wurden 30 Bugs beseitigt
  • noch offen sind 8 bekannte Bugs
  • noch in der Pipeline sind 35 Verbesserungen

Die aktuelle Alpha-Version findet ihr übrigens hier.