2013

XEN und “RTNETLINK answers: File exists”

In einer XEN-basierten Infrastruktur lässt sich im XenCenter unkompliziert einer VM eine weitere Netzwerkschnittstelle hinzufügen. Überlicherweise funktioniert das sogar ohne die Maschine herunterzufahren (“Hot-Plugging”). Leider ist das nicht immer der Fall und kann Fehlermeldungen auslösen, die nicht direkt auf das Problem hinweisen, z.B.

$ ifup eth1
RTNETLINK answers: File exists
Failed to bring up eth1.

Die Lösung ist einfach, wenn die Maschine nicht ununterbrochen am Netz bleiben muss:

Read More »XEN und “RTNETLINK answers: File exists”

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.

Read More »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

Read More »“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.

Read More »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

Read More »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.

Read More »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.

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