Archive for the ‘Neue Programmversion’ Category

Datenbankaktualisierungen mit dem Administrationstool

Dienstag, Juli 24th, 2012

Denen, die das BVASystem schon länger kennen, sollte bekannt sein, wie kompliziert es bisher war, die Datenbankstruktur zu aktualisieren. Ab heute ist alles viel einfacher, denn alle zukünftigen Datenbankupdates werden mit dem Administrationstool durchgeführt. Dazu müssen nur noch eine handvoll Parameter, wie zum Beispiel das Datenbankadministratorlogin, eingegeben werden. Der Rest läuft dann quasi nach einem einzigen Klick automatisch ab.

BVAAdmin - Datenbankstruktur aktualisieren

BVAAdmin – Datenbankstruktur aktualisieren

Damit dies möglich ist, arbeitet das Administrationstool mit einem relativ einfachen System. In der Datenbankstruktur gibt es seit einiger Zeit eine Tabelle „bva_version“, in der die jeweils vorhandene Datenbankversion gespeichert ist. Wenn der Aktualisierungsprozess angest0ßen wird, so wird als erstes in diese Tabelle geschaut. Anschließend werden nacheinander die notwendigen Aktualisierungsscripte ausgeführt. In den Scripten werden schrittweise neue Datenbanktabellen angelegt oder neue Datenfelder zu bestehenden Datenbanktabellen hinzugefügt. Bestehende Datenbankfelder, die nicht mehr benötigt werden, werden niemals gelöscht, weil damit Nutzerdaten gelöscht werden könnten. Nachdem die Aktualisierungsscripte ausgeführt wurden, wird die Datenbankversion in der Tabelle „bva_version“ aktualisiert.

Mit dem aktuellen Administrationstool kann der Ablauf noch gefahrlos getestet werden, da keinerlei Änderungen an der Datenbankstruktur vorgenommen werden. Das Updatescript für Version 2 besteht aktuell nur aus einem einzigen Dummy-Befehl. Auch das herraufsetzen der Datenbankversion ist noch deaktiviert. Mit der nächsten Version in etwa 2-3 Wochen wird allerdings das erste „scharfe“ Datenbankupdate kommen. Spätestens dann ist es ratsam, vor dem Update die bestehende Datenbank mit dem jeweiligen Tool des Datenbanksystems zu sichern.

 

Ein besonderer Tag

Mittwoch, Juli 11th, 2012

Heute ist für mich in zweierlei Hinsicht ein ganz besonderer Tag. Zum einen hab ich heute die Ehre, die dritte stabile Softwareversion der Bilddatenbank vorzustellen und zum zweiten habe ich ab heute das BVASystem auf einem zweiten PC im Einsatz. Bisher habe ich ausschließlich auf meinem Entwicklungsrechner mit einer Testdatenbank am und mit dem BVASystem gearbeitet. Dies war natürlich alles andere als optimal, da immer wieder relativ sinnlose Testdaten angelegt wurden. Von dem neuen Rechner, der extra nur für meine eigene Fotosammlung angeschafft wurde, verspreche ich mir, das die Sammlung ohne Störungen geordnet werden kann.  Außerdem hoffe ich, das fehlende Funktionen oder Fehler durch die intensivere Benutzung des Programmes früher auffallen. Nun aber zum für euch wichtigen Teil: Version 2.1.2

BVASystem 2.1.2 - Miniaturbilder

BVASystem 2.1.2 – Miniaturbilder

Welche Neuerungen gibt es am Programm?

Die meiste Zeit hab ich in den letzten Monaten an den Metadatenelementen gearbeitet. Aus dem kleinen Entscheidungsbäumchen ist nun mittlerweile ein richtiger großer Baum geworden. Folgende Metadatenelemente können  jetzt für die automatischen Zuordnungen genutzt werden:

  • Aufnahmedatum
  • Belichtungszeit
  • Blende
  • Brennweite
  • ISO-Empfindlichkeit
  • Verwendete Kamera
  • Besitzer des Bildes
  • Belichtungsbewertung
  • Mittlere Helligkeit
  • Tonwertumfang

