hibernate3-maven-plugin fails with Java 1.7
If you’re using Maven’s hibernate3-maven-plugin for creating a DDL file from your entities, you might encounter the following error when using Java 1.7:
Execution default of goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl failed: An AnnotationConfiguration instance is required
The reason seems to be a broken JRE detection in the Mojo code, which mistakenly assumes that Java 1.7 does not support annotations. However, I haven’t checked that in depth.
The fix is pretty easy. In the plugin configuration of the hibernate3-maven-plugin, add an implementation property to the componentProperties like this:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<componentProperties>
<implementation>annotationconfiguration</implementation>
</componentProperties>
</configuration>
</plugin>
This enforces the use of an AnnotationConfiguration instance.
Pimp my Gnome, Teil 6: MGSE auf Fedora 16 installieren
Das aktuelle Fedora 16 bringt uns Gnome 3.2, aber damit auch Kummer, denn die Extensions-API wurde geändert, wodurch viele der Extensions aus dem ersten Teil nicht mehr funktionieren.
Vor ein paar Tagen stolperte ich dann über eine nette Überraschung. Die Entwickler der Distribution Linux Mint bieten in ihrer kommenden Release einen ganzen Satz selbstgebauter Extensions für Gnome 3.2 an, die Mint Gnome Shell Extensions. Und die können sich sehen lassen! Neben den bekannten Erweiterungen zum Entfernen des Barrierefreiheits-Menüs und Hinzufügen eines Menüpunkts zum Hinunterfahren des Rechners bieten weitere Extensions am unteren Bildschirmrand ein Panel mit einem schönen Startmenü, einer Fensterleiste und einem Workspace-Wechsler.
Die MGSE gibt es zwar nicht als fertiges Paket für Fedora, man kann sie aber mit wenigen Handgriffen selbst installieren. Dazu wird zunächst einmal git installiert: sudo yum install git
Folgende Kommandos laden dann den Quelltext für MGSE herunter und installieren ihn im System:
git clone https://github.com/linuxmint/MGSE.git cd MGSE ./test
Nach einem Neustart der Gnome Shell mit Alt-F2 und r können dann die einzelnen Erweiterungen von MGSE im gnome-tweak-tool unter “Shell-Erweiterungen” aktiviert werden. Je nach Geschmack kann außerdem noch über das Tweak Tool der Dateimanager auf dem Desktop aktiviert werden, wie es in Linux Mint 12 voreingestellt ist.
Zwei Stunden mit Fedora 16
Fedora 16 ist draußen, und von vielen schönen Erwartungen getrieben, führte ich sogleich ein Upgrade per USB-Stick auf meinem ThinkPad X100e aus. Das Upgrade dauerte gut eine Stunde. Dann der erste Reboot, und...
...nichts! Auf der Festplatte ist immer noch der alte Bootloader installiert, welcher natürlich den Fedora 15-Kernel nicht mehr finden kann. Dass das schief gehen würde, ahnte ich bereits beim Upgrade, denn es wurde nur angeboten, den Bootloader in den MBR des USB-Sticks oder irgendwo auf sda1 zu installieren. Keine Option bot den MBR der Festplatte an.
Naja, Rescue-Modus gestartet, Grub neu installiert, reboot, System startet endlich, braucht allerdings noch eine kleine Ewigkeit, um die neuen SELinux-Regeln im Dateisystem anzuwenden.
Plymouth und der Login-Screen sehen nun um einiges schöner aus, finde ich. Bei Gnome 3.2 fehlen allerdings sämtliche Extensions, welche ich so mühevoll installiert hatte.
Über das gnome-tweak-tool lassen sich ein Teil der Extensions aktivieren. Bei einem Neustart stürzt Gnome allerdings ab, schwafelt nur eine nichtssagende Fehlermeldung und bietet an, die installierten Extensions einzeln abzuschalten. Wenn ich alle ausschalte und Gnome neu starte, geht die Shell wenigstens wieder.
Die nächsten 30 Minuten verbringe ich damit, die Extensions wieder ans Laufen zu kriegen. Um es vorwegzunehmen: ohne Erfolg. Ein paar Extensions funktionieren, die meisten zeigen jedoch gar keine Funktion, und bei einer gewissen Kombination dieser stürzt dann Gnome wieder ab. Es war mir nicht möglich, herauszufinden, welche Extensions letztendlich für den Absturz verantwortlich sind.
Nach etwas Recherche finde ich bei fedoraforum.org einen Hinweis, wie man die Extensions wieder ans Laufen kriegt. Aber auch der hilft nicht. Die installierten Pakete waren bereits die Richtigen, die Versionen in den .json-Dateien passend.
Irgendwann verliere ich dann die Geduld, und stelle mir die Frage, ob die Gnome-Entwickler die Extensions mit Absicht sabotiert haben, weil sie ihr schönes, pures, unbenutzbares Grunddesign verschandeln? Wie auch immer... Ich lege Fedora 16 erst mal auf Eis, in der Hoffnung, dass irgendwann funktionsfähige Extension-Pakete angeboten werden.
Langsam finde ich es bedauerlich, dass Unity nicht auch für Fedora verfügbar ist...
Fedora 15: cyberJack-Kartenleser in Betrieb nehmen
Vor gut drei Jahren schrieb ich im Fedorablog einen Artikel über sicheres Online-Banking mit HBCI. Mittlerweile ist viel Wasser den Rhein heruntergeflossen, Reiner SCT stellte seinen ctapi-Treiber ein und liefert nun auch keine Fedora-RPMs mehr aus. Höchste Zeit für ein Update!
cyberJack und PC/SC
Zum Betrieb des cyberJack-Kartenlesers waren bisher die Treiber von Reiner SCT notwendig. Im Fedora-Repository gab es zwar ebenfalls passende Treiber, aber sie wurden eher halbherzig gepflegt und funktionierten eigentlich nie so richtig. Mittlerweile hat auch Reiner SCT seinen Fedora-Support eingestellt. Die einzige Möglichkeit, die man nun noch hat, ist, die Sourcen herunterzuladen und selbst zu kompilieren.
Für den, der sich die Mühe scheut, habe ich für Fedora 15 ein entsprechendes Paket zusammengestellt (RPM x86_64, SRPM). Installiert wird es mit
sudo yum localinstall http://static.shredzone.net/pcsc-cyberjack-3.99.5final.SP02-1.fc15.x86_64.rpm
Allerdings ist das Paketieren nicht meine Stärke, und das RPM sicherlich alles andere als perfekt.
Um sich den Quelltext des Treibers selbst zu kompilieren, packt man das Source-Paket als Root aus, wechselt in das ausgepackte Verzeichnis und führt folgende Befehle aus:
yum install pcsc-lite-devel ./configure --libdir=/usr/lib64 make make install
Auf einem 32-bit-System wird die --libdir-Option weggelassen.
In einem nächsten Schritt muss (zum Beispiel über system-config-users) eine Gruppe cyberjack angelegt und müssen alle Benutzer, die den Kartenleser verwenden dürfen, dieser Gruppe zugeordnet werden. Nach einem erneuten Login ist der Kartenleser dann einsatzbereit, wie der Aufruf des Kommandos cyberjack zeigen sollte. Wenn nicht, findet man in cyberjack-report.log wertvolle Hinweise zum Problem und dessen Lösung. Manchmal hilft es, den Kartenleser direkt am Computer anzuschließen und nicht an einem USB-Hub.
Hibiscus
Stellen wir uns dem nächsten Problem. Der CT-API-Standard, der früher verwendet wurde, war ein deutscher Alleingang, der sich nicht durchsetzen konnte. Mittlerweile wird ausschließlich der PC/SC-Standard verwendet, mit dem Hibiscus (und andere reine CT-API Bankingsoftware) allerdings nicht zurechtkommt.
Die gute Nachricht: Es gibt einen CT-API Wrapper, der quasi eine Brücke zwischen den beiden Standards schlägt. Die schlechte Nachricht: Es gibt keine fertigen Fedora-Pakete für diesen Wrapper. Ich biete auch hierfür ein selbstgebautes Paket (RPM x86_64, SRPM) an:
sudo yum localinstall http://static.shredzone.net/pcsc-ctapi-wrapper-0.3-1.fc15.x86_64.rpm
Alternativ kann der Quelltext einfach ausgepackt und als Root mit make && make install installiert werden.
In Hibiscus wird der Kartenleser wie üblich eingerichtet. Als CTAPI-Treiber wird dann der Wrapper angegeben. Bei meinem Paket lautet der Pfad /usr/lib64/libpcsc-ctapi-wrapper.so.0.3. Wenn man ihn selbst gebaut hat, liegt er meist unter /usr/local/lib/libpcsc-ctapi-wrapper.so.0.3.
Weiterhin sollte Tastatur des PCs verwenden deaktiviert werden, da moderne Secoder-Kartenleser dies aus Sicherheitsgründen nicht mehr gestatten. Die PIN muss stets am Gerät eingegeben werden.
Damit kann nun auch Hibiscus auf den Kartenleser zugreifen. Dem Online-Banking steht nichts mehr im Wege!
Geldkarte
Die Sparkassenorganisation bietet ein Browser-Plugin als RPM-Paket zum Download an. Die 64 bit-Version legt das Plugin leider im falschen Ordner ab. Als Anwender kann man das Firefox-Plugin wie folgt aktivieren:
cd .mozilla/plugins ln -s /usr/lib/mozilla/plugins/libSIZCHIP-Plugin-Mozilla-2004.so
Nach einem Neustart des Browsers sollte das Plugin dann unter der URL about:plugins erscheinen. Auf geldkarte.de kann nun zum Beispiel eine eingesteckte Geldkarte analysiert werden.
Ausweisapp
Die cyberJack RFID-Modelle bieten neben der HBCI- und Geldkartenfunktionalität auch die Möglichkeit, den neuen elektronischen Personalausweis zu lesen. Dazu stellt der Bund die Ausweis-App auch für Linux zur Verfügung.
Leider aber nicht für Fedora. Als einziges RPM-basiertes System wird openSUSE unterstützt. Ein Versuch, das RPM unter Fedora zu installieren, scheitert an Abhängigkeiten zu Paketen, die unter Fedora anders genannt werden, und letztendlich an einem inkompatiblen Installationsscript. Ich habe bisher keine Möglichkeit gefunden, die Ausweis-App trotzdem ans Laufen zu kriegen.
Kleines Fazit
Bei den Arbeiten zu diesem Artikel ertappte ich mich mehr als einmal, neidische Blicke zu Ubuntu geworfen zu haben. Es gibt fertige cyberJack-Treiber und offiziellen Support, wogegen bei Fedora die cyberJack-Unterstützung schon immer halbherzig war und nun wohl ganz eingestellt wurde. Auch die Ausweis-App genießt die Unterstützung seines Herausgebers. Selten wurde es mir so bewusst, dass Fedora zumindest als Desktop-Linux in Deutschland offenbar praktisch keine Rolle mehr spielt.
Eine gute Nachricht für alle Steuerzahler dürfte dagegen sein, dass es den Reiner SCT cyberJack RFID standard und komfort derzeit vergünstigt gibt – das Standard-Modell schon für unter 30 Euro. Der Staat fördert diese Modelle mit 25 Euro, also eine gute Gelegenheit, sich etwas von seinen Steuern zurückzuholen. 
Fedora 15: Audio über das Netzwerk
Was hatte ich mich geärgert, als Fedora auf PulseAudio umstieg und dann monatelang eigentlich nichts mehr so richtig lief. Zum Glück sind die Probleme ausgestanden, und jetzt ist es an der Zeit, auch einmal einen Vorteil von PulseAudio zu genießen: dessen Netzwerkfähigkeit. Ich habe Fedora auf einem kleinen HTPC installiert, der an der Stereoanlage angeschlossen ist. Diesen möchte ich verwenden, um vom PC aus Musik auch mal auf den großen Lautsprechern zu hören statt auf den PC-Brüllwürfeln.
Mit PulseAudio geht das verblüffend einfach, wie dieser Artikel zeigt.
Arduino auf Fedora 15 einrichten
Die Arduino-Plattform ist eine offene Entwicklungsplattform für kleine Hardwareprojekte, inklusive einer Entwicklungsumgebung und verschiedener günstiger Boards wie dem Arduino Uno. Wegen verschiedener Bugs ist die Installation der Entwicklungsumgebung auf einem System mit Fedora 15 leider nicht ganz trivial.
Die notwendigen Pakete befinden sich im Fedora-Repository. Zuerst installieren wir also die Arduino-IDE und stellen die Gruppenrechte her, die zum Zugriff auf die USB-Schnittstelle benötigt werden:
sudo yum install 'arduino*' sudo usermod -a -G uucp,dialout,lock $USER
Neben der IDE werden der C-Compiler avr-gcc in Version 4.6.1-2 und die avr-libc in Version 1.7.0 installiert. Diese Version des Compilers wirft allerdings nur Fehlermeldungen. Ein Update steht schon bereit, liegt derzeit aber noch in fedora-testing und muss deshalb explizit installiert werden:
sudo yum --enablerepo=updates-testing update 'avr-*'
Danach ist der avr-gcc in Version 4.6.1-3 und die avr-libc in Version 1.7.1 installiert. Die IDE kann nun gestartet und die Sketches können kompiliert werden.
Allerdings bleibt noch ein Problem: durch eine zu aggressive Compiler-Optimierung funktioniert die delay()-Funktion unter Umständen nicht. So leuchtet bei dem Beispiel Blink die Test-LED dauerhaft, statt zu blinken. Die Ursache dafür lässt sich zum Beispiel durch einen Eingriff in eine Datei beheben. Folgender Patch führt diese Änderung aus:
sudo patch -d /usr/share/arduino/hardware/arduino/cores/arduino wiring.c << __END__
25a26
> #include <avr/delay.h>
106c107
< {
---
> {/*
114a116
> */ _delay_ms(ms);
__END__
Danach steht der Experimentierfreude nichts mehr im Wege!
Server-Update
Ich ziehe momentan meine Webauftritte auf eine neue Server-Hardware um.
Die shredzone läuft bereits auf dem neuen Server. Andere Sites (wie meine Entwickler-Website shredzone.org) folgen als nächstes.
Wegen der Umbaumaßnahmen kann es in den nächsten Tagen immer wieder vereinzelt zu kurzen Ausfällen kommen.
Durch meinen Wechsel von PHP zu Java hatten sich auf dem alten Server ziemlich viele Altlasten angesammelt, die sich zuletzt nur noch schwer warten ließen. Der neue Server wird daher komplett neu konzipiert und eingerichtet. Als Betriebssystem verwende ich CentOS 6.0.
Designlektüre
Als Web-Entwickler mit technischem Hintergrund weiß man mit HTML und CSS umzugehen. Man beherrscht die Werkzeuge, um eine Website zusammenzubauen, im Schlaf. Und trotzdem kann das Ergebnis unbefriedigend sein. Die Farben harmonieren irgendwie nicht so recht, das Layout wirkt wie zusammengewürfelt, die Schriftart hat man schon tausendmal gesehen, und die Seite ist überhaupt zu textlastig. Kurzum: Der ganze Auftritt wirkt strunzlangweilig, vollgefrachtet, kunterbunt oder einfach unprofessionell. Was dann fehlt, ist ein gutes Webdesign. Und das kann man lernen!
The Principles of Beautiful Web Design schließt genau diese Lücke. Jason Beaird geht in einem leicht verständlichen und angenehm zu lesenden Englisch auf die Themen Layout, Farbgestaltung, Textur, Typografie und Bebilderung ein. Dabei richtet er sich auch an Menschen ohne Designausbildung, die von Farbmodellen, Texturen oder Typografie noch nie etwas gehört haben.
Als Praxisbeispiel dient das Redesign einer Coupon-Website. Man erlebt Schritt für Schritt, wie professionelle Designer in Zusammenarbeit mit dem Kunden einen neuen Webauftritt erstellen, und erhält so einen kleinen Einblick hinter die Kulissen einer Webagentur.
Alleine schon die etlichen Links, die das Buch mitbringt, sind das Geld wert. Neben vielen inspirierenden Beispielen sind dies auch alle möglichen Resourcen und Online-Werkzeuge, die beim Erstellen des eigenen Webdesigns helfen. Das Spektrum reicht dabei von kostenlosen Quellen bis hin zu professionellen Anbietern, die hochwertige Materialien für einen kommerziellen Webauftritt bereitstellen.
Nach dem Lesen des Buches wird man zwar nicht über Nacht zu einem begnadeten Webdesigner, aber man weiß dann, was ein gutes und ein schlechtes Design ausmacht, und hat das Wissen, um sein Auge zu schulen, schwächen am eigenen Design zu entdecken und neue Projekte von Anfang an strukturiert anzugehen.
Das Buch richtet sich hauptsächlich an Webentwickler, die den technischen Aspekt der Website-Erstellung bereits beherrschen und nun auch den künstlerischen Aspekt erlernen möchten. Auf die Themen HTML, CSS und JavaScript wird nur sehr knapp eingegangen. Glücklicherweise, möchte ich sagen, denn das technische Fachwissen wird in unzähligen anderen Büchern bereits ausreichend abgedeckt und veraltet früher oder später. Beim Design dagegen mögen Moden kommen und gehen, die vermittelten Grundprinzipien gelten aber bereits seit Jahrhunderten.
The Principles of Beautiful Web Design ist bei SitePoint erschienen. Auf deren Website kann es auch als PDF- und Ebook-Fassung gekauft werden. Eine deutsche Übersetzung bietet der Dpunkt Verlag unter dem Titel “Gelungenes Webdesign: Die Prinzipien der Webseitengestaltung” an.
Mir persönlich gab das Buch einige Hilfe und Inspiration, um Fehler im Design der shredzone zu erkennen und zu beheben. Das neue Layout, das auf dessen Basis entstand, ist viel aufgeräumter und übersichtlicher.
Bildquelle: SitePoint-Verlag (mit freundlicher Genehmigung)
Treppenlicht 2.0
Es ist schon fantastisch, was man mit modernen LEDs alles anstellen kann.
Diese Wendeltreppe zum Beispiel soll dezent und Strom sparend beleuchtet werden, damit man sie auch im Dunkeln sicher benutzen kann. Eine Weihnachtslichterkette erfüllte den Zweck bisher. Allerdings war sie recht schwach und gab der Treppe außerdem einen hässlichen Partykeller-Look.

Dieser Blogartikel beschreibt, wie man sich mit ein wenig handwerklichem Geschick und geringem Aufwand eine Treppenbeleuchtung selbst bauen kann.

