International PHP Conference Spring Edition 2011 – Dienstag


Mittwoch 01.Juni.2011, 0:20 von Mario

Der Dienstag beginnt erst mal mit anständig ausschlafen, was trotz allem nicht geholfen hat, denn um 9 Uhr gerate ich gänzlich unvorbereitet in die Keynote „Warum freie Daten wichtiger sind als fliegende Autos“ von Julia Schramm. Das ist wohl die Dame die in letzter Zeit so viel als Datenschutzgegenerin zitiert worden ist, vermute ich zumindest mal. Alles in allem eine doch recht mäßige Vorstellung, die vom Blatt abgelesen klang, um zu zitieren: „ein äh … Spaß!“, war das leider nicht. Schade, weil ich eigentlich Stefan Priebsch gerne hätte hören wollen mit seiner Keynote.

JavaScript Tools, Wolfgam Kiesing

2. Tagesordnungpunkt für mich Wolgang Kiesings Zusammenstellung von Javascript Development Tools. Da waren zum einen die üblichen Verdächtigen dabei, aber auch für mich gänzlich neue Dinge wie eine web-basierte IDE namens Cloud9, die ganz interessant aussah. Anschließend noch ein paar Ideen für Javascript minifying, wobei ich hoffe, das es dabei um Ideen für automatisches Minify ging und nicht händisches „optimieren“ des Codes, das war mir nicht so deutlich herausgearbeitet, aber hoffentlich selbstverständlich. Weiterhin der Hinweis, mal über den klassischen Weg der Dokumentation hinaus zu denken und sich Dinge wie beispielsweise dojodocs anzusehen. Schöne Anregung für mich war es auch, mehr auf der Firebug Console zu machen, Stichwort „in Place Fixing“, um sich Reloads und elendig lange Clickpfade zu sparen. Das ist ja nun nicht so das das alles neu wäre, aber irgendwie schleifen sich da gelegentlich doch schlechte Manieren ein.
Empfehlenswert auch die Hinweise bezüglich Testing mit Jasmine und Jellyfish, am besten mal in den Slides nachlesen, 63 an der Zahl, das dürfte bis jetzt Spitze sein, jedenfalls was die Talks angeht, die ich gesehen hab.

HTTP is the architecture, Tobias Schlitt und Kore Nordmann
Souverän vorgetragen und anschaulich erklärt was GET, POST, PUT, HEAD etc. tun oder eben nicht tun sollten, mit der Conclusion: App servers usally suck! Da HTTP stateless ist und im Sinne der Scalierbarkeit nichts geshared werden sollte. Perfekt für beispielsweise die interne Storageanbindung(z.B. Couch DB, oder andere DBs) mit REST Interface.
An dieser Stelle könnte man dann noch gleich einen ähnlich qualitativ hochwertigen Vortrag über REST anschließen, dann wäre das ein rundrum gelungenes Package.

Keynote Your Users Will Be Mobile Soon, Prepare!, Zeev Suraski
Zeev Suraski zeigt im wesentlichen sein vergammeltes Telefon von 2010 und eine schöne Livedemo einer einfachen PHP mobile App via Flex for PHP, keine Gewähr für die Bezeichnung, aber ich denke man kann sich da auch so etwas drunter vorstellen. Spannend dran: Der Cross-Compiler welcher Flash zu nativem iOS Code compiliert, so man iPhone / iPad als Zielplattform wählt.

Continious Integration with Jenkins, Sebastian Bergmann
Guter Vortrag, der eigentlich weit über den Titel hinaus ging, da über Jenkins hinaus auch die komplette Toolchain für Continious Integration angesprochen wurde(phpunit, phploc, pdepend, phpcs, phpmd, phpcpd), Sebastian präferiert da natürlich Produkte aus der eigenen Feder ;-). Während dieser Teil sehr gelungen war, kam mir Jenkins an sich aber etwas zu kurz.

Javascript Best Practices, Martin Ruprecht
Der Vortrag kommt eher langsam in Fahrt und bedient erst mal viele Allgemeinplätze, wie z.B. Namespaces, das fehlende Semikolon, etc. Dann empfiehlt Martin noch den Einsatz von post-commit hooks für die Javascript Validierung via jslint, was natürlich besser ist wie keine Validierung, aber wenn man soweit ist, dann ist mal ja fast schon den halben Weg zu einer Lösung mit z.B. Jenkins gegangen.

Large-scale Data Processing with Hadoop and PHP, David Zuelke
Mein absolutes Highlight des Tages, es hat wirklich einen riesen Spaß gemacht dem David zuzuhören und super toll war darüber hinaus seine ausführliche Live-Demo, bei der er auf seinem „MacBook Cluster“ eine Logfileanalyse durchgeführt hat. Einzig der konkrete Anwendungsfall fehlt mir persönlch im Moment, ansonsten hätte ich wirklich richtig Lust den gelben Elefanten mal anständig über die Platte zu treiben :-).

