KDevelop Includepfade

22.02.2010 - Gerrit Garbereder

Öffnet man mit KDevelop ein Projekt mit Unterordnern meckert die IDE meist, dass Header nicht gefunden wurden und bietet an diesen in die Includepfaddatei (.kdev_include_paths) zu schreiben. Diese Datei liegt dann allerdings in dem Unterordner und ist nur für alle in diesem Ordner befindlichen Dateien gültig. Möchte man nun aber für das gesamte Projekt diese Datei gültig machen oder sogar über Projektgrenzen hinaus für den ganzen Workspace kopiert man einfach die Datei .kdev_include_paths in dem Ordner von dem aus man die Pfade gültig haben will.

Wichtig ist dabei, dass man keine relativen Pfade benutzt bzw. diese beim verschieben entsprechend anpasst.

So long,

Gerrit

Automatisches pingen mit Feedback

27.01.2010 - Gerrit Garbereder

Letzte Woche hat sich der Buildserver sang- und klanglos verabschiedet und war aufeinmal weg. Aufgefallen ist dies aber erst ein paar Tage später, da nur eine Benachrichtigung kommt, wenn ein Build fehlschlägt. Damit das nicht mehr passiert habe ich mir ein kleines Skript geschrieben, was nun eine Reihe von IPs prüfen kann:

#!/bin/bash

# This Tools checks if a ping reaches a server or not and give the user an notification if not.
report=
if [ "$1" == "-v" -o "$1" == "--verbose" ]
then
  report=`date`"\n"
fi

