Posts Tagged ‘BVASystem’

Endlich geschafft

Samstag, April 25th, 2015

So lange wie dieses mal habe ich noch nie gebraucht, um wieder eine stabile Softwareversion fertigzustellen. Aber jetzt ist es endlich soweit: die Umstellung auf die generalisierten Datenbankkomponenten ist fertig und die Demo-Datenbank ist einsatzbereit. Ehrlich gesagt ist die Freude bei mir gerade groß, aber Einhundert prozentig zufrieden bin ich trotzdem nicht. Durch die zusätzlichen Codierungen ist die Demo-Datenbank nun deutlich langsamer als eine richtige Datenbankverbindung. Dies fällt gerade beim Import von neuen Fotos auf. Zum Glück lies sich das Problem entschärfen, indem einfach nur kleine Bilder in der Testdatenbank gespeichert werden dürfen.

Trotzdem hat sich der Aufwand für mich aber gelohnt: Der Quelltext ist nun deutlich übersichtlicher, ich habe eine Menge Fehler gefunden und natürlich auch beseitigt. Das beste für mich ist allerdings, das ich nun alle Datenbankfunktionen auch für die angedachte lokale SQLLite-Datenbank nutzen kann. Dort muss ich mich „nur“ darum kümmern, das die Fotos nicht direkt in der Datenbank gespeichert werden dürfen. Genug der Vorrede: nun wird es Zeit für die übliche Zusammenfassung der Änderungen, die seit der letzten stabilen Softwareversion umgesetzt wurden:

Demo-Datenbank zum Testen des Programmes

Die wichtigste Änderung, die sich durch die ganze Arbeit der letzten Monate ergeben hat, ist definitiv die Demo-Datenbank, welche ich hier auf der Homepage installiert habe. Wenn ihr das BVASystem testen wollt, müsst ihr ab jetzt nicht mehr ein eigenes Datenbanksystem aufsetzen. Ihr könnt euch hier einfach und natürlich kostenlos ein Login zur Demo-Datenbank anlegen.

Im Unterschied zu einem normalen Datenbanksystem ist die Demo-Datenbank komplett über HTTP-Anfragen realisiert. Für jeden SQL-Befehl wird eine Anfrage in Form einer XML-Datei erstellt und an ein Script auf dieser Homepage übertragen. Dieses führt den Befehl aus, nachdem geprüft wurde ob der Befehl ausgeführt werden darf. Das Ergebnis wird dann wieder in eine XML-Datei überführt und an das BVASystem übertragen. Durch die Überführung in ein XML-Format ist die Demo-Datenbank natürlich langsamer als ein direkter Datenbankzugriff. Gerade bei großen Binär-Datenfeldern, die auch noch BASE64-Codiert werden müssen, ist die Demo-Datenbank deutlich langsamer. Daher habe ich das BVASystem so modifiziert, das die Bilder in der Testdatenbank möglichst klein werden. Wundert euch also nicht, wenn die Bildqualität nach dem Speichern in der Datenbank schlechter ist als vorher.

Filter und Ansichtseinschränkungen

Neben den ganzen Änderungen, die ich für die Demo-Datenbank gebraucht habe, habe ich in den letzten Monaten eine Menge neuer Filterkriterien und Ansichtseinschränkungen implementiert. Außerdem habe ich die Kriterien neu sortiert, so das sie nun überall gleich gruppiert werden. Folgende Kriterien wurden umgesetzt:

Screenshot BVASystem Version 2.2.2

Screenshot BVASystem Version 2.2.2

Ausblick

Eigentlich hatte ich ja vor, direkt mit der Implementation der lokalen SQLite-Datenbank weiterzumachen. Aber ehrlich gesagt habe ich aktuell nicht die Lust dazu, wieder mit einem so großen Projekt anzufangen. Auch wenn ich bei den generalisierten Datenbankkomponenten, SQLLite bereits vorbereitet habe, wird es wieder zu lange dauern, bis man Ergebnisse sehen kann. Daher werde ich mich in den nächsten Monaten wieder mit Dingen beschäftigen, die sich schneller umsetzten lassen. Welche dies genau sein werden, weiß ich aktuell noch nicht. Fest steht allerdings, das es zeitnah eine Datenbank-Änderung geben wird, da ich Ideen habe, die sich mit der jetzigen Struktur nicht umsetzen lassen.

