Blog

International PHP Conference 2010 in Mainz

Internation PHP Conference 2010

Bereits bei der Anmeldung fiel einem die ausgezeichnete Auswahl der geplanten Sessions auf. Die International PHP Conference 2010 war sehr gut besucht. Gemeinsam mit der webtech Conference war der diesjährige Ort des Geschehens die Rheingoldhalle in Mainz. Meiner Meinung nach war die Konferenz sehr gut organisiert. Die Halle hat eine gute Anbindung an das Straßennetz sowie die öffentlichen Verkehrsmittel und die neun Säle boten eine angenehme Atmosphäre.

Diverse bekannte  Referenten wie Robert Lemke (TYPO3 Lead Developer), thePHP.cc mit Sebastian Bergmann, Stefan Priebsch und Arne Blankerts waren vertreten, aber auch PHP „Urgestein“ Zeev Suraski war anzutreffen. Er lies es sich nicht nehmen die Keynote zu Beginn der Konferenz zu halten. Das Thema war für eine Entwicklerkonferenz etwas ungewöhnlich, wenn auch nicht ganz uninteressant. Er beschrieb wie schnell man sich an Technologie gewöhnt und im Alltag als selbstverständlich betrachtet. Dabei einem die Abhängigkeit zur selbigen erst richtig bewusst wird, wenn sie ausfällt, wie in seinem Urlaub u.a. mit seinem DSLR Objektiv und GPS geschehen.

Keynote Zeev Suraski

Über alle Sessions und Keynotes, die ich besucht habe, zu berichten würde den Artikel unnötig aufblähen und den einen oder anderen Leser zu Tode langweilen. Deswegen möchte ich nur auf zwei Sessions eingehen, die mir besonders gut gefallen haben. Eine komplette Übersicht gibt es auf der IPC10 Homepage.

Die Sessions starteten mit einem sehr guten Vortrag von Ian Barber Debugging rules and tools. Seine Präsentation basierte auf dem Buch Debugging von David J. Agans und das neun Regeln zum Bugfixen vorstellt. Jeder Schritt wurde genau definiert und mögliche Tools vorgestellt. Dem erfahrenen Programmierer wird einiges bereits vertraut sein. Dennoch m.E. eine der besten Sessions, da in sehr kurzer Zeit viel Information verständlich vermittelt wurde.

Session

Eine ebenso gute Session kam von Benjamin Eberlei „Doctrine2: Next Generation ORM“, in der er über die kommenden Änderungen und Features von Doctrine2 sprach. Anders als in der ersten Version setzt der Nachfolger nicht auf das Active Record Pattern, sondern auf einen Data-Mapper. Diverse Verbesserungen in der Performance wurden geschaffen, die Doctrine 2 m.E. noch interessanter machen. Auf jeden Fall gute Anregungen und Insights.

Zwischen den Sessions konnte man sich noch an diversen Ständen mit den Herstellern (Mayflower, oxid, Zend, Microsoft, meinem Lieblings-CSM contao uvm.) und Anbietern direkt informieren oder mit anderen Besuchern austauschen.

Alles in allem war es eine sehr gelungene Konferenz, die Lust auf mehr macht. Es hat sich absolut gelohnt und hoffe nächstes Jahr wieder dabei sein zu können. Nach drei gefüllten Tagen bringt man viele Anregungen mit, die bei aktuellen Projekten sehr hilfreich sind. Aber auch die grauen Zellen freuen sich auf eine Pause.

Google-Maps-App by NETFORMIC

In Zeiten von Web 2.0 und Rich Internet Applications ist das Thema GoogleMaps kein Fremdwort mehr. Ganz im Gegenteil es ist fester Bestandteil im Werkzeug-Repertoire eines jeden Webentwicklers.

Man hört viel über grandiose Map-Applicationen, doch wo sieht man sie?  NETFORMIC hat es sich zur Aufgabe gemacht eine Standard Google-Maps zu entwickeln die durch diverse Konfigurationen zu verschieden Zwecken benutz werden kann. Die Application ist ein Verbund aus mehreren Programmier-/Sprachen/Techniken. Der Hauptteil ist in JavaScript mit dem JavaScript Framework jQuery geschrieben. Aber auch PHP und MySQL spielen eine Rolle.
Im folgenden Abschnitt werde ich die jeweiligen Möglichkeiten aufzeigen:

Grundsätzlich verfügt die Map über 2 Modi:

  1. Lokal: Die Map wird mit einem lokalen, im JavaScript definierten, Marker-Array gefüllt.
  2. Remote: Die Map bekommt eine Remote URL zugewiesen, von der sie sich die Marker im JSON Format abholen kann. (Hier gilt als Hinweis: über einen RemotProxy oder JSONP-Request können ebenfalls fremde Domains abgefragt werden.)

