Das neue BVASystem Administrationstool

Verfasst am: Sonntag, 22. Jan. 2012 um 15:24

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

Komponentenentwicklung: Nutzung vom VCL Style

Verfasst am: Donnerstag, 19. Jan. 2012 um 22:46

Heute ist es wieder einmal an der Zeit, einen kurzen technischen Artikel über Delphi zu schreiben. Und zwar geht es im Speziellen darum, wie man einzelne Elemente, die im VCL-Style definiert wurden, in eigenen Komponenten benutzen kann.

Ich nutze ganz gerne einfache Zeichenflächen um meine eigenen Komponenten zu entwickeln, da ich dort gestalterisch alle Freiheiten besitze. Um ein einheitliches Design zu gewährleisten, sollten hierbei aber trotzdem die VCL Style Elemente verwendet werden.

Um beispielsweise einen Knopf auf ein Bitmap zu zeichnen, kann man folgende Anweisungen benutzen:

if StyleServices.Available then begin
 //Auswahl des Styleelements
 case aMode of
  tpDown   : Details := StyleServices.GetElementDetails(ttbButtonPressed);
  tpUp     : Details := StyleServices.GetElementDetails(ttbButtonHot);
 end;
 //Zeichnen des Styleelements
 StyleServices.DrawElement(FBitmap.Canvas.Handle, Details, aButtonRect);
end else begin
 ... //Alternative Zeichenmethode, falls kein Style aktiv ist
end;

Mit der Variablen aMode wird festgelegt, ob der Button im gedrückten oder ungedrückten Zustand gezeichnet werden soll und aButtonRect definiert den Bildbereich über den sich der Button erstrecken soll.

Große Veränderungen

Verfasst am: Donnerstag, 12. Jan. 2012 um 22:24

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.

Hintergrundfarbe eines TPanels ändern

Verfasst am: Sonntag, 08. Jan. 2012 um 17:53

Das ich bereits nach wenigen Tagen Entwicklung mit der neuen Umgebung an eine Grenze des machbaren stoße, hätte ich nicht erwartet. Und dabei geht es eigentlich um etwas total banales: Die Änderung der Hintergrundfarbe eines Panels.

Worin besteht das Problem?

Das Konzept von Embarcadero sieht vor, das bei aktivem VCL-Stil, das komplette Aussehen der Steuerelemente durch den VCL-Stil definiert wird. Will man trotzdem eine Eigenschaft ändern, die Auswirkungen auf die Optik hätte, so passiert einfach garnichts. Im speziellen: Die Hintergrundfarbe kann nicht geändert werden. Alle Panels sehen genauso aus, wie sie im VCL-Stil Editor eingestellt wurden.

Mein großes Problem dabei ist, das mein zweifarbiges Design mit den grauen und hellbraunen Panels mit dem VCL-Stil nicht umsetzbar ist. Ich brauche den VCL-Stil aber, damit die Windows-Defaults nicht die Farbgestaltung zunichte machen.

Wie kann man das Problem umgehen?

Da Embarcadero das Verhalten wohl nicht ändern will, habe ich mir einen Workaround für das Panel gesucht, da ich auf mein Wunschdesign nicht verzichten will. Der Workaround besteht darin, einfach auf dem Panel, welches eine andere Farbe erhalten soll, ein maximiertes TShape Element zu plazieren. Die Hintergrundfarbe kann dann über das TShape gesteuert werden, da das eigentliche Panel nicht mehr sichtbar ist.

Damit das TShape nicht bei jedem Panel manuell hinzugefügt werden muss, habe ich einfach fix ein TBVAShapePanel entwickelt, auf dem das TShape Element bereits vorhanden ist. Die Eigenschaft „Color“ des Panels hab ich einfach überschrieben, da sie ja eh nutzlos gewesen ist. Das TShapePanel sieht wie folgt aus:

unit claBVAShapePanel;

interface

uses controls, SysUtils, classes, ExtCtrls, graphics;

type
 TBVAShapePanel = class(TPanel)
  private
   FShape  : TShape;
   FColor  : TColor;
  protected
   procedure SetColor(aValue:TColor);
  public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
  published
   property Color:TColor read FColor write SetColor;
