Archive for the ‘Neue Programmversion’ Category

Dreifaches Jubiläum

Dienstag, Juli 19th, 2011

Dieses mal freue ich mich ganz besonders darauf, eine neue Programmversion der Bildverwaltung anzukündigen. Denn ich habe, fast auf den Tag genau, nach nun einem Jahr „BVA goes Datenbank„, ein für mich ganz wichtiges Ziel erreicht. Die Bilddatenbank ist nun in der Lage, bereits beim Archivieren von neuen Fotos, diese zu Fotoalben zuzuordnen. Außerdem ist es auch noch die 25. Programmversion, die ich soeben veröffentlicht habe.

Die, für die automatischen Zuordnungen, genutzten Metadaten wurden ja bereits in älteren Blogs ausführlich beschrieben. Auch der Ablauf der Zuordnungen über den Entscheidungsbaum wurde erläutert. Im letzten Schritt wurde in der neuen Version die Suche im Entscheidungsbaum programmiert und natürlich ebenso die Speicherung der gefundenen Verknüpfungen.

Screenshot der Version 2.0.0.25 der Bilddatenbank BVASystem

Screenshot der Version 2.0.0.25 der Bilddatenbank BVASystem

Ich muss aber ehrlich zugeben, das noch immer eine Menge Details nicht funktionieren. Wichtig ist es mir, darauf hinzuweisen, das zur Zeit Änderungen an den Metadatendefinitionen erst nach einem erneutem Start des Programmes aktiv sind. Änderungen am Entscheidungsbaum werden vorerst nur durch den Initialisierungs-Workertask vorgenommen. Diesen Umstand werde ich in einer der nächsten Versionen auf jeden Fall korrigieren.

Apropos korrigieren. Vor bereits relativ langer Zeit wurden mir Unstimmigkeiten im Programm gemeldet, die die Steuerung per Tastatur betrafen. Diese Unstimmigkeiten waren mir allerdings bisher nicht so wichtig. Da ich das Programm mittlerweile fast täglich benutze, stören mich solche „Kleinigkeiten“ immer mehr. Also bin ich der Sache nun nachgegangen, damit das Programm in sich stimmiger wird.

Tastatursteuerungen erfolgen nun nicht mehr global, sondern sie werden von der Komponente gesteuert, die gerade den Focus besitzt. Wo sich der Focus gerade befindet, kann durch den gestrichelten Rahmen am Rand festgestellt werden. Je nachdem, welche Komponente den Focus bestitzt, stehen unterschiedliche Funktionen zur Verfügung. In den Baumansichten kann per Pfeiltaste hoch bzw. runter navigiert werden. Mit der Pfeiltaste nach rechts der aktuelle Knoten im Baum geöffnet und mit der Pfeiltaste nach links wieder geschlossen werden. Besitzt der Filmstreifen den Focus, kann mit den Pfeiltasten nach links bzw. nach rechts in der Liste navigiert werden. Das gleiche ist auch in der Miniaturbilderansicht möglich.

Als Ausblick auf die nächste Programmversion der Bildverwaltung kann ich den Hinweis geben, das ich die nächsten 14 Tage damit verbringen werde, ein Modul zu entwickeln, mit dem ich die EXIF Informationen eines Bildes auslesen kann. Im Speziellen geht es darum, das das korrekte Aufnahmedatum des Bildes ausgelesen werden kann. Es ist toll, das ich Fotoalben-Zuordnungen aufgrund des Aufnahmedatums vornehmen kann. Es ist allerdings weniger toll, wenn ich dafür das Dateiänderungsdatum nutze, da sich dieses vom wirklichen Aufnahmedatum unterscheiden kann.

 

Der Metadaten Entscheidungsbaum

Montag, Juli 4th, 2011

In der Zwischenzeit sind die angekündigten 2 Wochen fast um, aber ich hatte die letzten 2 Wochen auch noch alle Hände voll zu tun. Da langsam aber sicher die Anzahl der Downloads des BVASystems steigen, war es für mich plötzlich ziemlich wichtig, die Installationsanleitung für das Programm fertig zu schreiben. Ich hoffe, das dadurch die technische Hürde, die vor dem Benutzen des Programmes steht, gesenkt werden konnte.