Auf der Zielgeraden!

Freitag, März 27th, 2015

So langsam macht sich bei mir die Erleichterung breit, da ich gerade eben das komplette alte Modul, welches für die Worker-Datenbankfunktionen genutzt wurde, aus dem Projekt entfernt habe. Es sind nun also alle Datenbankfunktionen auf die generalisierten Datenbankkomponenten umgestellt. Die letzten beiden Tasks, der Bildimport und das Löschen von Bildern, waren allerdings noch zwei schwierige Baustellen. Beide Tasks bestehen aus einer Vielzahl von einzelnen SQL-Befehlen. Beim Bildimport kamen neben der Speicherung der ganzen Daten noch die automatischen Zuordnungen mit Hilfe des Entscheidungsbaumes dazu. Beim Löschen der Bilder liegt die Komplexität in der Aktualisierung der Schlagworte. Mit jedem gelöschten Bild muss die Schlagwortmatrix angepasst werden, damit die häufig zusammengenutzten Schlagworte auch weiterhin richtig ermittelt werden können.

BVASystem Version 2.2.1.97-dev

BVASystem Version 2.2.1.97-dev

Ausblick

In den nächsten Tagen werde ich versuchen, hier auf der Homepage eine BVASystem-Testdatenbank zu installieren. Außerdem möchte ich testen, ob die Datenbank korrekt angesprochen werden kann. Ich hoffe, das ich die zum Teil bisher ungetesteten WebDB-Funktionen korrekt umgesetzt habe. Sofern dem so ist, befinde ich mich jetzt auf der Zielgeraden und kann mich bald wieder anderen Dingen widmen. Und eins weiß ich jetzt schon, nach den umfangreichen internen Änderungen möchte ich jetzt unbedingt wieder etwas machen, wo man die Änderungen sofort erkennen kann.

Internas extrem … (Teil 2)

Donnerstag, März 5th, 2015

Durch die Konzentration auf die internen Umstellungen geht es echt viel schneller voran. Gestern Abend habe ich die Umstellung aller Schlagwort-Worker-Tasks auf die neuen Datenbankkomponenten fertiggestellt. Damit habe ich ein weiteres Zwischenziel erreicht. Es war also wieder einmal an der Zeit, eine neue Entwicklerversion zusammenzustellen. Übrig bleiben jetzt „nur“ noch die beiden komplexesten Tasks. Der Datenbankimport von Fotos und das Löschen von Bildern aus der Datenbank warten noch auf ihre Umsetzung. Und damit verbunden ist noch die Umstellung der automatischen Zuordnungen, welche direkt beim Bildimport mit ausgeführt wird.

Ich möchte heute hier den Versuch starten, euch zahlenmäßig näher zu bringen, wie groß die interne Umstellarbeit eigentlich gewesen ist und wie groß sie aktuell noch ist. Ich bin mir bewusst, das die folgenden Zahlen nicht sehr viel aussagen. Aber ich denke, das sie einem Laien doch helfen können, um sich die Umstellarbeiten besser vorzustellen. Bisher hatte ich alle Worker-Tasks in einem zentralen Datenmodul zusammengefasst, in dem die notwendigen Datenbankkomponenten integriert waren. Die dazugehörige Quelltextdatei war rund 120 kb groß und umfasste rund 2800 Quellcodezeilen. Nach der Umstellung befinden sich die Funktionen zwar immer noch an einer zentralen Stelle, aber da ich die Datenbankkomponenten nun bei Bedarf dynamisch erzeuge, brauche ich nun kein Datenmodul mehr. Es reicht eine einfache Klasse aus. Diese ist nun aktuell 24 kb groß und umfasst 800 Quellcodezeilen. Während das alte Datenmodul auf 60 kb und rund 1400 Quellcodezeilen zusammengeschmolzen ist. Ich habe also knapp die Hälfte geschafft und bisher meinen Quelltext um rund 600 Zeilen vereinfacht.

Internas extrem …

Montag, Februar 16th, 2015

