Out-of-Source Builds mit CMake

In der Java-Welt gibt es schon lange die sinnvolle Konvention kompilierte class-Dateien in einer anderen Verzeichnisstruktur abzulegen als den Quellcode. So eine eine Konvention hat viele Vorteile: Falls der Quellcode in ein Versionskontrollsystem eingecheckt wird (und das sollte er auf jeden Fall), müssen nicht umständliche Regeln zum Excluden der kompilierten Dateien geschrieben werden. Dateioperationen im Source-Tree (z. B. ein Aufruf von find oder grep) müssen nicht aufwendig um die kompilierten Dateien herumgelenkt werden Leider ist dies in der C++-Welt teilweise noch nicht ganz angekommen, deshalb hier ein kurzer Reminder, wie solche “Out-of-Source Builds” mit CMake gemacht werden können. ...

March 25, 2009 · updated April 30, 2021 · 2 min

Tücken des Observer-Patterns in Java

Alle paar Monate stolper ich in irgendwelchem Code über das gleiche Problem bei der Implementierung des Observer-Patterns in Java. Deshalb hier noch mal ein kurzer Reminder, was man beachten sollte. Häufig sieht man Implementierungen wie diese: public class ObserverTest { private static interface Observer { void process(); } private static Set observers = new HashSet(); public static void addObserver(Observer observer) { observers.add(observer); } public static void removeObserver(Observer observer) { observers.remove(observer); } private static void notifyObservers() { for (Observer o : observers) { o.process(); } } // es fehlt noch eine main-Methode } Das funktioniert so auch in vielen Fällen problemlos, in folgendem Fall aber nicht: ...

March 18, 2009 · updated April 30, 2021 · 2 min

Google - Diese Website kann Ihren Computer beschädigen.

Google meint es wohl gerade etwas zu gut damit arme Internetnutzer vor den Gefahren des WWW zu warnen und stuft das komplette Internet als Malware-gefährdet ein - inklusive sich selbst. Google - Diese Website kann Ihren Computer beschädigen. Vielleicht wird es doch Zeit, sich nach einer Alternative umzuschauen…

January 31, 2009 · updated April 30, 2021 · 1 min

OpenCV Buch

Die Dokumentation von OpenCV ist ja nicht unbedingt immer gut und in letzter Zeit gab es häufiger mal Probleme mit dem ansonsten recht brauchbaren Wiki. Wer eine gute und ausfallsichere Referenz für OpenCV sucht, sollte sich “OpenCV - Learning Computer Vision with the OpenCV Library” von Gary Bradski und Adrian Kaehler anschauen. Neben einer guten Referenz für OpenCV bietet dieses Buch auch nützliches Hintergrundwissen und Erklärungen zu den verwendeten Algorithmen und Techniken. ...

December 21, 2008 · updated April 30, 2021 · 1 min

Kurioses aus Manpages

Gerade in der Manpage zu dpkg gefunden: -DOktal, --debug=Oktal [...] --debug=help zeigen diese Debugging-Werte an. Nummer Beschreibung 1 Allgemein hilfreiche Fortschrittsinformationen 2 Aufruf und Status der Betreuerskripte 10 Ausgabe für jede verarbeitete Datei 100 Umfangreiche Ausgabe für jede verarbeitete Datei 20 Ausgabe für jede Konfigurationsdatei 200 Umfangreiche Ausgabe für jede Konfigurationsdatei 40 Abhängigkeiten und Konflikte 400 Umfangreiche Abhängigkeiten/Konflikte-Ausgabe 10000 Trigger-Aktivierung und -Verarbeitung 20000 Umfangreiche Ausgabe bezüglich Trigger 40000 Alberne Menge an Ausgabe bezüglich Trigger 1000 Umfangreiches Gelaber beispielsweise über das dpkg/info-Verzeichnis 2000 Verrückte Mengen an Gelaber Seltsamerweise findet sich das nicht in der Online-Version dieser Manpage auf der Ubuntu-Seite… ...

November 13, 2008 · updated April 30, 2021 · 1 min

Geocaching

Vor gut zwei Wochen habe ich mir ein Garmin eTrex H GPS-Gerät geleistet, vor allem um Fotos problemloser “geotaggen” zu können. Da ich in den letzten Wochen aber noch nicht wieder zum Fotografieren gekommen bin und das Wetter ja eh nicht zu gut war musste das eTrex anders beschäftigt werden. Also hab ich mich heute mal wieder aufs Rad gesetzt und etwas “geogecached”. Die gefahrene Route gibts im Google Earth-Screenshot. Habe natürlich gleich beim ersten Multicache erfahren, dass es keine gute Idee ist alte Cache-Beschreibungen zu benutzen. Die Beschreibung hatte ich am 1.11. ausgedruckt, weil ich mir den Cache eigentlich da schon anschauen wollte, bin dann aber doch nicht dazu gekommen. Am 2.11. wurde er dann komplett überarbeitet. So stand ich dann heute vor einem verlassenen Baumstumpf… ...

November 12, 2008 · updated April 30, 2021 · 1 min

Sichtbarkeiten beachten mit Hibernate Search / Lucene

Für ein Projekt musste ich einen Suchmechanismus implementieren. Die Wahl von Hibernate Search war dabei auf Grund vieler Vorteile für das Projekt klar. Allerdings gab es eine Besonderheit in diesem Projekt, die ich bei der Suche beachten musste und für die ich keine existierende Lösung gefunden habe: Bestimmte Einträge der zu indizierenden Entitäten sind nur dann sichtbar, wenn der Nutzer, der die Suche ausführt, eingelogged ist. Diese Einträge sollten aber auf jeden Fall durchsucht werden können. Nach längerer Recherche habe ich keine existierende Lösung gefunden, die diesem Problem begegnet, daher habe ich einen eigenen Ansatz verfolgt. ...

October 6, 2008 · updated April 30, 2021 · 2 min

Oft genutzte Test-Fixtures zentral initialisieren mit JUnit 4

Häufig kommt es beim (Unit) Testing vor, dass viele der Test Cases zumindest teilweise eine gemeinsame Fixture brauchen. So z. B. wenn einige der getesteten Klassen gegen eine Testdatenbank laufen. Hierbei muss sichergestellt werden, dass die Datenbank richtig initialisiert und wieder heruntergefahren wird und sich vor jedem Test im gleichen Zustand befindet. JUnit 4 bietet eine interessante Möglichkeit diese Vorgänge zentral und ohne Code-Duplizierung auszulagern. Damit jede Test-Methode (Annotation @Test in Junit 4) die gleiche Fixture zur Verfügung hat, wird diese üblicherweise in setUp- und tearDown-Methoden hergestellt. Um nicht in jeder von der Datenbank abhängigen Test-Klassen den Datenbank-Code hierin zu duplizieren, ist es mit JUnit 4 möglich eine Basisklasse für alle von der Datenbank abhängigen Tests zu benutzen, die diese Aufgabe übernimmt: ...

October 5, 2008 · updated April 30, 2021 · 2 min

Eclipse-Fangfragen

Eclipse auf amd64 ist ja schon eine Herausforderung. Egal was man tut, es stürzt ständig ab. Heute war es mal so gnädig und hat statt eines Absturzes eine äußerst sinnvolle Frage gestellt: Wer hat schon gerne Probleme? Zumindest auf meinem Rechner reproduzierbar beim Kopieren einer HTML-Datei im Package-Explorer in die Zwischenablage.

September 23, 2008 · updated April 30, 2021 · 1 min

Gutes Hugin Tutorial

Tunnel auf der Radroute am Telemarkkanal (gestitched mit Hugin) Für die Fotos aus Norwegen benutze ich gerade mal wieder den OpenSource Panorama Stitcher Hugin, der in aller Regeln schon hervorragende Ergebnisse liefert. Bei einigen schwierigeren Aufnahmen hat mir allerdings bisher der Background gefehlt, um die entsprechende Parameter zu optimieren. Auf der Suche nach einer guten Erklärung dazu bin ich über dieses Tutorial gestolpert, das viele Tipps mit wesentlich mehr fachlichem Hintergrund gibt, als andere Tutorials für Hugin. ...

August 29, 2008 · updated April 30, 2021 · 1 min