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

Wer findet den Widerspruch?
Twitter war halt noch nie informativ oder verlässlich

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!

18 Okt 2009

Den ganzen Sonntag hat’s gedauert, aber endlich habe ich mein Time Machine Backup über das Netzwerk (über meinen Ubuntu-Server/NAS) unter 10.6 am Laufen.

Ausgangspunkt meiner Bemühungen war dieser wirklich gute Artikel. Allerdings brach mein Backup immer mit der Meldung ab, es könne kein Image anlegen. Zwar sieht dieser Artikel eine Lösung des Problems vor – indem nämlich das Sparsebundle manuell angelegt wird und dann auf die Netzwerkfreigabe kopiert wird. Aber auch nach diesem brach das Backup mit Fehler 45 ab.

Fehler 45 beim Time Machine Backup

Fehler 45 beim Time Machine Backup

Nach vielem Rumprobieren mit Dateirechten und netatalk-Einstellungen fand ich dann auf  MacOSXHints.com den korrekten Hinweis auf ein Funktionierendes Netzwerk-Backup.

Das Geheimnis liegt in einer Property-Datei, die innerhalb des Images liegen muss und an der Snow Leopard das Image dem Rechner zuordnen kann. in 10.5 wurde dies noch anhand der Mac-Adresse im Image-Namen erledigt. Nun läuft dies über eine .plist-XML Datei, die die Hardware-UUID des Macs enthält. Wie man das ganze einrichtet, ist sehr gut in dem Artikel beschrieben und funktionierte dann bei mir ohne Murren und Knurren.

Endlich nicht mehr dauernd an die Externe Platte denken, sondern einfach Zuhause im WLAN einwählen und das Backup läuft. Sehr gut.

10 Okt 2009

PS3 Mediaserver auf OS X.. ist für mich seit heute der PS3Mediaserver ein in Java geschriebenes, kostenloses DLNA-Tool speziell für die PlayStation 3. Daher ist es sowohl auf Windows, Mac OS X und Linux lauffähig.

Das ganze Teil ist super leicht einzurichten und zu bedienen. Ich musste lediglich den Ordner für meine Dateifreigabe wählen und schon lief alles.

Bisher habe ich MediaTomb auf meiner Linux-Kiste benutzt, mit dem ich eigentlich sehr zufrieden war. der PS3Mediaserver hat aber ein paar meiner Meinung nach unschlagbare Features. So kann es sehr viel besser on-the-fly encodieren. Das ist nützlich, wenn man MKV-Container hat und diese ohne Umwandlung direkt auf der PS3 schauen will. Auch ist es möglich sämtliche Tonspuren umzuwandeln. Ach bevor ich mich hier um Kopf und Kragen rede, besser einfach die Featurelist der Projektseite

  • Ready to launch and play. No codec packs to install. No folder configuration and pre-parsing or this kind of annoying thing. All your folders are directly browsed by the PS3, there’s an automatic refresh also.
  • Real-time video transcoding of MKV/FLV/OGM/AVI, etc.
  • Direct streaming of DTS / DTS-HD core to the receiver
  • Remux H264/MPEG2 video and all audio tracks to AC3/DTS/LPCM in real time with tsMuxer when H264 is PS3/Level4.1 compliant
  • Full seeking support when transcoding
  • DVD ISOs images / VIDEO_TS Folder transcoder
  • OGG/FLAC/MPC/APE audio transcoding
  • Thumbnail generation for Videos
  • You can choose with a virtual folder system your audio/subtitle language on the PS3!
  • Simple streaming of formats PS3 natively supports: MP3/JPG/PNG/GIF/TIFF, all kind of videos (AVI, MP4, TS, M2TS, MPEG)
  • Display camera RAWs thumbnails (Canon / Nikon, etc.)
  • ZIP/RAR files as browsable folders
  • Support for pictures based feeds, such as Flickr and Picasaweb
  • Internet TV / Web Radio support with VLC, MEncoder or MPlayer
  • Podcasts audio/ Video feeds support
  • Basic Xbox360 support
  • FLAC 96kHz/24bits/5.1 support
  • Windows Only: DVR-MS remuxer and AviSynth alternative transcoder suppor

