Ö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.
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.
Nach dem ich lange Zeit lang mit Googles Picasaweb sehr zufrieden war, bin ich heute auf Flickr umgestiegen. Die Gründe waren schlicht weg die Größe und Bekanntheit der Community. Bei Picasa hatte ich immer eher den Eindruck, dass man die Bilder nur für sich selber postet. Auch das Tool ffffl*ckr, dass aufKwerfeldein.de vorgestellt wurde ist ein Grund auf Flickr umzusteigen. Da kann man schnell neue Eindrücke gewinnen.
Die gesamten Plugins im Blog wurden auch schon auf Flickr umgestellt.
Dieser Post beschreibt wie man unterverwendung des Quartz Frameworks zusammen mit Struts2 – also ohne Servlet – und mit dem Tomcat Server Java Jobs zeitgesteuert aufrufen kann. Kompletten Beitrag lesen
Auf diesen HTML 5 Showcase bin ich beim hören des Z! Podcast gestoßen. Auch wenn die Applikation keinen wirklichen Nutzen hat zeigt sie gut, wie schnell und interaktiv die HTML 5 Standards ohne zusätzliche Plugins funktionieren.
Bei jedem Update von Wordpress habe ich mich geärgert, dass ich nicht einfach die integrierte Updatefunktion verwenden kann, da die Datei bookmarks-template.php wie im ersten Teil des Tutorials beschrieben verändert wurde. Damit dies nicht mehr passiert kann man sich behelfen. Dazu kopiert ihr die Funktion aus der Datei bookmarks-template.php raus und erstellt in eurem Theme eine Datei mit dem Namen methods.php. In diese Datei fügt ihr die Funktion ein und speichert diese im Ordner eures Themes. Danach bindet ihr diese mit dem Befehl
include_once(“methods.php”);
in die Datei header.php des Themes ein. Jetzt könnt ihr die Methode im Theme verwenden und gleichzeitig auch den Updatemechanismus von Wordpress nutzen.
Wie schon ein paar mal geschrieben benutze ich Dropbox. Als ich grad im Webinterface war um dort zu überprüfen ob die Synkronisation erfolgreich war kam ein Popup, dass ich ein Dropbox Guru sei und nun 250 MB extra habe. Die Google Suche nach der Meldung
You became a Dropbox Guru and earned 250MB of bonus space!
brachte mich zu diesem Blog, der zu berichten wusste, dass wenn man die ganzen Punkte im Getting started Menü abgearbeitet hat wird man zum Guru und bekommt genau diese 250 MB.
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 gemeinsame .bashrc soll so allgemein gehalten werden wie möglich
Ich will auf jedem Rechner noch lokale Einstellungen vornehmen können aber dafür nicht die gemeinsame .bashrc anfassen 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
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?