Vom 25. Mai bis zum 27. Mai sind wir in Berlin zur RailsWayCon. Die Konferenz hält einige interessante Vorträge und Workshops bereit. Mal sehen was für Neuigkeiten und Ideen wir mitnehmen können.

Unter http://railsmagazin.de/railswaycon-in-6-minuten-1411 findet man auch ein cooles Video mit Eindrücken der RailsWayCon.

Tag 1 - 25. Mai 2009

4:30 Uhr Aufstehen und auf nach Berlin.

9:00 Uhr Strahlender Sonnenschein und wir gehen jetzt rein ;-)
Wir sind pünktlich im Berliner Kongress Center und gespannt auf die folgenden 3 Tage. Die Konferenz startet mit zwei Power Workshops "Behaviour-Driven Design" und "Deploying Ruby on Rails Applications".

"Deploying Ruby on Rails Applications"
Jonathan Weiss und Mathias Meyer gaben eine gute Übersicht über die verschiedenen und am weitesten verbreiteten Ruby on Rails Deployment Möglichkeiten. Angefangen von Mongrel Web Cluster, über Phusion Passenger auf Nginx oder Apache Web Server bis zum JRuby Warbler wurden die verschiedenen Ansätze beleuchtet. Schwerpunkt war dann das Automatisieren des Deployment-Prozesses mit Capistrano. Hier wurden anschaulich an einem Mitmachbeispiel die Vorteile von Capistrano gezeigt. Sehr interessant fanden wir auch das Eigenprodukt Webistrano, welches die Vorzüge des automatischen Deployments noch um eine Weboberfläche erweitert und somit die Konfiguation des Deployment-Prozesses noch weiter optimiert. Weitere Schwerpunkte des Workshops waren Monitoring und Skalierbarkiet von Rails Anwendungen, sowie Ansätze für eine Volltext-Suche.

"Behaviour-Driven Design - in practive"
Jens-Christian Fischer zeigt anhand eines kleinen Projekts, wie man mit RSpec, Cucumber und Webrats Test-Driven bzw. Behaviour-Driven Development betreibt. Da wir mit Twitter einen externen Service ansteuern, ist es auch sinnvoll, Stubs bzw. Mocks zu nutzen. Deren Erstellung ist wirklich kinderleicht. Mit Machinist können wir uns außerdem Blueprints für Objekte erstellen, wenn wir keine DB-bezogenen Fixtures verwenden wollen.


Tag 2 - 26. Mai 2009

Heute gibt es 15 Veranstaltungen zur Auswahl. Man hat die Qual der Wahl, wenn gleichzeitig interessante Vorträge stattfinden. Wir werden wohl abstimmen, wer von uns in welchen Vortag geht. ;-)

"The State of Asynchronous Processing in Ruby

Mit Thread.new() { ... } erzeugt man in Ruby einen neuen Thread. Dabei tauchen aber einige Probleme auf, die uns Mathias Meyer erläutert. Für die alltäglichen Probleme wie das Aufbereiten von statistischen Daten, tägliche Email-Erinnerungen oder lange Upload-Tasks möchte man wahrscheinlich größere Lösungen, wie beispielsweise Rufus oder Nanite. Diese haben dann Jobs, welche verwaltet und durch JobRunner ausgeführt werden. Dass man sicherstellen sollte, dass diese Jobs auch von Fehlern berichten, dürfte niemanden überraschen.

"JRuby Internals"
Wie schaffen es die Jungs in JRuby-Core-Team Ruby auf der JVM laufen zu lassen? Wer das schon immer mal genauer wissen wollte, war beim Vortrag von Ola Bini genau richtig. Er zeigte uns stichpunktartig einige Ansätze und Implementationen von JRuby. Erklärte wie funktioniert der "Lexer" oder Compiler und warum sie z.B. die Umsetzung von Array neu implementiert haben. Es war ein guter Einblick in die Arbeit des JRuby Teams.

