Interview mit Garvin Hicking

Nicht zuletzt Jörg Petermann hat mir gezeigt, dass man auch in der BlogosphĂ€re interessante Interviews fĂŒhren kann. Auch fĂŒr mich gibt es ein paar Leute die sich mit interessanten Themen beschĂ€ftigen oder an interessanten Projekten mitarbeiten an die ich die eine oder andere Frage stellen will.

Das erste Interview habe ich mit Garvin Hicking gefĂŒhrt. Er lebt in Köln, arbeitet als PHP-Entwickler und einen Großteil seiner Freizeit spendet er den Projekten PHPMyAdmin und Serendipity.

Hallo Garvin, vielen Dank das du dir die zeit genommen hast auf meine Fragen zu antworten.

Das tue ich doch gerne. Wer etwas mein privates Blog verfolgt, weiß, dass ich keiner Umfrage bzw. Fragebogen wiederstehen kann. 🙂

Was war dein erster Rechner und was hast du hauptsÀchlich damit gemacht?

Also wenn man es als Rechner bezeichnen kann, dann war das der Schneider CPC 464. Mit Datasettenlaufwerk. Darauf konnte man sogar Musik hören, wie mein 4-jahre jĂŒngerer Bruder herausgefunden hat – was mich aber eher zur Weißglut brachte.

Eigentlich hĂ€tte ich mir lieber damals einen C64 geben lassen, weil ich ja damit spielen wollte wie die anderen Kids – demonstrativ habe ich fĂŒr meine Eltern damals einen C64 aus Spanholz und Pappschachtel-Disketten hergestellt, bis ich
dann endlich mit dem CPC beglĂŒckt wurde. Nach viel Zeit vor dem grĂŒnochromen Monitor habe ich dann auch rausgefunden, dass das Ding zum Spielen nicht wirklich gut war. Dann habe ich angefangen, Listings aus Zeitschriften abzutippen, die nie klappten – bis ich dann meine eigenen kleinen Grafik-Spielereien gebastelt habe. RÜckblickend war es wohl gut, dass ich keine bessere Spielekonsole bekommen habe. 🙂

Du arbeitest als PHP-Entwickler in Köln. Könnte man ein bisschen mehr ĂŒber deine Arbeit erfahren?

Jein; eigentlich arbeite ich festangestellt als PHP-Entwickler bei der Faktor E in Bonn. In Köln arbeite ich (sehr selten) zusĂ€tzlich noch freiberuflich, wenn man Dinge anfallen wie z.B. Fachgutachten fĂŒr PHP-BĂŒcher des O’Reilly Verlages oder Ă€hnliches.

Meine Arbeit ist eigentlich recht vielfĂ€ltig und beinhaltet so ziemlich alles, was man mit PHP und Webservern machen kann. Von Shellscripts zur Systemadministration, Apache-Spielereien, CMS-Implementationen bis hin zu komplexen datenbankgestĂŒtzten Web-Applikationen, die so alles tun, was sie laut Kunden tun sollen. Was mir dabei besonders gefĂ€llt, ist dass die Arbeit vielfĂ€ltig ist – ich könnte wohl nicht in einer Firma arbeiten, wo ich auf ein einzelnes Projekt festgelegt wĂŒrde.

Wie kamst du zu PHP, wann war das und wie hast du PHP gelernt?

Das muss ungefĂ€hr ’98 gewesen sein. Damals hatte ich mit einem guten Freund ein Gewerbe gegrĂŒndet, um hauptsĂ€chlich Computerhardware zusammenzubauen und zu verkaufen. Da ich nebenher schon sehr an HTML und Design interessiert war, gelangen wir ĂŒber PC-Hardware auch in Kontakt mit einem anderen Dienstleister, der eine Onlineshop-Seite fĂŒr einen Kunden entwickeln sollte. UrsprĂŒnglich wollte ich nur das Design entwickeln, aber dann warf mir unser Partner das Stichwort “PHP” entgegen. “Damit kann man wohl im Web tolle Dinge machen” – und dann war’s um mich geschehen.

In einer Woche hatte ich das PHP Manual durchgearbeitet, und mit meiner Erfahrung in Basic und Turbo Pascal war die neue Syntax auch ziemlich einfach. Eine weitere Woche spĂ€ter stand dann meine erste MySQL-Datenbankapplikation eines Shop-Systems. SpĂ€ter habe ich dann meinen Zivildienst in der Caritas-Werkstatt begonnen und konnte dort eine Art Warenwirtschaftssystem entwickeln. Über den Zeitraum von 6 Monaten sind dabei gut 100.000 Codezeilen angefallen – rĂŒckblickend natĂŒrlich grausliger Spaghetti-Code, aber es hat toll geklappt und sogar mit Barcode-Scannern interagiert. Ich glaube das war dann der Punkt bei dem ich entschieden habe, dass mir logische Software-Entwicklung mehr Spaß macht und mir mehr liegt als das Design.

