Code

CakePHP: Fehlende Strings bei i18n extract (Übersetzung)

  • Blog, Code

CakePHP bietet die Möglichkeit Anwendungen mit überschaubarem Aufwand zu übersetzen, indem man sich .pot-Dateien generieren lässt. Diese lassen sich dann mit Standardwerkzeugen wie PoEdit verwenden, um die .po-Dateien mit den jeweiligen Übersetzungen zu erzeugen.

Um alle verwendeten Zeichenketten innerhalb eines Projektes in die entsprechenden .pot-Dateien zu bringen, bietet CakePHP eine eigene Shell an, die sich wie folgt aus dem app-Verzeichnis heraus aufrufen lässt:

Weiterlesen »CakePHP: Fehlende Strings bei i18n extract (Übersetzung)

Mysql Datenbank Backup via mysqldump ohne Root Passwort

Datenbank-Backups gehören zum täglich Brot eines Systemadministrators. Gerne werden hierfür kleine Shell-Skripte auf Basis von mysqldump gebastelt, die via Cronjob angestoßen werden.

Leider finden sich in der Praxis immer wieder Skripte folgender Art:

#!/bin/bash
/usr/bin/mysqldump -uroot -pSecretPassword mydatabase > backup`date +%Y-%m-%d`.sql

Nicht nur unnötig, sondern auch ein Sicherheitsrisiko stellt hier die Verwendung des Root-Users dar.

Weiterlesen »Mysql Datenbank Backup via mysqldump ohne Root Passwort

Reihenfolge der Interfaces in resolv.conf ändern

  • Blog, Code

In unserem Netzwerk gibt es aus verschiedenen Gründen Server, die über zwei oder mehr Netzwerkschnittstellen kommunizieren. Dabei kann es wichtig sein, die Reihenfolge festzulegen, in der die Namensauflösung über resolvconf geschieht, um sicherzustellen, dass die Adressen in verschiedenen Netzen wie gewünscht aufgelöst werden.

Nach der Installation des Paketes resolvconf über die Paketverwaltung kann die Grundeinstellung über dpkg-reconfigure resolvconf vorgenommen werden.

Weiterlesen »Reihenfolge der Interfaces in resolv.conf ändern

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