Seiten

Mittwoch, 29. Mai 2013

JavaEE – Arquillian – first version to play

Heute geht es um Arquillian und wie man ein Basisgerüst für die eigene Entwicklung aufbauen kann. Das Hier vorgestellte Projekt kann als Vorlage für eigene verwendet werden und ist die Vorbereitung für den eigenen Einsatz in einem neuen Projekt. Also kann ich es hier auch gleich ein wenig dokumentieren  ;-)
Hier in dem Projekt wird JDK 8 verwendet, die Konfiguration selbst ist aber bis auf die Compiler-Anweisung neutral.
kurz: Was ist Arquillian?
Arquillian ist ein Framework um Tests in den JEE-Containern selbst laufen zu lassen. Soll bedeuten: Es hilft dabei die jUnit-Tests in embedded oder lokal oder remote ApplikationsServern auszuführen.
Arquillian Homepage –> Unter Bitbucket - JavaEE – Arquillian sind alle Sourcen in einem Git-Repository.

Zu Beginn werden die Grundlagen in der pom.xml definiert. Wichtig hierbei ist, dass nur die generischen Teile global definiert werden, die containerabhängigen Dinge in den Profilen. Damit wird erreicht, das durch die Auswahl des Profils der Laufzeitcontainer gewechselt/definiert wird. In der Pom habe ich die Konfiguration für GlassFish, Jboss und einen einfachen Weld-Container hinterlegt.
Interessant ist der Abschnitt im Profil arquillian-jbossas-managed. Unter build->testRessourcen ist ein Beispiel zu sehen wie man für den jeweiligen Container eigene Ressourcen definiert.

Die nächste Konfigurationsstelle ist die Datei  test/ressourcen/arquillian.xml. Hier können die Container selbst mit Konfigurationen belegt werden. In diesem Beispiel habe ich für den jbossas-managed gezeigt, wie man auf eine eigene Version eines JBoss zugreifen kann. Das ist notwendig, wenn man in den Embedded-Tests z.B. Oracle Treiber für DataSourcen benötigt. Es werden also alle Konfigurationen verwendet, die man evtl schon vorgenommen hat.
image
Remote Test auf einem JBoss.
Um einen Test in einem Remote JBoss auszuführen, muss der Jboss zuerst gestartet werden. Wenn dieser hochgefahren ist, kann der Test via maven ausgeführt werden. In diesem Beispiel gehe ich davon aus, das der jboss auf localhost läuft.
In der Datei arquillian.xml unter jbossas-remot ist der Port für den Debugger zu setzen. in meinem Fall 52197 was der Defaulteinstellung unter IntelliJ entspricht.

Mit den Einstellungen kann schon begonnen werden. clean, compile, test. ;-)
Demnächst dann mehr mit praktischen Dingen…

Dienstag, 28. Mai 2013

Atmung: Implantat aus 3D-Drucker rettet Säugling das Leben http://www.golem.de/1305/99463-rss.html

Sonntag, 26. Mai 2013

SPMT – Collector – erste Tests

Ich habe nun ein paar Tests mir einem realen Datenbestand gemacht. Es handelt sich hierbei um sage und schreibe 2 TB unsortierter privater Photos.

Um in diesem Datenbestand noch Ordnung hineinzubekommen bedarf es normalerweise wochenlanger Arbeit. Ich zumindest habe diese Zeit nicht ;-)

Es ergeben sich verschiedene Grundgedanken:

- Wie werden Duplikate gefunden und wie geht man damit automatisch um?

- Ab wann werden manuelle Eingriffe notwendig?

- Besonderheit 3D: Es werden teilweise 3D Aufnahmen gemacht die aus zwei einzelnen Bildern bestehen. Diese werden mit zwei verschiedenen Geräten aufgenommen. Das Problem hier ist, dass weder die Bildnummer noch die Zeit der beiden Geräte synchronisiert gewesen sind. Andere Bilder sind schon im mpo – Format abgelegt. Hier sind beide Bilder in einer Datei zusammen gespeichert.

Annahme: Die Exif-Informationen in den Bildern sind meistens verlässlich. Im Zweifellsfall wird sich immer für die Orginaldatei entschieden, nachbearbeitete Bilder dürfen verloren gehen. (Dieses beruht auf der Tatsache, das der Photograf mir versicherte, dass die wenigsten Bilder nachbearbeitet worden sind.)

 

Hier nun zum Vorgehen bei den ersten Tests:

Es wurden die Dateien aus allen Ordnern in eine Zielstruktur verschoben. Level I Jahresordner, Level II Monatsordner, Level III Tagesordner.

Wenn eine Datei mit dem selben Namen schon vorhanden war, wurde geprüft ob der MD5-Wert gleich ist. Wenn ja, wurde die Datei in eine gleich aufgebaute Ordnerstruktur verschoben die im Hauptverzeichnis duplicate aufgebaut worden ist. War der MD5 – Wert nicht gleich, wird die Datei um eine vortlaufende Nummer im Namen erweitert und im selben Verzeichnis gespeichert. Alleine mit diesem Vorgehen wurden schon sehr viele Duplikate entfernt. Als Referenz diehnt das Aufnahmedatum in den Exif-Informationen.