Trotzdem ist die Version 2.0.0.24 nun fertig und kann an alt bekannter Stelle heruntergeladen werden. Neben einigen kleineren Bugfixes steckt dieses mal der größte Teil der Arbeit in dem Workertask zur Initialisierung eines Entscheidungsbaumes, der für die Zuordnungen zwischen Bild und Fotoalbum genutzt werden soll.

Direkt nachdem die Verbindung zur Datenbank hergestellt wurde, wird der Initialisierungstask angeworfen. Spätestens nach einigen Sekunden ist der Task abgearbeitet und es kann wie gewohnt mit der Datenbank gearbeitet werden. Die erfolgreiche Beendigung des Tasks kann über den Statusdialog des Workers bei Bedarf kontrolliert werden.

Aufbau des Entscheidungsbaumes

Der Entscheidungsbaum, wie er beim BVASystem zum Einsatz kommt, besitzt eine feste Struktur. Als erstes Entscheidungskriterium wird das Metadatenelement „Besitzer des Bildes“ gewählt. Als Unterknoten der dadurch entstehenden Knoten wird das Metadatenelement „Aufnahmedatum“ eingefügt. Damit der Baum nicht zu sehr in die Breite wächst, habe ich das Aufnahmedatum dreistufig zerlegt. Die erste Einteilung wird grob über das Aufnahmejahr vorgenommen, die zweite Einteilung wird durch das Aufnahmedatum definiert und erst in der dritten Ebene wird das komplette Aufnahmedatum genutzt. Den genauen Aufbau des Baumes habe ich versucht durch folgendes Bild darzustellen:

Metadaten Entscheidungsbaum des BVASystems

Metadaten Entscheidungsbaum des BVASystems

Sonderfälle

Auf dem Bild sieht man deutlich einige Sonderfälle, die dadurch entstehen, das der Anwender bei den Metadatendefinitionen nicht eingeschränkt ist.

Wenn der Anwender zum Beispiel kein Metdatenelement „Besitzer des Bildes“ hinzufügt, dann kann bereits die erste Ebene des Baumes nicht entschieden werden. Damit trotzdem mit dem Baum gearbeitet werden kann, wird in diesem Fall ein Knoten mit der Information: „Der Bildbesitzer ist nicht relevant“ angelegt. Die vorhandenen Aufnahmedatum Metadatenelemente werden dann als Unterknoten dieses Knotens angelegt. Im Bild ist dies bei der Metadatendefinition für Fotoalbum 2 der Fall.

Ein weiterer Sonderfall tritt ein, wenn ein Metadatenelement doppelt definiert wurde. Grundsätzlich bedeutet es ja, wenn mehrere Metadatenelemente definiert wurden, das alle erfüllt sein müssen. Es macht aber keinen Sinn, wenn man beispielsweise definiert: Besitzer des Bildes ist Max und Besitzer des Bildes ist Paul. Denn diese Bedingungen werden niemals erfüllt werden können, denn der Besitzer des Bildes ist immer derjenige, der das Bild in die Datenbank eingestellt hat. Also immer eine Person. Daher werden mehrfach vorhandene Metadatenelemente immer als „oder“  interpretiert. Im oben genanten Beispiel wäre die Bedingung erfüllt, wenn der Besitzer des Bildes Max oder Pault ist. Im Bild ist dieser Sonderfall bei Fotoalbum 3 zu sehen.

Ausblick

So langsam aber sicher befindet sich das BVASystem auf der Zielgeraden. In der nächsten Version wird dann endlich der Entscheidungsbaum genutzt um die Zuordnungen zwischen Foto und Fotoalbum automatisch herzustellen. Eigentlich mag man meinen, das dann wieder ein großer Meilenstein abgeschlossen ist, aber leider fehlen dann noch die ganzen Feinheiten. Die Metadatendefinitionen können nicht editiert werden, nicht gelöscht werden, es gibt keine Handhabung für falsche Zuordnungen, der Umfang der möglichen Metadatenelemente ist noch stark ausbaufähig … es bleibt also immernoch sehr sehr viel zu tun.

