20 Nov 2009

Und da ist er auch schon vorbei, der zweite Vortragstag der International PHP-Conference 2009 hier in Karlsruhe. Ich bin mittlerweile deutlich optimistischer gestimmt was den Anspruch und die Relevanz einer solchen Konferenz angeht, denn viele der Sessions waren wirklich gut.

Aber von vorne.

Der Erste Vortrag “Building configurable applications for the web” wurde gehalten von so einem Yahoo!-News Fuzzi. Wirklich interessant, wie die Ihre Applikationen skalieren bzw. auf große Lasten ausrichten. Im Grunde werden einfach alle Bereiche einer Webseite in Module aufgeteilt (News-Artikel, related-links, Werbebanner, Kommentare etc..) und mit Prioritäten versehen. So ist zum Beispiel der eigentliche Newstext ja der Kern der Seite – hat also eine hohe Priorität – wo hingegen ein Bereich der weniger entscheidend ist (Related Links, Webebanner) durchaus nicht kritisch sind. Das Geheimnis liegt nun darin, diese Module konfiguriebar (konkret: abschaltbar) zu machen. Wenn nun (un)erwartet viel Traffic auf eine Seite einschlägt (beim Tod Michael Jackson waren es 33.000 PI in der Sekunde!!), kann man einfach niedriger priorisierte Module abschalten und so Ausführungszeit gewinnen. Simpel wie effizient.

Die zweite Speak zum Thema Softwaremetriken verstehen und Nutzen war ebenfalls sehr interessant. Jemand wer ich, der bis dato nicht wusste was Metriken sind (es aber hätte wissen sollen) wurde hier wirklich gut Bedient. Softwaremetriken sind halt einfach statistische Werte des Codes. Also wieviel Zeilen enthält das Programm (Lines of Code, LOC) wieviele davon sind Kommentare, wieviele tatsächlich ausführbar und so weiter. Weiterhin werden bestimmte mathematische Faktoren erläutert, die aus dem Code gelesen werden können. Beispiel dafür ist die “Cyclomatic Complexity” die die Komplexität einer Methode als Zahlwert repräsentiert.
Diese Metriken dienen dazu, Code in Zahlen zu verwandeln und somit Codequalität zu messen. Das ist eben interessant bei einer Argumentation gegenüber Projekt-Managern, die nur mit puren Zahlen zu überzeugen sind.

Kurz vor dem Mittagessen gab es dann die Keynote über Webstandards. Ein Typ von Opera zeigte wirklich interessante neue Features von HTML5. Clientseitige Formularvalidierungen machen hier JavaScript beinahe unnötig. Auch das native <video> Element (dass der Firefox 3.5 mit einem ogg-Format ja schon unterstützt) bietet wesentlich mehr Vorteile als man vielleicht auf dem ersten Blick vermuten würde.

Dann wurde es etwas anstrengender. In der Session “Code sleeps smells” ging es um Refactoring Prinzipien. Also wann wir refactored? Was wird refactored und wie wird refacored? Wenn man sich auch nur ein wenig mit PHP beschäftigt hat und für den Martin Fowler nicht der Hauptdarsteller aus Herr der Ringe ist, wird genau nichts interessantes neues erfahren. Leider  litt der Redner stark am 3L Syndrom (leise, langsam, langweilig) was dann in Kombination mit der ersten Session nach der Mittagspause extrem gefährlich war. Mitgenommen habe ich hier aber die “Boy scout rule” von der ich in Clean Code schonmal geselen habe. Diese besagt dass man den Campingplatz [den Code] immer ein Stückchen sauberer hinterlassen soll als man ihn vorgefunden hat”. Treffend formuliert.

