Archive for the ‘Neue Programmversion’ Category

Ein neues Hauptmenü

Sonntag, Dezember 19th, 2010

Im letzten Blog hatte ich es ja bereits angedeutet, in der ab heute zum Download bereitstehenden Programmversion, ist ein komplett überarbeitetes Hauptmenü enthalten. Nicht verraten hatte ich aber, wie mein Konzept für das neue Menü aussieht. Dies hole ich nun aber nach:

Das neue Hauptmenü ist in 4 Hauptrubriken eingeteilt, da sich die Oberfläche ebenfalls in 4 eigentständige Teile trennen kann: die Hauptwerkzeugleiste, den Verzeichnis- bzw. Rubrikenbaum, das Vorschaubild und die Bildliste. Hinter dem Menüeintrag „Programm“ verbergen sich alle Funktionen, die in der Hauptwerkzeugleiste zu finden sind. Im Menüeintrag „Baum“ befinden sich alle Funktionen, die sich durch ein PopUp-Menü im Verzeichnis- bzw. Rubrikenbaum erreichen lassen. Der Menüeintrag „Vorschaubild“ enthält alle Funktionen, die sich ebenfalls in der Werkzeugleiste unter dem Vorschaubild befinden. Und zu guter letzt sind im Menüeintrag „Bildliste“ alle Funktionen verfügbar, die durch das PopUp-Menü der Bildliste ausgeführt werden können.

Das neue Hauptmenü

Das neue Hauptmenü

Außer dem neuen Hauptmenü haben es noch ein paar weitere Veränderungen ins Programm geschafft. Als erstes sollte sicher Auffallen, das es den „Test Connect DB“ Button nicht mehr gibt. Ersetzt wurde er durch ein per Ini-Datei konfiguierbares AutoConnect. Fügt man in der BVASystem.ini unter [DATENBANK] die Zeile AUTOCONNCECT=JA ein, so wird die Datenbankverbindung automatisch beim Programmstart hergestellt. Ist eine automatische Datenbankverbindung nicht erwünscht, so kann sie natürlich auch, während das Programm läuft, hergestellt werden. Die dazugehörigen Buttons in der Hauptwerkzeugleiste werden sicher auch ohne große Erklärungen eindeutig sein.

Auch in der nächsten Version werde ich hauptsächlich Änderungen an der Programmoberfläche vornehmen. Geplant ist, das verdrehte Bilder in 90 Grad Schritten gerade gerückt werden können. Außerdem möchte ich dafür sorgen, das wenn neue Bilder in die Datenbank aufgenommen wurden, der Rubrikenbaum automatisch aktualisiert wird.

Jede Menge kleine Bugfixes

Sonntag, November 21st, 2010

In dem diesmaligen Entwicklungszyklus habe ich es geschafft, meinen alten Rekord von 12 abgearbeiteten Tickets in einer neuen Version zu brechen. Ganze 16 Punkte habe ich in den rund 2 Wochen geschafft. Ok, viele der Tickets hatten diesmal nicht so einen großen Umfang, aber der Teufel steckte oft in den Details. So war zum Beispiel die Überarbeitung des Popupmenüs der Bildliste etwas tricky. Je nachdem ob kein Bild, ein Bild oder mehrere Bilder markiert sind und ob das aktive Bild markiert ist oder nicht, werden unterschiedliche Beschriftungen im Popupmenü angezeigt.

Die größte Änderung, die ich hier extra erwähnen will, ist der Fingerprint. Wenn ein Bild in der Datenbank abgespeichert wird, so wird mit dem Bild eine Art Fingerabdruck erzeugt und mitgespeichert. Versucht der Anwender das Bild nun ein zweites Mal in der Datenbank abzulegen, so wird dies, aufgrund des bereits in der Datenbank vorhandenen Fingerprints, verhindert. Selbst wenn das Bild in der Zwischenzeit umbenannt wurde, wird trotzdem erkannt, das es sich um ein doppeltes Bild handelt.

Hauptdialog der Bilddatenbank BVASystem

Hauptdialog der Version 2.0.0.11

Die Details zu den Änderungen können, wie immer, im Bugtracker nachgeschlagen werden. Da der letzte Screenshot nun auch schon etwas älter war, habe ich heute einen neuen erstellt. Und zu guter Letzt habe ich heute noch, ebenfalls im Bugtracker, abgesteckt wohin die nächsten beiden BVASystem Versionen führen werden.