Gerade noch mit in die neue Version haben es einige Funktionen geschafft, die ich persönlich bei der täglichen Arbeit sehr vermisst habe. Das BVASystem kann nun genutzt werden, um ausgewählte Fotos in ein anderes Verzeichnis zu kopieren bzw. zu verschieben. Außerdem können Fotos mit einem beliebigen externen Bildverarbeitungsprogramm bearbeitet werden. Auch für Fotos, die sich in der Datenbank befinden, ist dies möglich, da die ausgewählten Bilder in ein temporäres Verzeichnis exportiert werden. Beim Beenden des Programms, werden die temporären Dateien  dann wieder gelöscht.

Leider muss die Konfiguration des externen Bildverarbeitungsprogrammes noch manuell vorgenommen werden. Die „bvasystem.ini“ muss beispielsweise für eine Verknüpfung mit PaintShop Pro 9 um folgende 3 Zeilen erweitert werden:

[IMAGEEDIT]
PROGRAM=C:\Program Files (x86)\Jasc Software Inc\Paint Shop Pro 9\Paint Shop Pro 9.exe
PARAMS=::FILE::

Außerdem neu ist die Bildinformationsansicht. Dort können alle erfassten Bildinformationen eines Fotos betrachtet werden. Innerhalb der aktiven Bildliste kann ähnlich wie in der Einzelbild- oder Filmstreifenansicht navigiert werden. Der jetzige Entwicklungsstand der Bildinformationsansicht ist nicht als endgültig anzusehen. In Zukunft habe ich vor, dem Anwender dort viel mehr Freiräume zu schaffen.

Welche Änderungen stehen als nächstes an?

Aktuell ist es für mich schwierig zu entscheiden, an welcher Stelle ich das Programm als nächstes weiterentwickeln werde. Es schwirren einfach zu viele Ideen in meinem Kopf herum. Fest steht, das ich möglichst bald eine Erweiterung der Datenbankstruktur vornehmen muss. Dafür muss als erstes das Administrationstool erweitert werden, damit sie mit dem Tool durchgeführt werden können.

Die anstehende Datenbankänderung werde ich möglichst umfangreich gestalten, so das eine Reihe von neuen Funktionen umgesetzt werden können, ohne das alle paar Wochen die Datenbankstruktur geändert werden muss.  Als erstes werde ich mich dann sicher um die manuelle und automatische Bewertung von Fotos kümmern. Ziel ist es, ein zusätzliches Sortierkriterium zu schaffen, so das sich die besten Bilder immer am Anfang einer Bildliste befinden. Eine weitere Änderung wird sein, das die wichtigsten IPTC-Datenfelder in der Datenbank gespeichert werden können. Weiterhin ist geplant, das die errechneten Datenfelder (Tonwertumfang und Belichtungsbewertung) ebenfalls in der Datenbank gespeichert werden, damit sie nachträglich einsehbar sind. Zur Anzeige der neuen Datenfelder soll die Bildinformationsansicht weiter ausgebaut werden.

Metadatenelemente: Brennweite und ISO-Empfindlichkeit

Mittwoch, Juni 20th, 2012

Ein letztes mal ist es heute meine Aufgabe, euch über zwei weitere Metadatenelemente, die in der aktuellen Version der Bildverwaltung hinzugekommen sind, zu berichten. Dieses mal sind es die Elemente Brennweite und ISO-Empfindlichkeit. Wie auch beim letzten mal, handelt es sich bei beiden um einfache Elemente, für die ihr nur einen minimalen und maximalen Wert angeben müsst. Ein Zuordnung erfolgt, wenn die Brennweite bzw. die ISO-Empfindlichkeit zwischen den beiden ausgewählten Werten liegt.

Metadatenelemente Brennweite und ISO-Empfindlichkeit

Metadatenelemente Brennweite und ISO-Empfindlichkeit

Ab morgen werde ich mich den neugesteckten Zielen widmen. Das es nun für einige Zeit mehr in Richtung Hilfsmittel zum Bilder sortieren geht, habe ich ja bereits beschrieben. Ich hoffe, das ich damit recht zügig vorankomme, da ich selbst meine Urlaubsbilder sortieren muss.  Sofern es die Zeit noch zulässt, werde ich natürlich weiterhin zusätzlich kleinere Komfortfunktionen implementieren. Dieses mal war ich beispielsweise so fix, das ich gleich mehrere Komfortfunktionen umsetzen konnte.