Super praktisch finde ich neben den erwähnten Features auch die Möglichkeit DVD-ISO Images bzw VIDEO_TS Ordner auf der Playstation anschauen zu können. DVD-Menüs werden dabei zwar nicht unterstützt, aber jede Film- und Tonspur kann einzeln ausgewählt werden.

Sowieso kann man sämtliche Einstellungen bezgl. Transcoding und sonstiger Einstellungen direkt über die XMB der PlayStation vornehmen. Cool.

Einen kleinen Wermutstropfen für alle, die beispielsweise ein NAS oder einen sonstigen kleinen Medienserver einsetzen. Das JAVA-Tool benötigt scheinbar zwangsläufig die GUI. Auf Linux-Basis bedeutet das also einen funktionierenden X-Server, der auf den meisten kleinen NAS-Servern wohl  nicht laufen wird. Für das Transcoding von MKV-1080p Containern wird zudem ein Dualcore-CPU empfohlen.

Erste Tests hier verliefen sehr gut – ich werde das Teil weiter testen!

28 Sep 2009

Bevor ich hier zum Politik/Basherblog verkomme lieber wieder etwas Katzencontent

27 Sep 2009

Manchmal verliere ich den glauben an intelligenz oder kompetenz einiger Leute.

Bereits bei der Europawahl und der hiesigen Komunalwahl fiel es mir schon auf, dass sich viele Leute darüber positiv äußerten, dass bei der Wahl keine Peronalausweiskontrolle durchgeführt wird. Begründet wurde das immer mit “Man vertraut dem Wähler” – Einige Wahlhelfer twitterten das auch

Bildschirmfoto 2009-09-27 um 19.58.46

