[Quicktip] Wie ändert man das Hintergrundbild in Mac OSX Mountain Lion für alle Spaces gleichzeitig?

Auch wenn Mac OSX das meiner Meinung nach beste, derzeit verfügbare, Betriebssystem ist, so hat es doch auch mal die eine oder andere Schwäche. Eine davon nervt mich schon ein Weilchen, und nun hab ich endlich die passende Lösung gefunden: Es geht um das Problem, dass die Spaces (also die virtuellen Monitore) alle über eine eigene Einstellung des Hintergrundbildes verfügen – und das auch noch pro Monitor. Sprich, man muss für jeden einzelnen Space das Bild manuell setzen, möchte man es denn wechseln. Da ich 5 Spaces verwende und meist noch einen weiteren Monitor am Macbook hängen habe, bedeutet dies, dass ich das Hintergrund Bild 10x ändern müsste.

Man kann natürlich alle Spaces entfernen, auf dem letzten verbliebenen das richtige Bild auswählen und anschließen die gewünschte Anzahl an Spaces wieder hinzufügen. Aber dies bei jedem Wechsel manuell machen zu müssen ist mir dann doch zu anstrengend. Die Lösung für das Problem ist dann doch recht einfach:

  1. Alle Spaces löschen
  2. auf dem verbleibenden Space das als Hintergrund einen Ordner manuell (Screenshot: 1) auswählen. Ich habe mir hierfür einen Ordner in meinem Bilderverzeichnis namens “Wallpaper” angelegt und mein gewünschtes Hintergrundbild da drin platziert.
  3. bestätigt eure Wahl und wählt unten das Häkchen bei “Bild ändern” und stellt die Drop Down Box auf 5 Minuten. (Screenshot: 2)
  4. Anschließend könnt ihr wieder eure gewünschten Spaces anlegen.
  5. fertig

wallpaper

Möchtet ihr nun euer Hintergrund Bild ändern, reicht es, das ursprüngliche Bild im Wallpaper Ordner zu löschen und das neue drin zu platzieren. Nach spätestens 5 Minuten wird sich euer Hintergrund Bild auf das neue Bild einstellen. Wenn euch das zu lange dauert, könnt ihr die Drop Down Box natürlich auch auf andere Intervalle umstellen – allerdings ist dies eine unnötige zusätzliche Belastung für euren Mac 😉

Ein schönerer Desktop

Und hier mal wieder ein Artikel von meinem ehemaligen Kollegen Alberto, dieses mal zum Thema Desktop Verschönerung auf dem Mac…

Die meisten Mac Desktops sehen eher langweilig aus und weichen kaum vom Standard ab. Wer nicht ganz im Einheitsgrau versinken will, hat immerhin ein spannendes Hintergrundbild. Eine Vielfalt wie gemodete Desktops unter Windows vermisst man jedoch auf den meisten Macs. Dabei gibt es mit dem GeekTool im AppStore durchaus ein mächtiges, zudem kostenloses Werkzeug, um den eigenen Hintergrund zum Leben zu erwecken. Am Beispiel meines eigenen Desktops möchte ich euch demonstrieren, was möglich ist – mit ein paar Zeilen Bash und dem GeekTool.

Der richtige Hintergrund

Alles steht und fällt mit dem richtigem Hintergrundbild, dieses bildet die Basis für unseren lebendigen Desktop. Ich habe mich hierbei für Vaporware 2.0 von http://browse.deviantart.com/?q=aurahack#/d1kj7zb entschieden, da ich ein großer Fan der 8Bit Kunst und ebenso Musikliebhaber bin. Kleiner Bonus: das Bild gibt es auch in einer hohen Auflösung und eignet sich damit Perfekt für mein Retinadisplay.

Typhographie