Metadatenverwaltung Teil 2

Sonntag, Juni 5th, 2011

Die Zeit vergeht wie im Fluge. Schon wieder sind die 2 Wochen um und somit steht wieder eine Aktualisierung der Programmversion an.

Leider muss ich diesmal gleich vorab einen unangenehmen Fehler beichten: Ich habe vergessen, bei einer neuen Datenbanktabelle das Häkchen zum automatischen Hochzählen des Index-Feldes vergessen. Daher gibt es diesmal wieder eine aktualisierte Datenbankstruktur, die erstellt werden muss. Es tut mir Leid, das schon wieder eine Aktualisierung notwendig ist.

Wie die korrigierte Datenbankstruktur vermuten lässt, habe ich die Metadatenverwaltung so erweitert, das die XML-Strukturen in der Datenbank abgespeichert werden können. Beim Erstellen eines neuen Fotoalbums können die Metadateneinstellungen vorgenommen werden. Diese werden dann automatisch mit dem Fotoalbum zusammen gespeichert. Für die Speicherung ist es notwendig, das die Metadaten einen eindeutigen Namen erhalten. Dieser Name muss im aktuellen Entwicklungsstand manuell festgelegt werden. Bereits verwendete Namen sind in der Auswahlliste des Namenfeldes eingetragen. Ein Editieren der gespeicherten Metadaten ist aktuell noch nicht möglich.

Neues Fotoalbum anlegen mit eingetragenen Metadaten

Neues Fotoalbum anlegen mit eingetragenen Metadaten

Die zweite riesige Änderung der letzten 14 Tagen wird wohl jedem, der das Programm benutzt, sofort ins Auge stechen. Ich habe die Funktionen in den Menüs neu geordnet. Neu hinzugekommen ist, das nun auch ebenfalls auf dem Vorschaubild ein Popup-Menü geöffnet werden kann. Jetzt sollte es möglich sein, das jede Funktion in jeder der drei Ansichtsmodi verwendet werden kann. Es hatte mich gestört, das man in der Einzelbildansicht beispielsweise kein Bild in die Datenbank importieren konnte. Ich hoffe, das die neue Anordnung klarer strukturiert ist und keine logischen Unstimmigkeiten mehr aufweist.

Ich schätze, das ich noch 2 weitere Versionen benötigen werde, um eine allererste durchgängig funktionierende Metadatenverwaltung am Start zu haben. In den nächsten 14 Tagen will ich mich damit beschäftigen, eine Worker-Aufgabe zu implementieren, die mir die gespeicherten Metadaten in einer sinnvollen Datenstruktur ablegt. Diese Datenstruktur will ich dann in der übernächsten Version nutzen, um direkt beim Import Zuordnungen zu Fotoalben zu erstellen.

Was sind Metadaten?

Dienstag, Mai 17th, 2011

An der einen oder anderen Stelle hier im Blog habe ich bereits den Begriff  Metadaten verwendet. So richtig erklärt habe ich ihn allerdings noch nicht. Da die Metadaten mit der heute veröffentlichten neuen Programmversion langsam den Weg ins Programm finden, ist es ein guter Zeitpunkt, die Erklärung  jetzt nachzureichen.

Vorweg allerdings noch der Hinweis, das mit der neuen Version eine klitzekleine Datenbankänderung vorgenommen wurde. Es ist also wieder notwendig, die Datenbankstruktur zu aktualisieren. Die neue, dafür notwendige Workbench-Projektdatei befindet sich wieder im Unterverzeichnis „db“ des Programmverzeichnisses.

Was sind also nun die ominösen Metadaten?

Normalerweise ist es bei Bildverwaltungen so, das der Anwender nachdem er Bilder in der Datenbank importiert hat, diesen Bildern Fotoalben und/oder Schlagworte zuordnen kann. Die Zuordnung erfolgt manuell durch den Anwender und erfordert viel Zeit und Ausdauer. Das BVASystem möchte genau den umgekehrten Weg gehen. Nachdem ein Fotoalbum oder Schlagwort erstellt wurde, soll der Anwender eine Reihe von Kritieren festlegen können, die beschreiben, wann ein Bild zu dem Album bzw. Schlagwort gehört. Diese Kritieren, die unterschiedlicher Struktur sein können, bezeichne ich als Metadaten.