end;

procedure Register;

implementation

procedure TBVAShapePanel.SetColor(aValue:TColor);
begin
  FColor := aValue;
  FShape.Brush.Color := FColor;
end;

constructor TBVAShapePanel.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);

 BevelKind          := bkNone;
 BevelOuter         := bvNone;
 FColor             := clRed

 FShape             := TShape.Create(Self);
 FShape.Parent      := Self;
 FShape.Align       := alClient;
 FShape.Brush.Color := FColor;
 FShape.Brush.Style := bsSolid;
end;

destructor TBVAShapePanel.Destroy;
begin
 FShape.Free;

 inherited Destroy;
end;

(******************************************************************************)

procedure Register;
begin
 RegisterComponents('BVA',[TBVAShapePanel]);
end;

end.

Natürlich kann das TBVAShapePanel noch nach belieben um weitere Eigenschaften erweitert werden. Anbieten würde sich zum Beispiel, das man den Rand des TShape ebenfalls variabel gestaltet.

Auch wenn ich für die Hintergrundfarbe nun eine Lösung gefunden habe, würde ich begrüßen, wenn Embarcadero sein Konzept nochmal überdenken würde. Prinzipell ist es richtig, das die Optik aus dem Stil geladen wird. Aber wenn zum Beispiel durch farbige Edit-Felder dem Anwender signalisiert werden soll, wo er fehlerhafte Daten eingetragen hat, so ist dies aktuell nicht möglich. Auch mit dem Trick mit dem TShape kommt man da wohl nicht weiter.

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

Verfasst am: Samstag, 31. Dez. 2011 um 00:13

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.

Erweiterung des Exif-Moduls

Verfasst am: Donnerstag, 22. Dez. 2011 um 22:46

Ich hatte ja kaum damit gerechnet, aber ich habe es doch tatsächlich geschaft, in diesem Jahr noch eine Entwicklerversion fertigzustellen. Die Fertigstellung der stabilen Softwareversion war genau der Motivationsschub, den ich gebraucht habe. Es macht doch deutlich mehr Spaß, etwas neues zu entwickeln als immer nur Fehler zu suchen und zu korrigieren. Dies nun wird aber die definitiv letzte Version des Jahres sein, denn viel Zeit ist ja nicht mehr und die Feiertage möchte ich ehrlich gesagt nicht am Rechner verbringen.

Was wurde neu implementiert?

Wie bereits angekündigt, war das Ziel für diese Version, das die ungenutzen EXIF-Datenbankfelder genutzt werden. Dazu wurde als erstes natürlich das EXIF-Modul angepasst, welches die entsprechenden Daten aus dem Header ausliest. Außerdem wurden die internen Datenkomponenten so angepasst, das neuen Informationen nach dem Auslesen im Speicher gehalten werden können. Dort stehen die Informationen für zukünfige Erweiterungen am Programm jederzeit zur Verfügung. Die dritte Änderung erfolgte beim Bildimport, denn hier werden die neuen Datenbankfelder gefüllt.

Um nicht nur unsichtbare Änderungen zu programmieren, habe ich noch die Metadatenzuordnungen erweitert. Es kann nun den zusätzlichen Metadatentyp „Verwendete Kamera“ für die automatischen Zuordnungen genutzt werden.

Metadaten mit neuem Metadatentyp "Verwendete Kamera"

Metadaten mit neuem Metadatentyp "Verwendete Kamera"

Was kommt als nächstes?

Eigentlich habe ich vor, als nächstes größere Änderungen an der Oberfläche vorzunehmen. Die neu hinzugekommenen EXIF-Datenfelder müssen in der Oberfläche angezeigt werden. Dazu möchte ich der Miniaturbilder und Filmstreifenansicht, bei dem „Bild markieren“ Knopf einen weiteren Knopf hinzufügen. Durch diesen soll sich ein PopUp-Dialog öffnen, auf dem die EXIF-Daten angezeigt werden. Außerdem soll neben den 3 bekannten Ansichten eine vierte Ansicht hinzukommen,  auf der alle gespeicherten Daten zu einem Bild angezeigt werden. Hier soll im Gegensatz zu dem PopUp-Dialog eine Navigation innerhalb der aktiven Bildliste möglich sein.

