Skip to content

Barcamp Ruhr 4

Tag-Cloud zum bcruhr4
Tagcloud, gebildet von Tim Krischak aus den Tags der Teilnehmer während der Vorstellungsrunde

Das Barcamp Ruhr in Essen ist eins der schönsten deutschen Barcamps. Am Wochenende hat es zum vierten Mal stattgefunden, und ich war einer von etwa 200 Teilnehmern. Im Vorfeld habe ich bereits meine Vorfreude auf der noch recht neuen Plattform Storify kundgetan.

Das Drumherum

Das Unperfekthaus (Uph) ist die perfekte Location für ein Barcamp. Diesmal war sie sogar "noch perfekter": Alle Teilnehmer durften sich zwei Tage lang ungehemmt durchs sensationelle Buffet des Uph schlemmen, was den Vorteil hatte, dass wir auf eine Unterbrechung des Flows durch die Mittagspause verzichten konnten, und den Nachteil, dass die zusätzlichen Pfunde jetzt wieder abtrainiert werden müssen ;-)

Ansonsten, und das hat auch die traditionelle Abschluss-Session mit ausschließlich positivem Feedback gezeigt, gab es nichts zu meckern. Die Organisation klappte wie am Schnürchen, die Teilnehmer waren motiviert und die Stimmung war gut. Einziger Wermutstropfen: Ein Netbook wurde offenbar geklaut :-(

Die Sessions

Besonders gut hat mit das breite Themenspektrum der angebotenen Sessions gefallen. Da es mittlerweile zu vielen Themen Spezialcamps gibt, darf ein (trotz Schwerpunkt "Mobile Apps") eher allgemein gehaltenes Barcamp gern Sessions beheimaten zu: Windjammer-Törns in der Karibik, Fahrradfahren auf Kuba, Leben in Shanghai, Impro-Theater, Fernsehserien, Schlagzeugspielen, Atombunkern, Lomografie, Selbstfindung und tanzenden Nerds. Die technik- und web-affinen Sessions kamen ja trotzdem nicht zu kurz.

Ich kann nur von den Sessions genauer berichten, die ich besucht habe, und möchte mich kurz fassen. Daher hier eine kommentierte Liste "meiner" Sessions:

  • Openstreemap und RegioWikis von Werner Kathe: Schöne Übersicht über die Aktivitäen in der Region Ahrweiler; da ich mich aber schon länger mit OSM beschäftige, zu oberflächlich für mich. Macht aber nichts, denn ich konnte abends mit Werner weiterdiskutieren :-) Ich habe auf dem Barcamp Mainz auch schon eine OSM-Session gehalten und weiß, wie schwierig es ist, wenn Neulinge und Fortgeschrittene in derselben Session sitzen. Ich sollte mir bis zum nächsten Barcamp ein paar Gedanken dazu machen …
  • Jan Theofel fragte in seiner Session: "Wer bin ich wirklich?", und stieß damit viele Gedanken und durchaus kontroverse Konversationen an. Ich hätte mich gern noch mit Jan darüber ausgetauscht, aber das hat leider nicht geklappt. Wir können das ja bei Gelegenheit nachholen, Jan?
  • Einige Todsünden der Selbständigkeit besprachen wir in der Session von Alexander Talmon. Am Ende war es auch ein interessanter Erfahrungsaustausch unter Selbständigen und solchen, die es noch werden wollen.
  • Sehr interessant und - weil Hypethema - auch entsprechend gut besucht war die buzzwordschwangere Session über Single Page Apps von Jan Monschke und Eray Basar. Da ich mich seit einer Weile sehr für Javascript-lastige Webseiten und -applikationen interessiere, war diese Session diejenige, in der ich die meisten mental notes gemacht habe. Sehr viele spannende Technologien konnten nur angerissen werden, aber es war sehr schön zu sehen, wohin die Reise von Webapps geht.
  • Der Samstag klang aus mit einigen Fun-Session, die viel zur besonderen Athmosphäre dieses Barcamps beitrugen: Serienjunkies von Andreas Kupfer, Chatroulette, Powerpoint-Karaoke und abschließend Party mit Länderspiel-Viewing, Hopfenkaltschalen und guten Gesprächen.
  • git für Fortgeschrittene von Jan Varwig: Viel Input, den ich nicht immer sofort kapiert habe, der aber die Hemmungen davor genommen hat, sich etwas tiefer in die inner workings von git einzulesen.
  • In seiner Arduino-Einführung von Daniel Hepper beeindruckte mich vor allem sein LED-Hut. Seit einigen Wochen schon besitze ich ein Arduino Uno (und wollte längst darüber gebloggt haben), bin aber noch lange nicht so weit, einen Hut mit knapp 1.000 LEDs zu basteln. Dennoch nehme ich die Session gern als Motivationsschub mit.
  • Schließlich gab Droid Boy noch eine Einführung ins Thema Podcasts, die leider nur sehr spärlich besucht war. Podcasts sind offenbar aber auch ein schwieriges Thema.

