[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.

SSD Trim Support unter Mac OSX Lion aktivieren

Ich konnte bisher nicht viel mit dem “Trim” Befehl für SSDs anfangen – bis ich den Grund für diesen Befehl nun selbst erfahren durfte. Nachdem sich meine SSD langsam aber sicher gefüllt hat, wurden kurzerhand die iPhoto und iTunes Librarys auf eine externe USB Festplatte verlagert. Dumm nur: ich hatte danach genauso viel freien Speicher wie vorher. Und dass, obwohl ich an die 10.000 Bilder entfernt hatte.

Das Problem an SSDs ist nämlich: löscht man eine Datei, dann wird, wie bei normalen magnetischen Festplatten auch, nur die Referenz auf diese Datei gelöscht. Die Nullen und Einsen, aus denen die Datei mal bestanden hat, bleiben erstmal auf der Platte liegen. Erst wenn dieser frei gewordene Platz für andere Dateien benötigt wird, so wird er mit den neuen Daten überschrieben. Funktioniert dies bei magnetischen Speichern problemlos, ist es bei Flash Speicher nicht ganz so leicht. Hier muss nämlich der zu schreibende Datenbereich wirklich gelöscht werden.

Normalerweise sollte dies der Controller der Festplatte übernehmen – z.B. in Zeiten geringer Belastung, also wenn die Festplatte gerade nichts anderes zu tun hat. In meinem Fall hat er es offensichtlich nicht getan. Und dafür gibt es nun den sogn. Trim Befehl, den das Betriebssystem an die Platte schicken kann und somit veranlasst, dass frei gewordener Speicher auch gelöscht wird.

Gütigerweise hat Apple den Support dafür auch unter OSX Lion eingebaut – aber nur für die original von Apple verbauten SSDs. Selbst eingebaute SSDs kommen nicht in den Genuss. Da mein Gerät von Gravis zusammengestellt wurde, ist offensichtlich keine original Hardware verwendet worden. Was nicht schlimm ist, aber eben die von mir beobachtete fehlerhafte Speicherplatzanzeige brachte.

Glücklicherweise kann man dieses Verhalten ändern – indem man Trim für ALLE SSDs freischaltet. Und das geht so:

Bevor ihr loslegt: ich übernehme keinerlei Haftung oder Verantwortung, falls ihr eure Hardware oder euer System beschädigt. Alle Aktionen werden auf eigene Gefahr durchgeführt. Sicherheitshalber sollte man vorher nochmal Timemachine laufen lassen, um ein valides Backup vom kompletten System zu haben!

  • Terminal öffnen
  • Backup des zuständigen Treibers erstellen:
  • sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original

  • Treiber patchen:
  • sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

  • Caches löschen:
  • sudo kextcache -system-prelinked-kernel
    sudo kextcache -system-caches

  • Reboot!

Überprüfung: links oben auf den Apfel -> über diesen Mac -> weitere Informationen -> Systembericht -> Serial-ATA anklicken.
Unter “Trim Unterstützung” sollte nun “Ja” stehen.

Will man den Patch wieder rückgängig machen:

  • Patch rückgängig machen:
  • sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00).{9}(\x00\x51)|$1\x41\x50\x50\x4C\x45\x20\x53\x53\x44$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

  • Caches löschen:
  • sudo kextcache -system-prelinked-kernel
    sudo kextcache -system-caches

  • Reboot!

und sollten alle Stricke reißen, dann kann man immer noch das zuvor erstellte Backup wieder einspielen:

sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
reboot

via digitaldj.net

F.Lux – und dein Rechner schont deine Augen

Seit einiger Zeit bin ich fleißiger Hörer der Nerdtanke, einem Podcast von Nerds für Nerds. In Folge 4 wurde ein Tool vorgestellt, welches die Bildschirmfarben eures Rechners an den aktuellen Stand der Sonne anpasst: F.Lux.