Diese Änderungen werden aber wohl etwas nach hinten verschoben, da ich aller Wahrscheinlichkeit nach meine Entwicklungsumgebung auf den neusten technischen Stand bringen will. Mein Delphi 2005 ist mittlerweile bald 8 Jahre alt und es ist wohl von Vorteil, wenn man es durch etwas zukunftssicheres ersetzt. Ich habe in der letzten Woche bereits kurz erfolgreich getestet, ob eine Umstellung auf das neue Delphi XE2 prinzipell machbar ist. In den nächsten Wochen werde ich berichten, zu welchen Veränderungen der Wechsel beim BVASystem führt. Ich hoffe, das ich bei der Umstellung nicht auf allzuviele Probleme treffe und ich mich dann schnell wieder auf die eigentliche Weiterentwicklung konzentrieren kann.

Mission accomplished

Verfasst am: Sonntag, 11. Dez. 2011 um 18:48

Mein Versprechen, das es noch dieses Jahr eine stabile Softwareversion geben wird, konnte ich nur knapp einhalten. Aber heute habe ich es endlich geschafft. Die letzten Tage glaubte ich schon nicht mehr so recht daran, da mich das viele schreiben von Texten doch demotiviert hat. Aber eigentlich kenne ich auch keinen Softwareentwickler der gerne Dokumentationen schreibt.

BVASystem 2.1.0 - Miniaturbilder

BVASystem 2.1.0 - Miniaturbilder

Auch wenn ihr die aktuelle Version hier wie immer herunterladen könnt, so ist die neu gestaltete Homepage auf http://www.bvasystem.de der Hauptanlaufpunkt für die stabile Softwareversion. Dort sind hoffentlich alle notwendigen Informationen vorhanden, um die Installations- und Anwendungsschwierigkeiten zu meistern. Sollten trotzdem Fragen entstehen, beantworte ich diese gerne. Fehlermeldungen oder Featurewünsche könnt ihr wie gehabt selbst im Bugtracker eintragen.

Wie geht es nun weiter?

Noch heute werde ich damit beginnen, die neuen Datenbankfelder mit einem Nutzen zu versehen. Als erstes werde ich mich an die EXIF-Datenfelder machen. In der aktuellen Datenbankstruktur wird nur eines der EXIF-Datenfelder genutzt. Ziel ist es, das die restlichen Felder ebenfalls beim Datenimport belegt werden und das die gespeicherten Daten im Programm angezeigt werden können. Als weiteren Schritt wäre es dann sinnvoll, wenn die Datenfelder ebenfalls in den Metadaten genutzt werden können.

Die nächste größere Baustelle wird dann die Verschlagwortung von Bildern. Hier bin ich mir über das genaue Konzept noch nicht ganz sicher. Fest steht aber, das es für die Verschlagwortung ebenfalls Metadatendefinitionen geben wird.

Sicher ist auf jedenfall, das in maximal 3 Wochen hier die nächste Entwicklerversion veröffentlich wird, denn nach einer stabilen Softwareversion ist vor einer stabilen Softwareversion.

Lizenzierung Teil 3

Verfasst am: Montag, 28. Nov. 2011 um 22:38

Mit der ab heute verfügbaren Version 2.0.0.31, ist das Lizenzsystem endlich abgeschlossen. Dafür, das ich darin möglichst wenig Arbeit stecken wollte, hat es mich doch eine ganze Weile beschäftigt. Dabei sind mir Inhalte eigentlich wichtiger, als so verwaltungstechnischer Kram. Aber nun ist es ja abgeschlossen und wird mich hoffentlich nicht so schnell wieder belästigen.

