Posts Tagged ‘BVASystem’

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.

Das Bildinformations-Popupfenster

Sonntag, Februar 12th, 2012

Dem aufmerksamen Leser dieses Blogs sollte bekannt sein, das ich mir als nächsten kleinen Meilenstein für das BVASystem, ein Popupfenster ausgesucht hatte, in dem Informationen zu dem jeweiligen Bild angezeigt werden. Dieses Bildinformations-Popupfenster ist nun in der Version 2.1.0.37-dev der Bilddatenbank endlich fertig.

Bildinformations-Popupfenster mit EXIF-Daten

Bildinformations-Popupfenster mit EXIF-Daten

Ich freue mich sehr, das ich nun dieses Fenster beim Betrachten meiner Fotos zur Verfügung habe. Endlich werden die gespeicherten Informationen angezeigt und ich kann nun mit nur einem Klick prüfen, welche Aufnahmebedingungen beim Fotografieren herrschten. Aktuell werden im Informations-Popupfenster die, meiner Meinung nach, 8 wichtigsten Daten aus dem Exif-Header angezeigt. Zu den 8 Parametern gehören:

  • Aufnahmedatum
  • Kamerahersteller/Kameramodell
  • Brennweite
  • Iso-Empfindlichkeit
  • Belichtungszeit
  • Blende
  • Abstand zum Objekt

Die Komponente, die zur Anzeige der Bildinformationen dient, ist allerdings so implementiert, das es später möglich sein wird, sich genau die Informationen anzeigen zu lassen, die man persönlich bevorzugt. Auch die Anzahl der Informationen ist nicht in Stein gemeißelt, ab dem 9ten Element wird einfach eine Scrollbar in dem Fenster angezeigt.

Außerdem habe ich in den letzten Tagen noch an dem Administrationstool weitergearbeitet. Ich habe für die Erstellung des BVASystem Datenbankschemas einen Optionsdialog erstellt, der alle notwendigen Informationen erfasst. Den Dialog werde ich allerdings erst in einem späteren Blog beschreiben, da die Implementierung der eigentlichen Funktionalität erst in den nächsten 2-3 Wochen ansteht.

Interne Änderungen

Donnerstag, Februar 2nd, 2012

Der aktuelle Versionssprung stand ganz im Zeichen der internen Änderungen. Notwendig wurden sie zum einen durch den Wechsel auf die ODBC-Technologie und zum zweiten durch das neu entstandene Administrationstool.

Welche Änderungen wurden vorgenommen?

Die erste größere interne Änderung betrifft die Herstellung einer Datenbankverbindung. Bisher war es so, das Servername, Datenbank, Nutzer und Passwort einzelnd benötigt wurden, um eine Datenbankverbindung herzustellen. Das ODBC-Konzept arbeitet dagegen mit sogenannten ODBC-Connectionstrings. Das sind Zeichenketten, die in irgendeiner Form die 4 oben genannten Parameter enthalten. Dummerweise hat der ODBC-Connectionstring für jedes Datenbanksystem einen anderen Aufbau. Daher habe ich nun eine „odbc.ini“ angelegt, welche eine Sammlung von Verbindungsstrings enthält. Je nach eingestellter Datenbank wird einer ausgewählt und zum Herstellen der Datenbankverbindung genutzt. Der Vorteil daran ist, das wenn sich der Aufbau eines ODBC-Connectionstrings ändert, so brauch ich am Programm nichts ändern. Es reicht aus, wenn die „odbc.ini“ angepasst wird.

