maven-release-plugin and git fix

Thursday, May 2, 2013 11:57:34 PM

After hours of trying and wondering why my release scripts suddenly stopped working, I found out that maven-release-plugin seems to have an issue with git on recent systems. If you invoke mvn release:prepare and find out that the release process just runs against the current SNAPSHOT instead of the release version, you likely stumbled upon bug MRELEASE-812.

The reason for this issue seems to be that mvn release:prepare parses the output of git status. However the status is localized in recent versions of git, and maven-release-plugin fails to parse the localized output.

The coming fix will probably use git status --porcelain, which returns a machine-readable output. However, for the time being

LANG='en_US.UTF-8'
mvn release:prepare

is a valid workaround.

Written by Shred in Javano comments

Tags: git, maven

Fedora: SSD kurz und schmerzlos

Sunday, April 28, 2013 11:42:07 AM

Es gibt schon viele Artikel, wie man SSD-Festplatten richtig in Linux einbindet. Aber entweder sind sie unvollständig oder recht lange. Also, hier eine tl;dr-Fassung – SSD mit Fedora, kurz und schmerzlos.

Trimming

Wenn die SSD trimming kann (was mittlerweile bei allen SSDs auf dem Markt der Fall sein sollte), sollte es natürlich auch verwendet werden. Dadurch ermöglicht man wear levelling, gibt also der SSD die Möglichkeit, den Verschleiß der Speicherzellen zu verteilen.

In der /etc/fstab wird bei jedem Mountpoint, der auf eine SSD-Partition verweist, die Parameter discard angehängt. Eine gute Idee ist es außerdem, noatime hinzuzufügen, um die Schreibzugriffe auf die Platte zu reduzieren. Das sieht dann zum Beispiel so aus:

UUID=939446e3-9bb9-40a6-bf03-2d87bb8f5837 /                       ext4    discard,noatime        1 1
UUID=4f75261d-2e40-4e39-bf63-2a9c517fc73d /home                   ext4    discard,noatime        1 2
UUID=05db751b-5c2b-47da-8577-89ee30d90e56 swap                    swap    defaults        0 0

Das funktioniert mit reinen ext4-Partitionen, aber auch mit LVM- und RAID-Partitionen, jedoch nicht mit Partitionen, die mit LUKS verschlüsselt sind. Swap-Partitionen trimmen immer, ein discard-Parameter ist nicht erforderlich.

Nach einem Neustart sollte man einmalig alle SSD-Partitionen von Hand trimmen:

sudo fstrim -v /
sudo fstrim -v /home

I/O-Scheduler

Was bei mechanischen Festplatten wirklich Zeit kostet, ist das Positionieren des Schreib-Lesekopfes, weshalb Linux versucht, die Daten möglichst zu sammeln und zu gruppieren. Bei SSDs spielt es dagegen keine Rolle, wie fragmentiert die Daten sind. Aus dem Grund kann man das Gruppieren wegfallen lassen und sich über die gewonnene Performance freuen.

Dazu wird eine Datei /etc/udev/rules.d/40-ssd.rules mit folgendem Inhalt angelegt:

ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"

Beim nächsten Neustart verwenden SSD-Platten den noop-Scheduler, mechanische Festplatten weiterhin den für sie optimalen cfq.

Swappiness

SSDs können beliebig oft und schnell gelesen werden, verschleißen aber bei Schreibzugriffen. Swapping auf eine SSD-Partition ist zwar möglich, aber der Lebensdauer nicht sehr zuträglich. Folgende Zeilen in der /etc/sysctl.conf reduzieren das Auslagern auf die Swap-Partition auf ein Minimum.

vm.swappiness=1
vm.vfs_cache_pressure=50

Bei den heutigen Preisen selbst für üppige RAM-Ausstattung wäre es zumindest bei Desktop-Rechnern eine Überlegung wert, ob eine Swap-Partition überhaupt notwendig ist. Nachträglich kann eine Swap-Partition durch Auskommentieren der entsprechenden Zeile in der /etc/fstab deaktiviert werden.

Firefox-Cache

Firefox lagert seinen Cache in das Home-Verzeichnis aus, was eine zusätzliche Belastung für die SSD darstellt. Wer einen Rechner sein Eigen nennt, der mit üppig viel RAM gesegnet ist, kann auf das /tmp-Verzeichnis ausweichen, welches bei Fedora 18 im Arbeitsspeicher statt auf der Festplatte liegt. Das geht leider nur über einen Eingriff in die Eingeweide des Browsers über die URL about:config.