In der nächsten Version der Bilddatenbank möchte ich mich darum kümmern, das die Verbindung zur Datenbank nicht mehr über den Testbutton hergestellt werden muss.  Außerdem möchte ich die Möglichkeit schaffen, das das Programm als reiner Bildbetrachter nutzbar wird. Dabei soll, auch ohne Datenbankserver, der Anwender nicht von Fehlermeldungen genervt werden. In der übernächsten Version muss dann die Datenbankstruktur erweitert bzw. überarbeitet werden, damit Platz für neue Features ist. Im speziellen ist angedacht, das falsch ausgerichtete Bilder gedreht werden können und das der Orientierungssinn auch gespeichert wird.

Aufgaben für den Worker

Montag, November 8th, 2010

Im letzten Blogpost hatte ich es bereits angekündigt, mit der Version 2.0.0.11 sollten die Aufgaben für den Worker hinzukommen. Und genau das ist bis zum heutigen Tag geschehen. Ich muss zugeben, die neue Version ist diesmal eher etwas für neugierige Tester. Die Aufgaben sind zwar fertig programmiert, aber ihre Einbettung in die Oberfläche muss dringend noch verbessert werden. Ich habe mich aber dafür entschieden, die Version hier trotzdem so zur Verfügung zu stellen, da ich ansonsten mein gewolltes Veröffentlichungsraster nicht einhalten könnte.

Es gibt nun einen Automatismus zum Datenimport von Bildern in die Datenbank, den der Anwender in der Toolbar an und ausschalten kann. Bei aktivem Automatismus werden, nachdem auf ein Verzeichnis mit Bildern geklickt wurde, alle Bilder im Worker als Aufgaben eingestellt. Dieser arbeitet die Aufgaben nach und nach ab, speichert die Bilder also in der Datenbank. Fehlen tut hier noch, das vor dem Einfügen des Bildes überprüft wird, ob dieses sich bereits in der Datenbank befindet: siehe Bugtracker Meldung 101

Als zweite Workeraufgabe habe ich das Löschen von Bildern umgesetzt. In einem Popupmenü über der Bildliste befindet sich der Eintrag zum Löschen. Die Funktion ist sowohl für Dateien auf der Festplatte, als auch für Dateien in der Datenbank möglich. Aber Vorsicht, es erscheint keinerlei Sicherheitsabfrage. Wenn löschen geklickt wird, wird auch gelöscht. Was beim Löschen noch fehlt, ist das die Programmoberfläche anschließend aktualisiert wird. Das gelöschte Bild muss aus der Liste entfernt werden und die darunterliegende Scrollbar angepasst werden: siehe Bugtracker Meldung 102

Fazit: Auch wenn in den letzten Wochen einiges an Software entstanden ist, so bleibt noch eine ganze Menge zu tun.

Der Worker

Donnerstag, Oktober 28th, 2010

Es ist wieder einmal Zeit, das BVASystem zu aktualisieren. Neu hinzugekommen in der Software ist dieses Mal ein System, für welches ich leider keinen sinnvollen deutschen Namen gefunden habe.

Worum geht es?

Die Bilder, die in einer Bildverwaltung archiviert werden sollen, müssen logischerweise irgendwie in das System eingefügt werden. Wer das alte BVASystem kennt, sollte wissen, das dies damals über einen Importdialog gelöst wurde. Während des Importierens war die Anwendung dann für den Anwender nicht weiter bedienbar.  Im neuen System dagegen soll der Import so ablaufen, das der Anwender währenddessen das Programm weiter bedienen kann.

Da ich alles immer möglichst allgemein halte, überlegte ich mir, was in einer Bildverwaltung noch so alles durchgeführt werden muss.   Gedacht habe ich zum Beispiel an das Löschen von Dateien, an das Kopieren von Dateien und natürlich an den In- und Export von Bilddaten. Also habe ich ein System entwickelt, das alle diese Aufgaben erledigen kann.

Es sind noch 9 Aufgaben im Worker

Worker

Der Anwender bekommt von dem System im Hintergrund relativ wenig mit, nur oben rechts in der Ecke kann der Status des Systems abgelesen werden. Relativ einfach ist dort zu erkennen, ob noch Aufgaben abzuarbeiten sind. Sofern Aufgaben vorhanden sind, ist durch eine sinkende Aufgabenanzeige zu erkennen, das das System arbeitet. Will der Anwender die Software beenden, wenn noch Aufgaben im System sind, wird natürlich eine Warnung angezeigt.