Damit ich es beim Administrationstool leichter habe, habe ich die Handhabung der Einstellungsdateien komplett überarbeitet. Äußerlich hat sich an den Einstellungsdateien nichts geändert. Der Aufbau ist nach wie vor so, wie in der Installationsanleitung beschrieben. Aber gibt nun intern eine strikte Trennung zwischen allgemeinen Einstellungen, Einstellungen für das BVASystem und Einstellungen für das Administrationstool. Allgemeine Einstellungen sind zum Beispiel die Einstellungen für die gewählte Sprachdatei. Da ich sie für beide Programme benötige, habe ich den Vorteil das ich das Eintellungsobjekt doppelt verwenden kann. Außerdem erreiche ich durch die Trennung, das nur die Einstellungen gelesen bzw. geschrieben  werden, die wirklich benötigt werden.

Weitere Neuerungen

Alle weiteren Änderungen beziehen sich auf das noch relativ junge Administrationstool. Neu hinzugekommen ist dort die Auswahl des  Datenbanksystems, mit dem das BVASystem arbeiten soll. Bisher kann dort allerdings nur „Keine Datenbank“ und „MySQL“ ausgewählt werden. Weitere Datenbanksysteme werde ich nachtragen, sobald die notwendige Datenbankstruktur ebenfalls mit dem Administrationstool erstellt werden kann. Außerdem ist neu, das die im Adminstrationstool durchgeführten Aktionen und Aktionsergebnisse in einem Log erfasst werden.

Administrationstool: Datenbanksystem festlegen

Administrationstool: Datenbanksystem festlegen

Ausblick

In der nächsten Version ist zu erwarten, das das Popupfenster zur Anzeige von EXIF-Daten vorrangetrieben wird. Außerdem habe ich mir vorgenommen, im Administrationstool den Einstellungsdialog zur Erstellung einer BVASystem Datenbank zu gestalten. Die Funktionalität dahinter wird dann in den darauffolgenden Versionen erstellt. Eine ausführlichere Roadmap könnt ihr euch im Bugtracker anschauen.

Das neue BVASystem Administrationstool

Sonntag, Januar 22nd, 2012

Mit der heutigen Programmaktualisierung befindet sich nun ein weiteres, zweites Programm in dem BVASystem-Installationspaket: Das BVASystem Administrationstool. Mit diesem Tool sollen später alle verwaltungstechnischen Datenbankaufgaben erledigt werden, wie zum Beispiel das Aktualisieren der Datenbankstruktur nach einem Softwareupdate. Aber gut, da noch keinerlei Datenbank-Strukturänderungen in Sicht sind, denn wenn man das Administrationstool startet, wird man es sehr schnell wieder schließen. Außer dem Beenden des Administrationstools ist noch keine weitere Funktionalität implementiert. Trotzdem steckt schon ein gutes Stück Arbeit drin, denn das Administrationstool ist, wie auch das BVASystem, mehrsprachen fähig. Die dafür notwendigen Konfigurationen habe ich für das Administrationstool erstellt und an einigen wenigen Zeichenketten umgesetzt.

Warum ich mich gerade jetzt entschlossenen habe, mit dem Administrationstool zu beginnen, habe ich im letzten Blog bereits kurz umrissen. Heute möchte ich näher auf die Funktionen eingehen, die ich mir für das Administrationstool vorstelle.

Einstellung von systemweiten Programmparametern

In der Konfigurationsdatei des BVASystems gibt es einige Parameter, die sich direkt auf die Datenbank auswirken. Zum Beispiel kann die Miniatur- und Vorschaubildgröße eingestellt werden. Da sowohl Miniatur- und Vorschaubilder in der Datenbank abgelegt werden, ist es wenig sinnvoll, wenn man diese Parameter jederzeit im Programm ändern kann.  Ich denke, das Administrationstool dagegen ist ein guter Platz um diese globalen Parameter einzustellen.

Datenbanksystem festlegen

Ich bin gerade dabei, das BVASystem so umzustellen, das es mehrere verschiedene Datenbanksysteme unterstützt. Welches Datenbanksystem der Client nutzen soll, wird im Administrationstool einstellbar sein.

Anlegen von Datenbanknutzern

