Mittwoch, 31. Oktober 2012

Performance-Vergleich verschiedener Ruby-Implementierungen

Arthur Shagall hat die Performance verschiedenener Ruby und JRuby-Implementierungen verglichen. Die Ergebnisse hat er auf seinem Blog veröffentlicht.

Interessant ist der sehr große Performancegewinn von JRuby im Vergleich zu MRI Ruby (teilweise mehr als zehnfach) - sonderbar die Verschlechterung der Performance von JRuby 1.7.0 mit invokedynamic zu JRuby 1.7.0 ohne invokedynamic. Es handelt sich um synthetische Tests, evtl sieht das in der Praxis anders aus. Sonderbar ist es trotzdem.

Dienstag, 30. Oktober 2012

Trinidad Worker Extension: Background-Threads unter JRuby

Für den Trinidad-Server ist die Trinidad Worker Extension in Version 0.2 erschienen. Damit lassen sich JRuby-Hintergrund-Jobs neben einer Rails-Applikation betreiben. Trinidad Worker Extension unterstützt dabei Resque und Delayed::Job.

Montag, 29. Oktober 2012

JXInsight/Opus for JRuby 1.1 (JRuby performance management)

JINSPIRED hat JXInsight/Opus for JRuby 1.1 fertiggestellt. Mit dieser Software kann man Performance, Latenzen festellen, um  QOS von JRuby-Applikationen zu messen und zu profilen. In der neuen Version ist besserer Support für Java 7 enthalten.

Samstag, 27. Oktober 2012

JRuby mit Netbeans profilen

Patrick schreibt in seinem Blog, wie er die Netbeans-IDE aufgesetzt hat, um JRuby-Scripte zu debuggen. Das ganze geht remote, d.h. er kann direkt sehen, wo es auf dem Server klemmt. An Hand einiger Screenshots führt er vor, wie man vorgeht, um die kritischen Stellen zu finden. 

Donnerstag, 25. Oktober 2012

3D-Spiel mit JRuby und jMonkeyEngine


Jeremy Woertink hat zwei 3-D-Grafik-Spiele und Samples (Maze Craze und Waves) auf Github veröffentlicht, die er mit JRuby und jMonkeyEngine umgesetzt hat. jMonkeyEngine ist eine Java-Game-Engine, die unter der BSD-Lizenz steht. Mit JRuby lässt sich diese Library sehr einfach einbinden

Mittwoch, 24. Oktober 2012

Richard Huang: zero downtime deployment

Richard Huang beschreibt in seinem Ruby-Tip auf jrubytips.com, wie er zero-downtime-deployment unter JRuby erreicht. Das heißt, kein HTTP-Request geht verloren. Er hat dazu ein Script für capistrano veröffentlicht, das über einen Rolling restart genau dies erreicht.

Montag, 22. Oktober 2012

JRuby 1.7.0 ist da!

JRuby 1.7.0 wurde veröffentlicht und steht zum Download bereit! Glückunsch an das JRuby-Team. Wie üblich wurde die Geschwindigkeit und die Kompatibilität zu MRI-Ruby weiter verbessert. Der Ruby-1.9.3-Modus  ist nun Default. Es wird nun mimdesten Java 6 benötigt. invokedynamic wird nun unterstützt, muß jedoch wegen JVM_Problemen expizit aktiviert werden.

Sinatra-Deployment mit JRuby / recipes.sinatrarb.com

Auf http://recipes.sinatrarb.com gibt es jede Menge nützlicher Rezepte für Lösungen mit Sinatra, dem leichtgewichtigen Ruby-Framework. Sinatra läuft auch unter JRuby (hey, sogar auf dem Raspberry Pi). Deshalb gibt es auch Rezepte zum Deployment unter verschiedenen Szenarien und Servern (Trinidad, TorqueBox, etc) auf dieser Site.

Sonntag, 21. Oktober 2012

RedStorm 0.6.4 ist fertig (Big Data mit JRuby)

Colin Surprenant hat RedStorm in Version 0.6.4 auf github bereitgestellt. Das RedStorm-Gem stellt eine Ruby DSL durch JRuby-Integration des Storm Distributed Realtime Computation System bereit. Als Default installiert RedStorm Storm- and JRuby-jar-Abhängigkeiten. Andere Abhängigkeiten  können über ein Dependencies-File definiert werden. Das ganze kann auch im Cluster laufen. RedStorm kann sowohl im JRuby-1.8-Modus als auch im JRuby-1.9-Modus laufen. Zusätzlich gibt es jede Menge Beispiel-Konfigurationen. Wie bereits gestern gemeldet ist Tweitgeist eine Demo-Anwendung, die mit RedStorm erstellt wurde.

Samstag, 20. Oktober 2012

Tweitgeist wieder online - Big data mit JRuby

Colin Surprenants Tweitgeist ist wieder Online - nun mit Version 1.2. Tweitgeist analysiert einen Twitter-Stream in Echtzeit und zeigt alle fünf Sekunden die häufigsten hashtags. Ideal um auf einen Blick zu sehen, was dort gerade so los ist. Tweitgeist stellt eigentlich eine Demo von Colins RedStorm Gem dar, das wiederum ein Wrapper für das Storm-Realtime-Distributed-Computing-Framework ist. Sehr beeindruckend. Laut Colin kommt die Architektur mit einem vollen Echtzeit-Twitter-Feed (Twitter Firehose) klar.

Freitag, 19. Oktober 2012

Big Data mit Cascading (und JRuby)

Interessante Vortragsfolien von Paco Nathan zum Thema Building Enterprise Apps with Cascading. Cascading ist ein Framework, das auf Apache Hadoop aufsetzt. Damit kann man recht einfach Big Data-Applikationen bauen und das in verschiedenen Programmiersprachen (JRuby, Jython, Clojure, Scala und Java). Der Vortrag befasst sich mit den Hintergründen von Big Data und wie Cascading dabei helfen kann diese Daten auszuwerten.

Donnerstag, 18. Oktober 2012

JRuby 1.7.0 ist bald da - Tester gesucht

Tom Enebo (JRuby-Core-Commmitter) schreibt auf Twitter, daß JRuby 1.7.0 sehr bald kommen wird. Er bittet darum, gegen 1.7.0RC2 zu testen, damit die letzten Bugs ausgeräumt werden können.

Mittwoch, 17. Oktober 2012

Ruby Performance - Diskussion von Charles Nutter

Ganz interessante Dikussion von Charles Nutter (JRuby-Core-Committer) über die Performance-Apsekte verschiednere Ruby-Interpreter. Charles geht sehr ins Detail und behandelt verschiedene Dinge, die auf den ersten Blick nicht so offensichtlich sind: Umwandlung von Zahlen, Floating-PointPerformance, Closures, Parallelität und noch viel mehr. Sehr interessant mal zu sehen, was unter der Motorhaube der verschiedenen Implementierungen (JRuby, MRI,ubinius, Macruby)  so los ist. Sehr interessant!

Montag, 15. Oktober 2012

Raspberry Pi mit 512MB RAM (besser für JRuby)

Nach dem gestrigen Benchmark von JRuby/Sinatra auf dem Raspberry Pi sind nun Geräte mit 512MB RAM (Statt 256MB) aufgetaucht. Das wenige RAM war das Haupthindernis für sinnvollen JRuby-Betrieb - das sollte jetzt gelöst sein. Die Dinger sind auch schon bei element14 bestellbar. Habe ich natürlich gleich gemacht. Wenn er da ist, gibt es einen neuen Benchmark mit JRuby/Sinatra & Co.