Die schönste Neuerung liegt meiner Meinung nach in der Miniaturbilderansicht. Wenn die Miniaturbilderansicht den Eingabefocus hat, kann nun mit der Kombination aus „Shift+ Mausrad hoch/runter“ die Größe der Minitaturbilder angepasst werden. Praktisch finde ich es, weil ich nun für einen groben Überblick die Miniaturbilder verkleinern kann. Trotzdem kann ich aber weiterhin bei Bedarf die größeren Miniaturbilder nutzen.

Miniaturbilderansicht in unterschiedlichen Größen

Miniaturbilderansicht in unterschiedlichen Größen

Metadatenelemente: Blende und Belichtungszeit

Montag, Juni 11th, 2012

Mit nur einem Tag Verzug habe ich es heute geschafft, die vor dem Urlaub gesteckten Ziele zu erreichen. In der neuen Version 2.1.1.44-dev der Bilddatenbank BVASystem habe ich diesmal sogar 2 neue Metadatenelemente hinzugefügt. Allerdings muss ich auch gestehen, das es sich um relativ einfache Metadatenelemente handelt. Sowohl die Blende, als auch die Belichtungszeit werden aus dem EXIF-Header der Bilddatei bezogen. Dadurch entfallen hier diesmal auch die großen Erklärungen. Es wird einfach ein Bereich definiert, in dem die Blende bzw. die Belichtungszeit liegen muss, um eine Zuordnung zu erreichen.

Metadatenelemente Blende und Belichtungszeit

Metadatenelemente Blende und Belichtungszeit

Die einzige Schwierigkeit daran lag in der Oberflächengestaltung, denn ich wollte nicht, das ihr beispielsweise 0,000125
eingeben müsstet, wenn ihr eine Belichtungszeit von 1/8000 s gewählt haben wollt. Aber auch eine fest vorgegebene Liste wollte ich nicht implementieren, da fehlende Werte nicht ergänzt werden könnten. Daher habe ich eine weitere Konfigurationsdatei geschaffen, welche alle Listenwerte enthält. Diese Datei wird bei jedem Programmstart eingelesen und bei den Metadatenelementen benutzt. Sollte ich einige Werte nicht bedacht haben, können sie einfach nachgetragen werden. Der Syntax der neuen Konfigurationsdatei „listen.ini“ sollte, so denke ich, leicht verständlich sein.

Welche weiteren Änderungen wurden am Programm umgesetzt?

Außerdem habe ich auch diesmal wieder an der Bildinformationsansicht weitergearbeitet. Neu hinzugekommen ist die Möglichkeit, mehrere Ansichten zu speichern und zwischen ihnen zu wechseln. Außerdem werden die Ansichten in der Größe angepasst, sobald sich die Größe des Programmfensters ändert. Da ihr noch keine eigenen Ansichten anlegen könnt, habe ich 2 Demonstrationsansichten geschaffen, mit denen der Ansichtswechsel getestet werden kann.

Wie geht es weiter?

Die nächste Version der Bildverwaltung wird die letzte sein, in der ich neue Metadatenelemente hinzufüge. Neben der bereits implementierten Blende und Belichtungszeit fehlen nämlich noch die Brennweite und die ISO-Empfindlichkeit, um die wichtigsten EXIF Parameter abzudecken. Außerdem habe ich vor, einige kleinere Korrekturen an der Bildinformationsansicht durchzuführen.

Langfristig hat sich durch meinen Urlaub einiges in der Planung geändert. Meinen aktuellen Plan, dessen Umsetzung nach heutiger Schätzung bis ungefähr Mitte/ Ende August dauern wird, habe ich im Bugtracker eingepflegt. Er beinhaltet hauptsächlich eine Unterstützung bei der ersten Grob-Sortierung, die vor dem Einsatz einer Bildverwaltung durchgeführt werden sollte. In den nächsten Tagen werde ich mindestens einen weiteren Blog verfassen, der meine Ziele genauer erläutern wird.

Metadatenelement: Belichtungsbewertung

Dienstag, Mai 15th, 2012

So langsam mag es etwas langweilig klingen, aber das BVASystem hat heute wieder ein weiteres Metadatenelement erhalten. Für mich ist es allerdings gerade eine spannende Zeit: Mit jedem neuen Metadatenelement wächst die Anzahl der Kombinationen, mit der die einzelnen Elemente verknüpft werden können. Das spannende daran ist, das es aktuell noch nicht absehbar ist, welche der Kombinationen genutzt werden kann, um thematisch zusammengehörige Fotos vom Rest der Bilder zu trennen.