Die festgelegten Metadaten sollen vom Programm beim Bildimport dazu dienen, das die Bilder gleich automatisch den entsprechenden Fotoalben bzw. Schlagworten zugeordnet werden. Dadurch möchte ich erreichen, das der Anwender viel Arbeit spart. Es ist nicht mehr notwendig, für jedes Bild festzulegen wohin es gehört. Schlussendlich soll der Anwender beim Betrachten seiner Bilder nur noch, eventuell vorhandene, falsche Zuordnungen korrigieren.

Im einfachsten Fall nutzt man für ein Fotoalbum nur die Metainformation des Aufnahmedatums aus. Tante Trudes Geburtstag war halt am 16. Mai 2011. Alle Bilder, die nicht am 16. Mai aufgenommen worden sind, können also nicht von Tante Trudes Geburtstag stammen. Im Umkehrschluss sind also alle Bilder, die am 16. Mai aufgenommen wurden, von Tante Trudes Geburtstag.

Kompliziertere Zuordnungen sind natürlich denkbar. Alle Fotos die im Umkreis von 52° 31′ N, 13° 24′ O aufgenommen wurden, sind in Berlin gemacht. Alle Bilder, auf denen sich ein Gesicht befindet, sind Portraits. Alle Bilder, auf denen sich eine Horizont-Linie finden lässt, sind Landschaftsbilder. Alle Bilder, die nachts aufgenommen wurden und deren vorherrschende Farbe schwarz ist, sind Nachtaufnahmen. Generell sind der Phantasie hier keine Grenzen gesetzt.

Was ist davon bisher umgesetzt?

Mit dem Dialog zum Erstellen eines Fotoalbums war ich bisher ja nicht richtig zufrieden. Daher hat dieser Dialog nun eine komplett neue Oberfläche erhalten. In der neuen Oberfläche kann nun ausgewählt werden, welche Metadaten zu dem Fotoalbum gehören. Umgesetzt habe ich 2 Metadatentypen (Aufnahmedatum und Bildbesitzer), die in beliebiger Anzahl ausgewählt werden können. In der linken unteren Ecke des Dialoges gibt es eine Testfunktion, die die Metadaten in einem XML-Format abspeichert. In der Datenbank werden die Metadaten noch nicht abgelegt.

Eine Metadatendatei könnte wie folgt aussehen:

<?xml version="1.0" encoding="ISO-8859-1"?>
<metadata>
 <name>Album_Mosel_2011</name>
 <elemente>
  <element typ="0">
   <mindate>10.05.2011</mindate>
   <maxdate>20.05.2011</maxdate>
  </element>
  <element typ="1">
   <owner>Marc</owner>
  </element>
 </elemente>
</metadata>

In der nächsten Programmversion werde ich mich darum kümmern, das das Hauptmenü und die PopUp – Menüs wieder klarer strukturiert sind. Durch die Einführung der 3 Ansichtmodi ist die klare Struktur leider verloren gegangen, so das eine Anpassung notwendig wird.

Außerdem werde ich mich natürlich darum kümmern, die Metadatenfunktionalität weiter auszubauen. Bei dem Metadatentyp Bildbesitzer muss die Auswahlliste der möglichen Bildbesitzer gefüllt werden. Die Metadaten müssen natürlich in der Datenbank gespeichert werden. Eine Auswahlliste der verfügbaren Metadatendefinitionen muss ebenfalls gefüllt werden. Beim Editieren müssen die Metadatendefinitionen wieder geladen werden …. usw. Es gibt noch viel zu tun bis die Metadaten richtig genutzt werden können. Ich hoffe, das sich der Aufwand trotzdem lohnen wird.

Bugfixes Teil 2

Donnerstag, Mai 5th, 2011