Find ich ja prinzipiell sehr gut – Vertrauen ist ja immer was Gutes. Dass das ganze mal höllisch unsicher ist und gerade beim Thema Wahlen nochmal 2 Stufenen kritisch ist, scheint dem Bielefelder Verein für mehr Datenschutz wohl nicht so wichtig zu sein. Wahrscheinlich versteht man das unter einer “lebendigen Demokratie” (http://www.foebud.org/), wenn jetzt mein Nachbar sich meine Wahlbenachrichtigung aus dem Briefkasten schnorrt und damit zweimal wählen geht.

Sehr komisch finde ich aber dagegen, dass unter vielen Anderen genau dieser Verein sich massivst gegen den Einsatz von Wahlcomputern ausspricht. Mit der Begründung das System genüge “nicht den Anforderungen an Sicherheit, Überprüfbarkeit und Nachvollziehbarkeit” (Quelle – Hervorhebung von mir).

Stößt nur mir das etwas auf? Komischer Verein

20 Sep 2009

..sind genau 4,9%!

Warum? Das ist recht vielfältig. Ich habe sehr großen Respekt vor dem, was die Piratenpartei gerade in den letzten Wochen so erreicht hat. Diese Massen im Internet zu erreichen und zu einer politischen Meinung zu bewegen ist ein Erfolg ohne Gleichen. Es gelingt in der Tat nicht vielen aus einer großen, unpolitischen Masse einer Politik zumindest nicht mehr verdrossene zu formen.
Natürlich spielen auch die ‘politischen’ Ziele der Partei eine Rolle. Wahrscheinlich denken alle Leser der Zielgruppe meines Blogs (also Du, vor deinem Feedreader) genauso wie ich, dass die Internet-Zensur scheiße und die verdachtsunabhängige Vorratsdatenspeicherung ein Werk des Teufels persönlich ist.

Aber viele Ziele – oder vielmehr Ideale – der Partei sind mir völlig fern. Video-Überwachung an öffentlichen Plätzen ist in meinen Augen würdig und recht, wenn sich dadurch Verbrechen wesentlich schneller aufklären lassen oder optimalerweise durch Abschreckung gar nicht erst geschehen. Ebenso zweifelhaft finde ich die Idee der Informationellen Selbstbestimmung. Hierbei ist die Grundidee, das jeder frei bestimmen kann, wer welche Informationen über einen selbst erhalten, speichern und weitergeben darf. Wenn man nun einmal diesen Gedanken weiterdenkt, so macht sich doch jemand, der keinerlei Daten über sich bei irgendwem speichern lässt viel verdächtiger als jemand, der mit seinen Daten im sagen wir mal “normalen” Umfang umgeht. Aber genau dieser Falsche Verdacht soll doch durch mehr Anonymität verhindert werden. Ich denke, die Idee geht nicht ganz auf.

Viel schlimmer finde ich aber die geplante Neuregelung des Urheberrechts. Aus dem Wahlprogramm (sofern man es denn so nennen kann) der Piraten ist zu entnehmen:

“Die derzeitigen gesetzlichen Rahmenbedingungen im Bereich des Urheberrechts beschränken jedoch das Potential der aktuellen Entwicklung, da sie auf einem veralteten Verständnis von so genanntem “geistigem Eigentum” basieren, welches der angestrebten Wissens- oder Informationsgesellschaft entgegen steht.”

Ein veraltetes Verständnis von geistigem Eigentum? ich gebe ja zu, dass die Definition von geistigem Eigentum wohl etwas schwammig, oder auch unhandlich ist. Aber falsch ist sie sicherlich nicht. Was erwartet uns denn nach der Neuregelung des Begriffs und damit des Urheberrechts? Jemand schreibt einen Text oder ein Buch weil er a) Freude daran findet und b) auf diese Weise Frau und Kinder ernährt. Das Buch wird eine Zierde seiner Art – verkauft sich gut, bekommt überwiegend positive Kritiken und der Autor ist mit seinem geistigen Eigentum zufrieden. Nun geht jemand daher und erklärt, das Werk sei so gut und nützlich für diese Informationsgesellschaft, das es in anbetracht der zu erhebenen Gebühr des Buches (von dem zugegebenermaßen nur ein kleiner Teil an den Autor selbst geht) wider der Informationsgesellschaft sei und bestimmt daher, dass das Buch nicht mehr das geistige Eigentum des Autors ist und nun allen in jeder Form kostenlos zur Verfügung stehe. Klar – übertriebenes Szenario – aber was genau die Piraten mit dieser Neuregelung des Begriffes meinen, bleibt völlig unklar.
Noch lachhafter aber diese Argumentation:

“Da sich die Kopierbarkeit von digital vorliegenden Werken technisch nicht sinnvoll einschränken lässt und die flächendeckende Durchsetzbarkeit von Verboten im privaten Lebensbereich als gescheitert betrachtet werden muss, sollten die Chancen der allgemeinen Verfügbarkeit von Werken erkannt und genutzt werden. (Quelle)”

Aha. Weil man bisher kein erfolgreiches “Mittel” gegen das Raubkopieren gefunden hat, soll mans einfach sein lassen und leaglisieren? Erinnert ein wenig an eine Vogel-Strauss Taktik. Seit 20 Jahren sucht die Forschung  nach einem Mittel gegen Krebs. Nun ist bisher kein wirklich wirksames gefunden worden. Also lassen wir’s sein und erklären den Tod an Krebs als natürliche Todesursache??

To make a long story short: Die Piratenpartei ist – nicht zuletzt aufgrund des Beweises von vollständiger Offline-Medienkompetenz – keine Alternative für Regierung oder Opposition. Die haben dort rein gar nichts verloren. Gut dagegen natürlich als Zeichen für die großen Parteien, das nicht einfach alles so hingenommen wird und es tatsächlich Menschen gibt (und zwar an der Menge nicht zu knapp) die Sich auf diese Weise bemerkbar machen.
4,9 % für die Piraten würde das richtige Zeichen an die künftige Regierung setzen – weiterhin verwehrt es sowohl den Links- wie auch Rechtsextremen Parteien gute Wahlergebnisse durch Nichtwähler.

16 Jun 2009

Nur mal schnell ein Auszug aus den Statusmeldungen meines neuen Vorzeige-Emos!

emo-galore

« vorherige Einträge