Author Archive for Alex

PHP-CLI mit PDO auf dem Mac

Da Mac OS X von Hause aus kein Datenbankbetriebssystem mitbringt, wird das von Hause aus mitgelieferte PHP ohne Unterstützung für die “PHP Data Objects”-Schnittstelle (PDO) kompiliert. Das ist mehr als ärgerlich, weil beispielsweise das Zend Framework diese Schnittstelle verlangt. Auch die in den Macports verfügbaren PHP-Versionen werden ohne PDO-Unterstützung kompiliert.

Dieser Umstand hat mir in den vergangenen Wochen einiges an Kopfschmerzen bereitet, weil es mir nicht gelingen wollte, komplexere PHP-Scripte auf der Kommandozeile auszuführen. Bis ich hier die einfache, wie auch großartige Lösungsidee fand: wenn man Mamp installiert hat, das standardmäßig sowohl eine MySQL-Installation, als auch PHP5 mit PDO-Support eingebaut hat, kann man einfach den $PATH so umbiegen, dass er auf das PHP-Binary zeigt. Die liegt übrigens hier:

/Applications/MAMP/bin/php5/bin/php

So einfach kann das also sein.

GOP - Groovy Option Parser

Nachdem ich Studiumsbedingt in der Vergangenheit mal gezwungen war, mich mit Commons CLI auseinander zu setzen, habe ich ein Gefühl dafür bekommen, wie schön es ist, eine leichtgewichtige Lösung für die Verarbeitung von Kommandozeilenargumenten zu haben. - Und wie schmerzhaft nervig es ist, wenn man so was nicht hat. ComminsCli hat damals zwar weitestgehend getan, was ich wollte, aber das Mass an Gegenwehr war mir eigentlich zu groß.

Wesentlich vielversprechender sieht dagegen GOP aus. Das ist ein Parser für Kommandozeilenargumente, der in Groovy implementiert ist.

Der Parser bringt dabei u.a. die Möglichkeit mit, optionalen Parametern einen Default Wert zu geben, Validierungsregeln in Closures zu definieren und automatisch aus den Parameterdefinitionen ein Hilfe Menü zu generieren.

Das Codebeispiel sieht auf jeden Fall ziemlich schlank und chick aus:

def parser = new org.computoring.gop.Parser(description: "An example parser.")
parser.with {
required 'f', 'foo-bar', [description: 'The foo-bar option']
optional 'b', [
longName: 'bar-baz',
default: 'xyz',
description: 'The optional bar-baz option with a default of "xyz"'
]}
 
def params = parser.parse("-f foo_value -- some other stuff".split())
 
assert params.'foo-bar' == 'foo_value'
assert params.b == 'xyz'
assert parser.remainder.join(' ') == 'some other stuff'

[via GroovyZone]

OpenID - Stand der Dinge?

In den vergangenen Tagen habe ich mich arbeitsbedingt vermehrt mit Online Office und Online Collaboration Plattformen auseinander gesetzt. Abgesehen davon, dass es mittlerweile wirklich eine Menge davon gibt und die Qualität teilweise erstaunlich ist (z.B. bei Acrobat Buzzword), fällt ganz extrem auf, dass keiner der Anbieter OpenID anbietet!

Dieser Gedanke geht ein bisschen auf Episode 58 des WebDevRadio zurück, in der Michael Kimsal beklagt, dass viele grosse Player wie Google oder Microsoft zwar mittlerweile als OpenID Provider auftreten, aber sich beharrlich weigern, OpenID als Authentifizierungsmethode zu akzeptieren.

Gerade der Bereich Online Office ist in meinen Augen ein Bereich, der auch weniger technisch versierte Nutzer anzieht. Gerade hier wäre es extrem hilfreich, wenn OpenID gleichberechtigt neben anderen Möglichkeiten angeboten werden könnte.

Nur so kann es gelingen, endlich einen einigermassen sinnvollen, einheitlichen Authentifizierungsstandard zu etablieren.

Oder gibt es bereits in anderen Bereichen den ernsthaften Versuch OpenID auch in nicht-Nerd-Kreisen zu etablieren?

