Björn Landmesser

Software-Entwicklung, Fotografie

5. April 2020
von Björn Landmesser
Keine Kommentare

Java Projekt simplecsv auf GitHub

Als ich die Aufgabe hatte ein paar Daten aus einer CouchDb nach CSV zu exportieren, ergaben meine Recherchen keine wirklich brauchbaren Binliotheken, die in der Lage wären eine Java Bean zu exportieren.

Am ehesten wäre noch OpenCSV in frage gekommen. Allerdings ist das die erste Bibliothek, die die Daten in einer „beliebigen“ Reihenfolge exportiert (alphabetisch, was normalerweise nicht die gewünschte Reihenfolge ist). Es ist zwar möglich, die Felder in einer vorgegebenen Reihenfolge zu exportieren, dann aber nicht mit benutzerdefinierten Feldnamen. Man kann sich da zwar was zurechtfrickeln, aber das ist nicht wirklich das, was man will.

Die apache-commons-csv Bibliothek ist an sich sehr gut geeignet, zumal man gerade für große Datenmengen streambasiert arbeiten kann. Allerdings exportiert man dort quasi ein Array von Überschriften, und dann Arrays von den jeweiligen Inhalten. Das ist bei vielen Feldern recht unübersichtlich.

Daher habe ich nun eine Bibliothek simplecsv geschrieben, mit der man Objekte eines bestimmten Typs exportieren kann. Dazu werden alle Felder der Klasse in der Reihenfolge, in der sie angegeben sind, exportiert. Die Bibliothek basiert auf apache-commons-csv, so dass man einen Stream von Objekten hauptspeichersparend exportieren kann.

Es gibt eine Reihe von Annotationen mit denen man Spaltennamen festlegen, Felder vom Export ausnehmen und Konverter definieren kann. Sogar die Reihenfolge kann verändert werden. Und es gibt Möglichkeiten, Felder von Basisklassen zu exportieren.

Dieses Projekt ist auf GitHub verfügbar. Es gibt hierzu eine neue Seite unter Portfolio. Das Release 1.0 ist auf maven central verfügbar.

11. Juli 2013
von Björn Landmesser
2 Kommentare

Refer to resources in CSS with JSF 2

Amazing how difficult it is to find out how to refer to images in a CSS file in JSF 2 using libraries. But finally I found it out with the help of a colleague.

Imagine you have an image background.png in a resource library called images. When you want to use this image as background in CSS you just write

.myclass {
    background-image: url(#{resource['images:background.png']});
}

Not so difficult, isn’t it?

28. Juli 2012
von Björn Landmesser
Keine Kommentare

Irlandfotos

Von unserem Urlaub in Irland gibt es jetzt eine neue  Bildergalerie zum ansehen. Mit dem Wetter hatten wir viel Glück, nachdem es wohl vorher sehr verregnet war. Es gab zwar auch zwischendurch Regen, aber dafür sind die Bilder teilweise auch durchaus interessanter als bei permanentem Sonnenschein mit blauem Himmel.

28. März 2012
von Björn Landmesser
Keine Kommentare

Frühling im Stadtpark

Bei diesem schönen Frühlingswetter habe ich mal ein paar Fotos im Stadtpark gemacht. Sie sind in der Galerie Stadtpark zu finden. So richtig weit ist die Natur an vielen Stellen noch nicht, aber dafür sind die vorhandenen Knospen und Blüten noch frisch.

Das gute Wetter hat heute wohl auch die Flugzeuge gelockt. Sie waren ständige Begleiter während der Tour.

17. Januar 2012
von Björn Landmesser
9 Kommentare

WordPress wechselnde Header-Bilder pro Hauptmenüpunkt

Auf der Seite der Innenstadtgemeinde Itzehoe habe ich ein wenig PHP und CSS eingefügt, um dafür zu sorgen, dass unterschiedliche Seiten unterschiedliche Bilder im Header anzeigen.

Auf meiner Seite, auf der sich dieser Blog befindet, werden unterschiedliche Header mittels Artikelbildern erreicht. Das bedeutet aber, dass man für jede Seite, die ein anderes Bild als den Standard haben soll, ein eigenes Bild hoch laden muss. Auf der Innenstadtgemeinde-Seite soll aber z.B. für Gemeinde und alle Unterseiten von Gemeinde das selbe Bild erscheinen.

Um dies zu erreichen habe ich folgenden PHP-Code in die header.php eingefügt:

<p id="headerimage" class="<?php
  $tmp = substr(get_permalink(), strlen(get_bloginfo('url'))+1);
  echo substr($tmp,0, strpos($tmp,'/'));
?>" />

Zunächst verwundert vielleicht die Verwendung eines Paragraphen als Element für das Hintergrundbild. Das hängt vom gewählten Theme ab. Typischerweise benutzt man hier ein div. Ein img hat den Nachteil, dass die Bild-URL im Attribut src angegeben wird, und nicht über CSS verändert werden kann.

Dieser PHP-Code nimmt die aktuelle Seiten-URL, z.B. http://www.kirche-itzehoe.de/isg/musik/orgeln/, schneidet dort den Anfang http://www.kirche-itzehoe.de/isg/ weg (das, was get_bloginfo('url') zurückgibt) und wirft dann noch alles weg, was nach dem folgenden / kommt. Somit bleibt bei dieser URL noch musik übrig, und somit ergibt sich

<p id="headerimage" class="musik" />

Nun kann man einfach mittels CSS unterschiedliche Bilder verwenden.

#headerimage.kirchen {
  background: url('images/myheaders/altar.jpg');
}

#headerimage.musik {
  background: url('images/myheaders/orgel.jpg');
}

#headerimage.gemeinde {
  background: url('images/myheaders/empore.jpg');
}

Voraussetzung dafür, dass das funktioniert ist eine lesbare Permalink-Struktur. Dazu wählt man unter Einstellungen / Permalinks den Artikelnamen aus.

Die Bilder, die als Header verwendet werden sollen, habe ich per FTP in das Theme-Unterverzeichnis kopiert. Dadurch funktionieren die relativen Links in der CSS-Datei.

10. Januar 2012
von Björn Landmesser
Keine Kommentare

Bilder aus Slowenien

Von meinem Urlaub 2010 in Slowenien habe ich nun noch einige schöne Bilder in eine Galerie gestellt. Die Bilder sind im ersten Teil aus Bled und Umgebung. Dort gibt es die markante Kirche auf der Insel im See, und viele Berge.

Dann kommen Bilder aus Piran, einem Ort an der slowenischen Adria. Dann kommen einige Bilder aus der Tropfsteinhöhle in Postojna (ohne Blitz fotografiert) und schließlich einige Eindrücke aus der slowenischen Hauptstadt Ljubljana.