Skip to content

Nachbericht Barcamp RheinMain in Wiesbaden

Um mich an die immer noch gültige Barcamp-Regel Nr. 2 zu halten …

Blogge über das BarCamp.

… hier nun mein Nachbericht zum Barcamp RheinMain 2012 in Wiesbaden, dem mittlerweile vierten Barcamp in der Rhein-Main-Region.

Die Location

Der Himmel über dem Barcamp RheinMain 2012

Die Wiesbadener Location in der Hochschule RheinMain war von allen bisherigen Barcamp-Locations in Rhein-Main die beste, und das nicht nur, weil ich in knapp 30 Minuten gemütlich zu Fuß hinschlendern konnte. Auch die Sessionräume passten von der Größe und der Aufteilung her. Ganz besonders wichtig fand ich die große Halle, in der es Kaffee und andere wichtige Getränke gab, in der das Essen serviert wurde, in der sich die Co-Working-Spaces präsentierten, in der auch Sessions abgehalten wurden, und in der sich alle Teilnehmer immer wieder trafen, sich austauschen und ausruhen konnten. Denn die Gespräche mit den anderen Teilnehmern sind bei Barcamps mindestens genauso unverzichtbar wie die Sessions selbst.

So verbrachte ich am Samstag auch mehr Zeit mit persönlichen Gesprächen als in Sessions. Nicht dass die Themen nicht interessant gewesen wären, aber mir war der Sinn irgendwie mehr nach direktem Dialog und Austausch. Und ich habe es genossen, zumal ich neben vielen alten Bekannten auch neue Menschen und Ansichten kennengelernt habe. So muss das auch sein auf einem Barcamp.

"Nachbericht Barcamp RheinMain in Wiesbaden" vollständig lesen

PHPUnit für die Entwicklung von Serendipity-Plugins

Geben wir es ruhig zu, der PHP-Code von Serendipity ist nicht mehr State of the Art, sondern zum großen Teil noch auf dem Stand von PHP 4. Dass dieser Code immer noch sehr zuverlässig funktioniert, und ob und wie mit dem aktuellen Stand umzugehen ist, soll hier nicht das Thema sein. Ich möchte hier auf die Entwicklung von Serendipity-Plugins eingehen, die nicht umsonst in einem eigenen Repository leben. Deren Qualität lässt sich mithilfe von Unit Tests sicherstellen.

PHPUnit für Plugins

Auch wenn die Grundfunktionalität von Serendipity durch Unit Tests abgedeckt ist: Die Plugin-Entwicklung ist bisher nicht so einfach zu testen. In meinen letzten Projekten waren Unit Tests mit PHPUnit ein zunehmend zentraler Bestandteil der Entwicklung. Entweder damit ich nachträglich sicherstellen konnte, dass Klassen und Methoden bei Veränderungen und Refactoring noch taten, was sie tun sollten; oder weil ich testgetrieben entwickelte, das heißt zuerst die Unit Tests und dann erst den zu testenden Code schrieb. Dieses Vorgehen möchte ich nicht mehr missen, und es hat mich gestört, dass es bei der Entwicklung von Serendipity-Plugins nicht ohne Weiteres möglich war.

Screenshot einer Konsole mit erfolgreich durchlaufenen Unit Tests

Daher habe ich mich hingesetzt und PHPUnit so in meine lokale Serendipity-Installation, die ich zum Entwickeln verwende, integriert, dass ich einzelne (Event-)Plugins separat testen kann. Die spezifischen Herausforderungen ließen sich recht schnell überwinden:

  • In Serendipity werden Plugins stark getrennt vom Core über Event-Hooks ausgeführt. Diese Hooks müssen natürlich einzeln getestet werden können.
  • Viele Variablen sind als global deklariert oder werden per Referenz "herumgereicht". Das erfordert einige Workarounds, die heute dank Dependency Injection und ähnlichen Entwurfsmustern zum Glück überflüssig sind.
  • Data Fixtures: Um Serendipity für die Tests "hochzufahren", wird eine Datenbankverbindung benötigt. Mir ist es bisher nicht gelungen, eine der unter Database Testing aufgeführten Methoden umzusetzen. Besser gesagt: Ich war einfach zu faul und habe die nötigen Daten in einer SQLite-Datenbank hinterlegt.