Grails: keine Tabellengenerierung bei Verwendung reservierter Begriffe als Eigenschaften

Wenn beim Start einer Grails Applikation die Datenbanktabelle zur neu erstellte Domain Class ums Verrecken nicht erzeugt wird, dann liegt es wahrscheinlich an der Namenswahl der Properties. Verwendet man nämlich Schlüsselwörter wie to, text oder from, dann startet die Anwendung zwar, Hibernate verweigert aber stillschweigend die Generierung der betreffenden Tabelle!

Dieses Wissen kann einen Vormittag wesentlich angenehmer gestalten…

via: Ken Kousen

Zend Framework 1.7 Preview Release

Seit ein paar Wochen ist ein Preview Release der neuen Version 1.7 des Zend Framework erhältlich. Neben klassischen Themen wie allgemeiner Performancesteigerung ist vor allem die neue Zend_AMF Komponente erwähnenswert.

Die Dokumentation ist leider noch nicht aktualisiert, so dass es schwierig ist, sich einen Überblick über die Details zu verschaffen. Es wäre jedoch wünschenswert, dass auch Backends für Flash/Flex getriebene Anwendungen in Zukunft ausschliesslich mit dem Zend Framework realisiert werden können und weitere Bibliotheken wie beispielsweise AMFPHP nicht weiter benötigt werden.

Hier wird es auf jeden Fall in Kürze ein Einstiegstutorial zum Thema Zend_AMF geben.

jsdoc Toolkit - Dokumentationsgenerator für JavaScript

JavaDoc, phpDocumentor, Doxygen, die Liste der Dokumentationsgeneratoren für Programmiersprachen ist beinahe unerschöpflich. - Nur für JavaScript gab es bisher noch keine richtige Lösung. Und das in Zeiten, in denen JavaScript zunehmend für umfangreiche Projekte genutzt wird und komplexe Businesslogik kapselt.

Diese Lücke will jsdoc schliessen und bietet eine automatische Generierung von Dokumentation für JavaScript. jsdoc kommt mit einer umfangreichen Liste von Tags, die speziell auf JavaScript zugeschnitten sind. So gibt es beispielsweise @private als Markierung privater Variablen.

Gefunden bei den CodeKeksen.

Artikelserie Grails für PHP Entwickler

PHP Entwickler scheinen eine beliebte Zielgruppe abzugeben. Nach der Rails Community haben das offenbar auch die ersten Grails Entwickler entdeckt und so hat Michael Kimsal die ersten beiden Teile einer Folge von “Grails or PHP developers” veröffentlicht.

Nach einer kurzen Einleitung, in der er seinen Weg von PHP über .NET zu Grails illustriert, gibt er in klassischer Hands On Manier einen Überblick über die Haupteigenschaften von Grails, indem er sie ähnlichen Konstrukten in PHP gegenüberstellt.

Alles in Allem ein wirklich gelungener Anfang und ich hoffe auf baldige Fortsetzung. Vor allem, wenn es dann an Themen geht, für die es in PHP kein direktes Äquivalent gibt - Closures beispielsweise.

Erste Ausgabe vom GroovyMag erscheint am 03.November

Die zunehmende Relevanz von Sprachen und Frameworks lässt nicht wohl nicht zuletzt an der Zahl der regelmäßigen Fachpublikationen und -magazinen ablesen. Ungeschlagener Favorit dürfte zwar derzeit noch immer Java mit gefühlten 54538762132 monatlichen Fachzeitschriften sein, aber die Groovy/Grails Fraktion setzt zur Aufholjagd an.

Am 03. November erscheint die offiziell erste Ausgabe des GroovyMag. Mr. Rocher hat offenbar schon mal einen Blick riskieren dürfen und war sehr angetan.

Mal sehen, ob und wo das Mag in unseren Breiten erhältlich sein wird. Ich habe eigentlich keine Lust immer die Ausgabe vom Vormonat zu erhalten, weil ich sie in den Staaten bestellen muss.

GroovyMag bei Twitter: http://twitter.com/groovymag