Da noch keine richtige Aufgabe für das System programmiert wurde, kann über den Knopf „WorkerTest“ das System mit 2 Testaufgaben bestückt werden. Dieser wird in rund 14 Tagen wieder verschwunden sein, da ich bis dahin richtige Aufgaben für das System umsetzen möchte.

Warum heißt das System nun „Worker“?

Die Funktionsweise des Systems hatte ich mir relativ schnell ausgedacht. Ich wollte etwas schaffen, das Aufgaben im Hintergrund der Anwendung abarbeitet und nur möglichst knapp dem Anwender mitteilt, was es gerade tut. Die Namenswahl war mir eigentlich recht egal. Dies änderte sich, als ich die Beschriftungen für den Dialogteil, der auf dem Bild zu sehen ist, festlegen wollte. Ich brauchte einen kurzen prägnanten Namen, der gut in das Dialogelement passt.

Den in der Informatik bekannten Fachbegriff Thread wollte ich nicht nehmen, da ein Normalanwender damit wohl kaum etwas anfangen kann. „Aufgabenbearbeitungssystem“ war für den kleinen Dialogbereich einfach zu lang. Der deutsche Begriff „Arbeiter“ klang irgendwie blöd. Also fiel meine Wahl auf dem Begriff „Worker“. Aber falls jemand eine bessere Idee hat, wie ich den „Worker“ nennen könnte, so soll er mir dies hier per Kommentar mitteilen. Danke.

Änderungen an der Oberfläche

Montag, Oktober 18th, 2010

Dieses Mal gibt es bereits nach einer Woche schon wieder eine neue Programmversion zum Download. Auch wenn die Änderungen, vom Aufwand her, für die Programmversion 2.0.0.9 relativ gering waren, so fallen sie doch deutlich ins Auge. Denn alle Korrekturen und Erweiterungen betrafen die Programmoberfläche.

Lange habe ich den einen Fehler in der Baumdarstellung vor mir hergeschoben. Aus Bequemlichkeit hatte ich in jedem Level des Baumes die Striche einfach bis zum Ende durchgezeichnet. Nun habe ich mir aber endlich die Zeit genommen und diesen Umstand korrigiert. Die Linien zwischen den Baumknoten sind nun korrekt, wo kein Strich hingehört befindet sich auch keiner mehr.

Das BVASystem 2.0.0.9 hat nun einen Graustufenmodus.

BVASystem im Graustufenmodus

Persönlich schaue ich mir meine Fotos auch gerne mal in Schwarz-Weiß an. Nicht alle, aber einige Bilder gewinnen durch die Umwandlung in Graustufen an Ausdruckskraft. Da liegt es natürlich Nahe, im Bildbetrachter gleich eine Ansicht zu haben, mit der getestet werden kann, wie das Bild, oder die Bilder in Graustufen wirken. Ab der heutigen Version ist diese Funktion nun in der Toolbarleiste unter dem Vorschaubild integriert.

Die dritte Baustelle der Woche betraf die Startparameter des Programmes. Startet man das BVASystem beispielsweise mit: „bvasystem.exe c:\testbilder\test.jpg“, so wird gleich nach dem Programmstart das Verzeichnis „Testbilder“ und dort das Bild „test.jpg“ geöffnet. Diese Funktion benötigt man, wenn man die Dateiendung „jpg“ mit dem BVASystem verknüpfen will. Dann soll nämlich, durch Doppelklick auf eine Bilddatei, dieses Bild auch gleich geöffnet werden. Vom Prinzip her wäre das nun möglich, aber da der Optionsdialog noch fehlt, müsste die Verknüpfung manuell hergestellt werden.

Der nächste Meilenstein

Donnerstag, Oktober 7th, 2010

Mit dem heutigen Tag ist wieder ein Meilenstein in der Entwicklung des BVASystems erreicht. Die Version 2.0.0.8 kann, wie immer, unter Download herruntergeladen werden. Vor wenigen Tagen berichtete ich, warum es wichtig ist, eine klare Trennung zwischen Oberfläche und den eigentlichen Daten herzustellen. Diese Trennung ist nun komplett umgesetzt. Der letzte direkte Zugriff der Oberfläche auf die Daten ist entfernt, alles läuft nun, so wie gewünscht, über die Datenschicht.