"PHPUnit für die Entwicklung von Serendipity-Plugins" vollständig lesen

Mediacenter on a Stick: OpenElec, XBMC, Spotimc

Als Follow-Up auf meinen Blogpost "Spotify unter Ubuntu mit Android fernsteuern" möchte ich wie angekündigt im Folgenden aufschreiben, wie mein aktuelles "Wohnzimmer-Setup" aussieht. Damit kann ich Musik und Filme nicht nur von meinem lokalen Home-Server streamen, sondern Musik eben auch über Spotify, und ich kann alles mit meinem Android-Handy bequem von der Couch aus fernsteuern. Zwar ist die Bedienung wahrscheinlich weniger elegant als bei mancher kommerziellen Lösung, dafür sind aber die Möglichkeiten dank Open Source weitaus weniger eingeschränkt.

Meine Voraussetzungen: Ich besitze ein Netbook - ein Medion Akoya E1210 von Aldi, nahezu baugleich mit dem MSI Wind U100 - und hatte es schon häufig neben den großen Fernseher im Wohnzimmer gestellt, um darauf Filme aus der Mediathek oder von Platte anzusehen. Auf dem Netbook läuft ein aktuelles Ubuntu, allerdings boote ich dieses in letzter Zeit kaum noch. Deshalb habe ich mich nach einer passenden Media-Lösung umgesehen. Da das Netbook nur einen VGA-Ausgang besitzt, habe ich den TV über ein VGA-zu-VGA-Kabel angeschlossen.

XBMC

Screenshot XBMC

Um die Wiedergabe von Medieninhalten auf dem großen TV zu vereinfachen, habe ich irgendwann das Paket xbmc (und xbmc-standalone) installiert. XBMC hieß früher Xbox Media Center und entstand als Open Source-Projekt genau für diesen Anwendungsfall: ein Mediacenter für eine (ausrangierte) Microsoft Xbox der ersten Generation.

Mittlerweile lässt sich XBMC auf einer Vielzahl von Hardware-Plattformen einsetzen, auf dem letzten LinuxTag konnte ich sogar eine Variante für den Raspberry Pi-Minicomputer bewundern. Die Hardware-Anforderungen sind also erfüllbar, mein Netbook mit einem 1,6 GHz Intel Atom-Prozessor, integriertem Intel GMA 950-Grafikchip und nur 1 GB RAM reicht für die meisten Anwendungsfälle aus. Mag sein, das sehr anspruchsvolle HD-Filme mein Setup in die Knie zwingen - in diese Verlegenheit kam ich aber bislang nicht.

Für XBMC existieren recht hübsche grafische Oberflächen, wie man sie von Mediacentern kennt. Im eigenen WLAN lässt sich XBMC sogar über einen anderen PC via Browser oder übers (Android-)Smartphone bequem von der Couch aus fernbedienen. Dazu später mehr.

Von meinem Ubuntu-Desktop aus ließ sich XBMC ganz einfach als Programm starten und erkannte die Auflösung des Fernsehers automatisch korrekt. Meinen Heimserver mit Videos und Musik konnte ich ebenso wie andere Add-Ons (YouTube, Mediathek, Soundcloud) einfach verbinden und nutzen. Die Standalone-Variante von XBMC, die ohne Ubuntu-Desktop als Unterbau auskommt, lief ebenso - allerdings wurde hier die HD-Auflösung des Fernsehers nicht richtig erkannt. Auch dazu weiter unten mehr.

"Mediacenter on a Stick: OpenElec, XBMC, Spotimc" vollständig lesen