Nach man sich auf ein Datenbanksystem festgelegt hat und der Server installiert ist, sollte noch mindestens 1 Datenbanknutzer angelegt werden, über den der Zugriff auf die BVASystem-Datenbank erfolgt.

Datenbankstruktur erstellen

Die wohl wichtigste Aufgabe des Administrationstools wird es sein, die für das BVASystem benötigte Datenbankstruktur zu erstellen. Die dafür notwendigen Datenbankscripte werden in das Tool integriert, so das ihr eigentlich nur noch auf „Start“ drücken müsst.

Datenbankstruktur aktualisieren/anpassen

Wer einmal begonnen hat, mit dem BVASystem zu arbeiten, möchte natürlich auch neuere Versionen nutzen können, ohne das alle Daten neu eingestellt werden müssen. Von daher ist es wichtig, das ältere Datenbankstrukturen an neue Anforderungen angepasst werden können.

Backup und Wiederherstellung des Datenbestandes

Ebenfalls eine wichtige Funktion ist es, das beispielweise vor einer Datenbankstrukturänderung die Daten für den Notfall gesichert werden können.  Generell sollte aber jedem im klaren sein, wie sinnvoll bzw. wie notwendig regelmäßige Backups sind.

Welche dieser Funktionen wann verfügbar sein werden, kann ich noch nicht genau sagen. Aktueller Arbeitsschwerpunkt ist, das unterschiedliche Datenbanksysteme untersützt werden. Dafür benötige ich die Datenbanksystemauswahl und das Erstellen der Datenbankstruktur. Datenbankaktualisierungen sind vorerst keine in Sicht und für Backup/Restore kann man aktuell notfalls auf Datenbanksystem-Tools zurückgreifen.

Weitere Neuerungen

Auch wenn ich schon recht viel geschrieben habe, möchte ich noch kurz auf die weiteren Änderungen eingehen. In der Miniaturbilder und Filmstreifenansicht wurde der Werkzeugbuttonbereich komplett überarbeitet. Die Knöpfe werden nun genauso dargestellt, wie in den restlichen Menüleisten. Außerdem wurde das Bild beim Knopf zum Markieren eines Fotos ausgetauscht, da das alte „+“ als „Bild importieren“ missverstanden werden konnte. Neu ist ebenfalls der Knopf, der das zukünfige Popup-Bildinformationen-Fenster öffnet.

In den nächsten Tagen werde ich einen weiteren Blog zum PopUp-Fenster schreiben, in dem ich erkläre, wie man so einen Dialog implementieren kann. Außerdem habe ich jetzt eh bereits viel zu viel geschrieben :-D

Große Veränderungen

Donnerstag, Januar 12th, 2012

Heute habe ich die erste neue Softwareversion des Jahres und auch gleichzeitig die erste Softwareversion, die mit dem RAD Studio XE2 erstellt wurde, fertiggestellt. Eines vorweg: Die Änderungen fallen diesmal größer aus, als ich gedacht habe.

Neue Optik

Auch wenn ich mit der neuen Optik des BVASystems so meine Anfangsschwierigkeiten hatte, so bin ich mit dem Ergebnis doch recht zufrieden. Die Anwendung sieht nun komplett anders aus, wirkt aber trotzdem irgendwie vertraut. Mein gewünschtes zweifarbiges Farbkonzept konnte ich besser umsetzen, als in der alten Entwicklungsumgebung. Insgesamt finde ich, sieht die Anwendung jetzt deutlich harmonischer aus.

Hauptdialog der Entwickler-Version 2.1.0.34-dev

Hauptdialog der Entwickler-Version 2.1.0.34-dev

Neuer Datenbankzugriff

Eine große nicht sichtbare Änderung betrifft den Datenbankzugriff. Mit dem Umstieg aufs neue Delphi stellte sich heraus, das der bisher benutze Datenbankzugriff nicht mehr praktikabel war. Denn durch die neuen Unicode Zeichenketten war es nicht mehr möglich, Umlaute in der Datenbank zu benutzen.