Über die neue BVASystem Version, die ich heute online gestellt habe, gibt es eigentlich wenig zu berichten. Denn ich habe mich entschlossen, ausschließlich an den internen Änderungen zu arbeiten. Zum einen macht es mir aktuell richtig Spaß, die Worker-Tasks nach und nach auf die generalisierten Datenbankkomponenten umzustellen und zum zweiten bringt mich diese Vorgehensweise nun schneller zum eigentlichen Ziel. Sehr schön finde ich es, das ich bei der Umstellung einige Fehler finden konnte. Diese kamen zwar nur zum Tragen, wenn die Ausführung eines Tasks scheitert, aber sie führten dazu, das der Anwender unter Umständen gar nicht über den fehlgeschlagenen Task informiert werden würde.

Am meisten erfreut mich allerdings, das die neuen Implementationen viel kürzer und übersichtlicher sind. Bisher war für jede Ausführung eines SQL-Befehls folgende Befehlsfolge notwendig:

if QSelectData.Active then QSelectData.Close;
QSelectData.SQL.Clear;
QSelectData.SQL.Add(Format(CSELECT_KEYWORDS,[AImageID]));
QSelectData.Open;

Nun kann ich es bei einfachen Abfragen mit einer einzigen Zeile errreichen:

FCon.SelectList(ResultList,Format(CSELECT_KEYWORDS,[AImageID]),'CAPTION');

Brauche ich bei komplexeren Abfragen dann SQL-Parameter, werden es einige Zeilen mehr. Aber auch im alten Quelltextbeispiel sind die Parameter nicht enthalten.

Ausblick

Ich denke, das ich mit der Strategie, möglichst viele interne Änderungen abzuarbeiten, weitermachen werde. So langsam aber sicher möchte ich euch endlich die Demo-Datenbank zur Verfügung stellen können. Daher möchte ich den Zeitplan bis dorthin nicht noch unnötig mit vielen neuen Filtern aufblähen. Bisher habe ich alle Worker-Tasks der Fotoalben und der Schlagwortkategorien umgestellt. Weitermachen werde ich gleich mit den Tasks, die für die Speicherung von Metadaten benötigt werden. Anschließend werde ich mich daran setzen, die Schlagwort-Tasks umzustellen. Zum Schluss sind dann noch die wichtigsten Tasks zum Bildimport übrig.

TStream -> Variant und zurück

Dienstag, Januar 20th, 2015

Zwar habe ich jetzt noch keine neue Version vom BVASystem fertig, aber trotzdem möchte ich meinen Entschluss, hier wieder öfters etwas zu schreiben, in die Tat umsetzen. Der Anlass dieses Blogs ist, das ich gerade sehr glücklich bin, da ich endlich sehen konnte, das meine internen Umstellarbeiten funktionieren. Bisher habe ich mehr oder weniger blind programmiert, ohne zu wissen, ob die gesetzten Ziele damit erreicht werden können. Jetzt, wo ich bereits 3 Worker-Tasks auf die generalisierte Datenbank umgestellt habe, weiß ich es. Und das schönste daran, ich komme nach der Umstellung mit deutlich weniger Code-Zeilen aus. Wiederkehrende Funktionen, wie zum Beispiel das Abfragen eines einzelnen Datenbankwertes habe ich allgemein gültig direkt in den generalisierten DB-Komponenten implementiert. So brauche ich jetzt nur noch eine einzige Zeile, wo ich vor der Umstellung zwischen 10 und 15 Zeilen gebraucht habe.

Als letztes Problem musste ich mich in den letzten Tagen noch um die Blob-Datenfelder kümmern. Diese ließen sich nämlich nicht  direkt wie alle anderen Parametern in einen SQL-Befehl codieren. Im speziellen musste ich ziemlich lange herumprobieren, bis ich ein Stream-Objekt in einen Variant und wieder zurück konvertieren konnte. Falls ihr mal vor einem ähnlichen Delphi-Problem stehen solltet ist hier meine Lösung:

function StreamToVariant(AStream:TStream):Variant;
var Hilf:Variant;
    P:Pointer;
begin
 VarClear(Hilf);
 Hilf := VarArrayCreate([0, AStream.Size−1], varByte);
 if AStream.Size > 0 then begin
  P := VarArrayLock(Hilf);
  AStream.ReadBuffer(P^, AStream.Size);
  VarArrayUnlock(Hilf);
 end;
 Result := Hilf;
