Start firefox with a clean profile

There are numerous plugins for Firefox, some of them are very useful as they provide anti-tracking, security and privacy related features.


Nevertheless there are some websites having problems with these plugins. Private browsing mode is not an option in this case as by default most of the plugins are activated there too. If you just need to get things done quickly usually its the best to start with an empty profile in this case.

Continue reading “Start firefox with a clean profile”

Leeren Ordner in git speichern

Manchmal will man einen leeren Ordner speichern. Ohne weiteres lässt das git nicht zu, man kann sich aber eines Tricks bedienen und in dem Ordner folgende .gitignore-Datei anlegen:

# Erklärung, warum der Ordner leer ist
*
!.gitignore

Diese Datei sorgt dafür, daß alle anderen Dateien (“*”) von git ignoriert werden, bis auf “.gitignore” selbst (!.gitignore).

Binärdateien in subversion und die global ignore list

Manchmal kann es notwendig sein, binäre Build-Artefakte zu versionieren (z.B. wenn der Build zu zweitaufwendig ist, die Tools aus Lizenzgründen nicht überall verfügbar sind oder der Quelltext im Fall einer Binärzulieferung gar nicht vorliegt).

Subversion ist hier zwar auch nicht ideal, hat aber im Gegensatz zu verteilten Versionsverwaltungssystemen wie git nicht den Nachteil, daß die komplette History gespiegelt wird. Meist ist man ja nur an der letzten Version interessiert.

Wenn man also Libraries/Executables in subversion speichert, sollte die folgende Option in ~/.subversion/config explizit leer gesetzt sein:

global-ignores =

Continue reading “Binärdateien in subversion und die global ignore list”

Timer und gettimeofday()

TL&DR: Bei Zeitmessungen immer eine monotone Uhr verwendet werden, nicht die normale Systemzeit.

Long story:

In einem speziellen Fall einer Timer-Implementierung wurde gettimeofday() verwendet. Auf dem Entwicklungs-Rechner hat der Timer anstandslos funktioniert. Auf dem Embedded-System mit angeschlossenem GPS hat der Timer nicht gefeuert.

Grund dafür war, daß während des Hochfahrens die Zeit mehrmals gesetzt wurde. Dadurch waren die relativen Abstände der Zeitstempel nicht mehr korrekt. Speziell in dem Fall in dem die System-Zeit 60 Sekunden in die Vergangenheit gesetzt wurde war der 15 Sekunden-Timer plötzlich auf 60+15 Sekunden = 75 Sekunden terminiert.

Bei Zeitberechnungen/Timer ist man in den meisten Fällen an einer Uhr interessiert die für die Laufzeit des Programms bzw. des Systems die Zeit kontinuierlich hochzählt. Das Mittel der Wahl unter Linux ist dafür clock_gettime(CLOCK_MONOTONIC).

Howto build Mosquitto for debian 6 (Wheezy)

Update: Of course Debian 6 is “Squeeze” and “Wheezy” is Debian 7. I won’t correct it in the title (to keep the link stable).

In order to try out owntracks – a promising alternative to google latitude – I needed to install Mosquitto on my server. Mosquitto is an open source MQTT broker.

However the server machine still runs on debian 6. As there are no prebuild packages for that version I had to build mosquitto it on my own.

Continue reading “Howto build Mosquitto for debian 6 (Wheezy)”