Basic Mode:
In der Grund-Konfiguration wird die Map die gegebenen Marker in Google-Marker transformieren und als Map-Overlay anzeigen.

Extended Mode:
Die Map verfügt über eine Vielzahl an kleinen Erweiterungen, die einem das “Customizing” extrem erleichtern.

  1. Marker können Kategorien erhalten, welche es ermöglichen, pro Kategorie ein bestimmtes (eigenes) Icon anzugeben, welches dann als Marker-Icon fungiert.
    • Minimal benötigen die Marker einen namen, content, und eine uid(unique id).
    • Erweitertes Feld ist: category
    • Es können jedoch sämtliche, nicht reservierte Keys=>Value Pairs mitgeliefert werden, die eventuell später für eigene Zwecke benötigt werden. (Hinweis: Der komplette “Record” wird dem Marker als Store mitgegeben und ist somit überall und in jeder Funktion verfügbar.)
  2. Marker können statischen „Content“ enthalten, welcher durch einen Klick als Marker-Popup angezeigt wird.
  3. Der Marker-Parser hat ein Feature, welches es erlaubt URLs als „Content“ mit zu geben. Dies URLs müssen nur einen Präfix (url:) besitzen. Wird dieser Präfix erkannt, so wechselt die Map auf RemotContentDelivery, was bedeutet: der „Content“ wird ganz individuell, und vor allem nur bei einem Klick auf den Marker nachgeladen. Dieses Feature ist dann sehr sinnvoll, wenn sehr viele Marker auf der Karte eingesetzt werden.
  4. Ein weiteres Feature ist die integrierte Side Bar, welche voll automatisch ein nach Kategorien gruppiertes Marker-Menü erzeugt, über welches die Marker auf der Karte angesteuert werden können (komplette Kategorien aus und einblenden etc…).
  5. Die Map verfügt über Funktionalitäten, die es erlauben von „außerhalb“ mit ihr zu kommunizieren. Das bedeutet, man kann JavaScript Funktionen aus deren Kontext aufrufen um z.B. beim Klick auf der ‘Map oder suf einen Text link einen passenden Marker zu öffnen. Desweiteren gibt es Funktionen die es erlauben von außerhalb komplette Kategorien oder einzelne Marker aus und einzublenden.
  6. Das wohl spannendste Feature ist:  die Map verfügt über eine Funktion, die es erlaubt, den kompletten MapSetup ausgeliefert zu bekommen(um ggf. die Karte wieder mit gleichen Einstellungen (aktiven Markern etc.)  laden zu können.
  7. Durch eine minimale Erweiterung können sogar Fremdservices wie Wikipedia “getagte” Artikel auf der Karte anzeigen werden. Oder sogar Bilder vom Online-Bilder-Portal Panoramio.

Da die Applikation objektorientiert aufgebaut ist, sollte es keine Probleme hinsichtlich der Erweiterbarkeit geben.

Abbildung I – Google Maps Anbidnung am Beispiel von www.hotelsonair.tv:

Wie man an den Markern erkennen kann hat jede Kategorie ihr eigenes Icon. Das Menü hier links baut sich völlig automatisch anhand der Marker-Kategorien auf.. fügt man beispielsweise eine neue Kategorie hinzu, wird diese automatisch im Menü angezeigt.

Abbildung II

Der Screenshot zeigt eine Liste, die eigentlich nichts mit der Map direkt zu tun hat (also eine normale Listenansicht). Hier nutzen die Bilder in der rechten Liste die Funktionalität von „außerhalb“ um mit der Map zu kommunizieren, nämlich den Marker auf Klick zu öffnen. Das Popup wird dynamisch durch eine url die der Markerparser verarbeitet geöffnet und angezeigt. Das unter 6.) genannte Feauture auf der Liste steckt hinter dem Klick auf dem Button oberhalb der Liste… hier wird der komplette Map setup, so wie er aktuell ist, abgespeichert und beim versenden einer Favoriten-Mail wieder rekonstruiert.

Internationale PHP Conference 2009 in Karlsruhe

header_en-phpconference-2009-karlsruhe

