ruby-mine

exploring the mine

[Euruko2006] Hannover, Berlin und München

von bovi am 12.11.2006 (03 Uhr)

Die europäische Ruby Konferenz (kurz Euruko) fand am 4. und 5. November 2006, diesmal im weitentfernten München, zum dritten Mal statt. murphy und mir blieb also nix anderes übrig als unser Hab und Gut zusammen zu packen und uns auf den beschwerlichen Weg ins winterliche Bayern zu machen. Hier ist unsere Geschichte...

initialize

Zu beginn muss ich wohl einige Vorbedingungen für unsere Reise definieren. So befindet sich meine Wohnung derzeitig geografisch in der Mitte von Deutschland. Im Gegensatz dazu wohnt murphy im tiefen Osten der Republik. Unser Ziel war, wie oben bereits erwähnt, das im Süden Deutschlands liegende München. Die Koordinaten standen somit fest, jedoch stellt sich in Deutschland leider die Frage nach dem Transportmittel. Im Gegensatz zu Afrika besitzen wir hier leider nicht nur die Möglichkeit auf einer Giraffe von A nach B zu reiten. Nein, die Infrastruktur gibt uns sinnloserweise eine Fülle von Möglichkeiten, die mir teilweise bis zu diesem Tage garnicht bekannt waren. So gibt es seit kurzem (nach einigen Tests der Gebrüder Wright) die Möglichkeit wie ein Vogel von Stadt zu Stadt zu fliegen. Hannover, Berlin und München besitzen einen sogenannten Flughafen und waren damit u.a. für dieses Transportmittel durchaus prädestiniert. Jedoch haben Flugzeuge in letzter Zeit leider die Angewohntheit statt auf freien Flächen eher in bewohnten Gebieten zu landen. Außerdem habe ich eine Familienpackung Zahnpasta immer mit dabei und da diese mehr als 100ml zähflüssige Masse enthält, ist es mir technisch nicht möglich ein solches Flugzeuge zu besteigen. Wie wir sehen, ist dieses Transportmittel derzeitig bei weitem noch nicht ausgereift, wir mussten uns folglich etwas anderes suchen. Mein Blick fiel damit auf ein staatliches Unternehmen die zufälligerweise die gleichen Initialien wie ich verwenden. Gemeint ist nicht etwa die Telekom (denn die haben ja keine Initialien, oder?!), ich spreche hier natürlich von der guten alten Deutschen Bahn. Ähnlich wie die bereits erwähnten Flugmaschinen benötigt ein von der DB eingesetztes Fahrzeug ein oder besser mehrere train stations (neudeutsch Bahnhof). Auch davon existieren in Hannover, Berlin und München einige, damit war auch dieses Fortbewegungsmittel durchaus kompatibel zu unserem Reiseziel. Wenn ich jetzt gerade darüber nachdenke, fällt mir auf Anhieb kein wirklich tolles Argument gegen die Benutzung der Bahn ein. Wir hatten für die Reise eine Menge Zeit und hätten mit Verspätungen deshalb kein Problem gehabt. Auch führte unser Reiseweg nicht durch Eschede, wo uns eine Zugteilung ein bisschen aufgehalten hätte. Von daher wäre die Bahn wohl eine der genialsten Reisemittel gewesen aber da wir ja im Allgemeinen sehr pragmatisch veranlagt sind und folglich niemals zum Optimum greifen, entschieden wir uns für Tor Nummero Drei und fuhren mit meinem Auto. Die Strecke wurden präzise mit der omnipräsenten Google Map geplant, auf welche ich in diesem Artikel wohl schon mindestens Zwanzigmal verlinkt habe. Deshalb gibt es hier auch nochmal zwei Links. Unsere Reise ging also von Hannover nach Berlin und dann nach einer kleinen Pause weiter von Berlin nach München.

main(1)