Die folgende Session “Sichere Applikationen auf Basis des Zend-Frameworks” vom Security-Papst Stefan Esser war für mich persönlich die beste der Konferenz. Mir ist glaube ich noch nie so viel auf einmal klar geworden, wie in diesen Minuten der Session. Dafür erstmal ein Dankeschön an Stefan Esser. Ich benutze unserialize() jetzt unter ganz anderen Umständen. Auch habe ich sehr großen Respekt vor der Arbeit Essers. Irgendwann will ich auch mal so werden ;)

In “How to achieve more with less code” von Stefan Priebsch ging es dann um “alltags-Code”, den jeder von uns oft benutzt und der auch viel kürzer, schneller und besser geht. Bestes Beispiel ist hier IMHO die möglichkeit, Arrays auch per Referenz zu “foreachen”. Sprich statt code bisher wie:

$array = array('one','two','three','four');
$result = array();

foreach($array AS $item) {
	$result[] = doSomethingWith($item);
}

return $result;

Kann man seit PHP5 auch:

$array = array('one','two','three','four');

foreach($array AS &$item) {
	$item = doSomethingWith($item);
}
return $array;

Das ist mir persönlich nicht neu, aber viele wissen davon nix. Unbedingt merken! Ganz interessant war auch der Ansatz HTML Formulare als DOMXML-Objekte zu parsen und dann mittels XPath ausdrücken dynamisch die Values zu setzen. Ganz ähnlicher Ansatz wie PHPTAL finde ich!

17 Nov 2009

Ich war leider erst zum Mittag da, so dass ich so gerade noch in die Keynote Speech von Zend zum Thema “PHP in the cloud” rutschen konnte. Der Vortrag war vom Ansatz her interessant, bot aber irgendwie keine konkreten Empfehlungen oder Ideen. Die erste richtige Session war “Continuous Inspection and Integration of PHP-Projects” von Sebastian Bergmann und Stefan Priebsch. Es ging dort grob um automatisches deployment und Testing von Software. Wer sich schon mal mit dem Thema auseinander gesetzt hat, wird einiges wiedererkennen und sich nur wenig überrascht oder erleuchtet fühlen. Interessant aber das Tool “PHP Copy&Paste Detection”, dass sich beispielsweise in einen CI-Server integrieren lässt. Es erkennt Code-Dupletten, die zu inkonsistentem Code führen und diesen unnötig aufblähen.
Mitgenommen habe ich auch das Zitat

“Gute Tests ersetzen Dokumentation”

Die Aussage deckt sich ein wenig mit meinem momentan vorherrschendem Konflikt bei der Frage, ob Dokumentation gut oder böse ist (“Guter Code muss nicht dokumentiert werden”).

In der folgenden Session ging es um Messaging mit XMPP (“Building Real-Time Applications with XMPP” von Travis Swicegood). Ein wirklich spannender Vortrag rund um XMPP (also Jabber), dessen Anatomie und Funktionen (presence, message, Info/Query) gut erklärt am Beispiel von Twitter. Zwar wurde in dem Vortrag faktisch gar nicht auf PHP bzw. eine mögliche, konkrete Implementierung eingegangen, die Idee wurde aber klar und ich werde sicherlich einmal mehr darüber nachdenken, Prozesskommunikation (oder sogar Synchronisierung) über XMPP abzuwickeln.

Die letzte Session des Tages “Event-Driven-Architecture” von Benjamin Eberlei war eigentlich eine gute Ergänzung zu dem XMPP-Thema. Es dauerte zwar, bis das “Worum-gehts-eigentlich” Problem verschwand, nach dem es aber klar war, dass hier auf Observer-Patterns eingegangen wurde, konnte ich ein paar interessante Ideen abgreifen. Viel neues Erfuhr man leider auch hier nicht, aber von der Messaging-Lösung “Gearman” hatte ich bisher noch nicht gehört. Sollte man sich unbedingt mal anschauen, wenn man bestrebt ist, Aufgaben, die nicht direkt bei Ausführung erledigt werden müssen, in einen Hintergrund-Prozess auszulagern. Ich hab da schon ein paar Ideen entwickelt ;-)