Nach der letzten Bugfix-Version steht heute nun die nächste Version an, wo ich aber eigentlich ehrlich zugeben muss, das sie im strengen Sinne keine reine Bugfix-Version ist.

Bei der Einführung des Workers habe ich mir gedacht, das es sinnvoll ist, wenn der Anwender über den Status des Workers informiert wird. Welche Aufgaben stehen im Worker? Welche Aufgaben hat der Worker ausgeführt? Bei welchen Aufgaben im Worker ist ein Fehler aufgetreten?

Um die Fragen zu beantworten, hatte ich schon damals einen Dialog in das Programm integriert, der mit einem Klick auf die „Ampel“ des Workers geöffnet werden kann. Bis zum heutigen Tag war dieser Dialog allerdings leer. Von daher kann es entfernt vielleicht doch als Bugfix bezeichnt werden, wenn dieser Dialog nun nicht mehr leer ist.

Wenn der Statusdialog des Workers geöffnet wird, so wird als erstes der Worker pausiert. Solange der Dialog angezeigt wird, werden also keinerlei Aufgaben erledigt. Wenn der Dialog geschlossen wird, nimmt der Worker seine Arbeit wieder auf. Der Dialog selber unterteilt sich in 2 Bereiche. In dem ersten Bereich sieht man, welche Aufgaben noch im Worker aktiv sind, während im zweiten Bereich angezeigt wird, welche Aufgaben bereits abgeschlossen wurden.

Statusdialog des Workers

Statusdialog des Workers

Weiterhin neu ist auch der Info-Dialog, in dem abgelesen werden kann, welche Version gerade verwendet wird. Außerdem steht dort ein Verweis auf diese Seite. Neben den Neuerungen habe ich, wie es der Name dieses Artikel bereits vermuten lässt, einige Bugs beseitigt. Wie immer kann die genaue Liste der abgearbeiteten Punkte im Bugtracker analysiert werden.

Als kleine Vorschau auf die nächste Version gibt es zu sagen, das ein klitzekleines Datenbankupdate erfolgen wird. Damit werde ich dann in der Lage sein, die Fotoalben weiter zu erweitern. Außerdem möchte ich, sofern ich es zeitlich noch schaffe, die Funktionen in den Popup-Menüs leicht anders anordnen, da sie nach der Einführung der 3 Ansichtsmodi nicht mehr so klar getrennt sind wie zuvor.

Der Rohbau der Fotoalben steht

Dienstag, März 15th, 2011

Vergleicht man die Softwareentwicklung mit einem Hausbau, so kann ich sagen, dass mit der neuen Programmversion das Zimmer für Fotoalben im Rohbau fertig ist. Generell sind alle Funktionen, die ich geplant hatte, umgesetzt. Es fehlt aber hier und da noch die Tapete, damit das Zimmer wohnlich wird. Um zeigen zu können, was fertig ist und was nicht, möchte ich kurz das Fotoalbum-Konzept vorstellen.

Beim Import eines Bildes in die Datenbank, wird es automatisch an der jeweiligen Stelle im Aufnahmedatumbaum abgelegt. Dadurch kann man recht schön auf Bilder zugreifen, von denen man noch ungefähr in Erinnerung hat, wann sie entstanden sind. Aber wenn man auf der Suche nach einer Bilderserie ist, die man zeitlich nicht mehr so recht zuordnen kann, dann sucht man die berühmte Nadel im Heuhaufen.

Mit den Fotoalben soll die Möglichkeit für eine zweite Ansicht auf den Datenbestand geschaffen werden. Bilder, die während eines Urlaubs gemacht wurden, können zum Beispiel im Fotoalbum „Nordseeurlaub 2011“ abgelegt werden. Damit die Fotoalben übersichtlicher werden, können sie hierarchisch aufgebaut werden. Für das Urlaubsbeispiel heißt dies: Es wird das Fotoalbum „Urlaub“ angelegt und als Unteralbum das Fotoalbum „Nordseeurlaub 2011“. Dort kann dann wiederum ein Unteralbum für jeden Ausflug angelegt werden. In der Art und Weise, wie der Anwender seine Fotoalben anordnet, macht das Programm keinerlei Vorgaben. Wer im Extremfall die  Fotoalben nicht benötigt, benutzt sie einfach nicht.