Nach einer Bestätigung, dass man sich benehmen wird, wird mit der rechten Maustaste über Neu - String ein neuer String-Eintrag angelegt. Der Eigenschaftsname lautet browser.cache.disk.parent_directory, der String-Wert /tmp.

Danach muss der Firefox noch neu gestartet werden.

Written by Shred in Fedoradono comments

Tags: Pimp My Fedora, SSD

Gnome 3 findet Nemo

Friday, April 19, 2013 12:59:00 AM

Weiter geht es mit Gnome 3. Die Gnome-Entwickler schreckten nicht davor zurück, dem Dateimananger Nautilus eine ordentliche Feature-Diät zu verpassen. Das Ergebnis ist eigentlich nur noch ein besserer Datei-Dialog. Weggefallen sind Features wie die Baumansicht eines Verzeichnisses oder die Verfügbarkeit einer zusätzlichen Leiste (Taste F3). Für Anfänger verzichtbar sicherlich, und auch zu schwer zu bedienen für die fast schon zwanghafte Fixiertheit der Gnome-Entwickler auf Touchscreens. Für intensivere Anwender sind die Features jedoch unverzichtbar. Das Durchsuchen stark verschachtelter Verzeichnisbäume ist nun zum Beispiel nicht mehr möglich, ohne in einer Flut von Nautilus-Fenstern zu ersaufen.

Die Änderungen wurden von der Community stark kritisiert. Die Cinnamon-Entwickler veröffentlichten als Reaktion darauf den Nautilus-Fork Nemo, der die Features weiterhin enthält. Mit folgendem Dreizeiler lässt sich Nemo auch unter Gnome 3 als Standard-Dateimanager einsetzen:

sudo yum install nemo
sudo mv /usr/bin/nautilus /usr/bin/nautilus.bak
sudo ln -s /usr/bin/nemo /usr/bin/nautilus

Die Lösung ist zwar nicht sehr elegant, aber arbeitet zuverlässig. Einen weniger invasiven Eingriff beschreibt Oliver Foster in einem Bug-Eintrag, allerdings führte das bei mir während der Arbeit zu einem bunten Nebeneinander von Nautilus- und Nemo-Fenstern auf dem Bildschirm.

Wenigstens dieses Mal hatten die Gnome-Entwickler übrigens teilweise ein Einsehen und haben die Baumansicht für Gnome 3.8 wieder eingebaut. Es besteht also die Aussicht, dass der hier beschriebene Workaround in Fedora 19 nicht mehr notwendig sein wird.

Written by Shred in Fedoradono comments

Tags: Cinnamon, F18, Gnome 3, Nautilus, Nemo

Fedora 18: Google Earth installieren

Wednesday, April 17, 2013 11:57:00 PM

Willkommen zurück zu neuen Fedora-Artikeln. Nach einem Ausflug zu Linux Mint bin ich wieder zu Fedora zurückgekehrt und beginne gleich mit einem Klassiker: der Installation von Google Earth auf Fedora 18. Der guten Tradition folgend hat sich Google auch diesmal eine Raffinesse ausgedacht, um uns die Installation nicht allzu leicht zu machen. Aber dazu gleich mehr...

Fangen wir erst einmal mit der obligatorischen Installation eines ganzen Magazins an 32 bit-Paketen an, die unbedingt benötigt werden:

sudo yum install redhat-lsb.i686 gtk2.i686 mesa-libGL.i686 libSM.i686

Besitzer einer Nvidia-Grafikkarte mit proprietärem Treiber benötigen außerdem noch die 32 bit-Version ebendieses Treibers:

sudo yum install xorg-x11-drv-nvidia-libs.i686

Als nächstes können wir das rpm-Paket von Google Earth herunterladen und installieren. Das Paket möchte das Verzeichnis /usr/bin anlegen, was rpm mit einer Fehlermeldung quittiert, da das Verzeichnis natürlich schon existiert. Also brauchen wir ein wenig Gewalt...

sudo rpm -ivh --force google-earth-stable_current_x86_64.rpm

Update: Der folgende Teil ist mit der aktuellen Version von Google Earth nicht mehr notwendig.

Und das war’s schon? Nein, jetzt kommt die eingangs erwähnte Raffinesse, denn an diesem Punkt stürzt Google Earth beim Starten sofort ab. Ohne den Artikel von ioncube wäre ich nie darauf gekommen, dass die Ursache an einer veralteten Library und einem Font liegt. Folgende Zeilen lösen das Problem auf recht pragmatische, aber wirksame Weise:

sudo rm /etc/fonts/conf.d/65-fonts-persian.conf
cd /opt/google/earth/free/
sudo mv libGLU.so.1 libGLU.so.1.bak
sudo ln -s /usr/lib/libGLU.so.1