Der wichtigste Änderungspunkt an der neuen Version ist wohl, das ich Änderungen an der Datenbankstruktur vorgenommen habe. Ihr müsst also einmal wieder eure Datenbank aktualisieren oder neu erstellen. Die Änderungen werden zum Großteil in der aktuellen Version noch nicht genutzt. Sie sind hauptsächlich für die nächsten Punkte bestimmt, die ich im kommenden Jahr implementieren will. Ich möchte aber, das wenn ihr die stabile Software Version einsetzt, möglichst lange auch die Testversionen probieren könnt, ohne das ihr 2 verschiedene Datenbanken benötigt.  Theoretisch sollte dies jetzt auch die letzte Datenbankänderung sein, die per MySQL-Tools erledigt werden muss. Demnächst werde ich ein kleines Tool schreiben, mit dem ihr die Datenbankänderungen bequemer vornehmen könnt.

Bei der Fehlerkorrektur habe ich auch ein gutes Stück geschafft. Sogar einen hässlichen Totalabsturz, der bei einem fehlerhaften EXIF-Header auftrat konnte ich beseitigen. Entgegen meiner Ankündigung, das keinerlei neue Funktionen zu erwarten sind, habe ich 2 Kleinigkeiten umgesetzt, welche die Nutzbarkeit des Programmes doch merklich steigern.

Zum ersten kann nun, wenn der Eingabefocus auf einer der Bildkomponenten liegt, der Vollbildmodus mit der „Enter“ Taste geöffnet werden. Dadurch ist es nun möglich, das man den Vollbildmodus komplett per Tastatur bedienen kann. Die zweite Kleinigkeit betrifft die Sortierung der Bilder in den Bildlisten. Bisher war es so, das nach dem Programmstart eine Standardsortierung (Bildname aufsteigend) aktiv gewesen ist. Wollte man dauerhaft die Bilder anders sortiert haben, so musste man nach jedem Programmstart seine Wunschsortierung wieder einstellen. Nun ist es so, das beim Beenden des Programmes die aktive Sortierung gespeichert und beim nächsten Programmstart wieder aktiviert wird.

Zur Zeit sieht es danach aus, als wenn die nächste Updatemeldung hier für die erste stabile Version reserviert ist. Die Anzahl der gefundenen Fehler hält sich in Grenzen und es sind nur noch wenige Sachen an der Homepage zu erledigen. Ich hoffe, das es in 2-3 Wochen gut zu schaffen ist.

Kleiner Ausblick auf 2012

Verfasst am: Dienstag, 15. Nov. 2011 um 23:59

Für ein Jahresfazit mag es nun noch etwas früh sein, aber da ich den Rest des Jahres damit verplant habe, eine möglichst fehlerfreie, einsetzbare Softwareversion der Bilddatenbank fertigzustellen, bleibt nur noch wenig Zeit für große Änderungen. Daher sei es mir gegönnt, einmal einen kleinen Ausblick aufs nächste Jahr zu wagen. Denn ich habe ohne Zweifel mehrere große Änderungen geplant. Dieser Blogeintrag soll euch zeigen, wohin die Reise im nächsten Jahr gehen wird.

EXIF-Informationen

In den aktuellen Versionen werden vom EXIF-Header nur das Aufnahmedatum und das Vorschaubild genutzt. Dies ist natürlich etwas dürftig und bedarf einer Erweiterung. Ziel ist es, das die EXIF-Header Informationen möglichst vollständig angezeigt und auch in der Datenbank gespeichert werden können. Langfristig soll es auch möglich sein, das mit Hilfe der so gewonnenen Daten, in der Datenbank recherchiert werden kann.

Schlagworte

Eine Standardfunktion, die meiner Bilddatenbank noch fehlt ist die Verschlagwortung von Fotos. Eine normale Verschlagwortung werde ich allerdings nicht umsetzen. Ich stelle mir vor, das ich den vorhandenen Mechanismus der automatischen Zuordnungen ausnutze und ihn ebenfalls für die Verschlagwortung anbieten werde. Natürlich werden dann auch andere Kriterien benötigt als bei den Zuordnungen zu Fotoalben.

Automatische Zuordnungen

