Google Analytics auf Flashwebseiten nutzen

Sonntag, März 1st, 2009

Für alle die Entwickler, die lieber für bestimmte Einsätze auf Flash / Flex zurückgreifen, habe ich eben im Google Blog (bzw. auf der Analytics Startseite) folgende Informationen über “Google Analytics within Flex/Flash Applications” gefunden, die ich niemandem vorenthalten möchte:

Mittels der Google Analytics AS3-API kann auf alle Features von Google Analytics jetzt direkt aus Flex heraus zugegriffen werden, das Ding nennt sich “gaforFlash”. Getestet hab ich da noch nix, aber nachzulesen ist die Geschichte hier: Google Analytics within Flex/Flash Applications. Ich verabschiede mich kurz in einen spontanen, wohlverdienten Urlaub…..

Development in verschiedenen Browsern testen

Dienstag, Februar 24th, 2009

Jeder Webentwickler kennt das Problem:

Webseiten sehen in unterschiedlichen Browsern immer etwas anders aus.

Hier könnte der Service der Firma xenocode, einem Anbieter für Virtualisierungslösungen, schon zumindest etwas mehr Komfort mitbringen, denn über Ihre Webseite “Run IE8/7/6, Firefox, Safari, Chrome, and Opera from the web” können die verschiedenen Browser als “Mini System” heruntergeladen und dann auf einer Windows-Maschine getestet werden.

So bekommt jeder Browser (z.B. der als IE8.exe verpackte Internet Explorer 8) seine eigene .exe – Sandbox und kann somit parallel zu anderen Browsern laufen.

Ich als Mac Jünger habs noch nicht getestet (beim Mac zeigt auch der Link schon an, dass es auf “meinem device” nicht funktioniert), aber runterladen (für Parallels und die anderen Rechner im Office) werde ich sämtliche Sandboxen auf jeden Fall :)

Online-Tool für Int/Hex/Char-Konvertierung

Donnerstag, Februar 19th, 2009

Manchmal ein äußerst nützliches Tool: Der Zeichen → Hex Converter.

Für mich kam es gerade beim Einpflegen französicher Messagebundles gerade recht, dort müssen französische Sonderzeichen in die korrespondierenden HEX Werte umgewandelt werden.

Zu finden ist das kleine Tool, das zwar leider nur einzelne Buchstaben konvertiert, unter diesem Link: Online-Tools: Int/Hex/Char-Converter und Entity-Generator gegen EMail-Spam.

Internationalisierung mit CakePHP’s i18n Features

Donnerstag, Februar 12th, 2009

Zu meiner Ankündigung, wie die i18n Features von CakePHP richtig eingebunden werden können, gibt es bei gouranga | CakePHP I18n & l10n ein gut geschriebenes und relativ umfassendes Tutorial.

Dort werden die von Cake bereitgestellten Funktionen (den Artikel Localizing your Application gibt es übrigens hier) beschrieben, wie die verschiedenen Strings der .po Dateien aus Cake heraus aufgerufen werden können.

Was in manchen unserer Projekte auch oftmals wichtig war, ist und sein wird:
Wie können dynamische Inhalte, also solche aus der Datenbank, internationalisiert werden? Statische Strings sind mit der .po-File Variante kein Problem – aber wie sieht es mit dynamischem Content aus?

Ein nützliches Tutorial für diesen Ansatz findet sich z.b. hier und der dazugehörige Teil 2 hier. Wie die Stolpersteine hier aussehen und wie CakePHP ein Speichern / Updaten von i18n Einträgen behandelt kann ich später erläutern, grundsätzlich gibt es bei dieser Herangehensweise eine weitere Tabelle im Datenbankmodell, die folgendermaßen aussieht:

CakePHP i18n Tabelle

In dieser Datenbanktabelle werden sämtliche Übersetzungen der verschiedenen Models gespeichert (die Tabelle kann also ziemlich fix ziemlich “umfangreich” werden).

Für alle, die auf dem Mac den hervorragenden und günstigen SQLEditor nutzen, gibt es hier die oben gezeigte SQS Datei, ansonsten kann die Tabelle auch im Terminal angelegt werden, indem man im Verzeichnis /console von Cake folgenden Befehl eingibt:

./cake i18n

[ einige weitere andere Infos dazu auch unter dem top-to-bottom-persistent-internationalization-Tutorial auf CakePHP.org zu finden ]

Leider können HABTM Relationships erst ab Version 1.3 mit dem Translation Behavior von Cake bedient werden, heisst also: Hier muss manuell Hand angelegt werden, sobald HABTM Relationships ins Spiel kommen.

Kleiner Seitenhinweis:
Über die Konsole kann bei Cake auch ein komplettes, sog. “Baking” stattfinden, das anhand der Datenbankkonfiguration das komplette Projekt einmal initial erstellt, mit sämtlichen Models, Controllern und Views und sämtlichen CRUD Funktionen.

Sehr gute, verschiedene Screencasts zu CakePHP (Installation, Baking,
Scaffolding, …) finden sich im Übrigen sich auf der Webseite von David Golding, seines Zeichens Verfasser des Buches “Beginning CakePHP” (das, in meinen Augen, bei weiterm nicht mit dem CakePHP Buch von O’Reilly mithalten kann).

