Freitag, 30. November 2012

Neue Tweitgeist-Version (Realtime twitter top-hashtags)

Colin Surprenant hat eine neue Version seines Online-Realtime-Top-Hashtag-Visualisierungstools online gestellt. Tweitgeist analysiert in Echtzeit Twitter und erstellt mittels JRuby, Redstorm, Coffeescript und D3.js fortlaufende Grafiken der Top-hashtags. Sehr beeindruckend!

Donnerstag, 29. November 2012

perfer - Benchmark tool für alle Rubies

Interessantes Benchmark-Tool für Ruby (alle Implementierungen): perfer. perfer wurde in einem Google Summer Of Code-Projekt verwirklicht. Ein Beispiel für die Anwendung gibt es hier.




Mittwoch, 28. November 2012

Umfrage auf InfoQ: What's Your Next JVM Language?

Auf InfoQ läuft momentan eine Umfrage What's Your Next JVM Language?
Es ist keine plumpe "diese Sprache ist die beste"-Umfrage, sondern man kann dieverse Sprachen nach verschiedenen Kriterien ranken. Zusätzlich gibt es eine Auswertung, die man sich anschauen kann - und man kann sich die Votes einzelner Leute anschauen. Sehr interessant.

Dienstag, 27. November 2012

Benchmark: Performance Multithreading JRuby vs MRI Ruby

Jack Slingerland hat einen Artikel über die Performance von Standard (MRI)-Ruby vs JRuby geschrieben. Die Ergebnisse seines Beispieles sprechen eindeutig für JRuby, da die benötigte Zeit bei JRuby mit der Anzahl der Threads sinkt bis alle Cores ausgenutzt sind. Unter MRI-Ruby bleibt die Geamtzeit konstant, es wird nur ein Core genutzt.

Montag, 26. November 2012

log4jruby: JRuby-Wrapper für log4j

Wer seinen JRuby-Code in Java integriert, muß sich oft an die dortigen Konventionen halten und mit log4j loggen. Um die Integration zu erleichtern, hat Lenny Marks einen Wrapper für log4j geschrieben und ihn log4jruby genannt. Der Wrapper ist nun in Version 0.5.0 als gem auf github verfügbar.

Sonntag, 25. November 2012

Interface-Testing mit Sikuli und JRuby (Video)

Sehr interessantes Video von einem Vortrag auf der RubyConf 2012. Rodrigo Franco nimmt als Beispiel Diablo III und erläutert, wie er mit Sikuli und JRuby einen Bot gebaut hat, mit dem er Diablo automatisiert. Sikuli arbeitet mit Bilderkennung und braucht deshalb kein explizites Interface von der Software, die damit gesteuert wird!
Da Sikuli in Java geschrieben ist, kann es ohne Probleme von JRuby benutzt werden - es stellt dazu eine eigene Scriptsprache bereit, die Rodrigo für Diablo III in JRuby-Methoden gewrapped hat.

Samstag, 24. November 2012

Freitag, 23. November 2012

JRuby und JMX

Ganz interessant für die Java-Enterprise-Leute: ein HowTo von Oracle Use JRuby with JMX for Oracle WebLogic Server 11g. Der Text Ist zwar schon ein bischen älter, sollte aber auch mit neuen JRuby-Versionen funktionieren: Pas Apicella zeigt Schritt für Schritt, wie man mit dem jmx4r-Gem remote Java-Applikationen von einem Ruby-Script aus managen kann.

Donnerstag, 22. November 2012

Tips zum Upgrade auf JRuby 1.7.0 von Fiona Tay

Fiona Tay hat einige Tips zum Upgrade auf JRuby 1.7. Diese neue Version bringt vor allem Performance-Vorteile und Erleichterung bei der Integration von Java.

Mittwoch, 21. November 2012

Schneller JRuby-Startup mit drip

Drip ist ein Launcher für JRuby, der die Startup-Zeit minimiert. Das wird dadurch erreich, daß Drip eine frische Java VM vorhält, zu der sich das Script dann verbinden kann. Nach Gebrauch wird diese VM verworfen und eine neue, frische im Hintergrund gestartet. Das ist anders als bei nailgun in JRuby schon eingebaut), das eine einzige, persistente VM vrhält. Nachteil ist da, daß die persistente VM nach einigem Gebrauch Fragmente alter Programme enthalten kann, die das Verhalten irregulär machen.

Dienstag, 20. November 2012

activerecord-postgres-hstore: noSQL mit Postgres

Wer einen key-Value-Store ausprobieren möchte und schon eine PostgreSQL-Datenbank am Laufen hat, kann einfach PostgreSQLs hstore benutzen. Für Ruby gibt es dazu das activerecord-postgres-hstore-Gem, das nun auch direkten JRuby-Support bekommen hat. Wahrscheinlich ist das die schmerzloseste Möglichkeit, schnell an eine noSQL-Datenbank zu kommen.