Dann endlich startet Google Earth auch auf Fedora 18. War ja gar nicht so schwer, oder? ;-)

Miniatur-Wunderland

Sunday, February 24, 2013 8:45:33 PM

If you visit Hamburg and have a few hours to spare, make sure to visit the Miniatur Wunderland in the Speicherstadt. It is the world’s largest model railway, covering an area of more than 1,300 m².

The construction easily degrades your home model railway to a few chipboards with rails attached. Besides model trains, also cars and even planes move there. For example, a fire breaks out in a model palace, and the fire trucks are immediately rushing to the place with blaring sirens. The perfection and the love even for tiniest details is just breathtaking.

The next pictures show just a small extract. There is much more to discover. You could easily spend hours, and wouldn’t have seen everything yet. Make sure to reserve your tickets online, to avoid waiting in a long line.

But enough... It’s picture time!

1/63 2/63 3/63 4/63 5/63 ... View pictures

Nautilus: Wegwerfen wie früher

Monday, March 19, 2012 11:56:22 PM

Unter Gnome 2 war es in Nautilus recht einfach, eine Datei in den Müll zu verschieben: ein Druck auf die “Entf”-Taste reichte aus. Das Verhalten hat sich in Gnome 3 leicht verändert. Um ein versehentliches Löschen zu vermeiden, muss nun zusätzlich die Strg-Taste gedrückt werden.

Wer sich an das alte Verhalten gewöhnt hat, kann es mit ein paar Handgriffen wiederherstellen. Im dconf-editor (es muss eventuell vorher installiert werden) öffnet man dazu erst einmal den Pfad org - gnome - desktop - interface und aktiviert dort die Option can-change-accels.

Als nächstes wählt man im Nautilus eine Datei aus (eine nicht ganz so wichtige, falls etwas schief geht). Mit der Maus öffnet man dann das Bearbeiten-Menü und fährt auf den Menüpunkt In den Müll verschieben. Der Mauszeiger bleibt einfach auf dem Menüpunkt stehen, er wird nicht angeklickt. Nun drückt man die Entf-Taste, um die alte Zuordnung aufzulösen, und ein weiteres Mal die Entf-Taste, um sie als neues Shortcut zu setzen:

Und das war es schon. Von nun an kann wieder mit der Entf-Taste die ausgewählte Datei in den Müll verschoben werden. Sicherheitshalber sollte im dconf-editor die Option can-change-accels wieder abgeschaltet werden, um ein versehentliches Umkonfigurieren zu vermeiden.

Japan: Commemorating the Tōhoku earthquake

Sunday, March 11, 2012 6:46:23 AM

The earthquake, tsunami, and nuclear catastrophe in Japan, the Tōhoku earthquake, is one year ago today. Many has been repaired since then. There was a picture in the press, showing a street that was destroyed by an earthslide, and repaired four weeks later. However, the people in the tsunami areas are still far away from living in a way one could barely call normal.

To commemorate the March 11th, 2011, I put some more photos of our travel to Japan in 2010 online.

がんばれ日本。

1/41 2/41 3/41 4/41 5/41 ... View pictures

Written by Shred in Placesno comments

Tags: Japan, Tōhoku Earthquake

Cilla source code released

Monday, February 27, 2012 12:48:22 AM

Finally, after almost three years of development, I have published the source code of Cilla. Cilla is the software that runs this blog.

I started working on a new blog software on June 3, 2009. It should replace my old home page made with PHP. I decided to write an own blog software in Java, as there was no open source Java blog software that suited my needs. However I never expected that this project would grow that huge. The core modules alone consist of 27,000 lines of code in 295 classes.

The core modules of Cilla are now available on my development site shredzone.org. The source code is published on GitHub. The documentation, a few plugins, and a simple example web frontend are still missing. I will publish them later.

Cilla is published under a GNU Affero General Public License.

Written by Shred in Blogno comments

Tags: Cilla, Github

hibernate3-maven-plugin fails with Java 1.7

Tuesday, January 24, 2012 12:05:32 AM

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.

Written by Shred in Java1 comment

Tags: Hibernate, Java 1.7, Maven

Pimp my Gnome, Teil 6: MGSE auf Fedora 16 installieren

Wednesday, November 16, 2011 1:07:11 AM

Update: Die MGSE-Plugins wurden mittlerweile eingestellt, da Gnome 3 nicht genügend Erweiterungsmöglichkeiten bietet. Stattdessen hat das Linux Mint-Team den Gnome 3-Fork Cinnamon ins Leben gerufen.

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.

Written by Shred in Fedorado6 comments

Tags: F16, Gnome 3, Linux Mint, MGSE