Aber auch diesmal muss ich das Metadatenelement ein wenig erklären, da es wieder ein Element ist, welches vom Programm errechnet wird.

Wie definiert sich die Belichtungsbewertung?

Wie auch der Tonwertumfang basiert die Belichtungsbewertung auf dem Histogramm des Fotos. Im letzen Blog habe ich versucht zu erklären, das ein perfektes Bild alle möglichen Tonwerte nutzt. Es dürfen allerdings keine Farbwerte außerhalb des möglichen Tonwertumfangs liegen. Alle Bildpunkte, die dunkler als der kleinstmögliche Tonwert sind, werden von der Kamera ebenfalls auf den kleinstmöglichen Tonwert gesetzt. Analog gilt das gleiche für Bildbereiche die heller sind, als der größtmögliche Tonwert. Im Bild äußert sich das dadurch, das größere Flächen entstehen, die komplett schwarz bzw. komplett weiß sind. Im Histogramm erkennt man ebenfalls eine Häufung beim kleinstmöglichen bzw. größtmöglichen Tonwert. Für die Belichtungsbewertung zählt das BVASystem nun die weißen bzw. die schwarzen Bildpunkte und setzt sie im Verhältnis zur Gesamtbildgröße. Je mehr Prozent der Bildfläche komplett weiß bzw. schwarz sind, desto größer ist der fehlbelichtete Bildbereich.

Wozu kann sie genutzt werden?

In erster Linie ist die Belichtungsbewertung dazu gedacht, damit fehlbelichtete Bilder erst garnicht in das jeweilige Fotoalbum eingefügt werden. Aber auch der umgekehrte Fall, das nur fehlbelichtete Bilder einem Album zugeordnet werden, erscheint mir sinnvoll, da man beispielsweise so gezielt alle fehlbelichteten Bilder betrachten kann.  So kann man schnell entscheiden, ob das Bild mit Photoshop noch zu „retten“ ist oder ob es besser gelöscht werden sollte. Natürlich kann man die Belichtungsbewertung auch nutzen, um Fotos die bewusst unter- oder überbelichtete Bildbereiche (z.B Sternenhimmel) besitzen von anderen Fotos zu trennen.

Um möglichst viele verschiedene Definitions-Möglichkeiten zu bieten, können auch nur unterbelichtete oder nur überbelichtete Bildbereiche ausgewertet werden. Gerade im Fall des Sternenhimmels wird einem wahrscheinlich nur der unterbelichtete Bildbereich interessieren. Standardmäßig sind bei der Definition des Metadatenelements Belichtungsbewertung unter- und überbelichtete Bildbereich ausgewählt.

Metadatenelement Belichtungsbewertung

Metadatenelement Belichtungsbewertung

Welche weiteren Änderungen wurden am Programm umgesetzt?

In der Bildinformationen-Ansicht hat sich auch einiges getan. Auffällig sollte sein, das sich nun nicht mehr 2 sondern 3 kleine Fensterchen auf der Ansicht befinden. Außerdem sollte auffallen, das jedes dieser 3 Fenster auch eine Funktion hat. Das erste der Fenster dient zur Navigation innerhalb der aktiven Bildliste. Das Foto-Fenster zeigt logischerweise das aktuell aktive Bild an und das Kamera-Fenster zeigt aktuell die EXIF-Daten des Bildes an, wie es auf dem Bildinformationspopup bekannt sein sollte.

Des weiteren habe ich  daran gearbeitet, das alle Funktionen zur Bildveränderung in der ImgFkt.dll ausgelagert sind. Neu ist diesmal, das die Funktion zur Umwandlung eines Bildes in ein Graustufenbild ausgelagert wurde. Scheinbar mag dies zu keiner Änderung für den Anwender führen, aber intern erhalte ich dadurch eine viel klarere Struktur. Und vielleicht ergibt sich auch einmal die Gelegenheit die Funktionsbibliotek für ein anderes Projekt zu verwenden.

Wie geht es weiter?

Weiterarbeiten werde ich nun an 2 weiteren Metadatenelementen, deren Umsetzung sich einfacher gestalten dürfte. Es geht dabei um die Blende und die Belichtungszeit, die von der Kamera in der Bilddatei abgelegt wurde. Mein Ziel ist es dabei, zu ermöglichen, Fotos, bei deren Aufnahme ähnliche Lichtbedingungen herschten, zu filtern.