end;
function VariantToStream(AVariant:Variant):TStream;
var S:TStream;
    P: Pointer;
begin
 S:= TMemoryStream.Create;
 P := VarArrayLock( AVariant );
 try
  S.Write(P^, VarArrayHighBound(AVariant,1)+1);
 finally
  VarArrayUnlock(AVariant);
 end;
 S.Position := 0;
 Result := S;
end;

Bildfilterung: ISO-Empfindlichkeit

Donnerstag, Januar 8th, 2015

Das neue Jahr beginnt genauso, wie das alte Jahr geendet ist. Es gibt wieder eine neue Entwicklerversion vom BVASystem mit einem neuen Filterkriterium. Hinzugekommen ist dieses mal das Kritierium ISO-Empfindlichkeit, welches bei der Bildfilterung genutzt werden kann. Für dieses Kriterium musste ich allerdings weit mehr Aufwand investieren, als ich eingeplant hatte. Ich finde nämlich die doppelte Schiebereglerkomponente mit logarithmischer Einteilung, wie sie bereits bei der Brennweite eingesetzt wurde, nicht schlecht. Es lag nahe, sie auch für die ISO-Empfindlichkeit einzusetzen. Dafür waren allerdings einige Modifikationen notwendig.

Natürlich wurde als offensichtliches Merkmal eine andere Beschriftung benötigt . Ebenso offensichtlich ist es, das andere Wertebereiche notwendig waren. Dann fiel mir allerdings auf, das es bei der ISO-Empfindlichkeit keinen Sinn macht, nach ISO 317 zu filtern, da bei Kameras nur gängige Werte wie ISO 200 oder ISO 300 eingestellt werden können. Nachdem ich kurz über dies Problem nachgedacht hatte, entschied ich mich, das es bei der Brennweite auch sinnvoll ist, wenn nicht alle „krummen“ Werte eingestellt werden können. Suche ich nach Bildern, die ich mit einem bestimmten Objektiv fotografiert habe, so muss ich eben den Brennweitenbereich des Objektives auswählen. Dieser liegt dann aber beispielsweise zwischen 70 und 200 Millimeter und nicht zwischen 67 und 143 Millimeter. Bei beiden Filterkriterien können nun also nur noch fest vordefinierte Werte eingestellt werden. Ich hoffe, das ich dabei keine gängigen Werte ausgeschlossen habe.

Filterkriterium ISO-Empfindlichkeit

Filterkriterium ISO-Empfindlichkeit

Des weiteren habe ich natürlich wieder relativ viel Zeit in die internen Änderungen gesteckt. So habe ich zum Beispiel eine Transaktionssteuerung in meinem WebDB-Paket implementiert. Auch habe ich bereits ein Script geschaffen, mit dem ihr euch  später für den Zugang zur BVATestdatenbank registrieren könnt.  Außerdem habe ich hoffentlich das Problem gelöst, welches ich mit Blob-Parametern hatte. Diese lassen sich nämlich nicht direkt in den SQL-Befehl integrieren, da die Binärdaten höchstwahrscheinlich unzulässige Zeichen enthalten werden. Am schwierigsten war hier die Lösung für die WebDB. Dort habe ich mich entschieden, die Binärdaten Base64 codiert in eine XML-Datei zu schreiben.

Ausblick

Als nächstes steht nun an, das ich die ersten Worker-Funktionen des BVASystems auf die generalisierten Datenbankfunktionen umstelle. Wichtig ist mir dabei vor allem erstmal, das die bestehende ADO Implementation wieder funktioniert. Als Nebeneffekt erhoffe ich mir, das es eine vollständigere Logfunktion gibt. Bisher habe ich es nämlich nicht geschafft, überall Logging-Befehle einzupflegen. Des weiteren habe ich mir überlegt, ein Filterkriterium zu implementieren, welches die Bildgröße benutzt. Es wird also bald möglich sein, große und kleine Bilder voneinander zu trennen.

Jahresfazit 2014

Mittwoch, Dezember 31st, 2014

Auch dieses Jahr möchte ich hier wieder mit einem Jahresfazit abschließen. Im Gegensatz zum letzten Jahr dachte ich bis eben, das dieses Fazit etwas durchwachsener ausfallen würde, da ich gerade die letzten Monate doch etwas durchhing. Allerdings ist mir eben bewusst geworden, das in den vergangenen 12 Monaten doch recht viel passiert ist.