Zum Abschluss des Tages gab es im Berliner Babylon noch die Preisverleihung des Internet Filmwettbewerbs webcuts, inklusive Vorführung der Filme, dort waren einige wirklich großartige Filme dabei, allerdings war meine Aufnahmefähigkeit doch langsam erschöpft, zumal die Filme im wesentlichen nicht kurzweilige Unterhaltung, sondern eher was fürs Köpfchen waren.

Fazit des 2. Tages: Nachdem ich letztes Jahr so von CouchDB angetan war, kommt nun das nächste super spannende Projekt aus der Map and Reduce DB Ecke wo es kribbelt. Ich hoffe, es ergibt sich da mal die Möglichkeit, etwas zu machen, was über das Spielstadium hinaus geht.

International PHP Conference Spring Edition 2011 – Montag


Dienstag 31.Mai.2011, 0:18 von Mario

Konferenzbesuch und gleich ein kleines Experiment, ich werde versuchen die von mir besuchten Sessions und hoffentlich auch ein wenig von der Atmosphäre einzufangen, los gehts :-):

Die Anreise aus Lübeck war eigentlich ganz gemütlich und nachdem ich in Büchen auf die aus Hamburg anreisenden Kollegen Jörg und Melwin getroffen bin, kam so langsam auch etwas Leben in die Figur, ich bin und bleibe nicht für das Aufstehen vor 6:00 Uhr gemacht.

9:30 los gehts!

html5 ist das Schlagwort 2011, zumindest wenn man Sebastian Meyen glauben darf, welcher soeben die webinale/IPC/RailsWayCon eröffnet hat. Und, der besondere Hit, mobile ist abgeschafft, weil alles ‚irgendwie‘ mobile ist, wobei ich hier immer noch super viele Laptops sehe.

Keynote Bundesbeauftragter für den Datenschutz Peter Schaar

Viele Warme Worte, so lässt es sich wohl am besten zusammenfassen. Ich hab bei Formulierungen wie „Weiterentwicklung von Privatsphäre und Datenschutz“, „Wiedererlangung der Hoheit über seine Daten“, etc. immer echte Schwierigkeiten das in etwas zu transformieren, was ich wirklich in der Praxis verwenden kann. Wobei ich wenigstens eine Sache mitnehme, auch bei mir ist weiterhin „Privacy by default“ way to go, auch wenn ich da nicht immer mit Kunden einer Meinung sein werde. Was ich allerdings gar nicht teile ist die Ansicht der Herrn Schaar, der sich für ein „Don’t Track Me“ im Browser ausspricht, da bin ich eher skeptisch ob Sites die wirklich evil sind, diese respektieren.

Designing multilingual Applications, Kore Nordmann

Der Vortag beginnt bei den Basics wie z.B. das Detektieren der User Sprache via accept-headers. Als negatives Beispiel für Lokalisation verweist Kore auf IP basierte Lokalisation wie sie beispielsweise von Google. Recht hat er, ich habe mich auch schon des öfteren gefragt, was das wohl soll. Lokalisierte Dienste, ok, aber die Sprache möchte ich gerne selbst bestimmen.

Weiterhin wir das Language Handling von ezPublish als gutes, aber sehr komplexes Beispiel zitiert, welches aber einen mächtigen Wrapper benötigt um bedienbar und performant(caching) zu sein. Da gettext eine Abhängigkeit zu setlocale hat und setlocale nicht threadsafe ist, rät Kore dringend davon ab, in Szenarien, wo mehrere Sprachen verwendet werden, gettext zu verwenden und empfiehlt stattdessen QT Linguist. Die immer wieder gerne aufgeworfene Frage nach dem Key für die Adressierung von übersetzten Strings beantwortet Kore mit sprechenden Ids für Strings, z.B. der englische Text und zusätzlicher Context wie z.B. Modulname.
Da habe ich irgendwo auch schon andere Meinungen gelesen, die genauso nachvollziehbar waren :-). Auf der View-Seite sollte Formatierung von z.B. Zahlen über NumberFormator der Intl Extension geschehen. Diese ist nicht defaultmäßig aktiv, Benjamin Eberlei merkte allerdings an, das es im Symfony Projekt einen Wrapper dafür gibt, der die Methoden der die Schnittstelle abstrahiert und den man ggf. da wohl auch für andere Anwendungszwecke rausziehen kann.

PHP 5.4, Johannes Schlüter

Johannes Schlüter berichtet über Neuerungen von PHP und ich versuche mal im Schnelldurchlauf zusammenzufassen.

Zuerst mein persönlicher Favorit: Überraschung! Auch PHP 5.4 hat auch keine vollständige Unicode Unterstützung und ein Release Termin steht noch nicht fest.