Soweit die Zusammenfassung des ersten Tags.

16 Nov 2009

6.41 Uhr Abfahrt Bielefeld Hauptbahnhof – ich muss schon ziemlich bescheuert sein. Die erste Geburtstatgs – SMS ist angekommen. Langsam geht die Sonne auf. Ich sitze im ICE 503 nach Karlsruhe auf dem Weg zur Internationalen PHP-Conference 2009 (aus Gründen der eigenen Faulheit werde ich künftig nur ‘IPC’ schreiben)
Ich habe dieses Jahr das Glück als Blogger akkreditiert zu sein und kann die 3 Tage mal voll durchziehen. Letztes Jahr saß leider nur ein Tag drin. Ich bin daher sehr gespannt.

Ich werde also in (deutlich) engeren Abständen in den nächsten Tagen hier bloggen. Wer noch die volle Dröhnung haben möchte, kann mir natülrich auch bei Twitter folgen!

17 Feb 2008

Eher durch Zufall bin ich auf ein verhalten von WordPress gestoßen, dass ich hier doch mal sehr rügen möchte. Sämtliche ausgehende Links aus den Kommentaren (also URL des Kommentators und auch Links im Beitrag selbst) werden automatisch mit dem attribut rel=”nofollow” versehen.
Dieses Attribut beruht auf einer Initiative von Google:

From now on, when Google sees the attribute (rel=”nofollow”) on hyperlinks, those links won’t get any credit when we rank websites in our search results. This isn’t a negative vote for the site where the comment was posted; it’s just a way to make sure that spammers get no benefit from abusing public areas like blog comments, trackbacks, and referrer lists.

Bedeutet im Klartext, alle Links mit diesem Attribut gehen NICHT in das Suchmaschinenranking der Zielseite ein. Dies dient primär der Vermeidung von Kommentarspam. An sich eine sehr nette Sache dieses Attribut. Ich kann also selbst entscheiden, welche Links von meiner Seite weg gewertet werden sollen und welche nicht. Ja, wenn mans denn könnte. Denn in WordPress ist es leider nicht von Haus aus möglich, dieses Verhalten abzuschalten. Dazu bedarf es schon eines Plugins.

Ich halte akut nicht viel von dem nofollow Verhalten. Ich bin der Meinung, dass jemand, der einen Link in welcher Form auch immer in meinen Kommentaren hinterlässt in irgendeiner Form dafür belohnt werden sollte. Eine Wertung im SuMa Ranking finde ich da absolut nicht verkehrt. Problem mit Kommentarspam habe ich auch nicht. Akismet verrichtet hier hervorragende Dienste.
Ich werde also in den kommenden Tagen das Plugin mal installieren und testen. Vielleicht kann ich ja den einen oder anderen zu Ähnlichen Handlungen bewegen, schließlich haben wir irgendwo ja alle was davon.

17 Jan 2008

Achtung: Nerd-Content!!!

Fremden PHP-Code debuggen macht hin und wieder richtig Spaß. Vor allem, wenn man auf sowas hier stößt:
if( ($_POST['link1'] != "") || ($_POST['link1'] == "")){
foo();
} else {
bar();
}

Ob die Welt untergeht, wenn wir in den else-Block springen? Man weiß es nicht….

04 Jan 2008

Alex und ich arbeiten momentan an einer kleinen StudiVZ-Modifikation, die mit Hilfe des Greasemonkey Addons für Mozilla das StudiVZ von einem hässlichen rot in ein schickes Facebook-blau umwandelt. Alex hat sogar ein eigenes Logo dafür entworfen!
Es gibt zwar schon einige “Blau-Mods” für das StudiVZ, aber die sehen alle nicht wirklich gut aus und sind zum Teil auch schon wieder unaktuell – also nicht komplett blau, sodass viel zu viel rot-zeug noch durchscheint. Bei uns ist das anders ;)
Wie gesagt ist es momentan noch ein Greasemonkey Script – ich plane aber daraus ein komplett eigenes Addon zu schreiben, hauptsächlich damit das Script nicht jedesmal von einem externen Server das CSS nachläd und Traffic verursacht.
Wir halten euch auf dem Laufenden.