Spotify unter Ubuntu mit Android fernsteuern

Weil ich danach gefragt wurde, wie ich denn bitteschön Spotify unter Linux über mein Android-Smartphone fernsteuere, beschreibe ich das hier mal. Es gibt natürlich kommerzielle Lösungen, etwa von Sonos, die schon ziemlich komfortabel sind. Habe ich selbst noch nicht ausprobiert, kostet halt schlappe ca. 500 Euro (und hat jetzt nichts mit Linux zu tun). Es gibt aber auch Apps wie Spotify Controller, die sogar ganz gut im Zusammenspiel mit Ubuntu funktioniert, daher gehe ich kurz darauf ein. Meine eigentliche Lösung (feat. OpenElec, XBMC und Spotimc) stelle ich dann demnächst in einem gesonderten Blogpost vor.

Spotify Controller

Screenshot der Spotify Controller AppUm Spotify auf eurem Ubuntu-Rechner mit Hilfe der Android-App Spotify Controller fernsteuern zu können, braucht ihr zum einen den nativen Spotify-Client für Linux. Die aktuellste Version bekommt ihr am einfachsten über das Repository deb http://repository.spotify.com stable non-free. Auch wenn da "Preview" obendrüber steht - bei mir läuft die seit Monaten stabil, nur ein, zwei interne Spotify-Apps laufen nicht (z.B. die von Blue Note).

In der Beschreibung der App ist der Link zum zugehörigen Server versteckt, den ihr bei euch lokal auf dem Rechner installieren müsst, auf dem ihr auch den Spotify-Client installiert habt. Entpackt das Archiv, wechselt ins eben entpackte Verzeichnis und führt ./install aus. Nach Eingabe des root-Passworts ist der Server in der Regel startklar und kann mit SpotifyController und dann Klick auf "Start" gestartet werden.

Jetzt könnt ihr mit der Spotify Controller-App rudimentär euren Spotify-Client fernsteuern. Natürlich funktioniert das nur innerhalb des gleichen WLANs. Die offizielle Android-Spotify-App ermöglicht das Auswählen von Tracks und Playlisten über die Fernbedienung. Den Rest findet ihr selbst raus ;-)

GUI zu Steuerung des Spotify Controller Server unter Ubuntu
GUI zu Steuerung des Spotify Controller Server unter Ubuntu

Freelancer Rhein-Main: Neue Webseite für Freiberufler und Selbständige

Florian Brandel hat gestern die öffentliche Beta-Version seiner Plattform für Freelancer im Rhein-Main-Gebiet freigeschaltet. Unter freelancer-rheinmain.de können sich Freelancer, Freiberufler und Selbständige hauptsächlich aus dem IT- und Kreativ-Umfeld eintragen und von potentiellen Kunden gefunden werden. Jeder Freelancer kann sich mit einem Kurzprofil im Visitenkarten-Format präsentieren und für mehr Informationen auf seine Webseite und etliche Soziale Netzwerke verweisen.

Clever (und erfreulich nerdig *g*) gelöst ist die Art und Weise, wie sich Freelancer ins Verzeichnis eintragen können. Dafür wird auf ein paar Zeilen im JSON-Format zurückgegriffen, die beim populären Software-Hostingdienst Github verwaltet werden. Wer technisch versiert genug ist, kann sein Profil also einfach über die Versionsverwaltung und einen Pull-Request pflegen. Eine Anleitung gibt es hier. Wer keinen Account bei Github hat oder sich nicht mit dem technischen Kram auseinandersetzen möchte, kann seine Daten auch einfach per E-Mail einsenden.

Profil von Florian Brandel bei Freelancer Rhein-Main

Ich habe Florian ein paar Fragen zu der neu gestarteten Plattform gestellt, um das Projekt noch besser kennenzulernen:

"Freelancer Rhein-Main: Neue Webseite für Freiberufler und Selbständige" vollständig lesen