Neue Schlagwortfunktionen

Die bestehenden Schlagwortfunktionen wurden in diesem Jahr komplettiert. Es ist nun möglich, mehrere Schlagworte zusammenzuführen, Schlagworte umzubenennen und natürlich auch zu löschen. Alle Funktionen sind in einem Popup-Dialog untergebracht, der sich mit der rechten Maustaste über dem Schlagwort öffnen lässt. Außerdem entstand ein Schlagwortkonfigurationsdialog mit dem die Schlagworte bequem zu Schlagwortkategorien zugeordnet werden können.

Ansichtseinschränkung

Völlig neu hinzugekommen ist die Funktion zur Einschränkung der in den Bildlisten angezeigten Fotos. Es stehen mittlerweile einige Kriterien zur Verfügung, mit denen die Ansicht eingeschränkt werden kann. Fotos die den ausgewählten Kriterien nicht entsprechen, werden nun gar nicht mehr angezeigt. Allerdings ist die Ansichtseinschränkung bisher nur für die Datenbankansicht möglich, da sie auf modifizierten SQL-Befehlen basiert.

BVASystem zum Jahresabschluss 2014

BVASystem zum Jahresabschluss 2014

Bildfilterung

Wie angekündigt, wurde die Bildfilterung im vergangenen Jahr ausgebaut. Es sind eine Menge Kriterien dazugekommen, die zur Filterung genutzt werden können. Herausfordernd hierbei war für mich, das fast alle Kriterien eine selbst geschriebene Komponente zur Festlegung benötigten. Dadurch ist aber eine Oberfläche entstanden, mit der ohne viel Text möglichst flexible Filter eingestellt werden können. Neu ist ebenfalls, das eine aktive Bildfilterung durch ein Symbol in der Hauptstatusleiste angezeigt wird.

Sortierung

Die Sortierung der Bildlisten wurde komplett überarbeitet, da sie  bisher leider nicht richtig funktionierte. Nun können alle Listen nach Bildtitel, Aufnahmedatum und nach der Bildfilterung sortiert werden. Gerade letzteres ist sinnvoll, wenn man die zur Filterung passenden Fotos zusammen sehen möchte.

Export

Zu guter letzt ist noch der Bildexport erwähnenswert. Es ist seit diesem Jahr möglich, Fotos die einmal den Weg in die Datenbank gefunden haben, wieder zu exportieren. Dabei stehen verschiedene Modi zur Auswahl, so das Bilder zum Beispiel auch gleich in reduzierter Bildgröße exportiert werden. Dies habe ich benötigt, da ich in meinem Foto-Blog die Bilder nicht in voller Auflösung veröffentliche.

Ausblick

Der Ausblick aufs nächste Jahr fällt mir ehrlich gesagt schwer. Zum einen stehen noch jede Menge interne Änderungen an, die kaum sichtbare Veränderungen bringen und zum zweiten habe ich mittlerweile ein ganzes Buch voller guter Ideen und Wünsche zusammengetragen. Fakt ist, das ich auf jeden Fall erst einmal die angefangenen Änderungen zu Ende bringe. Damit steht fest, das es bald eine Demo-Datenbank geben wird und das früher oder später auch eine lokale SQLite Variante genutzt werden kann. Außerdem habe ich mir gerade vor Weihnachten eine NAS-Festplatte gekauft, auf der ein MySQL-Server läuft. In den nächsten Wochen werde ich ausprobieren, ob der Server für das BVASystem ausreicht. Zu guter letzt habe ich mir vorgenommen, im nächsten Jahr wieder mehr zu bloggen. Dieses Jahr gab es gerade zum ende hin, leider viel zu wenig Artikel.

Die Entscheidung ist gefallen

Dienstag, Dezember 2nd, 2014