Was fasziniert dich an PHP?

Prinzpiell ist es die Einfachkeit, und der hohe VerfĂŒgbarkeitsgrad. Es gibt kaum noch Webserver, bei denen man kein PHP anwenden kann. Zudem ist die Sprache extrem simpel und bietet fĂŒr viele algorithmische Probleme direkt integrierte Funktionen an. Die Einrichtung von PHP ist ziemlich einfach, und viele Entwickler die sich damit auskennen, stehen zur VerfĂŒgung.

Besonders die einfache VerknĂŒpfung von HTML und PHP hat mich wohl damals fasziniert, und macht es auch heute noch möglich extrem schnell zum gewĂŒnschten Ziel zu gelangen. Ausserdem hat PHP eine sehr flache Lernkurve aber bietet auch nach Jahren immer noch neue Möglichkeiten zur Optimierung, so wie die neuen OOP-PHP5 Features.

Was meinst du was wir von PHP in den nĂ€chsten 2-3 Jahren erwarten können und wie siehst du den Stand von PHP in Anbetracht der “Konkurrenz” (Python, Ruby)?

Ich denke der große Vorteil von PHP ist, dass es kommerziell etabliert ist. Viele Web-Agenturen haben sich darauf bereits eingelassen, der Support von Hostern ist entsprechend groß.

Der Ur-Konkurrent Perl ist meiner Meinung einfach zu ‘obfuscated’; Perl-Code ist (fĂŒr mich) einfach hĂ€sslich zu lesen, und kann aufgrund seiner Syntax durchaus die ein oder andere Gehirnwindung verdrehen. Zudem ist Perl schon zu sehr auf’s
“Alles Können” spezialisiert, und daher fĂŒr den einfachen Webentwickler zu komplex.

Wie man an vielen PHP-Projekten sieht, sind viele PHP-Entwickler AnfĂ€nger, die schnell Ergebnisse produzieren – das ist das Hauptproblem von Python und Ruby. Durch die strenge Syntax von Python wird kaum ein AnfĂ€nger damit klarkommen –
denn wie man an PHP-Code sieht, ist der ĂŒberwiegend “hĂ€sslich” erstellt.

Einsteiger denken bei der Programmierung auch eher in funktionaler Strategie – kaum jemand wird direkt den Umgang mit Objektorientierung begreifen, worauf Python und Ruby aber basieren. Und das Web gewinnt man letztlich nur mit geringen AnfangshĂŒrden und flacher Lernkurve, aber mit Möglichkeit zum “sauberen Code”. Beides bietet PHP, und wird es auch in Zukunft bieten.

Ich hoffe sehr darauf, dass durch die aktuellen Anstrengungen Zend-Framework und ezComponents der generelle Code von Entwicklern mehr vereinheitlicht wird. Gute Komponenten entschlacken den eigenen Code und machen ihn leichter
wiederverwendbar. Worauf PHP sich auch “besinnen” muss, ist den faulen Entwickler einfacher zu sicherem und sauberen Code zu zwingen. SicherheitslĂŒcken wie XSS und SQL Injection mĂŒssen fĂŒr den User begreifbar in Programmierkonzepte umgewandelt werden, und die Entwicklung von PHP6 scheint da schon in eine gute Richtung zu gehen.

Das Fallbein wird da die Backward-Compatibility werden; das schönste, neue und sichere Konzept nutzt nichts, wenn jeder die “alte Syntax” verwendet. Hier wird es schwierig werden, einen guten Weg zu finden.

Gibt es fĂŒr PHP Einsatzgebiete wo PHP noch gar nicht oder zu wenig eingesetzt wird obwohl PHP dort viel Potential entfalten könnte?

Prinzpiell denke ich, dass jedes Einsatzgebiet speziell betrachtet werden muss, und man schauen muss, welche Programmiersprache fĂŒr ein Projekt am geeignetsten ist. Bei freien oder langjĂ€hrigen Projekten sollte man auf die Verbreitung der Programmiersprache achten, um nicht irgendwann zu wenig Entwickler zu haben. Aber genauso wichtig ist, ob die Sprache performant und stabil genug fĂŒr den Anwendungszweck ist.

