Mittwoch, 28. August 2013

Apple Application Loader und Proxy-Server

Da Apple es scheinbar für ein unwahrscheinliches Szenario hält, dass jemand seine Apps mit dem Application Loader aus einem Firmennetzwerk mit Proxy-Server hochladen will, scheitert man beim Versuch, dies zu tun, kläglich mit folgender (oder einer ähnlichen) Meldung:

Communication error. Please use diagnostic mode to check connectivity. You need to have outbound access to TCP port 443.

Damit das ganze hinter einem Proxy funktioniert, beschränken wir uns für die Übertragung auf das HTTPS-Protokoll. Dazu wählen wir unter Preferences > Advanced nur DAV aus.

Nun sollte es mit einem Web-Proxy funktionieren. Der Application Loader basiert jedoch auf Java, was interessant ist, wenn man bedenkt, dass Apple Java sogar vor einiger Zeit noch vom Mac verbannen wollte und es nun für ein solch essentielles Tool verwendet. Ärgerlich daran ist, dass die Java-Applikation scheinbar nicht die Proxy-Einstellungen des Systems übernimmt. Also müssen wir diese selbst nachziehen. Dazu bearbeitet man die Netzwerkeinstellungen des Application Loaders:
sudo vi /Developer/Applications/Utilities/Application\ Loader.app/Contents/MacOS/itms/java/lib/net.properties
Von den entsprechenden Zeilen muss das Kommentarzeichen (#) entfernt und der Proxy-Server (bzw. dessen IP) und-Port eingetragen werden:
http.proxyHost=192.168.1.1
http.proxyPort=8080

https.proxyHost=192.168.1.1
https.proxyPort=8443
Anschließend den Application Loader neustarten und nun sollte er brav seinen Dienst verrichten!

Sonntag, 29. Januar 2012

iPhone 3GS iOS 5.0.1 Jailbreak Untethered & 05.13.04 Unlock

Da es doch mal wieder nicht ganz nach den üblichen Anleitungen im Netz geklappt hat, hier noch mal die Schritt-für-Schritt-Anleitung, die für mein iPhone 3GS funktioniert hat:

  1. iOS 5.0.1 für das iPhone 3GS herunterladen
  2. redsn0w 0.9.10b4 herunterladen und starten
  3. redsn0w starten und Extras > Custom IPSW auswählen. Die heruntergeladene Firmware auswählen und die Frage nach dem Bootrom mit No beantworten. redns0w erstellt nun eine Firmware ohne Baseband-Update
  4. Anschließen mit redsn0w in den Pwned DFU Modus wechseln
  5. Nun in iTunes die Firmware wiederherstellen (beim Klick auf Wiederherstellen die ALT-Taste gedrückt halten und die Datei NO_BB_OLDROM_iPhone2,1_5.0.1_9A405_Restore.ipsw auswählen)
  6. Warten bis das Update beendet ist
  7. Nun die Originalfirmwarre iPhone2,1_5.0.1_9A405_Restore.ipsw umbenennen in iPhone2,1_5.0.1_9A404_Restore.ipsw.
  8. Nun in redwn0w diese umbenannte Datei unter Extras > Select IPSW auswählen
  9. Mit redsn0w den Jailbreak durchführen (Dabei einen Haken bei Install Cydia setzen)
  10. Nach dem Reboot des iPhone die Konfiguration abschließen.
  11. Dann Cydia starten (Profil: Hacker oder Entwickler) und aktualisieren
  12. Anschließend in Cydia "ultrasn0w" suchen und installieren.
  13. Fetig!
Viel Spaß mit iOS 5! :)

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/)