Eigentlich dachte ich, das mir die Entscheidung, wie es mit dem BVASystem jetzt weitergehen wird, beim Schreiben des letzten Blogs quasi vor den Füßen lag. Dem war dann aber doch nicht so und ich tat mich relativ schwer, die endgültige Entscheidung zu fällen. Ich machte mich zuerst an die „leichten Änderungen“ und zögerte so die Entscheidung möglichst lange heraus. Nun steht aber fest, das ich die internen Änderungen soweit vorantreiben werde, bis ich eine öffentliche Testdatenbank für das BVASystem anbieten kann. Nach vorsichtigen Schätzungen werde ich dafür ungefähr bis Ende Februar/Anfang März brauchen. Es macht einfach keinen Sinn, vorher noch eine stabile Softwareversion mit halbfertigen Funktionen zu veröffentlichen. Wie auch bisher werde ich versuchen, mich in der Zeit mit neuen Filterkriterien zu motivieren, so dass es auch für euch immer wieder kleinere sichtbare Änderungen gibt.

Apropos Änderungen“:  Wie seit einiger Zeit, habe ich auch in der jetzt zum Download bereitstehenden Version ein weiteres Kriterium zur Ansichtseinschränkung implementiert. Dieses mal neu ist die Ansichtseinschränkung nach dem Bildtitel. Diese ist  genauso wie das bereits bestehende Filterkriterium umgesetzt. In dem Eingabefeld des Kriteriums kann eine beliebige Zeichenfolge eingegeben werden. Dabei steht ein * für eine beliebige Zeichenkette und ein ? für ein beliebiges Zeichen. Wollt Ihr zum Beispiel nach Fotos filtern, die irgendwo im Bildtitel „Hund“ enthalten, so müsst ihr „*Hund*“ als Filterkriterium eingeben. Soll „Hund“ am Anfang des Bildtitels stehen ist „Hund*“ das notwendige Filterkriterium.

Ansichtseinschränkung Bildtitel

Ansichtseinschränkung Bildtitel

Die zweite kleine Änderung war mir persönlich allerdings wichtiger. Beim Umsetzen der neuen Kriterien ist mir nämlich aufgefallen, das ich die Kriterien bei der Ansichtseinschränkung, der Bildfilterung und bei der Definition von automatischen Zuordnungen unterschiedlich gruppiert habe. Daher war es mir nun wichtig, die Gruppierung überall zu vereinheitlichen. Die Kriterien sind nun immer in die 3 Gruppen: Metadaten, Nutzerdaten und Programmdaten aufgeteilt.

Über die Feiertage stehen für mich nun wichtige Änderungen an dem WebDB-Modul an. Ich konnte zwar bereits eine Verbindung zur zukünftigen Testdatenbank herstellen, allerdings ist diese Datenbank aber noch leer und lässt sich nicht verändern und zum zweiten fehlt noch eine Bereich auf dieser Homepage, wo man sich einen Zugang zur Testdatenbank anlegen kann. Ich hoffe, das ich nach Weihnachten soweit bin, das ihr einen ersten Blick auf die Testdatenbank werfen könnt.

Eine schwere Entscheidung: Wie geht es weiter?

Freitag, November 7th, 2014

Auch in der heutigen neuen Programmversion habe ich wieder ein weiteres Filterelement erstellt und an den internen Änderungen weitergearbeitet. Da aber mittlerweile die 3 Monate um sind, die ich normalerweise zwischen den stabilen Softwareversionen einhalten möchte, stellt sich mir die Frage, wie ich jetzt weiter entwickeln soll.

Filterkriterium Besitzer des Bildes

Filterkriterium Besitzer des Bildes

Die internen Änderungen, die ich mir vorgenommen habe, sind mittlerweile alle fertig. Es sind in den letzten Wochen jede Menge neue Filter entstanden. Aber rechtfertigt dies eine neue stabile Softwareversion? Bisher war es ja immer so, das ich eine größere Änderung bis zur nächsten stabilen Softwareversion fertigstellen konnte. Dieses mal sind die „möglichen“ größeren Änderungen noch relativ weit weg.

Zum ersten wäre da die Testdatenbank, welche auf dieser Homepage installiert wird. Nur dafür habe ich bisher fast alle Datenbankzugriffe auf eine neue Zugriffstechnologie umgestellt. Aktuell wäre ich soweit, das alle Funktionen, die keine Änderungen an der Datenbank vornehmen, ausprobiert werden könnten. Mit dem Worker wartet hier aber noch ein recht großes Stück arbeit.