Als Einsatzgebiet fĂŒr PHP noch wenig geeignet erscheint mir der Einsatz von stark parallelisierten oder geclusterten Anwendungen. Die nur rudimentĂ€re UnterstĂŒtzung von persistenten Objekten ĂŒber mehrere Requests hindurch ist noch eine Sache, die PHP lösen muss um in diese Region der JSP/Java-Anwendungen sinnvoll vorzudringen. Gleichzeitig sollte PHP aber keinen so massiven Footprint und Systemvoraussetzungen wie fĂŒr JSP/Java vorbringen.

FĂŒr Desktop-Anwendungen macht PHP, trotz allen PHP-GTK-Spaßes meiner Meinung nach wenig Sinn. PHP ist eine Scriptsprache, und kann/sollte mit solchen Anwendungen nicht konkurrieren.

Welche Neuerungen dĂŒrfen kurz- und mittelfristig vom PHPMyAdmin-Projekt erwarten und was ist deine Aufgabe dort?

Das ist eine stechende Frage. Leider ermöglicht es mir meine beschrÀnkte Zeit und andere Aufgaben in letzter Zeit kaum, im phpMyAdmin-Team anders als strategisch-beratend tÀtig zu sein.

Kurzfristig wird gerade sehr viel an einem MenĂŒ-basierten Installer vorgenommen, der schon gut voranschreitet. Auch MySQL5-UnterstĂŒtzung ist in letzter Zeit besser geworden.

Was phpMyAdmin mittelfristig leisten muss (meiner Meinung nach) ist ein komplett ĂŒberholtes Framework. Der jetzige Spaghetti-Code mit vielen HTML-Brocken ist bei der Menge an Code sehr unĂŒbersichtlich geworden. Hier bietet es sich an, ĂŒber eine Objekt-Orientierung zur Abstraktion nachzudenken, und auch ein Session-Handling zu konzipieren. phpMyAdmin initialisiert einen gewaltigen Wust an Initialdaten, und muss bei JEDEM Seitenaufruf die gesamte Konfiguration parsen. Das wird heutzutage immer mehr zu einem einschrĂ€nkenden Faktor.

Weiterhin soll(t)en die FunktionalitĂ€ten fĂŒr Rapid-DB-Prototyping ausgebaut werden; der Editor zur Behandlung von Referenz-Tabellen/Spalten und FremdschlĂŒsseln mĂŒsste mehrdimensionale VerknĂŒpfungen zulassen, um so auch das Layout von komplexen Datenbank-Strukturen zu erleichtern.

Gerade bei phpMyAdmin wĂŒrde der Einsatz von Ajax und einem leichten Framework extrem viel Sinn machen.

Diese drei Zentralpunkte (Framework-Neubau, MySQL5, Relationen) sind essentiell wichtig, um den Nutzen des Tools voranzutreiben. Ich sehe da allerdings wenig Licht am Ende des Tunnels, da diese Aufgaben mehrere Monate Entwicklungszeit und kompetenter, vorausblickender Entwickler bedĂŒrfen.

Du arbeitest auch am Serendipity-Projekt mit. Was ist deine Aufgabe dort?

Ich arbeite dort inzwischen fast nicht mehr nur mit, sondern verbringe den 99%igen Großteil meiner Freizeit-Programmierzeit damit.

Meine Aufgabe dort umfasst (leider) eigentlich fast alles: Release-Manager, Support, Feature-Entwicklung, PR.

“Leider” deshalb, weil ich mir eine grĂ¶ĂŸere Community mit stĂ€rkerer Aufgabenteilung wĂŒnsche. Ich mache das ganze zwar aus Leidenschaft und Spaß am Projekt, aber möchte auch, dass das ganze nicht nur von einer handvoll Personen abhĂ€ngt.

Könntest du in Kurzform erzÀhlen warum man Serendipity als Weblog-Software einsetzen sollte?

Es wĂ€re einfacher zu erklĂ€ren, warum man Serendipity nicht verwenden sollte. Dann wĂ€re ich jetzt fertig. 😉

Spaß beiseite. Serendipity bietet ein aufgerĂ€umtes, Plugin-orientiertes Framework. Damit ist es extrem flexibel und sehr anpassbar. Wir verwenden das Smarty-Template System, mit dem man alle möglichen Anpassungen vornehmen kann – und darum geht es dem Blogger ja hĂ€ufig.

Mehr als 100 Plugins lösen bei Serendipity so ziemlich jedes Problem und jeden Wunsch, den man beim bloggen entwickeln könnte.

Doch da hört Serendipity nicht auf, denn auch zum Einsatz fĂŒr “normale “Webseiten ist es inzwischen gut geeignet.