Gestern abend habe ich weiterhin die Roadmap für die nächsten 3 Entwicklungsetappen abgesteckt. Die nächste Version wird für mich etwas zum verschnaufen sein, denn ich will dort nur Änderungen an der Oberfläche vornehmen. Die Änderungen sollten nicht sonderlich kompliziert werden. Aber wenn sie gemacht sind, stärkt es die Bildbetrachter-Funktionen des BVASystems.

Anschließend kommt wieder etwas komplizierteres, welches ich in 2 Etappen umsetzen möchte. Ich möchte dann ein Modul schaffen, das für alle Änderungen am Datenbestand zuständig sein soll. Das Modul soll als Thread im Hintergrund der Anwendung laufen. Damit ist es zum Beispiel möglich, das während sich der Anwender Bilder anschaut, diese automatisch in der Datenbank aufgenommen werden.  Oder aber das Programm löscht, im Hintergrund, die vom Nutzer markierten Bilder, während er sich schon wieder andere Bilder anschaut.

Nachdem die 3 Etappen erreicht sind, habe ich einen schönen abgeschlossenen Prototypen erreicht, der dann wirklich als Bilddatenbank benützt werden kann.  Vor allem wäre dann der letzte „Testbutton“ aus dem Programm wieder entfernt.

Erste Bildverwaltungsfunktion

Montag, September 27th, 2010

Eine Woche ist mein Urlaub nun schon wieder vorbei und der Arbeitsalltag hat mich wieder eingeholt. Aber eigentlich ist es auch ganz schön so. Jeden Tag unterwegs sein, zwischen Wandern, Shoppen und Spielen, kann schon ziemlich anstrengend sein. Und außerdem geht es mit dem BVASystem ja nur weiter, wenn ich zu Hause bin. :-D

So hab ich nun auch gleich die frohe Botschaft, das aus dem BVASystem nun langsam wieder eine richtige Bildverwaltung wird. Als erste Bildverwaltungsfunktion kann das BVASystem nun die Bilder, die sich in der Datenbank befinden, in einer Baumstruktur darstellen. Vielen Fotografen sollte diese Vorgehensweise bekannt vorkommen. Ich selber habe Jahre lang meine Bilder so auf einer externen Festplatte abgelegt: Ein Ordner fürs Jahr, 12 Unterordner für die Monate und da dann wiederrum bis zu 31 Unterordner für die Tage.

Ok, beim BVASystem es ist noch etwas umständlich, das jedes Bild einzeln in die Datenbank aufgenommen werden muss. Von daher glaube ich nicht, das jemand bereit ist, die Funktion wie sie jetzt ist, groß einzusetzen. Aber dies soll sich in den nächsten Versionen des BVASystems dann ändern. Mit der nächsten Version wird der Verzeichnisbaum dann ebenfalls, wie jetzt der Aufnahmedatumbaum, aus der abstrakten Datenschicht kommen. Anschließend ist es für mich dann die wichtigste Aufgabe, die Bilder möglichst automatisch in die Datenbank aufzunehmen.

Wie leicht man sich zeitlich überschätzen kann.

Donnerstag, September 9th, 2010

Für die Version 2.0.0.6 des BVASystems hatte ich mir vorgenommen, die Baumstruktur mit in die Datenschicht aufzunehmen. Während ich mich jeden Abend daran geschafft habe, das Vorhaben umzusetzen, bemerkte ich, das ich mich zeitlich total verschätzt habe. Für das Ziel ist es notwendig, knapp ein Dutzend Klassen zu erstellen bzw. anzupassen. Da ich mir jetzt angewöhnt habe, rund alle 14 Tage eine aktualisierte BVASystem Version hier in den Blog zu stellen, war schnell klar, das das nicht zu schaffen ist. Vorgestern Abend habe ich dann meine Roadmap überarbeitet und heute eine neue Programmversion hochgeladen.

Screenshot vom BVASystem 2.0.0.6

Screenshot vom BVASystem 2.0.0.6