Um mit den Fotoalben arbeiten zu können, sind mehrere Funktionen notwendig: Es müssen Fotoalben angelegt, umgeändert und gegebenenfalls auch gelöscht werden können. Weiterhin ist es notwendig, das Fotos mit Fotoalben verknüpft werden können. Das Konzept sieht hier vor, das ein Foto auch zu mehreren Fotoalben gehören kann. Und zu guter letzt müssen die Fotos, die einem Album zugeorndet wurden, auch angezeigt werden.

Alle diese Funktionen sind in der neuen Programmversion 2.0.0.18 umgesetzt. Allerdings fehlen noch einige Feinheiten. So ist es zum Beispiel nicht möglich, das übergeordnete Album eines Albums zu verändern. Aktuell wird das übergeordnete Album noch nicht einmal angezeigt. An der einen oder anderen Stelle wird es sicherlich noch Änderungen an der Oberfläche geben, da die jetzige noch nicht perfekt ist.

Eine weitere Idee von mir ist, das alle Bilder, die keinem Fotoalbum zugeordnet wurden, in eine Art „virtuellen Schuhkarton“ geworfen werden, damit man als Anwender leichter sehen kann, welche Bilder noch nicht sortiert worden sind. Eine ganz große Idee, die das Sortieren erleichtern wird, wartet ebenfalls noch auf ihre Umsetzung. Dazu aber erst mehr, wenn ich sie umsetzen werden.

Screenshot der Bilddatenbank BVASystem 2.0.0.18

Screenshot der Bilddatenbank BVASystem 2.0.0.18

Für die nächsten Wochen habe ich mir vorgenommen, die Feinheiten der Fotoalben links liegen zu lassen, um stattdessen den Rohbau für ein weiteres Zimmer erstellen zu können. Beim Benutzen des Programmes ist mir aufgefallen, das die waagerechte Anordnung der Thumbnails nur bedingt geeignet ist, wenn man auf der Suche nach einem bestimmten Bild in der Liste ist. Daher möchte ich eine zweite Ansicht schaffen, in der es kein großes Vorschaubild gibt und der Platz stattdessen für eine Matrix auf Thumbnails genutzt werden kann.

Fotoalben

Sonntag, Februar 20th, 2011

Heute bin ich ziemlich stolz auf mich. In nur 11 Tagen habe ich es diesmal geschafft, den mir selbst gesteckten Plan für die Version 2.0.0.17 abzuarbeiten und das, obwohl ich während der Entwicklung noch auf das eine oder andere kleine Problemchen gestoßen bin.

Größte Neuerung ist natürlich die, für die angekündigten Fotoalben, angepasste Datenbankstruktur. Es ist also mal wieder notwendig, die Datenbankstruktur zu aktualisieren. Die dafür notwendige Workbench-Projektdatei befindet sich, wie immer nach der Installation, im Unterverzeichnis db des Programmverzeichnisses. Ich hoffe, das ich beim Erstellen der Struktur alles bedacht habe und damit in den nächsten Monaten so auskommen werde.

Nachdem die Datenbankstruktur angepasst wurde, können in der ersten Entwicklungsstufe der Fotoalben, mit dem Testbutton in der Menüleiste, Alben angelegt werden. Die angelegten Fotoalben werden anschließend dann im Baum auf der linken Seite angezeigt.

Fotoalben im Rubrikenbaum

Fotoalben im Rubrikenbaum

Nicht wirklich spektalutär, aber ich bin dabei auf ein größeres Problem gestoßen. Ich habe mich ja dazu entschieden, alle Änderungsoperationen über den Worker abzuarbeiten. Wenn nun aber gerade ein Bildimport läuft, dann wird zum Beispiel das neue Fotoalbum erst nach dem Abschluss des Bildimports erstellt.