Nachdem wir nach Sechs Stunden München erreichten (ich wollte den Cayenne ein wenig schonen und Sprit sparen, deshalb bin ich halt ein wenig langsamer gefahren..) machten wir uns auf die Suche nach unserer Villa, welche wir für zwei Nächte reserviert hatten. Unter dem Namen Jugendherberge München-Thalkirchen stand die Adresse, welche wir gut und gerne 2 Stunden lang in München suchten. Kleiner Tipp an alle Leute die wie wir kein Navigationssystem im Auto haben (nein das ist nicht standardmäßig bei Porsche dabei), haltet an der ersten Tankstelle und kauft euch eine Straßenkarte, der Lohn ist das Erreichen des Zieles. Wir erreichten unser Ziel um ungefähr 2 Uhr Nachts, wo uns der Security Service beim Einchecken half und uns schlußendlich in unser Zimmer geleitete. Bevor wir ins Bett fielen, fiel uns noch ein, dass wir noch garkein Abendbrot gegessen hatten. Also machten wir uns mit unserer neuen Straßenkarte auf den Weg den nervenden Hunger im nächsten Restaurant zu stillen. Zwischen Zwei und Drei Uhr saßen wir dann in einem kleinen, sehr modern eingerichteten, Fast Food Laden einer recht großen Kette. Mit den dort aufgenommenen Geschmacksverstärkern konnten wir nun mit gutem Gewissen in unserem Bett platz nehmen und die Nacht über uns hereinlassen.

ZZZZZZzzzzzzzZZZZZZZZzzzzzzz......

Frisch, munter und ausgeschlafen begannen wir den Tag mit einem ordentlichen Frühstück. Anschließend began der Ruby Tag sofort. Denn uns sprachen direkt zwei Leute an, die scheinbar hellseherische Fähigkeiten hatten. Sie konnten anhand eines gezielten Blickes erkennen das wir ebenfalls zur Euruko wollten. Ob es nun an meiner oliv farbigen Hose lag und an murphys T-Shirt auf dem groß und fett murphy stand, weiß ich bis zum heutigen Tage nicht.

Auf dem Weg von unserem Domizil zur Euruko, wie sollte es auch anders sein, nahmen wir mal wieder eine Abkürzung durch den Straßenjungel von München und verloren uns in der großen Stadt. Mit einer halben Stunde Verspätung fanden wir aber trotzdem noch das Tagungshotel und waren überglücklich als wir nach weiteren 10 Minuten auch einen Parkplatz erkämpft hatten. Im Tagungssaal angekommen nahmen wir Platz und wurden mit strengen Blicken gestraft *was bilden die sich ein so spät zu kommen?!*

Nummer Eins... Zu begin stellten wir uns alle vor. my name is daniel and so on... Anschließend wurde uns vom Sprecher nahegelegt mindestens eine Präsentation in den Zwei Tagen zu halten. Da ich zu dieser Zeit große Angst vor dem Sprecher hatte, sagte ich zu, eine Präsentation über Rake und .Net zu halten. murphy ging es scheinbar ähnlich, denn er erklärte sich bereit eine Präsentation über seinen Regexp-Heredoc Patch zu halten.

Nummer Zwei... Weiter ging es mit einer Skype Botschaft von matz. Nachdem es dem technischen Stuff, unter großem Gelächter, nicht möglich war die Skype Message ordentlich unter Windows abzuspielen, wechselten die Leute zu einem Mac und begannen die Präsentation dort. Im Großen und Ganzen bestand die Botschaft von matz aus den RubyConf Folien.

Nummer Drei... Weiter ging es mit einer Ruby Bibliothek für Windows namens AutoGui. Diese Bibliothek kann scheinbar Windows Desktop Applikationen direkt über die GUI ansprechen. Es ist möglich mit sämtlichen Steuerelementen zu interagieren und Arbeitsabläufe in Ruby makroartig abzuspeichern.