Eine detailierte Benutzer- und Rechteverwaltung, eine Online-Plugin-Verwaltung und eine ausgebaute Mediendatenbank runden das ganze Paket gut ab.

Letztlich muss man natĂŒrlich sagen, dass Blogger eigenwillige Zicken sind. Es gibt immer spezielle WĂŒnsche, damit man sich individuell prĂ€sentieren kann, und so zĂ€hlt auch die Auswahl der Weblog-Software dazu. Ob Serendipity, WordPress, Textpattern oder MoveableType: Alle bedienen das Metier fast gleich gut. Serendipity sticht durch seine FlexibilitĂ€t, geordneten Code und hohe Integrierbarkeit hervor.

Generell gilt: Probieren geht ĂŒber studieren. 🙂

Wie schaut die Zukunftsplanung fĂŒr Serendipity aus?

Wir haben derzeit viel vor. Version 1.0 steht vor der TĂŒr, und rundet die mehr als 3 Jahre Entwicklungszeit in einem schnuckeligen, stabilen Release ab. DafĂŒr polieren wir gerade viel am Design und der PrĂ€sentation. Denn eine Community kann nur dann grĂ¶ĂŸer werden, wenn auch mehr Leute von Serendipity wissen und auf den ersten Blick umfassend informiert werden können. Das ist derzeit in der Tat eher nur fĂŒr denjenigen möglich, der sich mehr mit Serendipity befasst.

In mittelfristiger Zukunft liegt der Ausbau der Dokumentation. Parallel befriedigen wir eigentlich immer Feature-Requests und kurzfristige PluginwĂŒnsche. Gerade das Plugin zur Bearbeitung von “statischen Seiten” wird noch einen wichtigen Punkt darstellen, und wird derzeit vom Hauptentwickler des Plugins detailiert vorbereitet.

Weitere Zukunftsplanung ist die Integration offener Schnittstellen, wie die Atom REST-API, den Ausbau des Online-Repositories. Auch dem User-Interface wollen wir uns stĂ€rker widmen, und dort stehen uns in naher Zukunft voraussichtlich eine Usability-Expertengruppe der OpenUsability.org zur VerfĂŒgung.

Auch Ajax (an den Stellen, wo es wirklich Sinn macht!) wird nach wie vor ein Thema bleiben. Vieles wird sich anhand der neuen WĂŒnsche der Blogger zeigen, auf die wir immer sehr großen Wert legen. Wir sind ein offenes und flexibles
Projekt, und werden dies nicht durch 2-jÀhrige Vorausplanung zunichte machen.

Braucht ihr (PHPMyAdmin und Serendipity) Hilfe und wie könnte man euch unterstĂŒtzen?

Hilfe braucht man natĂŒrlich immer. Gerade im Bereich der Dokumentation, Design und User Interface haben wir großes BedĂŒrfnis. Doch auch Entwickler, die sich gerne mit dem Framework an sich befassen möchten, sind immer willkommen.

Ein aktuelles “Problem” in Verbindung mit PHP sind Kontaktformulare. Viele Kontaktformulare werden von Spamern als Spam-Schleudern missbraucht. GefĂ€hrdet sind sogar Formulare, die bis dato als “sicher” galten. Also auch Formulare die eine feste EmpfĂ€nger-Adresse hatten und die auch htmlspecialchars und stripslashes intus hatten. Könntest du uns kurz erklĂ€ren, welches Prinzip wird hier ausgenutzt, wie kann man testen ob man gefĂ€hrdet ist und wie kann man sich gegen so was schĂŒtzen?

Leider gibt es im heutigen Spam-Zeitalter immer neue Mittel und Wege, wie Spammer ihre Sachen an den Mann kriegen. Nicht nur Viren, Trojaner und Phishing werden genutzt, sondern auch bestehende Webseiten.

An dem Wust von aktuellen SicherheitslĂŒcken (XSS, XSRF, SQL Injection, Header Injection, DDOS, …) gibt es vieles, worauf PHP-Entwickler achten mĂŒssen. Seiten wie www.hardened-php.net widmen sich dem sehr ausfĂŒhrlich, daher möchte ich nur kurz darauf eingehen.

