Appcelerator Titanium + Android: Kompilieren schlägt mit TypeError fehl

  • Blog, Code

Beim Kompilieren einer Android-App mit Hilfe des Titanium SDK 3.x von Appcelerator kann es vorkommen, dass die folgende Fehlermeldung erscheint:

[ERROR] TypeError: argument of type 'NoneType' is not iterable
[ERROR] :  Build process exited with code 1
[ERROR] :  Project failed to build after 2s 278ms

Die Ursache für diesen Fehler liegt darin, dass Google in aktuellen Veresionen seines Android SDK einige Dateien verschoben hat, sodass das Erzeugen der APK-Datei fehlschlägt.

Weiterlesen »Appcelerator Titanium + Android: Kompilieren schlägt mit TypeError fehl

“Call to undefined function php_timer_autoload()” in PHPUnit 3.6.12

  • Blog, Code

Beim Einsatz von PHPUnit 3.6.12 kann es zu folgender Fehlermeldung kommen:

Fatal error: Call to undefined function php_timer_autoload() in /Applications/XAMPP/xamppfiles/lib/php/pear/PHPUnit/Util/GlobalState.php on line 381
Fatal Error Error: Call to undefined function php_timer_autoload() in [/Applications/XAMPP/xamppfiles/lib/php/pear/PHPUnit/Util/GlobalState.php, line 381

Weiterlesen »“Call to undefined function php_timer_autoload()” in PHPUnit 3.6.12

Pinch-to-Zoom in Phonegap-App aktivieren

  • Blog, Code

Um die Pich-to-Zoom-Funktion im Phonegap-WebView nutzen zu können, sind ein paar Anpassungen in der Hauptmethode der Applikation nötig. Pinch-To-Zoom wird häufig für das Skalieren bzw. Zoomen von Bildern genutzt. Diese Funktion kann man wie folgt in Phonegap aktivieren. Sobald man jedoch Pinch-To-Zoom aktiviert, ist zu beachten, dass alle Elemente auf der Seite ebenfalls gezoomt werden. Daher ist es ratsam nur ein Bildelement auf einer zoomfähigen Seite zu setzen. Sobald sich auch andere Elemente auf der Seite befinden, z.B. Vor- oder Zurück-Button, Header, Footer etc., sind auch diese Elemente vom Zoom nicht ausgeschlossen, da die weiteren Elemente sich ebenfalls im selben WebView befinden.

Weiterlesen »Pinch-to-Zoom in Phonegap-App aktivieren

Mixed Content und das Schloss-Symbol

  • Blog, Code

Mixed Content ist einer der möglichen Gründe, warum das teuer eingekaufte SSL-Zertifikat nicht dazu führt, dass eine Webseite in den großen Browsern auch mit dem typischen Schloss-Symbol angezeigt wird. Von vielen Seiten wir den Usern eingeschärft, genau auf dieses Schloss zu achten, um eine sicher verschlüsselte Übertragung ihrer Daten im Internet zu gewährleisten. Die Browserhersteller wiederum versuchen alle Risiken einzudämmen, die dazu führen könnten, dass die gefühlte Sicherheit durch das Schloss untergraben werden könnte. Genau deshalb ist Mixed Content ein Problem.

Firefox im Vergleich

Unterschiedliche Darstellung der Verbindungssicherheit in Firefox. Oben: Ohne Mixed Content, unten: Mit Mixed Content, daher kein Schloss-Symbol

Weiterlesen »Mixed Content und das Schloss-Symbol

Migration “klassischer” XEN-Maschinen in Citrix XenServer

Migration von “Xen-Classic” mittels xva.py (Paravirtualisiert oder QEMU)

Hintergrund: Häufig kommt es vor, dass virtualisierte Maschinen aus der XEN-Welt in den proprietären Zweig von Citrix XenServer übernommen werden sollen. Hierfür ist das Python-Skript  “xva.py” hervorragend geeignet. Mehr Infos und den Link zum Download gibt es hier: http://www.xen.org/files/xva/

Mit Hilfe des Python-Skripts “xva.py” lassen sich sowohl paravirtualisierte (Linux-)Maschinen als auch hardwarevirtualisierte (QEMU-)Maschinen vom “alten” Xen auf Citrix XenServer portieren. Die Vorgehensweise ist hierbei für beide Varianten identisch. Für nachfolgende Anleitung gehen wir davon aus, dass auf der Quell- und der Zielmaschine das Verzeichnis “/mnt/tmp/” identisch ist (NFS-Share), sowie genügend Platz bietet und dass das Script xva.py ausführbar in /root/ liegt.

Weiterlesen »Migration “klassischer” XEN-Maschinen in Citrix XenServer

CakePHP: DataSource on-the-fly (statt in app/Config/database.php) laden

  • Blog, Code

Bei der Verwendung von CakePHP DataSources wäre es manchmal nützlich, wenn man sie nicht erst umständlich in der Datei database.php definieren müsste. Gerade dann, wenn keine Config (Zugangsdaten, API-Keys etc.) für die DataSource nötig ist oder wenn diese erst zur Laufzeit vorgenommen werden soll/kann, ist eine flexiblere Lösung wünschenswert.

Weiterlesen »CakePHP: DataSource on-the-fly (statt in app/Config/database.php) laden

jQuery-Plugin: Zwei DIVs gleiche Höhe

  • Blog, Code

Ausgangslage — DIV-Elmente mit unterschiedlicher Höhe

Häufig liegen zwei (oder mehr) Elemente einer Webseite nebeneinander. Dabei kann es sich sowohl um Bilder als auch um jede andere Art von Boxen (z.B. DIV-Tags) handeln. Häufig wäre es optisch angenehm, wenn diese Boxen die gleiche Höhe hätten, sodass sie nicht nur oben, sondern auch unten eine Linie bilden. Dafür muss sich die kleinere Box — also die mit der geringeren Höhe — an die größere Box anpassen. Eine manuelle Höhenangabe scheidet dabei selbstverständlich aus, denn der Inhalt einer solchen Box ist in der Regel dynamisch generiert oder zumindest änderbar.

Weiterlesen »jQuery-Plugin: Zwei DIVs gleiche Höhe