Die zweite große Änderung, auf die ich hingearbeitet habe ist die lokale SQLite Datenbank. Diese habe ich für Anwender eingeplant , die ihre Bilder nicht innerhalb der Datenbank speichern wollen. Auch hierfür bräuchte ich die neuen Datenbankzugriffe. Außerdem fehlt hier noch das Modul, welches die lokale Datenbankstruktur erstellt. Auch muss das Laden der Bilder hierfür noch angepasst werden.

In den nächsten Tagen werde ich mich wohl zwischen 3 Möglichkeiten entscheiden müssen. Entweder ich veröffentliche eine stabile Softwareversion oder ich versuche eine der beiden großen Änderungen abzuschließen. Sicherlich hätte da die Testdatenbank bessere Chancen, da ich den benötigten Aufwand dafür geringer einschätze. Es wäre schön, wenn ich sie dieses Jahr noch fertigstellen könnte. Denn ich denke, das der bisher hohe Aufwand der Datenbankinstallation, viele potentielle Nutzer vom Test des BVASystems abhält. Auf der anderen Seite sehne ich mich allerdings auch nach einem Befreiungsschlag, wie ich ihn immer nach der Veröffentlichung einer stabilen Softwareversion erlebe. Endlich könnte ich dann wieder mit etwas beginnen, wodurch sichtbare Erfolge entstehen.

Ansichtseinschränkung: Brennweite

Donnerstag, Oktober 9th, 2014

Für  die letzte Version des BVASystems hatte ich ja extra eine Komponente geschrieben, mit der ein Brennweiten-Bereich ausgewählt werden kann. Daher lag es nahe, diese Komponente nun ein zweites Mal einzusetzen. Nun findet sie bei der Definition der Ansichtseinschränkung nach der Brennweite ebenfalls Verwendung.

Ansichtseinschränkung Brennweite

Ansichtseinschränkung Brennweite

Die Festlegung der Einschränkung funktioniert genauso, wie bei den anderen Einschränkungen auch. Allerdings stehen diesmal andere Bedingungen zur Auswahl, denn ein „ist gleich“ und „ist ungleich“ macht keinen Sinn, wenn man einen Brennweitenbereich auswählen muss. Daher heißen die beiden Bedingungen, die zur Auswahl stehen, nun „zwischen“ und „nicht zwischen“.

Außerdem habe ich natürlich wieder viel Zeit in interne Umstellungen investiert, die man leider nicht direkt sehen kann. Der größte Brocken war dabei sicherlich die Umstellung der Bildlisten-Abfragen auf die generalisierten Datenbankkomponenten. Schwierig dabei war, das sich das Modul Ansichtseinschränkung, welches sich ja auf die Bildlisten auswirkt, nicht direkt in das neue Konzept integrieren ließ. Erst nach einigen Versuchen fand ich einen Weg, mit dem ich zufrieden bin.

Des weiteren habe ich Änderungen am Administrationstool vorgenommen. Dort habe ich die, zur Herstellung einer Datenbank notwendigen, Verbindungsbefehle erweitert. Es ist nun möglich, für das BVASystem die MySQL ODBC-Treiber in der Version 5.3.x zu benutzen. Auch habe ich gleich einen Verbindungsbefehl für meine selbst entwickelte WebDB eingepflegt. Bei der WebDB wird es allerdings nicht möglich sein, die Datenbankstruktur mit dem Administrationstool zu erstellen. Die notwendigen Scripte werden später Teil des WebDB-Paketes werden.

Für die nächste Version habe ich mir vorgenommen, die Umstellung auf die generalisierten Datenbankverbindungen soweit fertig zu stellen, das alle lesenden Zugriffe auf die Datenbank darüber durchgeführt werden. Damit Ihr dies dann auch möglichst zeitnah testen könnt, habe ich mir überlegt, einen Modus zu schaffen, in dem der Worker gezielt deaktiviert wird bzw. er keine Anfragen mehr annimmt die Änderungen an der Datenbank zum Ziel haben. Sobald ich dies fertig habe und gleichzeitig die Weiterentwicklung der WebDB noch ein Stückchen vorangetrieben habe, sollte es mir endlich möglich sein, euch eine Testdatenbank zur Verfügung zu stellen. Es wird dann also nicht mehr nötig sein, das ihr ein DBMS installieren müsst, um das BVASystem zu testen.