Montag, 19. November 2012

jruby-pgp: PGP-Gem für JRuby

jruby-pgp ist ein Java- und JRuby-Wrapper für das Bouncy Castle PGP API. ScottGonyea hat ihn geschrieben, um die PGP-Einbindung in JRuby zu erleichterm.

Sonntag, 18. November 2012

JRuby success stories

Auf den JRuby-Wiki auf github gibt es eine Seite mit JRuby-Success-Stories. Vielleicht ganz interessant wenn man selbst dort was eintragen möchte.

Samstag, 17. November 2012

jruby-pg: nativer Postgres-Treiber für JRuby

jruby-pg ist ein drop-in-Ersatz für das MRI-ruby-pg Gem. jruby-pg benutzt direkt das API von Postgres und  umgeht damit Einschränkungen von JDBC, die es in einigen Fällen  schwierig machten, Prjekte, die mit pg-ruby arbeiten auf JRuby zu portieren. Das ist mit jruby-pg jetzt kein Problem mehr.

Freitag, 16. November 2012

Faker-Gem für Java

Luca Simone hat das Ruby-Faker-Gem mit Hilfe von JRuby so verpackt, daß man es von Java aus benutzen kann. Mit Faker kann man Testdaten (Namen, email-Adressen usw) erzeugen um z.B. Datenbanken für Tests zu bestücken.

Donnerstag, 15. November 2012

Migration nach JRuby - Success story von Richard Huang

Sehr interessanter Blogpost von Richard Huang. Er berichtet über die Migration von OpenFeint (einer social Plattform für mobile Anwendungen) von REE-Ruby nach JRuby. Hintergrund war eine Verbesserug der Skalierbarkeit und Satbilität. Es gab ein paar Stolpersteine (Gems mit C-Erweiterungen), er hat jedoch dafür Lösungen gefunden und erfreut sich jetzt einer wesentlich verbesserten Response-Time (30ms statt 50-60ms). Interessant ist die Beschreibung der Hintergründe der Entscheidungen und des Vorgehens mit Performancetests, Migrationsstrategie, Auswahl des Servers, Monitoring und vielem mehr.

Mittwoch, 14. November 2012

orientdb-jruby: Zugriff auf Graph/Document-DB mit JRuby

orientdb-jruby wrappt die Graph-Datenbank orientb. Orientdb hat einige interessante Features und ist unter der Apache2-Lizenz verfügbar.

Dienstag, 13. November 2012

Am 14.11.2012 in Münster: JRuby und Chef (Vortrag der Java Usergroup)

Vielleicht ganz ineterssant für Leute aus der Gegend von Münster: am Mittwoch den 14.11.2012 gibt es einen Vortrag der Java Usergroup Münster

Kochstunde: In kurzer Zeit aus JRuby und Chef ein wohlschmeckendes Gericht zaubern

Wie ist es möglich, innerhalb eines Jahres mit zwei Entwicklern einen neuen Mobile Payment Service inklusive der notwendigen Apps und des Backends zur Produktionsreife zu bringen?


Montag, 12. November 2012

Vortrag: Why JRuby Works (Video, Charles Nutter, Tom Enebo)

Auf der Rubyconf 2012 haben Tom Enebo und Charles Nutter (die beiden JRuby-Guys)  zusammen den Vortrag Why JRuby Works gehalten. Das Video ist nun Online auf Youtube. Themen sind die Implementierung, Performance, Einbindung von Java-Libraries, invokedynamic, Benchmarks und viele andere Sachen. Sehr interessant um sich einen Einblick in die Hintergründe von JRuby zu verschaffen. Die beiden bringen dazu viele Beispiele, Zahlen und Code.

Sonntag, 11. November 2012

JRuby mit jstack debuggen

Dr Nic Williams erklärt auf dem Engineyard-Blog, wie er mit jstack Stacktraces untersucht, um hängenden JRuby-Threads auf die Spur zu kommen. Dazu gibt er ein Beispiel in JRuby. Mit JRuby das zwar nicht ganz so straightforward, wie mit Java-Programmen (hier gibt es ebenfalls ein Beispiel), aber auch ohne Probleme sichtbar, welcher Ruby-Code feststeckt.

Samstag, 10. November 2012

Celluloid:io - multithread-Programmierung für Ruby

Kyle Drake hat einen interessanten Foliensatz zu Celluloid::io auf slidesharenet bereitgestellt. Dort erläutert er, wie es Celluloid::io für ihn ermöglicht, Parallelität auszunutzen. Dort hat MRI-Ruby ein Problem, weil es durch das globale-Interpreter-Lock schwierig ist, Multicore-Systeme vernünftig auszunutzen. Celluloid::io nutzt unter JRuby und Rubinius alle CPU-Cores und bringt dadurch wesentliche Vorteile.

Freitag, 9. November 2012

JRuby-Monitoring mit Simple::Metrics