Das oben angesprochene Problem der Kontaktformulare war insofern tĂŒckisch, als dass man mit der Anwendung der “ĂŒblichen Sicherheitsfunktionen” htmlspecialchars()/stripslashes()/*_escape_string() einen Fall nicht bedacht hat:

HTTP-Anwendungen und auch E-Mails erlauben beide die Festlegung von Metadaten, sogenannter Header. HTTP-Header geben Meta-Informationen zur DokumentgrĂ¶ĂŸe, Cookies und Systemzeit aus, wĂ€hrend E-Mail Header den Absender, Absendezeit, Inhaltstyp u.Ă€. angeben.

Beide Header unterteilen die einzelnen Felder mit einfachen ZeilenumbrĂŒche (\r\n). Wenn irgendwo in den Header einen Benutzereingabe auftaucht (z.B. “From: $user”), dann kann es sein, dass ein böswilliger User in dieser Variable einen
Zeilenumbruch mit weiteren individuellen Headern eingeschleust hat. Diese Header werden dann vom HTTP-Browser oder E-Mail-MTA durchaus interpretiert, und können sowohl zu gefÀlschten HTML-Seiten als auch zu völlig anderen Spam-E-mails
umgewandelt werden.

Seit PHP 5.1.2 und 4.4.2 besteht das Problem bei HTTP-Headern nicht mehr, da ZeilenumbrĂŒche nicht mehr erlaubt werden. FĂŒr E-Mails die mittels der mail() Funktion versendet werden, gilt dies jedoch nach wie vor. Daher muss der Programmierer darauf achten, dass er aus allen Benutzereingaben ungĂŒltige Zeichen wie \r, \n, \t, \0 alle entfernt.

Diesen Beitrag teilen:

Verwandte BeitrÀge:

10 Kommentare

  1. Danke fĂŒr das gelungene Interview. Ich schlage mich momentan durch diverse EinfĂŒhrungen von PHP und bin erstaunt darĂŒber, wie «einfach» und schnell man sich vorarbeiten kann. Ich hĂ€tte mir das eigentlich viel schwieriger vorgestellt. Zwar bin ich noch far away vom Ziel, aber ich bin zuversichtlich das ich es erreiche. Zudem empfinde ich die grosse Verbreitung von PHP als riesen Vorteil. Überall gibt’s Tutorials, Hinweise, Dokumentationen etc. etc. Wirklich super.

  2. Endlich da: DrWeb Design-Trends 2.0…

    Auf eine Aussage zu Design-Trends aus dem Hause DrWeb haben wir lange warten müssen. Nun wissen wir endlich, woran wir uns zukünftig orientieren müssen. Im gestrigen Podcast-Interview habe ich es angedeutet. Die Trend-Interviews Webdesig…

  3. From Rags to Riches…

    Ein weiterer Punkt in meiner Lebens-Todo-Liste ist erledigt, ich habe endlich auch mal ein Interview mit Perun bestreiten dĂŒrfen.

    Themen sind natĂŒrlich Serendipity, phpMyAdmin, PHP und Luft und Liebe. Hoffentlich hab ich keinen Schwachfug verzapft….

  4. Garvin talks…

    Kurz vor dem 1.0-Release von s9y darf Garvin sich im Interview mit Perun mal so richtig ausquatschen: ĂŒber PHP, s9y und Kontaktformularspam. Streckenweise technisch, aber interessant.(Gefunden bei Garvin.)…

  5. Interview-Serie gibt kreative Impulse im Netz…

    Wenn kreative Ideen Früchte tragen, dann freue ich mich besonders. Angeregt durch die Interview-Serie auf einfach-persoenlich stellt Perun in seinem Blog einige Leute genauer vor. Heute das Arbeiten und Wirken von PHP-Entwickler Garvin Christoff …

  6. Perun interviewt Garvin Hicking…

    Kennt ihr das? Man hat eine Idee und bevor man sie ausfĂŒhrt ist jemand schneller? Mir ist das gestern passiert. Nachdem ich so im Web gesurft habe dachte ich mir, fĂŒhre doch ein Interview mit Garvin Hicking – einem der Hauptsupporter von Serendipity. S…

  7. Naja, schon interessanteres gelesen. Das ĂŒbliche halt. Aber mach bitte mit den Interviews weiter, die sind an fĂŒr sich schon klasse!

  8. Mein Dankeschön der Woche…

    Wirkliches Lob und konstruktive Kritik gibt es viel zu wenig. Jede Woche danke ich einem Menschen auf ganz besondere Art und Weise dafür, dass er mich persönlich um einige Erkenntnisse reicher gemacht hat. Wer bekommt das Dankeschön die…

  9. Mein Interview im ITS ART Magazine…

    Vor einiger Zeit wurde ich vom Herausgeber des eZines ITS ART Magazin gefragt, ob er ein Interview mit mir ĂŒber Serendipity und genereller Programmierung fĂŒhren könne.

    Da es mich zu solchen Sachen ja immer euphorisch hinzieht, konnte ich nicht wiede…

Kommentare sind geschlossen.