Da man bei anderen Programmen auch nicht während eines Bildimports andere Sachen tun kann, habe ich mich entschlossen an dem Worker Konzept festzuhalten. Schließlich ist es eine Verbesserung, wenn man sich während des Importes weiter in der Datenbank umsehen kann. Außerdem habe ich aus dem Problem 2 Lehren gezogen: 1. Es muss dem Anwender bei jeder Datenänderung immer ersichtlich sein, das die Änderungen nicht sofort ausgeführt werden. 2. Wenn eine Datenänderung eine Aktualisierung der Oberfläche bewirkt, so darf die Aktualisierung erst nach dem Abschluss der Workeraufgabe erfolgen. Erfolgt die Aktualisierung gleich nach der Erstellung der Workeraufgabe, so kann es dazu kommen, das unglültige Einträge im Baum oder in der Bildliste entstehen.

Um die beiden Punkte nicht auf die lange Bank zu schieben, habe ich sie sofort bei den bestehenden Workeraufgaben korrigiert. Gerade beim Löschen von Bildern musste ich einige Inkonsistenzen verbessern. Ich hoffe, das ich keine Stelle übersehen habe. Falls doch, werde ich sie in einer der nächsten Versionen korrigieren.

Als kleinen Ausblick auf die nächste Version möchte ich auf darauf hinweisen, das ich vorhabe, eine Möglichkeit zu schaffen, mit der Bilder zu Fotoalben zugeordnet werden können. Außerdem habe ich mir vorgenommen, das ein Dialog entsteht, in dem alle Parameter eines Fotoalbums eingestellt werden können. Damit kann der Testknopf aus dem Hauptmenü wieder verschwinden.

Konsequenz muss sein

Mittwoch, Februar 9th, 2011

Der erste Monat des Jahres ist schon wieder um und es ist wieder einmal Zeit, eine neue Programmversion zu veröffentlichen. In den letzten Wochen habe ich 2 größere Baustellen bearbeitet.

Bisher war es inkonsequent, das eine einzige Bearbeitungsfunktion, das Erstellen von einem Fotoindex, nicht über den Worker ausgeführt wurde. Außerdem hatte die alte Funktion einen richtig fiesen Fehler. Wenn nämlich nicht alle Thumbnails der Bildliste fertig geladen gewesen sind, als der Index erstellt werden sollte, so gab es auf dem Fotoindex lauter leere Kästchen. Es lag also nahe, die Funktion so umzubauen, das sie nun auch über den Worker ausgeführt wird. Und da ich da schon einmal bei gewesen bin, habe ich der Fotoindex-Funktion auch gleich einen hübschen Einstellungsdialog spendiert.

Einstellungsdialog für den Fotoindex

Einstellungsdialog für den Fotoindex

Die zweite Baustelle war das Löschen von Bildern aus der Datenbank. Bisher war es so, das nach dem Löschen unter Umständen leere Einträge im Aufnahmedatumbaum stehen geblieben sind. Jetzt werden diese Einträge gelöscht. Aufwendig war dieser Punkt, da die vom Worker gelöschten Rubriken auch in der Oberfläche gelöscht werden mussten.

Mit der nächsten Version wird es wieder eine Datenbankstrukturänderung geben. Ich werde nämlich damit beginnen, eine Fotoalbumfunktion in das Programm zu integrieren. Es soll die Möglichkeit geschaffen werden, das der Anwender Fotoalben in der Datenbank anlegen kann. Jedes Album soll wiederrum Unteralben enthalten dürfen. Die in der Datenbank importierten Bilder sollen einem oder mehreren Alben zugewiesen werden können. Ziel ist es, das eine strukturierte Ansicht entsteht, in der man einfacher navigieren kann als im Aufnahmedatumbaum. Es ist beispielsweise einfacher, die Rubrik „Geburtstagsfeiern“ und die Unterrubrik „Tante Trude 2008“ auszuwählen, als die Geburtstagsbilder von Tante Trude im Aufnahmedatumbaum zu finden.

Ich schätze, das die Fotoalbumfunktionen für eine einzelne Version zu umfangreich sein wird. Daher steht nicht nur die nächste, sondern mindestens die nächsten 3 Versionen im Zeichen der Fotoalben.

Der Logindialog

Freitag, Januar 21st, 2011