Die Zukunft

Der Tag nach dem Barcamp ist eigentlich immer schwierig. Einerseits bin ich noch voller positiver Energie vom Barcamp, andererseits muss ich auch wieder ans "normale" Leben denken. Da ist mir doch so ein Blogbeitrag wie dieser eine willkommene Ausrede, in Gedanken noch etwas beim Barcamp zu verweilen. Ein paar Fotos helfen dabei:

Ob es auch im nächsten Jahr wieder ein Barcamp Ruhr geben wird, ist zurzeit offen. Alle Teilnehmer dürften mir aber zustimmen, dass es unbedingt wieder eins geben muss. Ich jedenfalls halte mir meine Märzwochenenden vorerst frei. Zu guter Letzt noch ein großer Dank an alle Sponsoren (Nokia, Windows Phone, Otto, TechSmith, Metro Future Store Initiative, next, Steuerung B, mixxt und Medien.NRW), die das Barcamp Ruhr ermöglicht haben - und vor allem an Stefan, der wieder einmal Außergewöhnliches geleistet hat.

PHP-CodeSniffer in Netbeans integrieren

Hohe Code-Qualität ist nicht nur in großen Projekten wichtig, an denen mehrere Programmierer sitzen. Auch im Kleinen hilft die Einhaltung formaler Richtlinien (Coding Standards), Fehler zu vermeiden und den Quellcode wartbar zu halten. Mittlerweile existieren auch für PHP diverse Tools, die den Programmierer beim Coden unterstützen. Zwei davon, Code-Sniffer und Mess Detector, bemängeln automatisch anhand definierter Regeln auch kleine Unachtsamkeiten wie fehlende Kommentare, ungenutzte Variablen oder übermäßig komplizierten Code. Diese lassen sich recht einfach auch in IDEs wie Netbeans integrieren, wie ich im folgenden kurz zeige.

PEAR-Pakete downloaden

Voraussetzung sind die PEAR-Pakete PHP_CodeSniffer, das von Greg Sherwood betreut wird, und PHP_MD (PHP Mess Detector von Manuel Pichler). Die Links verweisen auf Installationsanleitungen. In der Regel lassen sich die Pakete mit PEAR-Bordmitteln installieren.

Unter Linux werden unter /usr/bin die beiden Batchfiles phpcs bzw. phpmd installiert, die zum Ausführen der Tools verwendet werden sollten, weil sie Prüfungen vornehmen und benötigte Klassen importieren.

Netbeans-Plugin installieren

Bei der Suche nach entsprechenden CodeSniffer-Plugins für Netbeans habe ich zwei Projekte gefunden. Das Plugin von Benjamin Eberlei wurde im April 2010 zum letzten Mal aktualisiert und hat bei mir nicht richtig funktioniert (YMMV). Das PHP CodeSniffer Netbeans Plugin (Download für Netbeans 6.9.1) lief auf Anhieb und hat auch die Unterstützung für PHP_MD bereits integriert. Zur Installation ladet ihr die *.nbm-Datei herunter und installiert das Plugin in Netbeans unter "Extras → Plugins → Heruntergeladen → Plugins hinzufügen …". Gegebenenfalls ist jetzt ein Neustart von Netbeans nötig.

