Als ich ende letzten Jahres mal wieder für ein paar Tage in Beijing war, ergab sich spontan ein Treffen mit Danny Yang von Seravia der meinen Twitter Stream wohl folgte. Ich hatte bereits aus anderen Quellen gehört, dass neben Shanghai auch Beijing ein Ort ist, an dem sich eine Menge wieder zurückgekehrter Chinesen mit einem Start-Up niederlassen, Seravia war jedoch das Erste, welches ich intensiver erkunden durfte.
Ich bin begeistert! Vor genau einem Monat habe ich eine Liste mit allen Konferenzen zusammengetragen, die ich dieses Jahr besuchen möchte. Daraufhin haben sich einige Leute gemeldet, die Interesse an dem einen oder anderen Event haben. Deshalb hier eine Auffrischung des Themas und ein paar mehr Hinweise. Mit der Bitte um weiteres Feedback!
Ich wollte mal fragen, ob jemand am 4. Februar zum rug-b Treffen kommt. Themen sind wohl Redis, Sass und Compass. Das Treffen findet in den neuen Räumen von Upstream statt. Bis dahin!
Wem der ganze Ruby-Kram mit Jruby, Ruby 1.9, Rubinius, MacRuby, IronRuby, YARV, Rails, Sinatra, Encoding und so weiter momentan einfach zuviel wird, dem kann ich empfehlen, mal die heiteren Seiten genießen.
So hat Gregory Brown (Autor von Prawn) nicht lange gefackelt und den kürzlich bekannt gewordenen Webrick-Exploit ausgenutzt, um Bellhop zu schreiben. Die Wirkung ist simpel: "bellhop http://dein_webrick:8080" lässt bei allen die Konsole klingeln, die ihr System noch nicht gepatcht haben.
Ryan Davis (zenspider, u.a. Maintainer von Rubygems, hoe, minitest, etc.) war das bestimmt noch zu anwendbar - anders kann ich mir sein neustes Plugin für RubyGems nicht erklären: "gem install rubygems-sing" installiert euch ein neues gem-Kommando, das tut, was es verspricht: es "singt" die Implementierung eines Gems, indem es jedem "end" abhängig von seiner Entfernung vom Zeilenanfang einen Ton auf einer Tonleiter zuordnet. Ich empfehle: "gem sing dm-core". Für die Musik zuständing ist übrigens der Gem "midiator" von Ben Bleything.
Wie stehts bei euch? Was sind eure liebsten "Spassprojekte"?
Also, ich wusste schon, dass man folgendes schreiben kann, um Methoden mit beliebig vielen Argumenten zu definieren:
1 2 3 4 |
def bist_du_aber_klein(*) super essen(:vitamine) end |
Hier werden die restlichen Argumente einfach verworfen, und keiner lokalen Variable zugewiesen.
Der Stern kann auch noch in anderen Beziehungen auftauchen, zum Beispiel in Mehrfachzuweisungen oder bei Blockparametern:
1 2 |
gewinner, *nieten = die_anderen_gehen_leer_aus
array_von_arrays { |erstes, zweites, *rest| puts 'Was für ein Wetter!' } |
Interessanterweise kann man bei solchen Catch-all-Ausdrücken immer den Namen der Variable weglassen:
1 2 3 4 5 6 |
def gibs_mir *; end ja, * = nein, nein, nein obfusc do |*| end for key, * in ENV # puts(*) geht aber nicht! end |
In Ruby 1.9 geht auch:
1 2 3 4 5 6 7 |
a, *, b = *1..10 [a, b] #=> [1, 10] def letzter(*, last) last end letzter(*1..10) #=> 10 ENV.each.with_index { |(*, value), index| puts '%2d: %s' % [index, value] } |
Noch ein ganz extremes Beispiel, das nichts sinnvolles tut:
def***;%****%**;end;*a=*(a**a);b{|*|* =:*.*(:**)} |
Nützlich? Albern? Perl6? Eure Meinung!
Habe gerade nach langer, langer Zeit mal wieder etwas auf Ruby-Lang im deutschen Bereich nachgezogen. Diesmal geht es um einen Fehler im WEBrick, welcher dazu führt, dass bestimmte Escapesequenzen von entfernten Angreifern mittels der WEBrick Logdatei, auf eurem lokalen Terminalemulator ausgeführt werden können.
Das Ganze sieht dann in etwa so aus:
Es ist also möglich den Titeltext einer Terminalemulation zu ändern. Weltungergang!!! Naja vielleicht auch nicht. Es gibt jedoch auch verschiedene andere Angriffszscenarien.
Da ich kein Freund von diesen ewig wiederholenden Neujahrsgrüßen bin, habe ich mir gedacht, dass ich das neue Jahr hier statt dessen mit der Veröffentlichung eines kleinen Kalenders beginne. Ich nenne das Kind jetzt erstmal Ruby Konferenz Kalender 2010. Die hier aufgelisteten Konferenzen sind bei weitem nicht alle in diesem Jahr statt findenden. Es handelt sich vielmehr um eine Auswahl an denen ich teilnehmen werde. Folglich könnt Ihr diese Liste auch als Einladung verstehen. Eventuell habt Ihr ja Lust den einen oder anderen Ort ebenfalls zu besuchen. Wenn ja dann gebt hier bescheid und eventuell können wir etwas gemeinsam organisieren (Reise, Sightseeing, etc.). Letztes Jahr hat das mehrmals ganz gut geklappt.
Mit Trauer habe ich gerade erfahren, dass die Zeitschrift RailsWay eingestellt wird. Eventuell gibt es in Zukunft statt dessen eine kleine Kolumne im JavaMagazin. Sehr depressiv machende Alternative. Damit ist das Erste und bisher Einzigste analoge Ruby-Magazin am Ende )-:
Und noch ein letzter Nachtrag. Die JRubyConf Videos werden nun bei den Confreaks veröffentlicht.
Einige Monate ist es her, dass auf der RubyWorldConf 2009 die ersten Informationen bezüglich eines Standardiserungsprozesses veröffentlicht wurden. Heute wurde nun eine erste Version der Ruby Draft Specification veröffentlicht. Man kann sich das 341-Seitige PDF (zum Glück in Englisch und nicht Japanisch) auf der Seite herunterladen. Es tut sich also tatsächlich was in Bezug auf eine offizielle Spezifikation von Ruby. Die Autoren des Dokumentes bitten nun die Community um Feedback. Bleibt abzuwarten, ob es nur bei einem “Draft” bleibt.
Langsam aber sicher werden die Videos der RubyConf2009 bei den Confreaks veröffentlicht.
Die RubyConf2009 hat meiner Meinung nach mindestens zwei neue Meme geschaffen. Da wäre Ms. Ruby On Rails und g ist das neue p (dazu schreibe ich später noch was). Da die Confreaks wahrscheinlich noch ein paar Tage benötigen Ihr Material Online zu stellen, hier schon mal ein Ausschnitt von der DragQueenRails-Programmierin…
Nachdem ich die letzten Monate drei verschiedene Kontinente besuchen musste, um an Rubyrelevanten Konferenzen teilzunehmen, kam mir heute die (O-Ton Florian) opportunistische Idee nächstes Jahr mal wieder eine Ruby Konferenz in Deutschland auf die Beine zu stellen. Nach Gesprächen mit den Organisatoren der RubyKaigi, RubyConf und RubyConfIndia, ist mir mehr als nur bewusst geworden, welche Anstrengungen es erfordert, ein solches Ereignis zu initialisieren. Soll bedeuten, dass es utopisch wäre zu glauben, ich könnte mich jetzt hier alleine hinstellen und ein solches Event ausrufen. Es ist auch bekannt, dass wir in Deutschland ja dafür bekannt sind, sehr detailiert über Dinge zu reden und am Ende alles einschlafen zu lassen. Deshalb werde ich mich hüten jetzt einen Ort und einen Termin heraus zu posaunen. Statt dessen möchte ich einfach mal eine Diskussion über diese Idee im Allgemeinen anstoßen. Einige Leute fanden die Idee auf Twitter bereits interessant, könnten wir nun mehr daraus machen?