Und im Schnelldurchlauf: sqllite(2) Engine unterstützt, default_charset utf-8, safe mode fällt raus, magic_quotes werden ersatzlos gestrichen, short open tags ala <?= $foo; ?> gehen unabhängig von den php.ini Settings immer.
Neu ist direktes ansprechen von Arrays nach einem Funktionsauruf z.B foo()[42], closures + $this, wobei der Ursprungscontext für $this angesetzt wird, Traits, das sind Methoden die über das Keyword use in z.B. Classendefinitionen genutzt werden können und dann noch einige Verbesserungen der Interactive Shell, die ich persönlich nicht so spannend finde, aber da Johannes diese zu verantworten hat, hat er diese natürlich angepriesen ;-).
Neu auch das JsonSerializable Interface mit der Methode jsonSerializable mit Hilfe dessen die Json-Serialierung via json_encode() beeinflusst werden kann. Und schließlich viele kleine Perfomance tweaks, wobei Johannes zwar keine plakativen Beispiele zur Hand hatte, aber lt. Benjamin Eberlei 20-30% weniger Speicherbedarf bei einigen Unittest Szenarien benötigt.

Ales ganz fluffig vorgetragen und insgesamt vor zu viel um hier in die Tiefe zu gehen.

The rise of the social App – trends to look for, Andrew Gill

Ich bekenne, ich halte von dem ganzen Social Media Gebrabbel insbesondere in einer so ausgeprägten Inkarnation wie wie sie Andrew Gill propagiert nicht wirklich viel! Ich lasse hier mal 2 Dinge stehen die mir in Erinnerung geblieben sind, die jeder für sich interpretieren mag: „I don’t call callcenters, I tweet my problem.“ und er würde sein Bewegungsprofil verkaufen, wenn er wüsste was die Maketeers damit tun. Wenn man davon lebt, das dies Szenario eintritt, dann ist es vermutlich opportun diese Position zu beziehen. Ist ja auch irgendwie alles Geschmackssache …

Agility and Quality, Sebastian Bergmann

In diesen Talk bin ich eher zufällig hinein geraten, da dieser Vortrag wohl „Mit Retrospektiven zu erfolgreicheren Projekten“ ersetzt hat. Ansich gabs dann zumindest für mich und meine Mitstreiter nichts wirklich neues. Außer vielleicht einer schönen Idee, die Sebastian über die Einführung von Usernamen in Facebook zu erzählen wusste:
So wie ich es verstanden hab, hat Facebook im Vorwege der Einführung des Username Features, quasi versteckte Tests der neuen API Funktionalität durch realen Traffic der User durchgeführt, eine Idee die ich zumindest im Hinterstübchen speichere, „wenn man mal die gleichen Problem wie Facebook“ hat, um mal Melwin zu zitieren.

Your Tests are lying!, Sebastian Bergmann

Der Vortrag von Sebastian Bergmann zum Thema Tests handelt in den ersten 10 Minuten über das Testen und oder eben nicht Testen von Gettern und Settern und endet in der Conclusion das man das eben machen kann, oder auch nicht. Ich scheine währenddessen ob der schlechten Luft kurz den Faden verloren zu haben, da sich mir nicht unmittelbar erschlossen hat, warum das eine wichtige Frage ist.

Ansonsten beinhalten seine Slides ein paar sehr schöne Beispiel, die anschaulich verdeutlichen, wie man eben nicht testen sollte, da lohnt reinschauen unbedingt.

Dann vielleicht noch eine sehr schöne Antwort auf die Frage aus dem Publikum wie man denn wohl Controller am besten testet: „Ideally your Controllers are so simple that they don’t need testing.“. Das lass ich mal so stehen.

Deeper into Git, Stefan Koopmanschap

Dieser Vortrag fiel qualitativ doch etwas hinter den anderen heute gehörten ab, im wesentlichen beschränkte sich das Vorgetragene auf eine kurze Erklärung der Kommandos rebase, bisect und blame. Darüberhinaus noch eine Erklärung eines typischen Workflows, wie er zum Beispiel von Projekten die auf github gehostet werden praktiziert wird und noch ein paar Verweise auf git SAS Dienste und zack, das wars, wie gesagt etwas dünn und entsprechend dann auch in 30 Minuten erledigt.

Mein Fazit des ersten Tages: Die Revolution scheint auszubleiben, es werden im wesentlichen bereits bekannte Themen vertieft. Darüber hinaus soll es aber wohl einen sehr guten Vortrag von Johann-Peter Hartmann zum Thema DevOps gegeben haben, den ich leider verpasst habe. Die Kollegen waren aber voll des Lobes! Und soeben gefunden: Ein Video dazu auf YouTube: klick!

Hübsch machen für den Frühling!


Donnerstag 10.März.2011, 18:34 von Mario

Es wurde mal Zeit, ich hab mich dann doch mal drangesetzt und ein neues Design meines Blogs geklöppelt. Da ich design-mäßig nun nicht sooo die Kanone bin, gibts sicherlich schönere, aber dafür ist es wenigsten sebstgemacht, die ersten selbstgekochten Spaghetti haben ja schießlich auch „irgendwie“ geschmeckt :-).

Technisch gesehen hab ich ich erstmal ignoriert, das es im IE keine runden Ecken gibt, mit IE 9 soll da ja alles gut werden. Ich denke mal IE User sind hier auch nur bedingt Zielgruppe, he,he.