Daher habe ich mich entschieden, den Datenbankzugriff auf die ADO Technologie umzustellen. ADO ist eine  Datenbankzugriffstechnologie von Microsoft, bei der über ODBC die Verbindung zur Datenbank hergestellt wird. Der Vorteil daran ist, das man ohne großen Programmieraufwand zu unterschiedlichsten Datenbanksytemen eine Verbindung aufbauen kann. Um unterschiedliche Datenbanksysteme nutzen zu können muss nur der entsprechende ODBC-Treiber installiert werden.

Erste Tests zeigten, das Umlaute bei Fotoalben zum Beispiel wieder funktionieren. Ob der komplette Unicode-Zeichensatz benutzbar ist, muss allerdings noch getestet werden.

Installation des MySQL ODBC-Treibers

Damit die Datenbankverbindung per ADO/ODBC herstellt werden kann, benötigt ihr den MySQL ODBC Treiber in der Version 5.1. Nachdem das Setup ausgeführt wurde, sollte sich die Datebankverbindung wie gewohnt herstellen lassen. Weitere Einstellungen sind nicht erforderlich. Solltet ihr ein 64-Bit Betriebssystem haben, ist es ratsam sowohl die 32-Bit als auch die 64-Bit Variante des ODBC Treibers zu installieren. Da das BVASystem eine 32-Bit Anwendung ist, benötigt es natürlich auch den 32-Bit ODBC Treiber. Wenn ihr in den Systemeinstellungen die ODBC Konfiguration testen wollt, benötigt ihr auf einem 64-Bit System den 64-Bit ODBC Treiber.

Ausblick

Getrieben von den neuen Möglichkeiten möchte ich mich nun darauf konzentrieren, das schon lang vor mir hergeschobene Administrationstool für das BVASystem zu entwickeln. Außerdem benötige ich es jetzt eh bald, da ich die vorhandene Datenbankstruktur nicht mehr über den Haufen werfen kann und will. Langfristig möchte ich mit dem Administrationstool 3 Dinge erreichen:

  • Änderungen/Updates an der Datenbankstruktur sollen ohne großes Fachwissen durchführbar sein
  • Das Anlegen der BVASystem Datenbank soll generell einfacher werden
  • Schaffung einer Backup/Restore-Funktionalität, damit die gespeicherten Daten sicher sind

Ein Nebenprodukt des Admintools und der Umstellung auf ADO/ODBC wird sein, das ihr die Auswahl habt, auf welchem Datenbanksystem ihr das BVASystem betreiben wollt. Wenn beispielsweise bereits ein Firebird-Datenbankserver betrieben wird, wäre es sinnlos noch zusätzlich einen MySQL-Server zu installieren, da beide Server gewartet werden müssen. Sinnvoller wäre es, das BVASystem dann einfach auf Firebird aufzusetzen.

Damit das ganze in der Zwischenzeit nicht zu langweilig wird, werde ich in der Filmstreifen und Miniaturbildansicht das Informationsfenster implementieren. In diesem sollen die erfassten EXIF-Daten eines Bildes dargestellt werden.

Neue Entwicklungsumgebung heißt neue Möglichkeiten und neue Probleme

Samstag, Dezember 31st, 2011

Mit der letzten Programmveröffentlichung hatte ich es bereits angemerkt, das ich wohl zu einer neueren Version meiner Entwicklungsumgebung umsteigen werde. Vor Weihnachten habe ich mir dann ein großes Geschenk gemacht und das neue Embarcadero Rad Studio XE2 bestellt. Vorgestern wurde es dann geliefert und ich habe es natürlich sogleich installiert. Nach einer problemlosen Installation war meine Neugier groß, wie die Konvertierung des BVASystem Projektes zur neuen Entwicklungsumgebung verlaufen wird.