# edit ips here
ips=( 1.2.3.4. 127.0.0.1 )
for ((i=0; i<${#ips[@]}; i++)) ; do
  # accept no package lost
  if ping ${ips[$i]} -c 3 -n 2> /dev/null | grep ", 0%"
  then
    # reachable
    echo ${ips[$i]} is up
    report="$report ${ips[$i]} reachable\n"
  else
    # unreachable
    kdialog --error "${ips[$i]} is not 100% reachable"
    report="$report ${ips[$i]} is not 100% reachable\n"
  fi
done

if [ "$1" == "-v" -o "$1" == "--verbose" ]
then
  kdialog --msgbox "$report"
fi

Hier werden die zu prüfenden IPs angegeben und ggf. eine Dialogbox geöffnet, wenn die IP nicht verlustfrei gepingt werden kann. Dazu wird das Programm kdialog verwendet, welches für den Einsatz unter KDE gedacht ist. Aber ich bin mir sicher, dass es ein ähnliches Programm für Gnome / Xfce & co geben wird. Startet man das Programm mit dem Parameter -v so wird nach jedem Check ein Report angezeigt.

Das ganze ist als Cronjob so eingetragen, dass jede Stunde die IPs gecheckt werden und alle 12 Stunden kommt die verbose Ausgabe, damit auch sichergestellt ist, dass das Skript auch ausgeführt wird.

Diese “Überwachung” der Server ist nur ganz rudimentär aber für diesen Fall vollkommen ausreichend. Wer sich tiefer mit dem Thema Monitoring beschäftigen möchte, dem kann ich Nagios ans Herz legen. Dieses Tool bietet viel mehr Features, aber die Einarbeitungszei ist auch entsprechend größer.

Viel Spaß mit dem Skript.

Gerrit

Eine .bashrc für alle mit Dropbox

14.10.2009 - Gerrit Garbereder

Kennt ihr das auch? Euch fällt irgendein cooler tweak für die .bashrc ein aber müsst diese dann von hand auf dem Firmenrechner und dem Laptop nachziehen? Da mich diese eigentlich kleine Problem störte und eh grad dabei war mir zu überlegen was ich denn tolles mit Dropbox machen kann, kam diese “Strategie” raus.

Die erste Überlegung war welche Anforderungen denn erfüllt sein müssen.

Die Lösung sieht vor, dass es eine Datei im Dropboxverzeichnis gibt – hier .bashrc-share und eine locale – .bashrc-local. Außerdem muss die ~/.bashrc angepasst werden.

In der .bashrc-share habe ich mir den Inhalt aus der .bashrc eines frisch installierten Ubuntu kopiert und aliasses definiert. Außerdem wird der PS1 promt verändert. Naja da kann man sich austoben wie man will. In der .bashrc-local sind Pfade für Umgebungsvariablen gesetzt.

Damit nun die Shell auch die Einstellungen laden kann müssen die beiden Dateien geladen werden. Dies passiert in der ~/.bashrc, denn diese wird von der Shell immer aufgerufen. Deren Inhalt sieht so aus:

# Load shared .bashrc
if [ -f ~/Dropbox/.bashrc-share ]; then
. ~/Dropbox/.bashrc-share
fi


# Load local .bashrc
if [ -f ~/.bashrc-local ]; then
. ~/.bashrc-local
fi

Wie ihr seht besteht ihre einzige Aufgabe darin, die beiden Datein zuladen. Die Reihenfolge ist so gewählt, dass die lokalen Einstellungen die gemeinsamen Einstellungen überschreiben.

Hoffentlich habe ich mich nicht zu verwirrt ausgedrückt :)

Viel Spaß!

Gruß,

Gerrit

Kopete und Google Talk

12.10.2009 - Gerrit Garbereder

Wie man sein Google Talk Konto mit Kopete anreichten können sollte steht auf zig Seiten beschreiben. Zum Beispiel hier oder hier.

Aber irgendwie wollten die alle bei mir nicht funktionieren. Es kam ständig der Fehler, dass die Authorisierung fehlgeschlagen ist. Ich erinnerte mich nun an einen Rechtsstreit zwischen Google und GMail, einen Dienst zum elektronischen Datenversand und auf Grund dessen darf Google Mail in Deutschland nicht GMail heißen. Da liegt nun auch die Lösung – der Benutzername ist nicht DeinName@gmail.com sondern

DeinName@googlemail.com. Habt ihr auch so ein Problem gehabt? Hat es was mit der Namensgebung zu tun? Also tritt das Problem nur in Deutschland auf?

Wie auch immer… jetzt funktioniert es.

So long,

Gerrit

Linux mal anders

25.08.2009 - Gerrit Garbereder

Wozu Linux alles gut sein kann…


Gefunden auf www.Brainblog.to.

Kleiner Helfer zum entfernen temporärer Dateien

31.07.2009 - Gerrit Garbereder

Wer kennt es nicht, die temporären Dateien, die von gedit oder kate angelegt werden. Damit man diese schnell und für alle Unterordner entfernen kann eignet sich dieser Befehl in der Konsole

rm `find -name *~`

Vorsicht! Die Dateien werden sofort gelöscht.
Viel Spaß damit,
Gerrit

ProGuard und Antenna

01.07.2009 - Gerrit Garbereder

Endlich mal wieder – ein neuer Blogbeitrag. Diesmal beschäftige ich mich damit, wie man ein Ant Buildskript für ein Java Micro Edition schreibt. Mit dem Ant Plugin Antenna kann man ganz bequem sein Midlet kompilieren, obfuskieren und packen. Eine ausführliche Anleitung zum generellen des Skripts spar ich mir an dieser Stelle, da im Antenna Repository eine gute Beispiel Datei ist, an der man sich entlang hangeln kann. Dieses kann hier im Repository – Beispiel – gefunden werden.

Anlass für diesen Beitrag ist jedoch die etwas fummelige Angelegenheit mit ProGuard und (K)Ubuntu. Denn Antenna erwartet eine Ordner Struktur, die einen Unterordner lib hat in dem sich die Datei proguard.jar befindet. Bei mir wurde aber nur folgende Struktur gefunden:

/usr/share/ant/lib/ant-proguard.jar
/usr/share/java/ant-proguard.jar
/usr/share/java/proguard.jar

Wie man sieht gibt es im lib Ordner nur eine Datei mit dem Name ant-proguard.jar oder eben keinen lib Ordner. Inhaltlich sollten alle diese jar Packages gleich sein. Deswegen ist in meinen Augen die schnellste und sauberste Lösung einen Softlink in das Verzeichnis /usr/lib/ zu machen. Dazu wird folgender Befehl genutzt:

sudo ln -s /usr/share/java/proguard.jar /usr/lib/proguard.jar

Damit wird ein Softlink von /usr/lib/proguard.jar nach /usr/share/java/proguard.jar erzeugt. Damit das Antskript nun auch die lib findet muss als Pfadangabe /usr/ angegeben werden:

<property name=”wtk.proguard.home” value=”/usr/”/>

Als letzten Schritt muss man nun noch bei dem Befehl wtkpackage das Attribut obfuscate auf true gesetzt werden. Und schon wird ein nichtmehr lesbares Package erstellt.
Hoffe euch konnte die Anleitung weiterhelfen.
So long
Gerrit

C++ mit Vim programmieren

14.05.2009 - Gerrit Garbereder

Vim ist auf nahezu jedem Linuxrechner installiert. Allein aus diesem Grund sollte man mit dem Editor gut umgehen können. Nun gibt es Cheatsheets für Vim wie Sand am Meer. Das man aber mit Vim auch bequem z.B. C++ entwickeln kann hat mir ein Arbeitskollege nun gezeigt. Dazu lese ich die Sourcen unserer Bibliothek ein, dieser spezielle Anwendungsfall ist schon schön aber besser wäre es, wenn es die Codevervollständigung auch für die STL gibt. Auf www.vim.org habe ich genau dieses gefunden: http://www.vim.org/scripts/script.php?script_id=2358.

Das macht das arbeiten mit Vim – nachdem man sich in Vim eingearbeitet hat – noch angehmer und schneller. Zugegeben Vi / Vim ist für Anfänger nervig, aber nach etwas eingewöhnung ist es ein mächtiger, schneller und dennoch schlanker Editor.

Viel Spaß mit Vim!

NAS und Linux

21.03.2009 - Gerrit Garbereder

Vor einiger Zeit habe ich mir ein NAS Gehäuse mit Platz für eine Festplatte gekauft. Dieses kann per Samba angesprochen werden. Auf dieser Platte habe ich meine mp3 Sammlung und wollte deswegen die Files direkt in Rythmbox einbinden. Das klappt auch recht einfach in dem ich den Suchpfad auf

smb://192.168.1.23/mp3s

stelle. Leider merkt man beim Abspielen immer wieder kleine Aussetzer, ob es nun an der Festplatte oder am Player liegt kann ich nicht sagen. Auf jeden Fall bin ich bei meiner Suche auf die Möglichkeit gestoßen die Festplatte als cifs Dateisystem zu mounten. Dazu muss das Paket smbfs installiert sein. Als erstes muss ein Mountpoint erstelt werden typischer Weise sind diese entweder unter /mnt/ (Kein Desktopicon) oder /media/ (Desktopicon). Zum Mounten wird dann der folgende Befehl benutzt

$ sudo mount -t cifs //<IP-Adresse>/<Mountpoint> -o nounix
Bsp:
$ sudo mount -t cifs //192.168.1.23/mp3s /media/nas-mp3 -o nounix

Die Option nounix ist nur dann notwendig wenn das NAS Gerät nicht die UNIX Erweiterungen unterstützt. Bei mir hat sich das durch den Fehler Nummer 20 bemerkbar gemacht. Das Abspielen ist dadurch deutlich flüssiger und Fehlerfrei geworden. Hoffe euch wird es auch helfen. Die Funktion Verbindung zu Server… die es bei meinem Ubuntu 8.04 gibt bindet das Laufwerk auch “nur” per Sambazugriff in Nautilus ein so, dass dies leider nicht den gewünschten Effekt hat. Der oben angeführte Befehl bindet das Laufwerk nur für eine Session ein. Möchte man das Laufwerk permanent ein binden so muss das Laufwerk in die fstab eingetragen werden. Eine gute Anleitung dazu findet ihr hier. In meinem Fall ist dies aber nicht sinnvoll, da das NAS Gerät nur bei Bedarf angeschaltet wird.

Viel Spaß damit,

Gerrit

Live Stream von der CeBIT

03.03.2009 - Gerrit Garbereder

Die CeBIT hat begonnen! Für alle die, die nicht dabei sein können gibt es eine gute Nachricht!
Das Linux Magazin hat einen Live Stream vom CeBIT Open Source Forum eingerichtet. Dort können alle Vorträge live und kostenlos verfolgt werden. Eine Übersicht über alle Vorträge findet ihr hier: http://www.linux-magazin.de/events/cebit_open_source_forum

Solltet ihr keine Zeit haben die Vorträge live zu hören ist das auch kein Problem, da alle Vorträge aufgezeichnet werden und auch später noch verfügbar sein sollen.

Viel Spaß beim zuhören/zusehen.

Gerrit