"Show the Frontend some Love: HAML and SASS
Jeder der Rails kennt weiß, das eines der Hauptprinzipien DRY heißt (Don't Repeate Yourself). Auch Ui-seitig wird dort viel mit den ERB-Templates erreicht. Jan Krutisch zeigte in seinem Vortrag wie man ein Rails-Frontent mit HAML und SASS umsetzen kann. Cool!!! Also wer schon immer vergeblich nach Konstanten und Mixins in CSS suchte, ist hier genau richtig. Das werden wir uns in nächster Zeit genauer ansehen. Als Bonus gab noch eine kurze Einführung in Compass - ein CSS Framework.

"Automating Project Creation with Rails Templates"
Schon das fünfte Rails-Projekt gestartet und wieder zuerst die gleichen Plugins installiert, die gleichen Gems eingetragen und die gleiche Admin-Struktur aufgebaut? Mit dem Template-System von Rails 2.3, in das uns Michael Johann einführte, kann man die Erzeugung eines Projekts automatisieren. In einem kurzen Beispiel zeigte er uns, wie Benutzerabfragen getätigt wurden, Routen erzeugt und Rake-Tasks ausgeführt wurden. Auch ein Git-Repository mit initialem Commit kann so gleich automatisch erzeugt werden. Ideal, wenn man viele kleinere Rails-Applikationen mit gleicher Technik bauen will.

"The Pleasure and Pain of Migrating to jRuby"
Seine Erfahrungen bei der Migration einer Ruby on Rails Anwendung nach JRuby, erläuterte Steven Bristol in seinem Vortrag. Er zeigt einige von ihm angewandteTricks um die FullText-Suche zum Laufen zu bringen und klagte über seine Probleme beim Deployment mit Glassfish.

"RESTful Rails for Fun and Profit: Making HTTP work for you"
Der Vortrag von Stefan Tilkov war definitiv einer der Höhepunkte des Tages. Klar hatte jeder seiner Zuhörer bereits von REST gehört, aber nach dieser Stunde weiss man auch genug, um diese Technik einzusetzen. Gerade die Intergation über Anwendungsgrenzen hinweg ist eine Stärke von REST und genau das haben wir in naher Zukunft bei einem wichtigen Kunden vor uns.

"Ioke for Ruby Developers"
Ola Bini hielt einen Vortrag, der möglichst weit von Rails und auch ein wenig von Ruby entfernt war - nämlich über seine eigene Sprache namens Ioke. Diese befindet sich noch im Anfangsstadium, enthält aber schon einige interessante Features.

Keynote - "Present and future of Programming Languages"
Ola Bini hielt auch die Keynote, in der er kurz seine Meinung zur Geschichte der verschiedenen Programmiersprachen zusammenfasst und deren Zukunft erläutert. Es wird spannend ;-) Unsere T-Shirts fand er interessant!

"Refactoring Rails Applications"
In einer sehr anschaulichen Weise zeigte Jonathan Weiss seine Arbeitsweise und Vorgehen beim Refactoring. Am Beispiel von Redmine zeigte er, wie man die Rails-Controller schlank halten kann, die Businesslogik in die Models verschiebt und mit für sich selbst sprechenden Methodennamen arbeitet. Das alles natürlich immer mit der Unterstützung von Unittests.

"Are you taking things too far?"
RESTful Design dürfte der aktuellste Hype innerhalb der Rails-Community sein. Doch drückt die URL "comments/edit/1" wirklich die eigentlich Struktur aus, wenn ein Comment doch zu einem Post eines Users gehört? Müssen wir nicht eher "users/2/posts/3/comments/edit/1" schreiben? Die Antwort lautet natürlich hier ziemlich eindeutig "Nein". In anderen Beispielen zu DRY und Testing zeigte Michael Koziarski vom Rails-Coreteam aber, dass es nicht immer einfach ist, den Punkt zum Aufhören zu finden.

"jQuery with Rails"
Wer kennt es nicht - das Javascript Framework jQuery! Yehuda Katz, einer der führenden Köpfe aus der Rails und jQuery Entwicklung, erläuterte in seinem Vortrag seine Herangehensweise bei der Integration von jQuery Funktionalität in das Railsframework. Welche Schritte und Überlegungen sind seiner Meinung nach notwendig, um gute Rails-Helper zu programieren.

So nun ist aber Schluss für Heute. Aber nur bei mit den Vorträgen! Es kommt ja noch die Abendveranstaltung. Auf geht's!