Die Schwierigkeit bei der Entwicklung der beiden Metadatenelemente liegt ganz klar in der Benutzeroberfläche. Sowohl Blende als auch Belichtungszeit werden in der Bilddatei als reine Gleitkommazahl gespeichert. Angezeigt wird die Belichtungszeit aber  beispielsweise als  „1/250 sec“ und nicht als  „0,004 sec“. Ich muss also einen Weg finden, wie die Belichtungszeit für den Anwender bequem eingstellt werden kann,.

Außerdem werde ich wieder an der Bildinformationsansicht weiterarbeiten. Diesmal wird es darum gehen, das der Anwender zwischen verschiedenen Ansichten wechseln kann. Außerdem möchte ich die Funktion zur Definition eigenener Ansichten vorbereiten.

Metadatenelement: Tonwertumfang

Dienstag, Mai 1st, 2012

Aktuell fühlt es sich so an als wenn die Zeit rast, denn schon wieder ist es an der Zeit, eine weitere Entwicklerversion des BVASystems zu veröffentlichen.  Auch diesmal gibt es wieder ein ganz besonderes neues Metadatenelement, denn mit dem Tonwertumfang können Bilder nun auch erstmals bewertet werden. Bevor ich darauf aber weiter eingehe, werde ich kurz erläutern, was der Tonwertumfang überhaupt ist.

Was ist der Tonwertumfang eines Bildes?

Der Tonwertumfang eines Bildes gibt an, wieviele Farbinformationen (Tonwerte) ein Bild besitzt. Ein Graustufenbild mit einer Farbtiefe von 8bit besitzt beispielsweise 2^8 = 256 mögliche Grautöne. Werden von diesen 256 möglichen Grautönen nur die Hälfte (128) im Bild genutzt, so beträgt der Tonwertumfang 50%.

Ein ideales Bild nutzt alle möglichen Tonwerte. Generell ist es so, das je weniger Tonwerte ein Bild nutzt, desto kontrastärmer bzw. flauer wirkt es. Daraus folgt nun auch der bewertende Charakter des Tonwertumfangs. Je kleiner der Tonwertumfang eines Bildes ist, desto weiter ist das Foto von einem idealen Bild entfernt und desto „schlechter“ ist das Bild. Aber Vorsicht: Eine generelle Aussage, ob das Bild schlecht ist, ist nicht möglich, da ein reduzierter Tonwertumfang auch als gestalterisches Mittel eingesetzt werden kann.

Wie wird der Tonwertumfang innerhalb der Metadaten umgesetzt?

In der Metadatendefinition gibt man für den Tonwertumfang eine untere und obere Grenze an. Liegt der Tonwertumfang des Fotos zwischen den beiden Grenzen, so wird das Bild dem Album zugeorndet. Damit wird ein recht guter Freiheitsgrad erreicht, da sowohl gute Bilder (Beispielsweise Tonwertumfang zwischen 80% und 100%) als auch schlechte Bilder (Beispielsweise Tonwertumgang zwischen 0% und 25%) zugeordnet werden können. Wie immer lassen sich weitere Elemente mit dem Tonwertumfang kombinieren, so dass dann alle Elemente erfüllt sein müssen. Auch kann das Metadatenelement Tonwertumfang mehrfach genutzt werden, um mehrere Tonwertbereiche abzudecken.

Metadatenelement Tonwertumfang

Metadatenelement Tonwertumfang

Welche Änderungen gibt es außerdem an der Bilddatenbank?

Neben dem neuen Metadatenelement habe ich damit begonnen, einen vierten Ansichtsmodi in das Programm zu integrieren. Der neue Modus soll dazu genutzt werden, um die erfassten Informationen zu einem Bild anzuzeigen. Aktuell stört es mich schon sehr, das nicht einsehbar ist, wie groß beispielsweise der Tonwertumfang eines Fotos ist. Ein überprüfen, ob die Zuordnung zu einem Fotoalbum formal korrekt gewesen ist, ist also leider noch nicht möglich. Aktuell ist ein Stand erreicht, in dem 2 kleine Bildinformationsfenster ein- und auch wieder ausgeblendet werden können. Da noch keinerlei Informationen in diesen Fenstern stehen, ist der Nutzen des ganzen quasi noch nicht vorhanden.