Nummer Vier... Die Präsentationen über Ruby for Enterprising Testers war uns zu enterprisii. Leider verpassten wir deshalb auch die Keynote von Stefan Kaemper über seine Erfahrungen der letzten 12 Monate mit Ruby.

Nummer Fünf... Mit Ruby on Rails for Java Developers began nun die meiner Meinung nach technisch brillanteste Präsentation. Die Folien waren genial und der Redner hatte wirklich rhetorisches Geschick. Leider gab es keine inhaltliche Tiefe, ausser vielleicht, dass Java Entwickler trotz aller Schmerzen scheinbar doch noch lernen können, gute Konzepte zu verwenden.

Nummer Sechs... Ich weiß, dass ich für das was ich jetzt sage, wahrscheinlich von der Ruby Community geköpft werde. Außerdem weiß ich, dass ich wohl der letzte bin der eine Person wie Hal Fulton kritisieren kann/darf. Aber mal ganz ehrlich, die Präsentation Specter, an 'expect' for Ruby war sowas von langweilig. Ich dachte die ganze Zeit wieder an unsere Übernachtung. Ihr erinnert Euch doch noch, oder? ZZZZZZZzzzzzzZZZZZ... ERSTENS war dies die einzigste Präsentation wo der Redner keine einzige Sekunde auch nur im Stehen gesprochen hatte. Vielleicht hab ich ja auch nen Problem wegen meiner Größe aber wenn jemand sich in die Ecke eines Raumes setzt und anfängt seine Präsentation zu halten, frag ich mich ob er das nicht auch zu Hause als Podcast hätte aufzeichnen können. ZWEITENS egal wie toll diese Bibliothek auch immer ist, es wäre schön gewesen, wenn man vielleicht ein paar reduzierte Informationen über das Thema des Vortrages gesehen hätte. Statt dessen haben wir zusammen mit Herrn Fulton zu begin die Dokumentation seiner Lib durchgescrollt und anschließend ein paar Codezeilen geschrieben, welche den VI öffnete und schloss. WOW... OK... Stop... Die Bibliothek war schon ziemlich witzig. Sie kontrolliert/filtert den Stream zwischen Eingabe und Konsole und kann somit u.a. Konsolenprogramme steuern. Ähnlich wie AutoGUI kann man makroartigen Rubycode schreiben, der dann eine Applikation wie z.B. VI steuert. Die Lib kann noch viel mehr und ist definitiv mal einen Blick wert.

Nummer Sieben... Richtig toll fand ich danach Ten Things I Hate About Rails. Der Vortrag lockerte die Stimmung auf und war eine tolle Abwechslung zu den normalen Präsentationen. Es ging, wie man eventuell vermuten würde, nicht etwa darum Rails schlecht zu rede. Ganz im Gegenteil betonte der Redner, dass er persönlich Rails großartig findet. Im Folgenden nahm er konkrete Punkte heraus die er an der Rails Implementierung kritisierte. So zeigte er die Probleme auf, welche sich bei der intensiven Benutzung von Symbolen seiner Meinung nach ergeben. Routing und Metaprogramming waren ebenfalls ein Thema.

Nummer Acht... Den ersten Tag beendete eine Präsentation über ein regelbasiertes System welches Ruby als DSL verwendet. Der Redner kam, soweit ich das verstanden habe, von SGI und arbeitet mit 3D Grafiken. Die dazu notwendigen VRML Daten erzeugt er mithilfe von einer kleinen selbstgeschriebenen Ruby Bibliothek.

interrupt

Um 19 Uhr war der erste offizielle Rubytag der Euruko zu ende. murphy und ich fuhren nun erstmal in die Innenstadt und holten uns ein paar Dinge die wir für die Nacht von Samstag zu Sonntag so brauchten. Weiterhin diskutierten wir über die Vorträge dieses Tages.