Das Simple::Metrics Gem  ist ein Wrapper um die Java-Library Metrics. Das Gem dient zum monitoren von JRuby-Applikationen. Es können verschiedene Paramater überwacht werden: Metrics' Timer, Meter und Healthchecks stehen zur Verfügung und können die Ergebnisse im Browser über eigene Sevlets darstellen.


Donnerstag, 8. November 2012

Ruboto: Version 0.9, verbesserte Doku (JRuby auf Android)

Ruboto ist in der Version 0.9.0 erschienen. Wichtigste Neuerung ist die Unterstützung von Java-Subclassing.  Zum Erscheinen wurde die Dokumentation wesentlich verbessert, es sind jetzt auch mehr Beispiele und Verweise auf externe Ressourcen vorhanden. Mit Ruboto können Ruby-Scripte direkt auf Android-Geräten ausgeführt werden. Ruboto hat dabei Zugriff auf das gesamte Android-API!.

  • Ruboto 0.9.0 released!


Mittwoch, 7. November 2012

Vortrag von Charles Nutter über invokedynamic (Video)

Auf Youtube gibt es das Video vom Jaxconf-Vortrag Charles Nutters (JRuby Guy) über invokedynamic, das Feature von Java7, das dynamische Sprachen auf der JVM beschleunigt. Charles zeigt Hintergründe und Benchmarks. Leider gibt es noch Probleme mit der Java 7 VM, deshalb ist dieses Feature beim neuen JRuby 1.7.0 defaultmässig ausgeschaltet, kann aber explizit aktiviert werden. Nutzt man JRuby 1.7.0 unter (dem noch nicht fertigen) Java 8, ist es aber eingeschaltet.

Dienstag, 6. November 2012

JRuby und Google Guice (Dependency Injection)

Xavier Shay hat aufgeschrieben, wie er JRuby in einem Java-Container benutzt der mit Google Guice konfiguriert wird. Google Guice ist ein Dependency-Injection-Framework, mit dem normalerweise Java-Komponenten verdrahtet werden. Das ganze ist ein bischen tricky. Um das wiederholbar zu machen, gibt es noch eine Maven-Integration dazu.

Montag, 5. November 2012

Verschiedene Sprachen auf der JVM

Eine interessante Übersicht zum Stand der JVM und den verschiedenen Sprachen, die darauf laufen, findet sich auf dem Blog von Dr Dobb Journal. Diskutiert werden dort auch die neueren Entwicklunge von Java7 (invokedynamic) und zukünftiges in Java8

Sonntag, 4. November 2012

BitNami JRuby-Stack mit JRuby 1.7.0

Der BitNami JRuby-Stack läuft jetzt mit JRuby 1.7.0. Enthalten sind sofort lauffähige Versionen von Tomcat, MySQL, JRuby und Rails und die benötigten Abhängigkeiten sowie der Amazon AWS PHP SDK. Den Stack gibt es in verschiedenen Geschmacksrichtungen: als Installer für Windows, Linux und OSX, als VM oder als Amazon Cloud Image

Ziel der BitNami-Stacks ist es, das Deployment so einfach wie möglich zu machen. Geschäftsmodell ist, die Stacks frei zu verteilen und fürs Hosting Geld zu nehmen. Der BitNami JRubyStack ist unter der Apache 2.0 license.

Samstag, 3. November 2012

JRuby-Lint: neue Version (Kompatibiltätstester für JRuby)

Version 0.4 von JRuby-Lint ist fertig. JRuby-Lint ist ein Tool, mit dem man vorhandenen Code auf JRuby-Kompatibilität abklopfen kann. Es prüft u.a. auf verwendete Gems und schlägt Alternativen vor für Gems die unter JRuby problematisch sind. Output ist ein Report als Text oder HTML.

Freitag, 2. November 2012

Jetpack: JRuby für Jetty verpacken

Es gibt ja schon einige Tools, um JRuby-Apps zum Deployment auf verschiedenen Servern zusammenzupacken. Jetpack ist ähnlich, packt aber JRuby-Applikation und einem Jetty-Server so zusammen, das als Infrastruktur nur ein JRE zum Laufen benötigt wird.

Donnerstag, 1. November 2012

Phusion Passenger 4.0 mit JRuby-Support

Phusion Passenger hat neulich Versionsstand 4.0beta1 erreicht. Seitdem wird JRuby (und Rubinius) unterstützt. Phusion Passenger ist ein App-Server, dessen Schwerpunkt auf einfachem Deplyoment liegt. Auf dem Phusion Blog gibt es einen Post zu den Hintergründen. Ein Hauptgrund ist die Unterstützung von Multicore-Servern durch JRuby, die immer wichtiger wird und durch die JVM gewährleistet ist. Hier hat MRI-Ruby den Nachteil des Global Interpreter Locks, das deutlich mehr Ressourcen kostet, da dann mehrere Ruby-Prozesse gestartet werden müssen.