Wie gehts weiter?

Heute abend werde ich daher gleich an dieser Ansicht weiterentwickeln. Ziel ist es, das zumindest ein Teil der aktuell erfassten Informationen visualisiert werden können. Sobald die Ansicht für den Anwender einen Nutzen hat, werde ich mein Konzept hinter dieser Ansicht näher erläutern. Außerdem werde ich in den nächsten Wochen wieder ein neues Metadatenelement implementieren. Auch dieses wird wieder einen bewertenden Charakter haben.

Fokus Hauptfunktionalität

Montag, April 16th, 2012

Meiner Roadmap ist seit einigen Wochen zu entnehmen, das ich mich nun, nachdem ich mich die letzten Monate viel mit Datenbanksystemen rumgeärgert habe, wieder verstärkt der Hauptfunktionalität des BVASystems, den Metadaten, widmen werde. Dies erscheint mir sinnvoll, da sich das BVASystem gerade in diesem Punkt von anderen Bildverwaltungsprogrammen unterscheidet. Geplant ist, die automatische Zuordnung von Bildern zu Fotoalben soweit auszubauen, dass auch komplexere Bedingungen definiert und genutzt werden können. Die bereits vorhandenen Elemente „Aufnahmedatum“, „Besitzer des Bildes“ und „Verwendete Kamera“ funktionieren zwar schon ganz gut, lassen aber eben nur simple Entscheidungen zu, da sie sich kaum kombinieren lassen.

Aktuell ist mein Ziel zu demonstrieren, was mit dem Metadatensystem alles erreicht werden kann. Dafür ist es natürlich am wichtigsten, weitere Metadatenelemente zu schaffen, die beliebig mit den bereits vorhandenen Elementen kombiniert werden können. Langfristig möchte ich die Metadaten noch an andere Verwaltungselemente, wie zum Beispiel die Schlagworte, binden.

Den ersten abgesteckten Entwicklungsschritt habe ich nun auch bereits erreicht. Das Metadatenelement „Mittlere Helligkeit“ ist in der Version 2.1.1.41 nun zum ersten Mal enthalten. Das Besondere dabei ist, dass der Helligkeitswert nicht aus dem Header des Fotos ausgelesen werden kann. Es handelt sich vielmehr um einen Wert, der direkt aus dem Foto errechnet wird. Das BVASystem ist damit also in der Lage, helle und dunkle Fotos zu unterscheiden.

Weiterhin habe ich das Metadatenelement „Aufnahmedatum“ verbessert, in welchem nun auch die Uhrzeit eingestellt werden kann. Bisher war es so, das man nur tageweise definieren konnte. War man beispielsweise vormittags wandern und nachmittags auf einer Familienfeier, waren die Fotos automatisch nicht voneinander trennbar. Nun können auch beliebig viele Fotoalben angelegt werden, welche alle Fotos enthalten, die an dem gleichen Tag aufgenommen wurden.

Veränderte Metadatenelemente der Version 2.1.1.41-dev

Veränderte Metadatenelemente der Version 2.1.1.41-dev

Als dritte kleine Verbesserung habe ich die Metadatenelemente in der Auswahlliste gruppiert. Damit sollte es, auch wenn es mal mehrere Dutzend Metadatenelemente werden, trotzdem übersichtlich bleiben. Die 3 nun verwendeten Gruppen lauten:

  • EXIF: Hier werden alle Elemente zusammengefasst, die auf dem EXIF-Header eines Fotos basieren
  • DB: Hier werden alle Elemente zusammengefasst, die sich direkt aus der Datenbank ableiten lassen
  • BV: Hier werden alle Elemente zusammengefasst, die mittels Bildverarbeitung direkt am Foto errechnet werden

Auch in der nächsten Version werde ich mich um die Metadaten kümmern. Ziel ist es das erste bildbewertende Metadatenelement zu schaffen. Damit soll es dann möglich sein, das nur gelungene Bilder den Weg in ein Fotoalbum finden. Außerdem werde ich damit beginnen, einen vierten Ansichtsmodi „Bildinformationen“ in das Programm zu integrieren.

4 Monate

Samstag, März 31st, 2012