Was passiert da genau?
F.Lux prüft per Geolocation, an welchem Ort ihr euch befindet, wodurch die Zeit des Sonnenuntergangs bestimmt werden kann. Ist die Sonne untergegangen, dann ändert die App die Farbtemperatur (ist einstellbar, ich empfehle “Fluorescent”) eures Monitors in wärmere Farben. Dies geschieht entweder innerhalb von 20 Sekunden, oder einer Stunde. Dabei wird die Temperatur langsam gefadet, sodass die Augen sich daran gewöhnen können.

Was bringt das?
Die App Beschreibung sagt folgendes: Obwohl die Sonne am Abend untergeht, schauen wir, wenn unser Monitor mit normalen Farben betrieben wird, Abends in eine weitere Sonne. Dadurch denkt der Körper, dass die Sonne weiterhin scheint und kommt schlechter zur Ruhe – was in schlechtem Schlaf enden kann. Verwendet man F.Lux, erlebt man eine natürliche Abendröte bzw. angenehmere Farben und kann somit besser schlafen.

Sagen wir es mal so: ich hab nicht viel von der Erklärung gehalten. Allerdings muss ich sagen: Das Tool bringt wirklich was. Nach einer Woche Betrieb hab ich es testweise mal deaktiviert und hab bald einen Schock bekommen, wie grell das Bild auf einmal war. Natürlich kann man die Monitorhelligkeit anpassen, was aber nicht so viel bringt wie diese App. Probiert’s einfach mal aus.

ACHTUNG: Falls ihr in den Abendstunden Fotobearbeitung betreiben wollt, sollte das Tool natürlich nicht aktiv sein, weil ihr sonst Farben mit einem Rotstich habt. Dafür gibt’s einen eigenen Menüpunkt – und die Farbtemperatur wird für eine Stunde wieder auf “normal” gestellt.

Sehr geiles weiteres Feature: solltet ihr ein iPhone mit Jailbreak betreiben, so gibt es die App dafür auch im Cydia Store. Sonst gibt es Versionen für Mac, Windows und Linux.

Links
Nerdtanke
F.Lux

[Quicktip] aktuellen git branch im bash prompt anzeigen

Hier mal wieder etwas nettes für die Mac bzw. Linux User unter euch. Mittels der hier beschriebenen Methode könnt ihr euch einfach – sofern ihr euch innerhalb eines mit git versionierten Ordners befindet – den aktuell ausgecheckten Branch anzeigen lassen. Die hier verwendete Methode gilt für die bash. Mit kleinen Abwandlungen sollte es aber auch auf anderen Shells laufen.

In eurem Homeverzeichnis – mittels eines einfachem “cd” gelangt ihr dort hin – müsst ihr nur die Datei “.bash_profile” bzw. unter Linux die “.bash_rc” editieren und folgende Zeile einfügen (es handelt sich um eine Zeile!):

export PS1='\[\033[01;32m\]\u\[\033[01;34m\] \w\[\033[31m\]$(git branch 2>/dev/null|cut -f2 -d\* -s) \[\033[01;34m\]$\[\033[00m\] '

Falls ein “export PS1” bereits vorhanden ist, müsst ihr es ersetzen bzw. beide zusammenführen.

Was passiert? Durch die Formatierung wird das aktuelle Verzeichnis in grün angezeigt, ein evtl. anzeigbarer Branchname in rot. Die Farbe kommt von den Zahlenwerten in den eckigen Klammern. Wenn ihr keine farblichen Veränderungen wünscht, dann lasst die entsprechenden Codes einfach weg.

Falls ihr bereits eigene Formatierungen für die PS1 vorgenommen habt, findet ihr hier den eigentlich relevanten Teil für die Ausgabe des git branches:

$(git branch 2>/dev/null|cut -f2 -d\* -s) 

Nachdem ihr die bash_profile bzw. bash_rc editiert habt, speichert alles ab, schließt das Konsolenfenster und öffnet es dann erneut. Und schon sind die Änderungen sichtbar.

via asemanfar.com