Donnerstag, 22. Dezember 2011

Automatischer Standby/Ruhezustand unter Mac OS X bei nieriger Akkuladung

Seit einiger Zeit wird mein Mac nicht mehr in den Ruhezustand versetzt, wenn der Akku leer ist. Dieses Problem scheinen einige User zu haben.

Bei genauerer Analyse, musste ich feststellen das Mac OS X den Ruhezustand bei leerem Akku z.T. erst zu spät startet (z.B. bei 1% Ladung). Dann reicht die Zeit nicht mehr aus, um den Standby/Ruhezustand auszuführen und der Mac geht einfach aus. Neben dem nervigen Reboot können dabei auch Daten verloren gehen.

Das gleiche Problem kann auch bei älteren Akkus auftreten die schon nicht mehr genug Saft liefern, bevor sie die 1% Ladung erreichen. Leider bietet Mac OS X keine Möglichkeit die Schwelle/Mindestladung für den automatischen Standby festzulegen. Abhilfe schafft da ein kleines Script, das regelmäßig per cron gestartet wird.

Dazu wie folgt vorgehen:

1) Das Script /bin/standby.sh mit folgendem Inhalt anlegen:

#!/bin/bash
pmset -g batt | grep -E "\W[2-4]%;" | grep discharging && pmset sleepnow


2) Die folgende crontab mit crontab -e erstellen, um das Script jede Minute auszuführen:

#min hour mday month wday command
* * * * * /bin/standby.sh

Nun wird einmal pro Minute gecheckt ob der Akku sich gerade entlädt (discharging) und nur noch zwischen 2-4% Ladung hat. Wird eines dieser Ladungslevel erreicht, wird der Mac in den Standby/Ruhezustand versetzt.

Das Level lässt sich hier von 0-9% festlegen, was in den meisten Fällen ausreichen sollte. Über eine Anpassung des regelären Ausdrucks des grep Befehls, können auch noch höhere Level eingestellt werden. Das ist u.U. für ältere Akkus interessant.

Sonntag, 17. Juli 2011

Debugging von PHP mit IntelliJ IDEA, MAMP und Xdebug unter MacOSX

Die neuste Version von MAMP herunterladen.

Die neuste Version von IntelliJ IDEA (Ultimate für PHP-Support) herunterladen.

Die neuste xdebug-Version hier herunterladen. Nach dem Entpacken die xdebug.so aus dem Verzeichnis mit der richtigen Version ins php-Verzeichnis von MAMP kopieren.

cp xdebug.so /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/

Anschließend muss noch die php.ini von MAMP angepasst werden.

vi /Applications/MAMP/conf/php5.3/php.ini

Nun nach dem Abschnitt [xdebug] suchen und diesen wie folgt ersetzen bzw. ergänzen.

[xdebug]
zend_extension="/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_port=9000
xdebug.profiler_enable=1


Jetzt mit IntelliJ IDEA ein neues Projekt und Modul ("from scratch") erstellen und eine .php-Datei hinzufügen. In den Einstellungen unter Preferences > PHP > PHP Home den Pfad /Applications/MAMP/bin/php5.3/bin angeben. Anschließend kann man einen Breakpoint setzen und die Datei debuggen (Rechtsklick > Debug "myfile.php").

Das ganze sollte auch mit anderen IDEs funktionieren.

Donnerstag, 6. Januar 2011

Time Machine mit der Fritz!Box nutzen

Seit kurzem bin ich stolzer Besitzer einer Fritz!Box 3270, die meinen guten alten Asus WL-500gP ersetzt. Da ich auf letzterem bereits Time Machine genutzt habe, wollte ich das auf der Fritz!Box auch. Mit etwas Tuning kann man Time Machine dazu überreden, auf die Samba-Freigabe der Fritz!Box zu sichern.

Dazu schaltet man zunächst das Feature in Time Machine frei.

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

Nun muss das backup-Sparsebundle noch von Hand erzeugt werden. Der Volumename (macbook.backup) ist frei wählbar. Im Dateinamen müssen Name (macbook) und Mac-Adresse der Ethernet-Karte des Rechners (00ff00ff00ff) enthalten sein und über -size legt man die maximale Größe (hier 100 GB) fest.

hdiutil create -size $100g -fs HFS+J -type SPARSEBUNDLE -volname "macbook.backup” macbook_00ff00ff00ff.sparsebundle

Die nun erzeugte Datei ist ein paar hundert MB groß. Auf der an der Fritz!Box angeschlossenen Festplatte legt man ein Verzeichnis z.B. backup an und kopiert das eben erzeugte Sparsebundle dort hinein.

Nun gibt es noch ein Problem: Time Machine erwartet das Sparsebundle immer im Root-Verzeichnis der Freigabe. Das Problem ist, dass seit der letzten Firmware die Fritz!Box immer eine Freigabe im Format \\fritz.box\FRITZ.NAS anlegt. Dort gibt es dann Ordner für jede angeschlossene Festplatte. Man kann direkt in FRITZ.NAS keine Ordner oder Dateien speichern. Das Sparseimage liegt aber unter \\fritz.box\FRITZ.NAS\NameDerFestplatte\backup.

Genau diesen Pfad mounten wir jetzt einmalig über den Finder. Dazu verbinden wir uns mit dem Server mit ⌘ + K und geben den Pfad ein:

smb://fritz.box/FRITZ.NAS/NameDerFestplatte/backup

Anschließend öffnen wir Time Machine in den Systemeinstellungen und siehe da, unter Volume auswählen erscheint backup. Jetzt nur noch bestätigen und nach 120 Sekunden startet Time Machine das initiale Backup ... :-)

(Quelle: http://www.meetinx.de/tutorial-time-machine-auf-nas-netzwerk-laufwerk/)