Etwa 4 Monate nach der Mission accomplished habe ich es, allen störrischen Datenbanksystemen zum Trotz geschafft, heute die zweite stabile Softwareversion vom BVASystem fertigzustellen. Aufmerksame Leser des Blogs werden sicher wissen, mit was ich mich die letzten Monate beschäftigt habe. Für alle anderen fasse ich es trotzdem noch einmal kurz zusammen:

Neuerungen am Programm

Die größte Veränderung am Programm ist sicher die Unterstützung von den Datenbanksystemen MySQL, Firebird und Oracle. Bisher war es nur möglich, MySQL als Datenbanksystem zu verwenden. Die Installation war aufwendig und wahrscheinlich nicht immer leicht. Hier konnte ich definitiv eine Verbesserung erreichen, indem die notwendige Datenbankstruktur nun durch ein Administrationstool erstellt werden kann. Es sind hier weit weniger Benutzereingaben bzw. -aktionen notwendig um ans Ziel zu gelangen.

Aber auch am Hauptprogramm gab es Veränderungen. Das Modul zum Auslesen der EXIF-Bildinformationen wurde erweitert, die neu erfassten Daten werden beim Bildimport  in der Datenbank gespeichert und sie können in einem Bildinformationspopup-Fenster jederzeit angezeigt werden.

Ausblick

Ich hoffe, das ich bis zur nächsten stabilen Softwareversion wieder einen ähnlichen Zeitrahmen benötigen werde. Vorgenommen habe ich mir, das ich die Metadaten-Funktionalität verstärkt erweitere. Ich denke, das diese Funktionalität das BVASystem am stärksten von anderen Bildverwaltungssystemen unterscheidet. Darum denke ich, das die Entwicklungszeit hier gut investiert ist.

Als erstes möchte ich ein neues Metadatenelement implementieren, welches nicht auf dem EXIF-Header basiert. Dieses Metadatenelement wird die mittlere Bildhelligkeit sein. Damit wird es dann beispielsweise möglich sein, Nachtaufnahmen von Tagaufnahmen zu unterscheiden, auch wenn sie am gleichen Tag aufgenommen wurden. Mehr dazu werde ich hier berichten, sobald die neue Funktionalität in einer Entwicklerversion getestet werden kann.

Außerdem habe ich mir vorgenommen, einen vierten Anzeigemodi zu schaffen, auf dem alle Bildinformationen zusammenhängend angezeigt und später auch editiert werden können. Und auch am Administrationstool werde ich weiterarbeiten. Wichtig ist zum Beispiel die Möglichkeit zur Aktualisierung einer veralterten BVASystem Datenbankstruktur.

Störrische Datenbanksysteme

Samstag, März 17th, 2012

Eigentlich wollte ich heute hier berichten, das das BVASystem 2.1.0.39-dev nun 3 verschiedene Datenbankmanagementsysteme unterstützt. Leider gab es in den letzten Tagen eine Reihe von Problemen, so das es aktuell nur 2 Datenbanksysteme (MySQL und Firebird) sind. In der nächsten Version werde ich Oracle als drittes Datenbanksystem nachreichen.

Probleme mit Firebird

Schon zu Beginn der Arbeiten zur neuen Version des BVASystems gab es die ersten Probleme. Firebird nutzt ein komplett anderes System um eine Datenbankverbindung aufzubauen als MySQL oder Oracle. Firebird benötigt den Pfad und Dateinamen der Datenbankdatei, um eine Verbindung herzustellen. Da ich Pfad und Dateiname im Administrationstool nicht erfasst habe, war es mir nicht möglich, für alle 3 Datenbanksysteme den gleichen Einstellungsdialog zu verwenden. Also musste ich in den sauren Apfel beißen und einen weiteren Einstellungsdialog entwickeln.

Das zweite Problem war, das auch später im BVASystem immer wieder der Pfad und der Dateiname der Datenbank benötigt wird. Da ich dies absolut nicht wollte, habe ich recht lange nach einer Lösung gesucht und auch eine gefunden. Die Lösung heißt: „aliases.conf“ Im Programmverzeichnis von Firebird liegt eine aliases.conf, in der ein Alias für eine Kombination aus Pfad und Dateiname angelegt werden kann. Das BVASystem Administrationstool legt den benötigten Alias, bei der Erstellung der Datenbankstruktur, mit an. Die einzige Aufgabe, die manuell ausgeführt werden muss, ist ein Neustart des Datenbankservers. Ohne Neustart steht der neue Alias noch nicht zur Verfügung und die Datenbankverbindung schlägt fehl.