Vom 15.11. – 18.11. fand die international PHP Conference 2009 in Karlsruhe statt. Ich fuhr  pünktlich los damit ich rechtzeitig zum ersten Vortrag (Web 2.0 Security Revisited) ankomme, das half aber nichts, denn ich musste den ganzen Vortrag über wegen Platzmangels stehen :‘( In den weiteren Vorträgen hatte ich mehr Glück und konnte immer einen Sitzplatz ergattern. Die Vorträge waren alle recht interessant, allerdings muss man sich natürlich im Nachhinein noch mit den Themen beschäftigen, sonst ist der Lerneffekt ziemlich klein da man in einer Stunde natürlich nur Themen anschneidet.

Zwischen den Vorträgen hatte man die Möglichkeit zur Webtech Conference zu gehen die im gleichen Gebäude stattfand. Hier gab es ein paar Buchstände, ein paar Firmen die neue Mitarbeiter suchen sowie einen Adobe Flash/Flex, Microsoft Silverlight und einen IBM Stand.

Auffällig war, dass man mit Block und Stift sich irgendwie einer Randgruppe zugehörig fühlte. :-)

PHP World Kongress – Keynote – PHP6 ist tot es lebe PHP6

Am 24. und 25. November fand im Konferenzzentrum München der PHP Worl Kongress statt. Über die einzelnen Sessions werde ich später noch schreiben, zuerst aber ein Bericht über die Keynote.

Diese wurde von Pierre Joye gehalten. Pierre ist einer der Kernentwickler von PHP, seit September 2008 bei Microsoft beschäftigt und hier der Teamleiter der PHP Core Entwickler. Dort ist er für die Stabilität und Performance der PHP-Windows-Versionen verantwortlich.

Und er begann seinen Vortrag mit einem Paukenschlag. Seine Aussage: PHP6 wird es nie geben. Er relativierte seine Aussage zwar dahingehend, dass es PHP6 wohl schon irgendwann in irgendeiner Form geben wird, aber das die aktuell zum Download angebotene Version 6 nie einen finalen Status erreichen wird.

Er zeigte den bisherigen Verlauf der Entwicklung seit PHP4 mit den verschiedenen Versionen auf und die Probleme die bei der Entwicklung dieser Versionen immer wieder aufgekommen sind. Diese zum Teil chaotische Entwicklung hatte beim aktuellen Stand der PHP6 Version zur Folge, dass niemand mehr so recht weiß wo man eigentlich steht. Momentan ist man der Meinung, dass der PHP6 Zweig komplett gelöscht wird und für eine spätere Version 6 neu geplant werden muss. Stattdessen möchte man die 5er Reihe weiter entwickeln und jährlich eine neue Teilversion in Form von 5.4, 5.5 herausbringen.

Mit diesem Teil seines Vortrages hat Pierre wohl die meisten Anwesenden überrascht. Aber natürlich waren diese Punkte nicht der einzige Bestandteil seiner Keynote. Es folgte eine kurze Vorstellung über die wichtigsten neuen Funktionen in PHP 5.3. Die Funktionen ifsetor, intl, enchant, lsb, phar oder late static binding wurden ebenso wie die neuen Namespaces von ihm kurz angerissen.

Als kleiner Tip noch folgender Hinweis von ihm. Sollte man mit dem Manual auf php.net nicht zurecht kommen oder die enthaltenen Informationen nicht oder noch nicht ausreichend sein, soll man doch auf http://wiki.php.net/rfc nach schauen. Hier werden die Grundlagen und die Entstehung einer Funktion genau aufgeführt und zum Teil mit detaillierten Anwendungsbeispielen erklärt.Zum Abschluss stellte er noch die Frage in den Raum, ob in Zeiten wo es Anwendungen gibt, die nur in Javascript erstellt sind, es einen Hype auf Anwendungen gibt die Apps heißen oder nur in den Wolken funktionieren, es noch eine Zukunft für die Programmiersprache PHP gibt. Es waren sich aber alle Anwesenden einig das die Verwendung von PHP noch lange Zeit viele sinnvolle Anwendungen hervorbringen wird und PHP noch lange nicht zum alten Eisen gehört.

Aufgrund seiner langjährigen Arbeit für PHP und aktuell als Mitarbeiter von Micosoft zeigt er deutlich, dass man heutzutage keine Scheuklappen mehr haben sollte sondern ohne Probleme auch über den Tellerrand schauen darf. Das Feindbild Microsoft scheint sich abzuschwächen: Weil sich Microsoft öffnet oder öffnen muss oder vielleicht auch deswegen weil Microsoft als “Feindbild” nicht mehr alleine steht. Wer vor kurzem auf der deutschsprachigen PHP-Mailingliste die Beiträge zu einem möglichen Umzug der Liste nach Google Groups gelesen hat merkt, dass auch gegenüber anderen Firmen große Bedenken zu finden sind. Das gleiche gilt bestimmt auch für die Firma mit dem angebissenen Apfel. Nicht jeder findet einen weißen Computer schön oder muss weiße Ohrhörer tragen wenn er auf die Straße geht.

Banner PHP 09 468x60 statisch 01