Nachdem wir kurz nach 20 Uhr wieder in unserem Domizil ankamen machten wir uns an die Arbeit unsere Präsentationen vorzubereiten. murphy arbeitete an seinem Patching Ruby und ich suchte mir ein paar Sachen für Rake und .net heraus. Schlußendlich fiel ich so gegen 2 Uhr das erstemal auf meine Tastatur und wachte nach Zwei Stunden mit einem Abdruck QWERTZU auf meiner Stirn wieder auf. murphy war immer noch fleißig am arbeiten. Ich schrieb noch Zwei, Drei Sätze zu ende und schlief dann schlußendlich tief und fest ein.

ZZZZZZZzzzzzzzZZZZZZZZZ..... KRACH, POLTER, AUFSTEHEN!!!!!!!

Es krachte und donnerte!!! Ein Mann stand in unserem Zimmer. Ich sah halbverschlafen zu Ihm rauf und bekam eine kurze prägnante Frage an den Kopf geknallt: 'sprechen Deutsch?'. Ich nickte verschlafen und wartete auf eine Erklärung was das hier sollte. Es kam wieder eine kurze dafür noch prägnantere Aussage: 'Zehn Uhr durch, Ihr jetzt aufstehen und raus!'. Die Tür knallte und der Mann war weg. Ich sah zu murphy und entsetzt sagte er zu mir: 'Hast du keinen Wecker gestellt?'. Natürlich hatte ich einen Wecker gestellt aber dieser wird sicherlich zu einer unmenschlichen Zeit geklingelt haben so dass ich Ihn einfach ausschalten musste. Nun ja, es war Morgen, wir lagen noch immer im Bett und die Konferenz hatte bereits begonnen. Wir sollten auch diesen Tag zu spät im Tagungshotel ankommen. Nix neues also..

main(2)

Nummer Zehn... leider verpassten wir den Vortrag Ruby and JavaScript. Es ging wohl um Ajax, Web 2.0 und Rails. Also alles sehr selten erwähnte Begriffe von denen ich gerne mal wieder was gehört hätte.

Nummer Elf... ebXML war einer dieser enterprisii Vorträge welche ich eigentlich überspringen wollte, leider erkannte ich das Thema zu spät. Es ging um OASISs Standardisierungswahn, XML und eBusiness. Alles Dinge die mich ausserhalb der Arbeit sehr langweilen (eigentlich langweilen sie mich auch auf Arbeit). Die Präsentation war ok und die Grundaussage, dass nicht die Technik (in diesem Fall XML) sondern der Prozess im Vordergrund steht war auch annehmbar.

Nummer Zwölf... Wie Ihr Euch vielleicht noch erinnern könnt, sprachen uns am ersten Tag zwei Leute mit hellseherischen Fähigkeiten an. Einer von diesen Beiden entpuppte sich nun auch noch als Code Golfer. Inhalt seines Vortrages war die maximale Kürzung von Ruby Programmen. Wenn Ihr Euch fragt was das soll, hier die Antwort => 'having fun'. Und genau das war auch die Grundaussage seines Vortrages. Er zeigte uns wie man durch geschickte Verwendung von Ruby Methoden pro Anweisung bis zu drei Zeichen einsparen konnte. Tolle Sache und tolle Ideen, welche ich unbedingt wieder aus meinem Kopf bekommen muss. Ich hab mich nämlich gerade Gestern dabei ertappt, in eines meiner Skripte ein bei der Präsentation erwähntes Konstrukt zu verwenden.

Nummer Dreizehn... Ein weiterer Vortrag der mich nicht so wirklich erreichte war Transparent Archiving. Es ging um die Erstellung von menschenlesbaren Archiven, die im nachinein auch leicht zu bearbeiten sein sollen. Inhalt des Vortrages war mehr die Implementierung in Ruby als die Features selbst. Schade eigentlich.