Die 14 Tage sind nun schon wieder um und es ist an der Zeit, das BVASystem zu aktualisieren. Die meiste Zeit der letzten 14 Tage habe ich damit verbracht, das Herstellen der Datenbankverbindung zu überarbeiten. Bisher war es so, das alle nötigen Verbindungsparameter in der Ini-Datei eingegeben werden mussten. Außerdem war es nicht möglich, eine einmal hergestellte Datenbankverbindung zu trennen und beim erneuten Verbindungsversuch stürzte das Programm einfach ab.

Dies ist nun alles anders. Die 4 Parameter Serveradresse, Datenbank, Nutzer und Passwort müssen nun nicht mehr zwingend in der Ini-Datei stehen. Beim Herstellen der Datenbankverbindung wird nun ein Login-Dialog angezeigt. Dort sind die Datenfelder mit den Daten aus der Ini-Datei vorbelegt. Fehlende Daten können vom Nutzer nachgetragen werden. Auch das Trennen der Datenbankverbindung ist nun möglich und anschließend kann auch eine neue Datenbankverbindung hergestellt werden.

Logindialog der Bilddatenbank

Logindialog der Bilddatenbank

Außerdem habe ich noch einige kleinere neue Features in das Programm integriert. Zum Beispiel können die Bildlisten nun nach Name sortiert werden. Die genaue Änderungsliste findet ihr hier: Änderungsliste

Die 14 dreht sich

Freitag, Januar 7th, 2011

Das neue Jahr ist noch keine Woche alt und schon gibt es das erste Update für das BVASystem. Die größte Änderung, die in der neuen Version auffallen dürfte, ist es, das Bilder nun in 90 Grad Schritten gedreht werden können. Für den Bildbetrachter ist dies ein ganz nettes Feature, aber so richtig interessant wird es erst, wenn die Bilder in der Datenbank sind.

Screenshot des BVASystems 2.0.0.14

Screenshot des BVASystems 2.0.0.14

Folgender Fall: Ich habe mit einer Digitalkamera ein Portrait im Hochformat aufgenommen, welches natürlich am Rechner immer um 90 Grad verdreht dargestellt wird. Importiere ich nun dieses Bild, ohne es vorher zu bearbeiten, in die Datenbank und drehe es anschließend richtig, wird automatisch eine Worker Aufgabe erstellt. Durch diese Aufgabe wird der neue Orientierungssinn des Bildes abgespeichert. Betrachte ich zu einem späteren Zeitpunkt das Bild erneut, wird es gleich richtig herum angezeigt. In der Datenbank ist das Bild aber immernoch so gespeichert, wie es aufgenommen wurde.

Die zweite große Änderung betrifft den Baum mit den Aufnahmedaten. Ich habe es nun umgesetzt, das neue Aufnahmedaten sofort nach dem Datenimport in den Baum eingetragen werden. Das nervige auf und zuklappen des Baumes zur Aktualisierung entfällt damit absofort.

Achtung: Damit das neue Program weiterhin funktioniert, ist es notwendig die Datenbank zu aktualisieren. Die alte Datenbankstruktur hat nicht mehr ausgereicht, um die beschriebenen Funktionen umzusetzen. Die aktualisierte MySQL Workbench Projektdatei befindet sich nach der Installation im Unterverzeichnis „DB“. Da ich größere Änderungen an der Datenbankstruktur vorgenommen habe, empfehle ich die Datenbank per „Forward Engineer..“ zu aktualisieren. Damit gehen zwar die bestehenden Daten verloren, aber so dürften bei der Erzeugung der Datenbankstruktur keine Fehler auftreten.

Für die nächste Version habe ich mir vorgenommen, die Funktionen zum Herstellen der Datenbankverbindung bzw. zum Trennen der Verbindung zu überarbeiten. Aktuell ist es so, das beim Trennen der Datenbankverbindung gar nichts ausgeführt wird. Beim erneuten Verbindungsversuch stürzt das Programm dann leider ab. Außerdem wäre es schön, das man mindestens das Passwort nicht fest in der Konfigurationsdatei eingeben muss. Dafür werde ich mir eine Lösung überlegen.