Zum 10. mal trafen sich nun Rubyisten aus der ganzen Welt in den Vereinigten Staaten (das liegt unterhalb von Kanada) um über Ruby zu sprechen, zu singen und zu philosophieren. Mit knapp 800 Teilnehmern, drei parallelen Tracks und 61 Vorträgen über drei Tage war es wohl eine der größte Ruby Veranstaltungen jemals. Hier ein paar Notizen von den Events die ich mir angeschaut habe.
Shugo hat eben folgenden Änderungsvorschlag vorgestellt:
Ganz witzig zu lesen aber im Endeffekt unglaublich traurig, dass so viele Leute Ihre Zeit mit solchen Diskussionen verschwenden. Es geht um eine Copyright Verletzung des Buches Learnng Python The Hard Way von Zed Shaw.
Basierend auf einem Draft von Dethix.
Immer wieder kommt es zu Problemen, die durch unterschiedliche Ruby Versionen verursacht werden. Die Entwickler werden dabei gezwungen, viel Zeit und Energie in eine möglichst große Kompatibilität zu investieren. Dies treibt jedoch die Kosten in die Höhe, erweitert die Komplexität der Software und behindert die technische Weiterentwicklung.
Ganz frisch und noch nicht mal im Trunk zu finden, ist das neuste Kind der MiniTest Familie: minitest/benchmark. Diese Bibliothek stellt die Möglichkeit zur Verfügung, die Performance eines Codestückes zu testen. Dabei werden jedoch nicht die absoluten Zahlen als Maßstab genommen, sondern die Wachstumsrate eines Algorithmus. Das Ganze könnte z.B. so aussehen:
1 2 3 4 5 6 7 8 9 10 11 |
require 'minitest/benchmark' class TestAlgo < MiniTest::Unit::TestCase def bench_my_algorithm assert_performance_linear 0.9999 do |n| n.times do @obj.my_algorithm end end end end |
Dieser Test ist erfolgreich, solange @obj.my_algorithm linear wächst. Die folgenden Assertions stehen zur Auswahl:
Bei all diesen Assertions kann ein Schwellwert für die Abweichung angegeben werden. Individualisten können weiterhin assert_performance verwenden, dort kann die Wachstumsrate selbst definiert werden.
Das alles bald auch in der Standardbibliothek eures Vertrauens…
Unverhofft kommt oft. Und so ergab es sich, dass ich vorletztes Wochenende (30. und 31. Oktober) planmäßig nur 300km von Shanghai entfernt war und mir die Chance nicht entgehen ließ, der größten Rails-Usergroup in China einen Besuch abzustatten.

Eine Weile (mehr als 4 Jahre) ist es inzwischen her, das Murphy hier zuletzt etwas zu rescue geschrieben hat. In der Erwartung, dass sich der Stoff inzwischen gesetzt hat, will ich hier zwei rescue-Varianten nochmal näher unter die Lupe nehmen: die Modifikator-Variante und die Methoden-Variante. Ist zwar kein Sonntag, aber hier mal wieder etwas Syntax.
Da es wahrscheinlich zu Recht einiges an Kritik am letzten Artikel gab. Hier eine andere Version der Betrachtung des CRE163 Podcasts welche hoffentlich nicht ganz so polemisch daher kommt.
2010-10-11 (05:22 CST): Ergänzung von Florian eingebaut.
Gestern hatte ich einen genialen Tag. Dem Hannover Zoo habe ich einen Besuch abgestattet, es gab leckeres Essen und der Abend gestaltete sich in zwei Bars sehr nett. Und dann hörte ich kurz vor Mitternacht, dass sich die aktuelle Chaos Radio Express Ausgabe um Ruby dreht. Der perfekte Tag. Bis ich mir die Folge anhörte…
Das eigentlich unter dem Titel "Forentreffen" geborene, aber spontan in "Germany.rb" umbenannte Treffen im Sublab in Leipzig ist nun vorbei. Zu allererst an dieser Stelle: vielen Dank an das Sublab für den Ort, das Fachgesimple und die herzliche Aufnahme. Die spontan gefundenen Themen gingen von Encoding über Concurrency-Abstraktionen bis auf der Suche nach den letzten 2 Byte in CodeGolf-Problemen. Zum Schluss gab es eine interessante Diskussion über das Projekt, die ich im Folgenden zusammenfassen will. Wiederholung wahrscheinlich.
Der Konferenzplan für die RubyConf 2010 wurde so eben veröffentlicht. Diese findet in New Orleans statt und wird mit drei parallelen Tracks über drei Tagen die bisher größte RubyConf jemals. Chad meinte er erwartet dieses Jahr mehr als 700 Teilnehmer.
Nun ist es endlich fixiert. Am 18. und 19. September 2010 treffen wir uns im sublab in Leipzig zum ersten Germany.rb Ruby User Treffen. Es gibt keine Teilnahmegebühr und kein statisches Programm. Statt dessen gibt es Platz für jeden um seine Ideen vorzutragen und sein Wissen zu erweitern.
Mehr Informationen gibt es auf der offiziellen Ruby Webseite. Es werden aus jetziger Sicht u.a. mindestens vier Autoren aus der Ruby-Mine anwesend sein. Ich hoffe auf viele bekannte und noch viel mehr unbekannte Gesichter. Also bis zum nächsten Wochenende in Leipzig!
Wie vielleicht bemerkt, haben wir seit einiger Zeit rechts einen Flattr-Button. Flattr ist ein Dienst für Mikropayment. Die ursprüngliche Idee für den Button war die Vorbereitung für unser kleines Forentreffen nächstes Wochenende in Leipzig. So dass wir einen kleinen Obolus an die Sublab-Crew übergeben können. Da einige Leute sogar drauf geklickt haben, habe ich jetzt solch einen Button auf für jeden einzelnen Beitrag in der Mine eingeführt. Wenn Ihr Lust habt, klickt drauf. Wenn nicht, dann nicht. Die entsprechend geflatterten Beiträge gehen dann an die ursprünglichen Autoren und nicht an mich als Gatekeeper (-;
Ein kleiner Nachschlag: Manchmal gehen Dinge plötzlich schnell. Nachdem das MRI-Team mit der Dual-Lizensierung unter GPL2 + Ruby License nicht besonders glücklich ist, wird momentan diskutiert, die GPL gegen die 2-clause BSD-Lizenz auszutauschen. Wer also Spass an Lizenz-Diskussionen hat, ist da genau richtig. Eine kurze Zusammenfassung der Gründe findet sich in den Notizen für das Ruby Developers Meeting 2010.
Ab Revision 29262 ist es dann auch so weit.
Gute Programmierer kommen ja bekanntlich in den Himmel. Das problematische ist, dass wir uns auf dem Weg dorthin durch das Fegerfeuer der Flamewars und Plattform-Kriege kämpfen müssen. Cross-Plattform-Umgebungen wie die JVM haben die Sache nicht einfacher gemacht: ich kann mich jetzt nicht nur um mein Betriebssystem, sondern auch mein Laufzeitsystem trefflich streiten. (Fast alle) Rubyisten nehmen die Abkürzung: wir kommen überall hin. Ein nicht immer ganz ernst gemeinter Überblick über die letzten Wochen: einmal Hype für alle.