Nummer Vierzehn... Hier ging es um Sublanguages in Ruby. Das hat nix mit Subkulturen oder suboptimal zu tun. Es ist vielmehr die Idee eine neue Sprache mit den Bordmitteln von Ruby zu erschaffen. Dabei ging es in die Richtung von einer DSL mit der großen Besonderheit das eine Sublanguage nicht domänspezifisch sein soll. Vorgestellt wurden drei Sprachen die jeweils ein bestsimmtes Sprachparadigma enthalten. So gab es eine prototypbasierte, eine logikorientierte und eine an Erlang angelehnte Sprache. Diese wurden vollständig in Ruby selbst implementiert und bestehen folglich aus 100% normalen Rubycode. Die Sprachen an sich finde ich persönlich nicht so praktisch, interessant war das ganze aber allein aufgrund der Erkenntnis, dass allein mit der jetzigen Rubyumgebung extrem unterschiedliche Paradigmen bedient werden können.

Nummer Fünfzehn... Bei CRM and Rails stellte der Redner die Verwendung von Rails in einem größeren Unternehmen vor. Die Präsentation wurde vollständig ohne technische Hilfsmittel geführt. Was bei einigen im Konferenzsaal zu Ermüdungserscheinungen führte. Ich fand den Erfahrungsbericht grundsätzlich sehr Interessant.

Nummer Sechszehn... Mit diesem Vortrag wurde unser Ruby Wochenende beendet. Es ging um Patching Ruby und murphy war der Redner. Er erklärte wie er auf die Idee des Regexp-Heredocs gekommen war. Wo er im Sourcecode die Änderungen vorgenommen hatte und ermutigte die Teilnehmer selber aktiv am Rubykern rumzupfuschen.

finalize

So das wars. Wie Ihr vielleicht gemerkt habt, fehlt meine Präsentation in dieser Auflistung. Dies hat den einfachen Grund, dass ich Sie nicht gehalten habe. Als murphy nämlich mit seinem Patching Ruby Vortrag fertig war, war es kurz vor 18 Uhr. Und das hies, dass wir schon Zwei Stunden länger in München waren als wir es geplant hatten. Für uns beide war damit der Sonntag zu ende. Wir verabschiedeten uns und machten uns auf den Weg nach Berlin, wo wir zwischen 2 und 3 Uhr Nachts ankommen sollten. Für alle die ein wenig Mitleid übrig haben, können es gerne an mich spenden. Denn ich musste bereits um 6 Uhr wieder in Berlin losfahren um pünktlich um 10 Uhr in Bremen auf Arbeit zu sein.

Sollte Ihr noch weitere Informationen zu einem bestimmten Vortrag haben wollen, so meldet euch ruhig. Ich hab hier aus Platznot erstmal nur jeden Vortrag angeschnitten.


Kommentar schreiben

Name (notwendig)

Mail (wird nicht veröffentlicht)

Webseite


Kommentare

  1. WoNáDo schrieb am 13.11.2006 (11 Uhr)

    Gibt des inzwischen irgendwo einen Platz im Netz, wo man sich Infos/Folien/... zu den Vorträgen ansehen/runterladen kann? Was da zu "AutoGui" und "Specter" vor sich ging, interessiert mich schon (googeln zu den Thema führte mich zu "nil"). Die "sublanguage"-Geschichte interessiert mich noch, ausserdem... ..."Nummer Zwölf" - maximale Kürzung von Ruby-Code. Ich weiss, dass das eigentlich unter die Bezeichnung "don't do this at home" fällt - aber trotzdem...

  2. Murphy schrieb am 18.11.2006 (12 Uhr)

    klar, einfach auf http://euruko.com nachschauen. eine richtige website gibt es leider nicht.

  3. WoNáDo schrieb am 18.11.2006 (16 Uhr)

    Also hier versagt meine Phantasie: 'String#* instead of join'

  4. Bovi schrieb am 21.11.2006 (01 Uhr)

    boviPB:~ daniel$ irb irb(main):001:0> eins,zwei,drei = *[1,2,3] => [1, 2, 3] irb(main):002:0> eins => 1 irb(main):003:0> zwei => 2 irb(main):004:0> drei => 3