Tools konfigurieren

Unter "Extras → Optionen → PHP → phpMD bzw. phpCodeSniffer" können nun globale Einstellungen vorgenommen werden. In der Regel müssen zunächst die jeweiligen Batch-Dateien (/usr/bin/phpmd und /usr/bin/phpcs) angegeben werden. Außerdem kann ein Coding-Standard, z.B. "Zend" eingetragen werden (mehr Infos dazu in der Dokumentation). Über die Schaltfläche "Test Settings" lässt sich überprüfen, dass die Batch-Dateien korrekt angegeben wurden.

Wird jetzt eine PHP-Datei im Netbeans-Editor geöffnet, parsen die Tools den Dateiinhalt und geben ihre Ergebnisse im "Aufgaben"-Fenster aus. Dort lassen sich die Resultate auch gruppieren und filtern. Diese variieren natürlich je nach Coding Standard und werden jeweils beim Speichern einer Datei neu ermittelt.

Projektspezifische Einstellungen

Wer möchte, kann sich auch eigene, so genannte "Sniffs" programmieren, also eigene Validierungsregeln aufstellen. Sollen diese allerdings nicht global für alle Projekte gelten, sondern nur für einzelne, ist etwas Handarbeit gefragt. Im Netbeans-Projektverzeichnis, also im Verzeichnis nbprojects, muss eine Datei codesniffer.properties angelegt werden, die projektspezifische Settings beinhaltet. Dort können verschiedene Optionen gesetzt werden, allerdings bin ich mir nicht sicher, ob alle möglichen Kommandozeilenargumente auch dort gesetzt werden können. Soll ein eigenes Ruleset definiert werden kann man darauf verweisen:

phpcs.standard=/pfad/zum/eigenen/ruleset.xml

Es sind im Endeffekt nur kleine Helferlein, aber sie erledigen nützliche Arbeit im Hintergrund. Und sie machen sich nach einer Weile fast selbst überflüssig, wenn man als Programmierer darauf achtet, nicht immer wieder die gleichen Fehler "vorgehalten" zu bekommen.

10. Treffen der PHPUG Rheinhessen

Zum zehnten Mal traf sich am Dienstag die PHP User Group Rheinhessen. Ein kleines Jubiläum also, und dass wir auch diesmal wieder ein paar "Neulinge" begrüßen durften, hat uns sehr gefreut. Denn neue Teilnehmer bereichern unsere Treffen ungemein, indem sie neue Perspektiven aufzeigen, neue Themen ansprechen und neue Ideen mitbringen.

Ich habe den Eindruck, unsere kleine PHPUG hat sich mittlerweile etabliert und macht allen Beteiligten viel Spaß. Nichtsdestotrotz wäre es schön, wenn noch mehr Menschen von der PHPUG in Mainz erfahren würden. Vielleicht gibt es auch Interessierte, die sich nicht überwinden können oder nicht trauen, einfach mal reinzuschauen. Bei uns wird jeder freundlich empfangen :-)

Jetzt aber noch ein kurzer Rückblick auf unser Treffen: Zum Thema "PDF-Generierung mit PHP: fpdf und pdflib" konnte uns Stefan Kilp aus eigener Erfahrung einiges berichten. Als Fazit bleibt unter anderem festzuhalten, dass die bekannten frei verfügbaren Bibliotheken alle ihre Grenzen haben, die kommerzielle PDFlib dagegen eine sehr umfangreiche PDF-Unterstützung bietet. Das Thema bot so viel Diskussionsstoff, dass wir es für den Abend bei einem Vortrag beließen. So blieb im Anschluss mehr Zeit über dies, jenes und anderes zu klönen. Zum Beispiel über Ingos Mikrokopter.

Wenn alles klappt, wird er uns beim nächsten Treffen (am 19.04.) noch mehr über Mikrokopter und das Landkamp 2011 erzählen. Ist ja nicht so, dass wir nur PHP im Kopf hätten ;-)