Mittlerweile kann ich einen groben Überblick geben, was mich/euch erwartet. Die gute Nachricht: Das Programm lässt sich wieder übersetzen und es ist auf dem ersten Blick auch voll lauffähig. Die Schlechte Nachricht: Es gibt auch einige Baustellen (meist optischer Natur), die wohl relativ schnell abgearbeitet werden müssen.

Was wird sich in naher Zukunft ändern?

Im alten Delphi 2005 waren alle Steuerelemente nicht Unicode fähig. Spezielle Sonderzeichen, die nicht darstellbar waren, wurden einfach durch ein Fragezeichen ersetzt. Im Alltag ist dies sicher nicht weiter dramatisch gewesen, da man sich meist mit Alternativen behelfen konnte. Ich war dieses Jahr beispielsweise in Årgab im Urlaub und dieser Name konnte bisher nicht im BVASystem verwendet werden. Stattdessen hab ich einfach Argab beim Verwalten meiner Bilder genutzt, um dem Problem aus dem Weg zu gehen. Das Rad Studio XE2 arbeit nun komplett mit Unicode Zeichenketten.

In diesem Zusammenhang  zerbrech ich mir gerade ein wenig den Kopf, ob alle anderen Zeichenketten im Programm nun noch korrekt sind. Ich weiß gerade nichteinmal, ob die MYSQL-Datenbank so erzeugt wurde, das sie Unicode unterstützt. Ich werde die nächsten Tage wohl testen müssen, ob ein Fotoalbum „Årgab“ nun möglich ist oder ob Korrekturbedarf besteht. Gestern abend stolperte ich jedenfalls gleich in eine Unicode-Falle. Bisher habe ich recht gerne Zeichenketten bzw Stringstreams genutzt um binäre Daten zu verändern. Nun geht das nicht mehr so einfach, da ein falsch eingestelltes Encoding die Binärdaten zerstört.

Eine wunderschöne Neuerung sind die VCL-Styles. Sie ermöglichen es, das das Aussehen der Programmoberfläche komplett selbst gestaltet werden kann. Bisher habe ich mich damit herrumgequält, das die Anwendung meinen optischen Wünschen genügt. Bisher konnte ich kein XPManifest benutzen, da meine dezent braune Oberfläche durch blaue Scrollbars zerstört wurde. Daher sahen die Scrollbars im BVASystem bisher noch so aus, wie sie zur guten alten Windows95 Zeit ausgesehen haben. Im Rad Studio XE2 ist nun standardmäßig ein moderner Look aktiv. Er kann aber mit einem selbsterstellten VCL-Style überschrieben werden. Da ich immernoch keine blauen Scrollbars möchte, werde ich dies wohl auch tun müssen. Erste Versuche brachten folgendes:

Oberflächenentwurf mit eigenem VCL-Stil

Oberflächenentwurf mit eigenem VCL-Stil

Neu ist auch der 64bit Compiler. Kleinere Testanwendungen habe ich bereits als 32bit und als 64bit Variante übersetzen können. Ob ich das BVASystem ebendso einfach auf 64bit bringen kann, weiß ich noch nicht. Die Datenbankverbindung, die zur Zeit über die „libmySQL50.dll“ realisiert wird, muss ja ebendso durch eine 64bit Variante ersetzt werden. Ich würde es jedenfalls schön finden, wenn ich irgendwann einmal eine 64bit Version vom BVASystem anbieten kann. Aktuell ist dies allerdings noch nicht so wichtig.

Fazit

Im großen und ganzen bin ich mit dem Umstieg zufrieden. Die Entwicklungsumgebung wirkt vertraut, die Eingewöhnung wird also nicht all zuviel Zeit benötigen. Das BVASystem ist übersetzbar und läuft bis auf ein paar optische Unschönheiten auch. Insgesamt verspreche ich mir durch das modernere Erscheinungsbild der Software deutliche Vorteile. Allerdings muss ich dafür erst einmal die Konvertierung des Projektes abschließen.