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!

International PHP Conference und Webtechcon 2010


Donnerstag 14.Oktober.2010, 20:41 von Mario

Der erste Arbeitstag nach 3 Tagen auf besagter Veranstaltung, neigt sich dem Ende, trotzdem, selbst mit einem Tag Abstand schwirrt mir noch der Vortrag „CouchDB – a Database for the Web“ von Jonathan Weiss im Kopf herum, NoSQL Datebanken wie eben CouchDB hab ich auf jeden Fall bis jetzt viel zu wenig beachtet, das schreit förmlich danach, sich damit mal einzuschließen und ein paar Dinge mal ganz praktisch im stillen Kämmerlein auszuprobieren.

Was auf jeden Fall auch hängen geblieben ist, sind viele kleine Denkanstöße aus diversen Vorträgen hinsichtlich jQuery bzw. allgemein Javascript, die zwar alle allein betrachtet nichts wirklich besonderes sind, aber so geballt nochmal serviert auf jeden Fall eine Bereicherung für den Alltag. Und wo ich gerade bei Kleinigkeiten bin: Der window.onError Handler der bei Javascript Fehlern im Frontend auf einen Webservice loggt, ist zwar nicht sooo neu, aber immer noch genial und als Nico Steiner eben jenen Handler in seinem Vortrag über die 1&1 Frontend-Architektur erwähnte, viel es mir wie Schuppen von den Augen, das Ding hatte ich vor Jahren auch schon mal, aber leider ist es bei aktuellen Projekten verloren gegangen, was aber nun zack nachgeholt wird.

Ansonsten gabs Dienstag Abend lecker Bierchen, welches die Gespräche über Softwareentwicklung, Prozesse und Konzepte doch ganz anständig emotionalisiert hat. Aber nun ja … das muss auch mal sein :-). Bleibt also nur zu hoffen, das auch nächstes Jahr wieder ein vergleichbar reichhaltiges Angebot an zumindest für mich interessanten Themen geboten wird, dann bin ich auf jeden Fall wieder mit dabei.

WordPress Comments über XML-RPC


Dienstag 24.August.2010, 17:32 von Mario

Ich baue an einer WordPress Installation die Comments via XML-RPC Schnittstelle entgegen nimmt, um diese innerhalb der WordPress Admin Oberfläche zu verwalten. Dabei ist mir das Problem untergekommen, das Comments ihre IP und den User-Agent verlieren, bzw. nicht die IP und der User-Agent des orginal kommentierenden Benutzers durchgeschliffen werden können, sondern zwangsläufig die IP und der User-Agent der via XML-RPC zugreifenden Applikation verwandt wird.

Ein wenig Gewühle im WordPress Code bestätigt die Vermutung: IP und User-Agent werden in der wp_new_comment() Funktion hart mit $_SERVER[„REMOTE_ADDR“] und $_SERVER[„HTTP_USER_AGENT“] belegt. Um das Problem zu lösen hab ich den Entwicklern einen kleine Patch zukommen lassen, der diese unflexible Handhabung von IP und User-Agent behebt. Und was soll ich sagen, es sieht ganz danach aus, als würde der Patch in WordPress 3.1 einfließen. Welch Freude für mein kleines Entwicklerherz, da ich dann zumindest ein WordPress Plugin schreiben kann, welches die XML-RPC Schnittstelle dahin gehend erweitert, IP und USER-AGENT bei Bedarf durchzuschleifen.