Die Magie dieses Desktops ist vor allem den Ausgaben der verschiedenen Shellscripte geschuldet. So ist eine entsprechend passende Schrift unerlässlich, wenn man sich die Wirkung nicht durch eine 08/15 Standardschrift zerstören will. Aufgrund des 8Bit Themas des Hintergrundbildes sollte die Schrift auch ein wenig pixelig, eben 8Bit Style sein. Fündig geworden bin ich hier mit dem 8Bit Wonder, welches für alle Ausgaben verwendet wird. Die Farbwahl für die Ausgaben fiehl dabei auf weiß, da dies beim gewählten Hintergrund den besten Kontrast ergibt.

Die Magie

Bis hierher haben wir nur ein gut aussehendes Hintergrundbild – aber das haben viele. Wir wollen mehr. Wir wollen den ultimativen Hintergrund. Um das zu ermöglichen, brauchen wir ein paar Scripte, die wir mittels GeekTool ausführen und richtig auf dem Desktop platzieren.

CPU- und Arbeitsspeicherverbrauch

Beginnen wir in der rechten, oberen Ecke. Wäre es nicht toll, hier den aktuellen Arbeitsspeicherverbrauch und die genutzte CPU im Blick behalten zu können? Hierfür müssen wir einfach ein Shell geeklet aus dem gestarteten GeekTool auf die richtige Stelle auf dem Desktop ziehen und in den Einstellungen das Command Feld mit dem unten stehenden Script befüllen. Dieses liest die CPU Load mithilfe von top aus und formatiert diese als Balkendiagramm mit entsprechender Prozentanzeige. Selbiges wird für den Arbeitsspeicher durchgeführt, nur, dass sowohl Werte für den genutzten und ungenutzten Speicher ausgelesen werden. Damit wir immer aktuell bleiben, sollte die refresh time auf 0.1 Sekunden gesetzt werden. (Anm. Bytelude: bei solch kurzen Refresh-Zyklen immer die CPU und den Akkuverbrauch im Auge behalten – im Zweifel lieber längere Refresh-Raten verwenden)

myCPU=`top -l 1 | awk '/CPU usage/ {print $3}' | sed s/%//`
myCPU=`echo "tmp=$myCPU; tmp /= 1; tmp" | bc`
typeset -i b=9
echo "CPU Usage      \c"
while [ $b -lt $myCPU ]
do
    echo "33[1;37m▇33[0m\c"
    b=`expr $b + 10`
done
#echo "33[1;39m█33[0m\c"
while [ $b -lt 99 ]
do
    echo "33[2;30m▇33[0m\c"
    b=`expr $b + 10`
done
echo "  $myCPU%\c"
echo "\r"
unset myCPU
unset b
myUsedMem=`top -l 1 | awk '/PhysMem/ {print $8}' | sed s/M// `
myFreeMem=`top -l 1 | awk '/PhysMem/ {print $10}' | sed s/M// `
myActiveMem=`top -l 1 | awk '/PhysMem/ {print $4}' | sed s/M// `
myTotalMem=` expr $myUsedMem + $myFreeMem`
myUsedPer=`echo |awk '{print f / t * 100}' f=$myActiveMem t=$myTotalMem`
myUsedPer=`echo "tmp=$myUsedPer; tmp /= 1; tmp" | bc`
typeset -i c=9
echo "Memory Usage   \c"
while [ $c -lt $myUsedPer ]
do
        echo "33[1;37m▇33[0m\c"
        c=`expr $c + 10`
done
#echo "33[1;39m█33[0m\c"
while [ $c -lt 99 ]
do
        echo "33[2;30m▇33[0m\c"
        c=`expr $c + 10`
done
echo "  $myUsedPer%\c"
echo "\r"
unset myUsedMem
unset myFreeMem
unset myTotalMem
unset myUsedPer
unset c
unset count
unset i
unset currname
unset currp
unset a

Dienste im Blick behalten