Beispielsweise habe ich vor, den Zuordnungsmechanismus um einen GPS-Koordinaten-Parameter zu erweitern. Damit wäre es dann beispielsweise möglich, das alle Bilder im Umkreis von 25km um 52° 31′ N, 13° 24′ O automatisch dem Schlagwort „Berlin“ zugeordnet werden können. Natürlich wird der Parameter ebendso für die Fotoalbenzuordnung zur Verfügung stehen, falls sich wer ein Fotoalbum „Berlin“ anlegen möchte. Des weiteren wird es gerade für die Schlagworte interessant sein, wenn man diese anhand einiger Beispielbilder definieren kann. Die Zuordnung erfolgt dann über einen Ähnlichkeitsvergleich zwischen den Beispielbildern und den zu importierenden Fotos.

Kopieren/Verschieben von Bildern auf Dateiebene

Der kleinste Änderungswunsch, der sich mir beim Arbeiten mit den aktuellen Versionen sofort erschließt, ist das Kopieren bzw. Verschieben von Bildern im Dateisystem. Ich betreibe auf http://www.marc-alinski.de eine kleine Fotoseite, auf der ich meine Bilder veröffentliche. Mein Arbeitsablauf sieht vor, das ich neue Fotos auf dem Dateisystem ablege und anschließend einige schöne Bilder auswähle, die ich dann auf die Seite hochlade. Zum Auswählen nutze ich bereits das BVASystem. Nur das Kopieren der ausgewählten Bilder in ein anderes Verzeichnis erledige ich noch mit Windows Standardtools und ärgere mich jedes Mal, wenn ich die ausgewählten Bilder anhand des Dateinamens identifizieren muss. Es liegt also nahe, das das BVASystem nicht nur Fotos löschen, sondern auch die Funktionen Kopieren und Verschieben beherrschen muss.

Zusammenfassung

In welcher Reihenfolge ich die Änderungen angehen werde, habe ich noch nicht festgelegt. Klar ist allerdings, das sich in diesen paar Zeilen mehr als genug Arbeit fürs ganze nächste Jahr befindet. Detailiert werde ich die einzelnen Punkte beschreiben, sobald ich mich an ihrer Umsetzung versuchen werde. Ich freue mich jedenfalls darauf, das ich bald wieder größere Änderungen angehen kann.

Lizenzierung Teil 2

Verfasst am: Montag, 07. Nov. 2011 um 22:27

Nach einer kleinen Urlaubspause, in der ich mir die Nordseeluft kräftig um die Nase habe wehen lassen, geht es nun wieder zügig weiter. Das Ziel, die stabile Softwareversion, ist fest im Blick und lässt sich langsam am Horizont erahnen. Ich bin jetzt an einem Stand angekommen, an dem fast alle Funktionen, die die Version enthalten soll, implementiert sind. Von daher schätze ich, das die Version 2.0.0.32 oder 2.0.0.33 die stabile Softwareversion sein wird. Es fehlen also noch noch 2 oder 3 Versionsschritte.

Die noch fehlende Funktion hängt mit der Lizenzierung zusammen. Neu in der heute veröffentlichten Version ist, das ihr die Seriennummer im Programm eingeben könntet, wenn ihr eine habt. Der dafür vorgesehende Dialog prüft, ob es sich um eine gültige Seriennummer handelt. Wenn sie gültig ist, wird die eingegebene Nummer in den Programmeinstellungen gespeichert. Jetzt fehlt nur noch, das die Software die Seriennummer beim Start prüft und somit den Hinweisdialog nicht mehr anzeigt. Diese Funktionalität habe ich mir für die nächste Programmversion vorgenommen.

Dialog zur Eingabe der Seriennummer

Dialog zur Eingabe der Seriennummer

Außerdem ist es recht wichtig, das ich jetzt noch möglichst viele Fehler beseitige, die noch im Programm vorhanden sind. Daher habe ich einen Großteil der letzten Entwicklungstage damit verbracht, gefundene Fehler zu beseitigen. Ich hoffe, das nun beim Testen keine größeren Probleme gefunden werden, die meinen abgesteckten Zeitplan gefährden könnten.