Bei Alex gibt es übrigens auch eine hübsche lila Edition für das SchülerVZ

01 Jan 2008

Ist ne komfortable Sache, wenn mans einmal drauf hat. 
$ svn sw http://svn.automattic.com/wordpress/tags/2.3.2/
Dieses “switch” statement von subversion reicht vollkommen aus. WordPress “Core-Files” werden (sofern sie sich geändert haben) geupdated. Von Plugins und Themes werden die Finger gelassen. Echt praktisch und schnell erledigt. Setzt allerdings voraus, dass sich das Blog bereits in einem svn Verzeichnis befindet, d.h. also vorher schonmal mit svn ausgechecked werden muss.Eine Anleitung wie man einen “herkömmliche” Installation in einen svn-checkout umwandelt gibt es aber auch.
Es ist nicht wirklich aufwändig und die einmalige Arbeit lohnt sich wirklich für (definitiv kommende!) WordPress updates.

02 Sep 2007

Grade hier im Postkasten gelandet und ab dem 5. September im Handel. Das aktuelle T3N-Magazin, dem Magazin für OpenSource, Web und TYPO3. Dieses mal mit einem kleinen Artikel über die Template Engine Smarty von mir. Zugegeben, es ist weder was großes noch ein komplexes Thema. Aber ein wenig stolz bin ich schon ;)
Neben meinem Artikel sind natürlich auch wieder jede Menge andere lesenswerte Artikel enthalten. So zB auch über Footer-Positionierung mit CSS meines Arbeitskollegen Ben. Weiterhin:

  • CRM mit Open Source
  • Geodaten in TYPO3
  • TYPO3-Leistung ausreizen
  • Workshop Ruby on Rails

Absoluter Kaufbefehl von mir :)

03 Mai 2007

null

Close
null
Gestern bin ich durch Zufall auf die neue Software der Panic Inc. gestoßen. Die Hersteller der bekannten FTP-Software Transport haben ein neues, dickes, schönes Ei gelegt. Das Programm Coda versteht sich als “One-Window-Webdevelopment”-Software. Und das trifft es auch. Es ist ein sehr komfortabler Editor mit vielen Features wie:

  • Syntax Highlight für gängige Websprachen (XHTML, CSS, PHP, Ruby u.a.)
  • Integrierter (S)FTP-Client in einer Sidebar (Basierend auf Transport)
  • Integrierter SSH-Client (super praktisch)
  • Outlining für Klassen und HTML Strukturen
  • Autocompletion für die gängigen Sprachen
  • sehr gute Inline-Dokumentation

Oder um es mit den Worten der Webseite zu sagen:

Text editor + Transmit + CSS editor + Terminal + Books + More = Whoah.

 

Man bekommt auf der Webseite eine 14 Tage funktionierende Testversion – danach muss man die Software für 79$ kaufen. Ich hätte es direkt getan – leider kann man nur mit Kreditkarte zahlen. Schade.

Für Mac User auf jeden Fall einen Intensiven Blick wert.

10 Feb 2007

Ich hab heute Abend mal im Anflug von Langeweile das Blog etwas "gepimpt" (ich hasse dieses Wort). Soviel hat sich aber bisher noch nicht getan. Der Banner ist neu, die Seite an sich ist etwas breiter. So hab ich Platz noch ein wenig mehr hier reinzupacken, ohne dass es gequetscht aussieht.

Morgen werde ich mich noch um den Footer kümmern, da bin ich grade zu faul zu. Weitere Features befinden sich in der Entwicklung ;)
&

« vorherige Einträge