In der jetzt Online gestellten Version habe ich ein paar Bugs behoben. Außerdem bin ich mit der Entwicklung der Datenschicht soweit, das die Datenschicht aufgefordert werden kann, den jeweiligen Baum zu initialisieren bzw. zu erweitern. Oben in der Toolbar befindet sich ein temporärer Button, mit dem das getestet werden kann. Normalerweise sollte nach Klick des Buttons die unspektakuläre Messagebox „Füge Node „TestItem“ zum Baun hinzu.“ angezeigt werden.

Für die nächsten beiden Versionen ist dann geplant, den Baum nach und nach per Datenschicht aufzubauen. Zuerst den Rubrikenbaum aus der Datenbank und sobald das fertig ist, dann der Dateibaum. Nebenbei werde ich natürlich anfallende Bugs beheben. Ich schätze, das ich damit gut 4 … wahrscheinlich eher 5 Wochen zu tun haben werde, da ich mir die nächste Woche im Urlaub „entwicklungsfrei“ gönne.

Eine neue Datenbankstruktur muss her

Dienstag, August 31st, 2010

Wie im letzten Blogeintrag versprochen, sollte die neue Version (die ab jetzt unter Downloads steht) in der Lage sein, in der Datenbankansicht auch Thumbnails anzuzeigen. Da es schon irgendwie blöde wäre, wenn ich die Thumbnails, wie bei den Bildern von der Festplatte, jedes mal neu erzeugen würde, musste eine neue Datenbankstruktur her.

Die neue Datenbankstruktur liegt wieder als MySQL Workbench Datei nach der Installation in dem Installationsverzeichnis. Am sinnvollsten ist es wohl, wenn die Datenbankstruktur mit dem „Forward Engineer…“ neu erzeugt wird. Ich habe selbst versucht, die Struktur mit dem „Synchronize Modell…“ zu aktualisieren, manchmal klappte es, manchmal ging es erst beim zweiten mal ohne Fehler und manchmal ging es gar nicht. Da die ev. vorhandenen Daten von der neuen Version eh nicht mehr gelesen werden können, ist „Forward Engineer…“ sicherlich die einfachere Variante.

Im Programm selber habe ich die Testfunktion zum Speichern von Bildern in der Datenbank an die neue Datenbankstruktur angepasst. Ebenso habe ich das Laden von Datenbankbildern angepasst und um die vorsprochenen Thumbnails erweitert.

Neue Zoomfaktoranzeige

Neue Zoomfaktoranzeige

Da das Wochenende bei mir relativ verregnet war, hatte ich mehr Zeit, um am BVASystem zu programmieren. Um einen relativ alten Eintrag im Bugtracker zu schließen, habe ich mir vorgenommen, dem Nutzer jederzeit Informationen über den aktuellen Zoomfaktor zu geben.  Optisch tat ich mich damit ein wenig schwer, da ich die bisher relativ klare Struktur des Programmes nicht durchbrechen wollte. Herausgekommen ist dabei schlussendlich eine neue Anzeige oberhalb des „großen“ Bildes. Sie setzt sich aus dem Bildnamen und dem aktuellen Zoomfaktor zusammen.

Bilder aus der Datenbank anzeigen

Dienstag, August 24th, 2010

Wieder einmal ist es soweit, das unter Download eine neue Version (2.0.0.4) des BVASystems bereit steht um getestet zu werden. Nachdem in der letzten Version des BVASystems zum ersten mal ein Bild in der MySQL-Datenbank gespeichert werden konnte, ist nicht schwer zu erraten, welche neue Funktionalität ich in den letzten 2 Wochen implementiert habe. Ja, es können sich nun die Bilder aus der Datenbank wieder angeschaut werden.

Ich habe die Datenschicht so erweitert, das es möglich ist, eine Bildliste und das „große“ Einzelbild zu laden. Der Ladevorgang läuft, wie auch bei Bildern von der Festplatte, in gesonderten Threads. Damit ist die Anwendung, auch während ein Bild lädt, weiter bedienbar.

Da der Aufbau der Datenbank noch relativ übersichtlich ist, fehlen bei der Anzeige der Bilder noch einige Funktionalitäten. Zum Beispiel werden in dem Thumbnailstreifen noch keine Thumbnails angezeigt. Auch könnt Ihr noch keinerlei Filter setzten. Es werden immer alle Bilder aus der Datenbank geholt.  Daran möchte ich  in den nächsten Versionen arbeiten. Die „Roadmap“ könnt ihr euch im Bugtracker anschauen.