Als Webentwickler kann man nicht ohne seinen Apache und seine MySQL Datenbank entwickeln. Warum also nicht den Status dieser beiden Dienste im Blick behalten und sofort sehen, ob diese laufen oder gerade offline sind? Selbstverständlich kann hiermit auch jeder andere Dienst im Auge behalten werden, solange dessen Prozessname bekannt ist. Hierfür wird, wie im vorherigen Beispiel, ebenfalls ein Shell geeklet benötigt, welches unten stehendes Script als Command mit bekommt. Dieses durchsucht den Prozessbaum, angezeigt durch ps, nach dem gewünschten Prozess. Wenn dieser gefunden wird, so wird in grün running ausgegeben, ansonsten in rot gestaltet ein offline. Gekapselt ist das ganze in eine Bashfunktion, welche mit echo ausgegeben wird. Auch hierbei sollte die refresh time des geeklets nicht außer acht gelassen werden, jedoch reichen hier auch größere Sekundenwerte.

 typeset -i show=0 function service() { echo $1 | tr '[:lower:]' '[:upper:]' if ["$(ps -Ac | grep $1)" != "" ] then echo "33[1;32m running 33[0m else echo "33[1;31m offline 33[0m fi }
echo $(service httpd) echo $(service mysqld) 

Wer bin ich?

Manchmal gibt es diesen Moment, da fragt man sich: wer bin ich, woher komm ich, wohin gehe ich. Als ITler folgt darauf meist die Frage nach der eigenen IP als zentraler Lebenspunkt – also warum diese nicht ebenfalls immer in Sicht haben? Auch dafür können wir wieder ein Shell geeklet nutzen, welches per curl die eigene externe IP beim DNS-Provider dyndns.org erfragt und aus der Rückgabe per sed alle Zeichen außer Zahlen und Punkten entfernt, da um die eigentliche IP herum etliche HTML-Tags liegen. Das fertige Script sollte danach wie folgt aussehen:

echo External IP: `curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z/ :]//g'`

Hier spielt die Musik!

Da die letzten paar Scripts alle technischer Natur waren und wohl nicht für jeden Nutzer das richtige bieten, sollen nun auch ein paar Informationen angezeigt werden, die nicht nur technikaffinen Menschen etwas bringen. Und da (fast) jeder Musik mag: warum nicht einfach den aktuellen Titel mit Interpreten und zugehörigem Album anzeigen, sofern iTunes gerade läuft? Passt ja auch ganz gut zum gewählten Hintergrund. Glücklicherweise hat iTunes seit einiger Zeit eine Script Schnittstelle, welche per AppleScript abgefragt werden kann und entsprechende Informationen bereit stellt. Da GeekTool aber AppleScripts nicht direkt ausführen kann, lohnt es sich einen Blick auf das Kommando osascript zu werfen, welches nichts anderes tut, als ein übergebenes AppleScript auszuführen und die Rückgabe auszugeben. Mithilfe des Parameters -e kann hier auch eine Zeichenkette als Script übergeben werden und es muss kein zusätzliches Script auf einer nie wieder auffindbaren Stelle im System hinterlassen werden. Unten stehendes Script tut dann nichts weiter als sich alle Prozesse mit ihrem Namen vom System zu holen, diese nach iTunes zu durchsuchen und im Fehlerfall, wenn iTunes also nicht läuft, die Ausgabe auf Stopped zu setzten. Wenn iTunes jedoch gerade läuft holt das Script sich Titel, Album und Interpret des gespielten Lieds und schreibt diese auf den Outputstream. Ein kleiner Trick hierbei sind die new_line Tags, welche als Trennzeichen genutzt werden, um die drei Attribute später untereinander ausgeben zu können. Die Ausgabe geschieht dabei mit einem echo, welches nach awk gepipet wird. Awk kümmert sich darum, dass anhand des new_line Tags die Ausgabe zerlegt und nur der gerade relevante Teil ausgegeben wird. Das fertige Script sieht dann wie folgt aus und kann direkt in einem Shell geeklet laufen gelassen werden:

DATA=$(osascript -e 'tell application "System Events"
    set myList to (name of every process)
end tell
if myList contains "iTunes" then
    tell application "iTunes"
        if player state is stopped then
            set output to "Stopped"
        else
            set trackname to name of current track
            set artistname to artist of current track
            set albumname to album of current track
            set output to trackname & "new_line" & artistname & "new_line" & albumname
        end if
    end tell
else
    set output to "Enjoy the silence"
end if')
echo $DATA | awk -F new_line '{print $1}'
echo $DATA | awk -F new_line '{print $2}'
echo $DATA | awk -F new_line '{print $3}'

Mehr Text

Viel Musik lebt von ihren Lyrics, also zeigen wir diese auch gleich noch mit an. Zumal auf dem Hintergrundbild noch einiges an Platz frei ist, der sonst so leer wirkt. Das folgende Script ist im Grunde genommen nicht viel anders als das vorherige, jedoch wird diesmal nur per AppleScript der Liedtext zum aktuellen Song abgefragt. Sollte iTunes nicht laufen, so wird hier nur ein leerer String zurück gegeben. In der Ausgabe werden alle Vorkommen von “\r” durch “\n” ersetzt, damit diese Umbrüche korrekt umgesetzt werden.

echo "\n\n"
osascript -e 'tell application "iTunes" to lyrics of current track' | tr '\r' '\n'

Zeit ist Geld

Als nächstes sollten wir einen Blick auf den Gameboy in der rechten, unteren Ecke werfen, welcher bisher nichts anzeigt. Das soll sich ändern. Um auch mal ein einfaches Script zu nutzen soll hier nur mit Hilfe des date Kommandos das aktuelle Datum, sowie die Uhrzeit angezeigt werden. Hierzu gibt es nicht viel zu sagen, dem date Kommando wird als Argument mitgegeben, wie das Datum, respektive die Zeit aussehen soll, weitere Optionen hierzu sind in der entsprechenden Manpage nach zu lesen.

date +%d.%m.%y
date +%H:%M

Alle Farben sind schön

Um auch mal eine aufwändigere Kombination von mehreren geeklets zu zeigen und ein wenig Farbe ins Spiel zu bringen, soll unser aktueller Speicherverbrauch in einem Tortendiagramm visualisiert werden, welches die Kopfhörer des Hintergrundbildes überlagert. Dafür brauchen wir zwei geeklets: ein Shell geeklet zum Sammeln der Daten und Generieren der Grafik sowie ein Bild geeklet zum Anzeigen der generierten Grafik. Das Sammeln der Daten geschiet im Grunde genommen durch das Auslesen der Prozessliste mit ps und umformartieren dieser Informationen per cut, sed, awk und anderen UNIX Tools. Hier in die Tiefe zu gehen würde nur unnötig ausarten. Die gesammelten Daten werden danach mit Hilfe der Google Chart API zu einer ansehnlichen Grafik aufbereitet, welche per curl im temporären Ordner abgelegt wird.

SIZE="450x650"
TYPE="pc"
COLOR="E5707070|C5606050|C5A5A050|AAAAFF50|AAAAFF30,E5AB77|F5CB97"
BG="bg,s,00000000"
ps Amo pmem,comm | grep -v % | sed 's/\/.*\///; s/^ //; s/,/\./' > /tmp/memusage.log
grep -v "0\." /tmp/memusage.log > /tmp/memusage2.log
(grep "0\." /tmp/memusage.log | cut -d\  -f1 | paste -sd+ - | bc; echo others) | xargs >> /tmp/memusage2.log
data=`cut -d\  -f1 /tmp/memusage2.log | paste -sd, -`
unused=`echo $data -100 | sed 's/,/\+/g' | bc`
legend=`cut -d\  -f2,3,4,5 /tmp/memusage2.log | sed 's/ /%20/g' | paste -sd\| -`
sum=`vm_stat | head -6 | tail -5 | awk 'BEGIN{sum = 0;} {sub(/\.*$/,""); sum+=$NF} END{print sum}'`
vm_stat | head -6 | tail -5 | awk -F: '//{print $1, 100*$2/'$sum'}' | sed 's/down //; s/,/\./' | cut -d\  -f2,3 > /tmp/memusage3.log
pfree=`grep free /tmp/memusage3.log | cut -d\  -f2`
pinactive=`grep inactive /tmp/memusage3.log | cut -d\  -f2`
pactive=`grep "^active" /tmp/memusage3.log | cut -d\  -f2`
pspeculative=`grep speculative /tmp/memusage3.log | cut -d\  -f2`
pwired=`grep wired /tmp/memusage3.log | cut -d\  -f2`
pmem="$pwired,$pactive,$pinactive,$pspeculative,$pfree"
plab="wired|active|inactive|cache|free"
rm /tmp/memusage.log
rm /tmp/memusage2.log
rm /tmp/memusage3.log
link="http://chart.apis.google.com/chart?cht=$TYPE&chs=$SIZE&chd=t:$pmem|$data,$unused&chco=$COLOR&chf=$BG&chl=$plab|$legend|"
echo $link

So viel zum schwierigen Teil, denn sobald das Bild generiert wurde, muss es nur noch mit Hilfe eines Bild-geeklets angezeigt werden. Mit 230 Pixeln Höhe und Länge ist das geeklet optimal dimensioniert und überdeckt genau die Kopfhörer. Als weitere Eigenschaften müssen neben der schon bekannten refresh time, denn dieses Bild soll alle paar Sekunden neu generiert werden, auch die Bildurl angegeben werden. Hierbei kann per file:///tmp/memusage.png auf das eben generierte Bild zruück gegriffen werden. Um die Infos aktuell zu halten, sollten beide geeklets eine kurze refresh time bekommen.

Wenn auch diese beiden geeklets funktionieren, ist die Arbeit erstmal getan. Jedoch gibt es noch viel zu entdecken und mit Hilfe des MacOSX Unix Unterbaus gibt es noch viele weitere Möglichkeiten, verschiedenste Informationen abzurufen und diese auf dem Desktop darzustellen. Hier kann sich ruhig ausgetobt werden, um die perfekte Balance zwischen nützlicher Datenvisualisierung und optisch ansprechendem Desktop zu finden.

GeekTool Script für die Statusanzeige von Prozessen, wie z.B. httpd oder mysqld

Wenn man auf seinem OSX Desktop immer gleich sehen möchte, ob Services, wie z.B. der Apache Webserver httpd oder der MySQL Server mysqld laufen, kann man folgendes GeekTool Script verwenden:

#!/bin/bash
if [ "$(ps -Ac | grep httpd)" != "" ]; then httpServ="running";
else httpServ="offline"; fi
if [ "$(ps -Ac | grep mysqld)" != "" ]; then sqlServ="running";
else sqlServ="offline"; fi
echo "HTTP : $httpServ";
echo "SQL : $sqlServ";

Das Beispiel kann man nach der Vorlage beliebig für andere Prozesse erweitern. Per GeekTool eingebunden sieht das dann folgendermaßen aus:

Wenn der Service nicht aktiv ist, steht an Stelle von running “offline”…

[Quicktip] xdebug 2.2.0 (php 5.4, MAC OSX) stürzt während der Laufzeit ab

Ein sehr ärgerlicher Bug bzw. mehrere Bugs führen bei xdebug 2.2.0 (aktuelles Release) dazu, dass sich der Debugger während seiner Arbeit einfach aufhängt. Teilweise geschieht dies in Zusammenhang mit Doctrine 2, teilweise aber auch nicht 😉

Es gibt aber einen einfachen Weg, dieses Problem aus der Welt zu schaffen – indem man den neuesten Developer-Branch auf github verwendet (derzeit Version 2.3.0). Und das geht so:

Geht auf eure Mac Console, legt ein Temp-Verzeichnis an oder wechselt in ein solches, und gebt da folgendes ein:

git clone git://github.com/derickr/xdebug.git

Anschließend wechselt ihr in das neu erzeugte Verzeichnis “xdebug” und gebt dort nacheinander

phpize
./configure
make
sudo make install

ein. Nach ein bisschen Wartezeit sollte alles durch sein und ihr könnt mittels

php -v

überprüfen, ob alles korrekt installiert wurde. Wenn in der letzten Zeile “with Xdebug v2.3.0dev” oder größer steht, dann seid ihr auf der neuesten Version und die Abstürze beim Debuggen sollten nicht mehr auftreten.

[Quicktip] Mac Ports meldet, dass Xcode nicht richtig konfiguriert ist

Falls ihr, wie auch ich, bei der Verwendung von Mac Ports (v 2.0.4) unter OSX Lion (10.7.3, mit Xcode 4.3) folgende Fehlermeldung erhaltet:

Warning: xcodebuild exists but failed to execute
Warning: Xcode appears to be installed but xcodebuild is unusable; some ports will likely fail to build.
Warning: You may need to run `sudo xcode-select -switch /Applications/Xcode.app`

und das vorgeschlagene
`sudo xcode-select -switch /Applications/Xcode.app`
genau nichts bringt, dann probiert es alternativ mit folgendem Befehl:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

via mac ports bugtracker

Humblebundle – Introversion

Und hier mal wieder ein Gastbeitrag, diesmal von meinem Kollegen Alberto. Derzeit in der Ausbildung zum Fachinformatiker für Anwendungsentwicklung, beschäftigt sich Alberto in der Freizeit neben allerlei technischen Dingen auch mit der Welt der Games. In diesem Beitrag möchte er auf das Cross-platform Gamespaket “Humblebundle” eingehen. Aber lest selbst…

Die Welt ist im Wandel – jedenfalls die der Gamer. Für Rollenspielfans ist gerade erst Skyrim erschienen, für Shooterfreunde Battlefield 3 und Call of Duty Modern Warfare 3.

Aber auch für Fans von alternativen Spielen ist mit dem aktuellen Humblebundle , Codename Introversion, für Unterhaltung gesorgt.

Da ich kein Fan von bekannten Spielen bin, sondern mich lieber an der Kunstfertigkeit von Undergroundgames und an deren neuen Ideen erfreue, ist dieses Paket natürlich genau richtig für mich.
Im folgenden möchte ich die Spiele des aktuellen Humblebundles kurz vorstellen und vielleicht bei dem ein oder anderen die Lust an Indiegames entfachen.

Das erste Spiel in der Liste ist Darwania.
Fans von Tron dürften sich in dem Szenario sofort heimisch fühlen. Im Spiel befindet man sich in einem virtuellen Themenpark innerhalb eines Computernetzwerkes, der von Viren überrannt wurde. Aufgabe des Spielers ist es, die Vireninfektion zu zerstören und die Bevölkerung, sogenannte Darwinians, zu retten. Dies geschieht durch entsprechende Einheiten, die man bauen kann – wie etwa Truppen oder Ingenieure. Gesteuert wird im Spiel per Maus, die Navigation auf der Karte geschieht per Pfeiltasten. Spaß macht das ganze allemal, wobei man nicht nur einmal seine Einheiten an einen Virus verliert, den man übersehen hat.

Das nächste Spiel, welches man im Humblebundle bekommt, ist sicher für die meisten kein unbekannter Name, denn es handelt sich um das Kultspiel Uplink.
Als Agent müssen wir uns in fremde Computersysteme einhacken, um dort Daten zu stehlen oder zu manipulieren und so die Aufträge, die man von einer Organisation namens Uplink AG bekommt, zu erfüllen.
Größte Schwierigkeit dabei ist, nicht zurück verfolgt zu werden, was eine Verhaftung nach sich zieht.
Daher muss man immer darauf achten, vorsichtig und schnell vorzugehen, da bei einer Verhaftung das Spiel wieder bei Null losgeht.
Dieses Spiel ist für alle Hacker und Nerds ein absolutes Muss und durch seinen recht anspruchsvollen Schwierigkeitsgrad ist auch für längeren Spielspaß gesorgt.

Drittes Spiel im Bunde ist Multiwinia, welches im selben Kontext wie Darwania angesiedelt ist, jedoch zu einem späteren Zeitpunkt spielt.
Die Darwanians sind nicht mehr friedlich sondern haben sich eigene Zivilisationen aufgebaut welche sich gegenseitig bekriegen.
Das ganze ist als Multiplayergame angelegt und sorgt mit 6 verschiedenen Gamemodi nicht so schnell für Langeweile.
Auch wenn die Steuerung anfangs ungewohnt ist, kommt man schnell mit dem simplen Spielprinzip klar und erfreut sich auch bald an den virtuellen Schlachten.

Aller guten Dinge sind zwar Drei, jedoch hat das Humble Bundle mit Defcon noch mehr zu bieten.
In diesem Spiel geht es darum, im kalten Krieg das eigene Land gegen einen nuklearen Angriff zu verteidigen und gleichzeitig die Landesverteidigung nicht außer Acht zu lassen, um die nuklearen Angriffe des Gegners abwehren zu können.
Neben stationären Abschussbasen gibt es auch noch See- und Lufteinheiten, die ebenfalls mit Bedacht einzusetzen sind.
Aufgrund der Masse an Einheiten und Basen kann der ganze Spaß jedoch schnell unübersichtlich werden, sodass man oft mehr um den Überblick als um das Überleben kämpft.

Das beste Spiel im ganzen Paket ist aber mit Abstand Crayon Physics Deluxe, welches man allerdings erst ab einem Mindestbezahlwert von $3,79 erhält.
Auch wenn die Grafik bewusst wie eine Kinderzeichnung gehalten ist, machen die gestellten Aufgaben, die mit Zeichentalent und den physikalischen Gegebenheiten zu lösen sind, allemal Spaß.
Das Ziel in jedem Level ist, dass eine Kugel einen Stern anstößt. Dies erreicht man zum Beispiel durch einen gezeichneten Hammer, der an einem bestehenden Punkt schwingt oder durch geschicktes austarieren von Wippen mithilfe selbstgezeichneter Beschwerer.
Was sich anhört wie Kindergarten, macht in der Realität einfach nur enormen Spaß und an einigen Stellen ist wirklich Köpfchen gefragt, damit der Stern eingesammelt und das Level abgeschlossen werden kann.

Auch wenn die Humblebundles nie grafisch aufwändige Spiele wie etwa Battlefield 3 enthalten, so machen doch die kleinen Indigames immer wieder viel Spaß – nicht nur auf Windows Computern.

Besonders toll ist das Konzept, dass jeder selber entscheiden darf, wie viel und an wen er für die enthaltenen Spiele zahlt.
So kann neben den Entwicklerstudios, an die Electronic Frontier Foundation und an die Child’s Play Charity gespendet werden, um die Spiele freizuschalten.

Die Humblebundles sind weit ab vom langweiligen, grafisch aufwändigen Mainstream, dafür aber gespickt mit Spielen, die anders sind, die sich trauen, neue Spielideen auszuprobieren und einfach nur Spaß machen.
Ich kann nur jedem empfehlen, die Spiele auszuprobieren, denn einige haben definitiv einen starken Suchtfaktor und man freut sich am Ende immer auf das nächste Humblebundle.

[Quicktip] Sicheres surfen über ssh unter OSX

Stellt euch folgende Situation vor: ihr sitzt in einem Caffé und möchtet gern das dort vorhandene, offene Wlan nutzen. Das ist natürlich sicherheitstechnisch nicht gerade optimal, da eure Kommunikation so von jedem Script-Kiddie abgehört werden kann.

Sofern ihr einen Server irgendwo im Internet habt, auf dem ihr euch per SSH einloggen könnt, gibt es einen sehr leichten Weg, eure Verbindung abzusichern:

Im Terminal

ssh -ND 9999 benutzername@server.de

eingeben (an Stelle von 9999 könnt ihr natürlich auch einen anderen freien Port verwenden). Sofern ihr auf dem Server bereits euren public ssh Key hinterlegt habt, dann könnt ihr das Terminal nun minimieren (nicht schließen!). Wenn nicht, werdet ihr nach eurem Passwort gefragt. Eintippen, Enter drücken und nun das Fenster minimieren.

Nun habt ihr einen laufenden Socks Proxy. Richtet entweder direkt im Browser oder in den Netzwerkeinstellungen den Proxy

Server: localhost
Proxy: 9999 (bzw. den von euch gewählten Port)

ein. Ab sofort surft ihr nun über einen sicheren Kanal zu eurem Server und erst dann ins Netz.

[Quicktip] Mac Schlüsselbund übertragen

Um einen Schlüsselbund von einem Mac zum nächsten zu übertragen, sind folgende Schritte nötig:

  • “~/Library/Keychains/login.keychain” vom ursprünglichen Mac zum neuen Mac übertragen
  • Die Datei umbenennen, etwa in “login_alt.kc”
  • “login_alt.kc” nach “~/Library/Keychains/” kopieren
  • die “Schlüsselbundverwaltung” starten
  • “Ablage” – “Schlüsselbund hinzufügen” wählen
  • “login_alt.kc” Datei im Keychains Ordner auswählen und bestätigen
  • “login_alt.kc” erscheint nun links in der Liste der Schlüsselbunde. Mit der rechten Maustaste anklicken und anschließend “Schlüsselbund freigeben” auswählen

Nun wird das Passwort für den Keychain abgefragt. Dieses ist NICHT das Passwort des neuen Macs, sondern das des alten Macs! Anschließend könnt ihr das Passwort für den Schlüsselbund aber ändern.

Ab sofort könnt ihr die gespeicherten Schlüssel wieder wie gewohnt zugreifen.

Host-only Netzwerk Adapter mit Virtualbox

Für ein aktuelles Projekt habe ich etwas mehr mit Virtualisierung zu tun – mit Virtualbox. Wer Virtualbox nicht kennt: Dabei handelt es sich um eine eine Open Source Virtualisierungssoftware, die mittlerweile von Oracle gesponsert wird. Das Tool kann alle gängigen virtuellen Festplatten lesen, und so kann man auch VM-Ware Images übernehmen – man muss eben nur die virtuelle Maschine neu konfigurieren.

Aber zurück zum Thema: In Virtualbox kann man, wie auch in VMWare, verschiedene Netzwerkadapter einsetzen. So gibt es NAT, interne Netzwerke, Host-Only Netzwerke usw.

Unter Virtualbox sind Host-Only und interne Netzwerke fast das gleiche. Der einzige Unterschied ist, dass bei Host-Only auch das Host System per IP erreichbar ist, beim internen Netzwerk aber nur die virtuellen Maschinen miteinander kommunizieren können.

Das Problem ist: will man einen Host-Only Adapter einrichten, sieht man folgendes (zumindest unter Mac):

Wie man an der unteren Fehlermeldung erkennen kann, stimmt etwas nicht. Leider ist Virtualbox nicht so intuitiv und weist darauf hin, was zu tun ist. Im Handbuch wird die Lösung ganz beifällig genannt: man muss ein Host-Only Netzwerk einrichten. Dazu geht man in die Einstellungen, dann auf Netzwerk und klickt da auf den grünen hinzufügen Button:

Anschließend auf den Schraubenzieher klicken und die Adresse in “IPv4 Adresse” kopieren. Dann auf den Tab “DHCP-Server” klicken und den Haken bei “Server aktivieren” setzen. Bei “Server-Adresse” die eben kopierte IP wieder einfügen. Bei Netzmaske “255.255.255.0” eintragen. Bei “Kleinste Adresse” und “Größte Adresse” tragt ihr eine IP Range für die bereitzustellenden IPs ein.

Wenn man nun wieder die Adapter-Einstellungen der virtuellen Maschine aufruft, passt der Dialog wieder:

Wenn man nun mit ok bestätigt, kann man die virtuelle Maschine wieder hochfahren. Der Host-Only Adapter erhält seine IP per DHCP.