Tag 3 - 27. Mai 2009

Der letzte Tag der RailsWayCon ist angebrochen. Auch heute erwarten uns interessante Vorträge und Gespräche mit den neuen und schon geknüpften Kontakten.

"Metaprogramming Ruby for Fun & Profit"
Unglaublich wie einfach einige Dinge in Ruby zu erledigen sind. Neal Ford zeigte in seinem Vortrag einige Möglichkeiten von "Monkey-Patching", "Method-Hooking", "Eigenclass" und ... Cool!!! Es lohnt wirklich sich die Zeit zu nehmen um seine Vorträge auf http://github.com/nealford anzushen. Hier das PDF-Präsentation des RailsWayCon Vortrages.

"Rails Performance"
Anders als erwartet erzählte Michael Koziarski nicht über Performance einzelner Rails-Komponenten, sondern erklärte uns, dass beim User oft nur Bruchteile von interner Optimierungsarbeit ankommen, da Dinge wie das Laden von Bildern, von Javascripts oder das Ausführungen vieler Folge Requests meist mehr Zeit in Anspruch nehmen als das eigentliche Rendern der HTML-Seite. Dennoch gab es noch ein paar wertvolle Hinweise rund um das Caching von Views, Models und Actions.

"From Rails to Rack: Making Rails 3 a better Ruby Citizen"
Rails 3 nimmt Gestalt an. Yeduda Katz erläuterte die Merb-Rails-Vereinung in Rails 3. Rails ist dann viel modularer aufgebaut, so dass einzelne Teile z.B. der Middleware sehr gut austauschbar sind. Sehr verbessert wird die Javscript-Integration. Es ist dann ohne weiteres möglich zwischen den einzelnen JS-Frameworks (z.B. jQuery, Prototyp, Mootools,...) zu wechseln.
Wann ist es soweit? Das liess er dann doch im Geheimen. ;-)

"Boost your Website's Performance with Frontend Optimization"
In diesem kurzen Vortrag wurden uns die verschiedenen Möglichkeiten der Optimierung des Frontends von Ralph von der Heyden vorgestellt. Das Zusammenfassen von Javascripts und CSS-Dateien und das Spriting von Hintergrundbildern gehörte genauso zu den Themen wie der Webseiten-Check mit YSlow. Es gab ein paar Überschneidungen mit dem Vortrag von Michael Koziarski, aber ein wenig Wiederholung tut uns natürlich auch gut.

"Ruby/Rails in the Enterprise"
Es funktioniert! Maik Schmidt veranschaulichte uns sehr gut seine Erfahrungen beim Einsatz von Ruby und Rails bei Vodafone. Er berichtete, welche Sichtweise und Anforderungen Programmierer von Enterprise-Software an Ruby on Rails haben und mit welchen Problemen (namentlich am Beispiel der I18n Umsetzung) sie zu kämpfen hatten. Interessant war auch der Performancevergleich des internen Ruby XML PullParsers mit anderen, wie LibXML oder JRuby/Woodstox. Unglaublich wie langsam der interne XML Parser schon bei dem einfachen Beispiel im Vergleich zu den anderen ist. Ein sehr gelungener Vortrag und das nicht nur, weil Maik Schmidt meinte, er würde das nächste Projekt mit Sicherheit in JRuby on Rails beginnen.

Fazit

Das war ein guter Start für die RailsWayCon. Die Vortragsthemen, gerade die der Jungs aus dem Core Team der JRuby und Rails Entwicklung waren spannend und lieferten für mich manchen neuen Denkanstoß. Das BCC mitten in Berlin als Veranstaltungsort ist gut gewählt, doch leider waren die Raumgrößen nicht immer passend ausgesucht. Des öfteren war es doch recht überfüllt. Die Stimmung war aber trotzdem gut, Kontakte wurden geknüpft und wir sind mit der JRuby Entwicklung auf dem richtigen Weg.

RailsWayCon Timetable
Die Konferenz aus Sicht der Ruby-Mine Blogers
Ola Bini's Erfahrungen auf der RailsWayCon - A day at RailsWayCon
Steven Bristol Erfahrungen auf der RailsWayCon - Berlin Wrap UP