Syntax Highlighting in WordPress Blogs für CakePHP Beiträge

Dienstag, Februar 10th, 2009

Nach anfänglich großen Tönen ist zwar weiterhin nicht viel passiert, aber wo ich jetzt ein WordPress Plugin um in einem Beitrag Syntax Highlighting mitzuliefern gefunden habe kann jetzt die Artikelflut losgehen.

Durch umfangreiche Arbeiten mit CakePHP in den letzten Wochen könnten verschiedene Themen aus unterschiedlichsten Bereichen interessant sein, die ich ggfls. in den nächsten Tagen Wochen mal vorstellen könnte:

  • Wie sieht eine sinnvolle Entwicklungsumgebung in Teams von Entwicklern aus? Wie kann man also mit Eclipse und SVN und anderen Techniken besser und schneller gemeinsam mit weniger Fehlern entwickeln.
  • Wie kann ich die CakePHP config so anpassen, dass ein Deployment auf unterschiedlichen Servern sinnvoll funktioniert (z.B. für verschiedene Server für Development, Testing und Live)
  • Wie nutzt man die CakePHP Auth Component richtig (immer wieder ein heisses Thema)?
  • Wie binde ich die i18n Features von CakePHP richtig ein?
  • Wie kann man die Pagination von CakePHP mit weiteren, eigenen Parametern oder Filtern versorgen?
  • Wie kann ich die Performance von CakePHP Projekten weiter verbessern?

Falls bei dem ein oder anderen Thema besonderes Interesse bestehen sollte – immer her mit Kommentaren.

CakePHP: Nach Ajax Reload funktionieren Ajax Links nicht mehr

Dienstag, Dezember 9th, 2008

Wer mit dem großartigen PHP Framework CakePHP arbeitet, kommt schnell in den Genuss des dort integrierten AJAX Helpers.

Hierbei können einzelne Div Inhalte einer Seite relativ problemlos mit aktualisierten Daten ausgetauscht werden. Im Hintergrund wird hier von CakePHP auf das Prototype Javascript Framework aufgesetzt (konkret: Ajax.Updater).

Im Grunde funktioniert das im Beispiel eines Formulars folgendermaßen:

echo $ajax->form(‘sendMessage/’.$details['Nachricht']['id'],
‘post’,
array(‘update’ => ‘message-reply’.$details['Nachricht']['id'],
‘before’=>’toggleViewOfDiv(\’message-reply’.$details['Nachricht']['id'].’\')’,
‘complete’ => ‘new Ajax.Updater(\’all_messages_ajax\’, \’/news/messagebox\’,
{ evalScripts : true });’));

Wenn es sich nicht um ein Formular handelt, kann auch im $ajax->link im Optionsarray manuell der Ajax.Updater als Argument für die Option “complete” aufgerufen werden:

echo $ajax->link(__(‘Lesen’, true),
‘getMessageBody/’.$news['Nachricht']['id'],
array(‘complete’=>’new Ajax.Updater(\’all_messages_ajax\’, \’/news/messagebox\’,
{ evalScripts : true });’,
‘update’=>’message-’.$news['News']['id']));

Da bei einigen Leuten die nach dem Submit gerenderte Seite nicht mehr auf die durch $ajax->link generierten Links reagiert, muss als Option für den Ajax.Updater “evalScripts: true” übergeben werden.

Umgebungsvariablen (PATH) unter Mac OS X setzen

Freitag, September 5th, 2008

Wer auf einem Mac seine Umgebungsvariablen ändern möchte, kann dies leicht innerhalb seiner Systemsteuerung erledigen, wenn die Rubicode – RCEnvironment PrefPane installiert ist.

Praktischer und einfacher GUI Aufsatz für die entsprechenden Befehle des Terminals:

PrefPane in der Systemsteuerung

CakePHP Bundle für Textmate

Donnerstag, Juli 31st, 2008

Wer wie wir den schönen Editor TextMate benutzt, wird sich evtl. bei der CakePHP Entwicklung über das CakePHP Textmate Bundle freuen, dass einige nützliche Snippets bereitstellt.

Auch nützlich bei der Entwicklung von CakePHP Projekten:
Da sich Cake 1.2 noch ein wenig Zeit lässt, einige nützliche Neuerungen aber bereits im RC2 vorhanden sind und in der Beta noch reichlich buggy waren bzw. fehlten, haben wir auf unseren Servern einen cake Alias angelegt, der auf die jeweils aktuellste Version verweist. So kann kurzfristig zwischen verschiedenen Versionen hin und her geswitched werden, ohne dass man Gefahr läuft, eine laufende Installation im schlimmsten Fall komplett zu überschreiben.

Alias auf unserem Dev Server

 

PDF Seitenmaße in PHP

Donnerstag, Februar 14th, 2008

Wer mit PHP auf bzw. mit PDF Dateien arbeiten muss, findet bei der Webmaster Resource einen kleinen “Cheat sheet” wie die unterschiedlichen Seitengrößen bei der PDF Generierung umzurechnen sind.

MD5 Hash Wert erzeugen

Freitag, Februar 8th, 2008

Als kleines Tool für zwischendurch, braucht man ja immer mal wieder:

MD5 Hash Wert erzeugen

Danke!