Probleme mit Oracle

Auch Oracle erwies sich als nicht weniger störrisch. Die notwendigen Datenbankscripte waren relativ schnell entwickelt, aber bei der von mit genutzten Version 9 lassen sich absolut keine Trigger erzeugen. Per SQLPlus funktionieren die einzelnen Befehle der Scripte wunderbar, aber beim Administrationstool werden vom ODBC-Treiber die Zeilenwechsel durch einen doppelten Wagenrücklauf (#13) ersetzt. Oracle schimpft dann bei der Übersetzung der Trigger, das ein ungültiges Zeichen gefunden wurde. Tests mit der Version 10 funktionierten dagegen einwandfrei. Daher habe ich mich entschlossen, die Unterstützung von Oracle 9 wieder zu entfernen bzw. sie durch Version 11 zu ersetzten. Da ich dafür allerdings mindestens 1 Woche benötige, habe ich entschieden, Oracle auf die nächste Programmversion zu verschieben. Ich hoffe, das dies dann das letzte Problem war, auf dem Weg zur Unterstützung von 3 Datenbanksystemen.

Ausblick

Neben der Oracle Unterstützung habe ich vor, noch einen Programmfehler aus dem BVASystem zu entfernen. Zum Beispiel stürzt das Programm leider ab, wenn ein Bild mit fehlerhaften Exif-Header geladen wird. Außerdem habe ich vor, die Installationsanleitung anzupassen, da nun die Erstellung der Datenbank mit dem Administrationstool einfacher geworden ist.

 

Eine Hürde weniger

Sonntag, Februar 26th, 2012

Ich freue mich gerade, da wieder ein sehr wichtiger Punkt auf meiner Todo-Liste abgeschlossen werden konnte. Das Administrationstool, welches sich seit einigen Versionen mit im Installationspaket befindet, ist nun in der Lage, die für das BVASystem notwendige Datenbankstruktur zu erzeugen. Die manuelle Einrichtung der Datenbank, mit Hilfe der MySQL-Workbench entfällt nun. Dadurch sollte es für technisch nicht so erfahrene Anwender einfacher sein, das BVASystem einzurichten.

Ausblick

Mein aktueller Zeitplan sieht so aus, das es noch eine weitere Zwischenversion vor der Veröffentlichung der nächsten stabilen Softwareversion geben wird. In dieser Zwischenversion werde ich die Datenbankscripte, die dem Administrationstool hinterlegt sind so erweitern, das 2 weitere Datenbankmanagementsysteme vom BVASystem verwendet werden können. Wahrscheinlich werden es Oracle und Firebird werden. Aber ganz sicher bin ich mir bei der Auswahl noch nicht. Nach der Zwischenversion heißt es dann noch einmal intensives Testen und wahrscheinlich auch intensives Fehlerbeseitigen.

Wie funktioniert das Anlegen der Datenbankstruktur mit dem Administrationstool?

Das Anlegen der Datenbankstruktur ist recht einfach. Im Administrationstool wählt man dafür im Hauptmenü den Eintrag „Datenbankstruktur erstellen“ aus. Es öffnet sich dann folgender Dialog:

Administrationstool: Datenbankstruktur erzeugen

Administrationstool: Datenbankstruktur erzeugen

In diesem Dialog muss man als erstes die Verbindungsdaten zum Datenbankserver eintragen und anschließend auf „Verbinden“ klicken. Wenn die Verbidnung hergestellt wurde, aktiviert sich die untere Hälfte des Dialoges. Hier wählt man nun aus, ob das BVASystem in ein bestehendes Datenbankschema integriert oder ob ein neues Datenbankschema angelegt werden soll. In beiden Fällen muss der Name für das Datenbankschema festgelegt werden. Als letztes hat man noch die Wahl, wer der Besitzer der Datenbanktabellen sein soll und ob ein Standardbenutzer angelegt werden soll. Wenn alle Einstellungen ausgewählt wurden, schließt man die Auswahl mit Druck auf den Knopf „Struktur erstellen“ ab. Anschließend wird die Datenbankstruktur automatisch erstellt. In der Log-Ansicht wird der Anwender über Erfolg bzw. Misserfolg der einzelnen Arbeitsschritte informiert.