Freitag, 24. Mai 2013

SPMT – Der Collector-Aufbau

In diesem Abschnitt möchte ich den Teil beschreiben, der die Informationen aus den jeweiligen Verzeichnissen holen wird.

Im Prinziep handelt es sich um einen minmalen Crawler. Beginnend mit einer Liste von Verzeichnissen, wird rekursiv abgestiegen und die Information aus den jeweiligen Dateien extrahiert. Da es sich um Photos handelt, sind natürlich die EXIF Informationen von Interesse.

Hier verwende ich die LIB:  com.drewnoakes metadata-extractor 2.6.2

Der Crawler besteht aus den Hauptkomponenten

- Node: Hier werden die Informationen gespeichert, jeweils ein Node pro Verzeichnisknoten. File/Dir

- Crawler: In diesem Beispiel ein Filesystemcrawler, könnte erweitert werden um andere Quellen-Crawler

- FileExtractor: Zum extrahieren der jeweiligen Information jeweils ein spezieller Extractor.

Dieses wird noch erweitert um Actions, die dann nach einem Extratordurchlauf pro Node gestartet werden kann.

 

Funktion:

Der Crawler bekommt einen Startpunkt und beginnt dort mit dem rekursiven Abstieg. Auf jeden Knoten werden die eine Liste Extraktoren angewendet. Die Informationen in die Attributliste des Node gespeichert. Ein NoteAttribute ist eine einfache Key/Value Kombination.

UML-Bild: (im Repository unter data/uml zu finden)

image

 

 

         

caliper - Microbenchmarking framework for Java - Google Project Hosting

caliper - Microbenchmarking framework for Java - Google Project Hosting:

'via Blog this'

Donnerstag, 23. Mai 2013

SPMT – Small Photo Management Tool

Ich muss gestehen, dass ich gerne fotographiere. An sich ist das nichts schlimmes, nur die Ordnung zu behalten ist da doch ein wenig zeitaudfwendiger.
Aber für routine – Arbeiten gibt es ja zum Glück einen PC. Ich für meinen Teil habe das Problem zu lösen, das die Ordnerstruktur derzeitig sehr flach ist. Es gibt ein Verzeichnis in dem Pro Tag ein Verzeichnis existiert. Die Namenskonvention lautet hier yyyy-mm-dd_Thema_des_Tages.
Als Beispiel z.B. 2010.10.10_Geburtstag_XYZ
Das hat sich eigentlich bewährt, wenn man keine weiteren Ansprüche stellt. Nur was soll man machen wenn Bekannte auf einen zukommen die eine große Festplatte unter dem Armt tragen und um Hilfe bitten hier mal mit Werkzeugen die Bilder aufzuräumen.
Lange Rede kurzer Sinn, es schreit nach einen kleinen Werkzeug in der Programmiersprache meiner Wahl. Java
In einer kleinen Serie werde ich die Entwicklung der einzelnen Komponenten beschreiben.
Die Sourcen sind übrigens unter https://bitbucket.org/svenruppert/spmt-smallphotomanagementtool zu finden.
Hier nochmals der Hinweis: Es handelt sich um experimentelle Software die keinen Anspruch auf Fehlerfreiheit hat. Es kann gerne ausprobiert werden, aber bitte nur auf Kopien arbeiten. Die Software ist nicht “fertig” sondern befindet sich aus aktuellem Anlass mitten in der Entwicklung. (Stand 20130523)

Mittwoch, 22. Mai 2013

IntelliJ – kleine Dinge aus dem Entwickleralltag..

Bei der Verwendung von IntelliJ heute ist mir ein kleines Symbol am Rand aufgefallen. Bei näherer Betrachtung ist mir aufgefallen…  es zeigt mir an dass es hier eine Rekursion gibt.. Nettes Icon..

image

Mittwoch, 15. Mai 2013

Upgrade Debian 6.0 Squeeze to 7.0 Wheeze

Upgrade Debian 6.0 Squeeze to 7.0 Wheeze:

'via Blog this'

#Blognetz: Deutsche Blogger, vereinigt euch - Golem.de

#Blognetz: Deutsche Blogger, vereinigt euch - Golem.de:

'via Blog this'

Kann man mit dem Handy..

...denn ordentlich bloggen? Diese Frage stellt sich dann doch wenn man wie ich jeden Morgen fast 45min in der S und UBahn sitzt. Was ist also besser dazu geeignet als es gleich auszuprobieren?

Für einfache Texte scheint es kein Problem zu sein.. Aber wie sieht es mit Quelltext aus? Auf dem Weg kommen einem Ideen.. Und wie dann bloggen? Zuhause angekommen habe ich dann doch keine Zeit mehr.

Was mir noch fehlt ist eine App mit der ich nicht nur in git Repos navigieren kann. Stellen markieren und dann per Copy & Paste hier hinein..

Angekommen... Mehr also später..