Unused Parameters in C++

Just some quick thought on how to handle compiler warnings about unused parameters in C++ code. While these warnings are helpful most of the time, sometimes you simply have to ignore a parameter that is required by an interface definition. Then you got three solutions to remove the warning: Change the compiler flags. The worst solution. In other cases these warnings are really helpful. Generally I really like to compile with the highest warning level. Most of the warnings (at least for GCC) really have something to tell. ...

August 9, 2010 · updated April 30, 2021 · 2 min

CMake: installing headers and preserving the directory structure

CMake doesn’t provide a dedicated way to install header files (except for mac). What I wanted to do was to install all headers of my project using the same directory structure as in the source tree. This isn’t as easy as it sounds. Assume you have a list of header files: SET(HS folder/test.h folder/other/test2.h) A simple call to INSTALL doesn’t preserve the folder structure: INSTALL(FILES ${HS} DESTINATION include) This results in all files being directly under $prefix/include. ...

May 31, 2010 · updated April 30, 2021 · 1 min

Using googlemock with the Boost Test Library

googlemock is a framework that allows generating mock objects for unit tests. I’ve decided to use this framework as it looks wells designed and maintained. The default is to use googlemock with Google’s unit testing framework googletest, but as I was already using the Boost Testing Library, I was searching for a solution to use googlemock in Boost Test. Fortunately this isn’t to hard to accomplish. You only have to create a TestEventListener that forwards all results supplied by googletest to the Boost Testing Framework: ...

April 13, 2010 · updated April 30, 2021 · 2 min

Doxygen Support in Eclipse CDT

Since a long time I was wondering why CDT, the C++ support for the Eclipse IDE, doesn’t have a decent support for highlighting and creating comments in the Doxygen format. Today, while searching for customizable code templates per project, I found the setting to enable Doxygen support. It is located in the project properties at “C/C++ General”. Not that intuitive… With this, Doxygen tags in comments are highlighted and comments with parameters etc. are generated automatically like in Java. What’s still missing is the auto-formatter support for these comments and tag-completion. ...

April 12, 2010 · updated April 30, 2021 · 1 min

Flickr machine tags for lenses

I’ve added a simple script to the software section that allows adding machine tags to photos on your Flickr photo stream based on exif information found in the image. I use this script to tag photos with lens information but in general it can be used for every type of tag to add that can be deduced from the exif information.

April 3, 2010 · updated April 30, 2021 · 1 min

C64 Revival - Pong Evolutions

Last year at university I was participating at course for game development on a C64 machine. Let’s get back to the 80s… Most of the time it was fun. But it was also challenging for us to develop thousands of lines of code in Assembler. Something completely different to the object oriented programming I do normally. The game we developed is based on the well known Pong but extends it with some interesting tweaks like two paddles per player etc. ...

November 8, 2009 · updated April 30, 2021 · 1 min

Google Earth: Probleme beim Verarbeiten von Tracks

In die aktuelle Linux-Version von Google Earth (5.1.3506.3999) scheint sich ein recht übler Bug, was das Verarbeiten von Tracks angeht, eingeschlichen zu haben. Bisher hatte ich nie Probleme, GPX-Dateien von meine GPS zu Laden, doch als ich es heute zum ersten Mal mit dieser Version versucht hab, war mein Track nur eine senkrechte Linie auf der Karte. Auch eine mit GPS-Babel nach *.kml konvertierte Variante hatte dieses Problem. Was hingegen funktioniert hat, war das Erstellen, Speichern und erneute Laden eines Tracks in Google Earth. Ein Vergleich meiner KML-Datei mit der von Google Earth selbst generierten hat einen netten Fehler aufgedeckt: Google hat wohl etwas zu viel i18n oder l10n gemacht, so dass beim Erstellen und Laden von Dateien das landestypische Dezimalzeichen (also mit deutscher Locale ein Komma) benutzt wird. Laut GPX- und KML-Spezifikation ist es natürlich totaler Müll, Koordinaten in der Form 52,xxx zu benutzen. Folgender Trick hat Google Earth dann davon überzeugt doch einen Punkt als Dezimaltrenner zu benutzen: ...

September 27, 2009 · updated April 30, 2021 · 1 min

Highlights aus der Boost Graph Library

Template Programming to the Extreme… Manchmal macht es echt eine Freude den Quellcode der BGL (Boost Graph Library) zu lesen. Hier ein paar Highlights: typename T::ThereReallyIsNoMemberByThisNameInT vertices(T const&); // The graph is passed by *const* reference so that graph adaptors // (temporaries) can be passed into this function. However, the // graph is not really const since we may write to property maps // of the graph. Spaßig sind aber auch die Compiler-Fehlermeldungen: ...

July 30, 2009 · updated April 30, 2021 · 9 min

Highlights aus Graz

Doppelhaltestelle Buchstabenschwund Zeitloch

July 11, 2009 · updated April 30, 2021 · 1 min

Enigmail gpg-agent Kommunikation unter KDE4 (Jaunty)

Enigmail hat auf meinem neuen Laptop mit dem kopierten Home-Directory den Dienst verweigert. Bevor ich überhaupt eine Passphrase eingeben konnte erschien bereits die Meldung, dass ich eine falsche eingegeben hätte. Das Problem war auf der Konsole dann noch etwas konkreter sichtbar: gpg: Schwierigkeiten mit dem Agenten - Agent-Ansteuerung wird abgeschaltet Lange Rede, kurzer Sinn: der gpg-agent lief, aber ihm fehlte das entsprechende Programm um den Eingabedialog für das Passwort anzuzeigen. Da der gpg-agent von meiner KDE-Sitzung gestartet wurde, hat pinentry-qt gefehlt. Seltsamerweise wird in Jaunty unter KDE4 nicht pinentry-qt4 benutzt, was bereits installiert war. ...

May 16, 2009 · updated April 30, 2021 · 1 min