Sonntag, 31. März 2013

JRuby bei Etsy (Big data mit cascading.jruby)

Etsy verwendet hadoop/cascading unter JRuby, um Datamining in ihren Logs zu betreiben. Auf dem Etsy-eigenen Code-as-craft-Blog gibt es einen interessanten Artikel dazu. Mit dabei sind Codebeispiele, um die riesigen Logs (60GB/Tag) auszuwerten. Faszinierend!

Samstag, 30. März 2013

Fjord: F# auf der JVM

Vielleicht ganz interessant, wenn man mal was anderes als JRuby oder Java auf der JVM sehen will:  Fjord, F# programming language for the JVM. Pekka Enberg hat seine Implementierung auf Github gestellt.

F# ("F sharp") kam zunächst von Microsoft Research, ist aber Open Source. F# versucht verschiedene Paradigmen in einer Sprache zu vereinigen, der Schwerpunkt liegt auf funktionaler Programmierung.
Fjord ist noch nicht fertig und lädt zum Experimentieren ein.

JRuby beim Google Summer of Code 2013

Auch dieses Jahr wurde das JRuby Projekt wieder für die Teilnahme als Mentoring Organization am Google Summer of Code (GSOC) eingereicht. Am GSOC können dann Studenten an Open-Source-Projekten teilnehmen und erhalten dafür von Google ein Stipendium (2012 waren das 5000$). Nun werden Vorschläge und Ideen für JRuby-Projekte gesucht, dazu wurde eine Seite auf dem JRuby-Wiki angelegt, die ergänzt werden kann

JRuby und TorqueBox

Chrisopher Spring hat Folien zu seinem Vortrag Rack based web apps with JRuby and TorqueBox online gestellt. Er beschäftigt sich u.a. mit Performance, Threading und asynchroner Verabeitung für das TorqueBox Unterstützung bietet.

Donnerstag, 28. März 2013

jruby-parser

Tom Enebo (JRuby-Core-Comitter) hat das JRuby-Parser.jar und das dazugehörende  jruby-parser-Gem upgedated. Es ist ein Ruby-Parser, der z.B. in IDEs einegsetzt werden kann (Syntax-Highlighting, Code-Vervollständigung, Debugging).

jruby-parser
Tom Enebo

Dienstag, 26. März 2013

bundesstrasse - ZeroMQ mit JRuby

bundesstrasse ist ein JRuby-Wrapper für ffi-rzmq, der ffi-Implementierung für ZeroMQ. Für Leute, die Message-Queueing mit ZeroMQ via JRuby betreiben möchten. Der Name ist eine Anspielung auf autobahn, einem ähnlichen Wrapper für RabbitMQ..

Montag, 25. März 2013

Leap Motion Controller und JRuby

Mit dem Leap Motion Controller lässt sich ein rechner mit Handgesten steuern. Er ist so eine Art Kinect mit wesentlich höherer Genauigkeit, dafür aber geringerer Reichweite. Use Case sind hauptsächlich Spiele und Gestensteuerung von Rechnern. Für den Controller gibt es Java-Libraries, die James Britt mit JRuby verwendet. Er hat dazu auf seinem Blog einen Beitrag geschrieben, der auch Code-Beispiele zeigt.

Sonntag, 24. März 2013

quartz-jruby - java scheduling für JRuby

Schon etwas älter, aber ganz ineteressant: Javas Quartz-Scheduler kann von JRuby aus mit dem quartz-jruby-Gem benutzt werden. Der Overhead ist wesentlich niedriger als bei cron-jobs, da Quartz-Jobs in der gleichen JVM laufen, wie JRuby. Zusätzlich hat Quartz wesentlich mehr Möglichkeiten und eine feinere Granularität als cron.

Samstag, 23. März 2013

web-crawler-jruby

web-crawler-jruby ist ein einfacher Webcrawler, der unter JRuby läuft und deshalb mit hoher Parallelität arbeiten kann.

Freitag, 22. März 2013

OProfile für JRuby (statistische Profiling)

Charles Nutter hat OProfile für JRuby zum Laufen gebracht. OProfile ist ein statistischer Profiler für Linux, der sehr wenig Overhead hat, da er CPU-interne Hardware-Counter benutzt. Faszinierend.

Donnerstag, 21. März 2013

orientdb-jruby in Version 1.3 erschienen (Dokumenten-DB)

Wer eine Dokemenntendatenbank für JRuby sucht, sollte sich orientdb-jruby anschauen. Das ist ein JRuby-Wrapper für die Java-basierte OrientDB. OrientDB bietet Graph-orientierte Optionen und eine SQL-Schnittstelle, so daß man hier verschiedene Paradigmen ausprobieren kann.

Mittwoch, 20. März 2013

Sicherheitsproblem: XML Parsing Vulnerability affecting JRuby users

Es gibt ein Sicherheitsproblem unter JRuby mit Rails ab Version 3: wer das im Einsatz hat, sollte upgraden oder sein System patschen. Details hier.

Dienstag, 19. März 2013

MultiJSON nun mit besserer JRuby-Unterstützung

MultiJSON versucht, die tatsächlich vorhandene JSON-Implemetierung auf einem Ruby/JRuby-System wegzuabstrahieren und benutzt die schnellste bereits installierte JSON-Library. Für JRuby ist nun Unterstützung von JrJackson hinzugekommen, das die Java-Jackson-Library benutzt.

Montag, 18. März 2013

ruby-unf - Uniform Normalization Support für JRuby (und Ruby)

Unicode-Strings können für die gleichen Codepoints  unterschiedlich sein. Wenn man sie miteinander vergleich, müssen sie vorher normalisiert werden. Dazu gibt es das ruby-unf-Gem, das für JRuby die Java-Klasse java.text.Normalizer wrappt.

Sonntag, 17. März 2013

chruby als Alternative zu RVM oder rbenv?

Wer mehrere Rubies im Einsatz hat, z.B. zum Support älterer Projekte, muß seine lokale Umgebung switchen. Dazu gibt es RVM und rbenv. Wem das zu tief in sein System eingreift, der kann sich chruby ansehen, das einen minimal-invasiven Ansatz verfolgt.

Samstag, 16. März 2013

OSGi-Bundle von JRuby aus laden (Tip via stackoverflow)

Auf stackoverflow gibt es Beispiel-Code, um ein OSGi-Bundle via JRuby zu laden. Die OSGi-Service-Plattform wird von modularen Applikationen (z.B. Eclipse-Equinox oder auch das CQ5-CMS) benutzt, um während der Laufzeit Klassen zu laden und Abhängigkeiten zu verwalten.

Donnerstag, 14. März 2013

Ruboto: Quick Start (vom RubyLearning Blog)

Satish Talim hat auf seinem RubyLearning Blog zusammengetragen, wie man eine Ruboto-Entwicklungsugebung auf Windows aufsetzt und seine erste Ruby-Applikation erstellen kann. Dazu gibt es noch einen Kommentar von Uwe Kubosch, dem Core-Entwickler von Ruboto. Mit Ruboto kann man Android-Apps in JRuby programmieren und hat vollen Zugriff auf das Androide-API.

Mittwoch, 13. März 2013

JRuby - schneller Start

JRuby braucht lang, bis es gestartet ist. Das liegt daran, daß erst die JVM hochgefahren werden muß, dann der JRuby-Interpreter. Bei lang laufenden Prozessen ist das irrelevant, lästig wird es aber bei kurz laufenden Prozessen, z.B. Unit-Tests. Auf dem JRuby-Wiki gibt es deshalb eine Seite Improving startup time, auf der verschiedene Möglichkeiten beschrieben werden, das zu verbessern.

Dienstag, 12. März 2013

Ruby on Rails auf die JVM heben (Skalierung, Architektur von Soundcloud)

Interessante Slides von Phil Calçado, wie Soundcloud seine monolithische Rails-App auf die JVM heben will. Es spielen mehrere Faktoren herein. Von der architektonischen Seite die Aufteilung der monolithischen Anwendung in kleine Services. Von der Programmiersprache her die Verfügbarkeit von Know-how bis zur Erfahrung mit Skalierbarkeit anderer Applikationen. Sehr interessant.

Montag, 11. März 2013

NuoDB: SQL in der Cloud mit JRuby-Unterstützung

Für NuoDB gibt es (neben vielen anderen Sprachen) auch JRuby-Unterstützung. NuoDB ist eine Cloud-basierte SQL-Datenbank, die ACID-Compliant ist. Das wichtigste Merkmal ist die Skalierbarkeit, die durch eine verteilte Architektur erreicht wird. Für JRuby gibt es den jruby-jdbc-nuodb-JDBC-Treiber und den activerecord-jdbcnuodb-adapter. Zum Test gibt es eine freie Version (begrenzt in der Größe) und eine unbegrenzte Entwicklerversion. Für Produktionseinsatz muß man dann zahlen.

Sonntag, 10. März 2013

Zweikopf - JRuby / Clojure- Interoperabilität

Zweikopf hat die stabile Version 0.1.0 erreicht. Damit kann man von JRuby aus Clojure-Entities in Jruby-Objekte und umgekehrt verwandeln. Von Clojure aus kann man ebenso in beiden Richtunge auf JRuby-Objekte zugreifen. Ganz interessant, wenn man gleichzeitig JRuby und Clojure verwendet.

Samstag, 9. März 2013

Vortrag von Charles Nutter - High Performance Ruby

Charles Nutter hat seinen Vortrag High Performance Ruby von der RubyConf Australia auf Vimeo hochgeladen. Er spricht über Strategien zur Optimierung von Ruby-Code. Bei JRuby (er ist Core-Committer) geht er darauf ein, wie der Compiler Sprachkonstrukte optimiert und wie dieses Wissen beim Schreiben von Ruby-Code hilft.

Freitag, 8. März 2013

open-nlp - Natural Language Processing für JRuby/Ruby

Louis Mullie hat einen High-Level-Wrapper für den Open NLP - einen Java Machine-Learning-Toolkit für natural language processing (NLP) -  geschrieben. Der Wrapper läuft auch unter Ruby und ist auf GitHub gehostet.

Donnerstag, 7. März 2013

hot_bunnies 1.5: RabbitMQ mit JRuby

Version 1.5 von hot_bunnies ist erschienen. hot_bunnies benutzt die Java-Implementierung von RabittMQ als Unterbau. RabbitMQ ist eine sehr robuste Messaging-Lösung für unterschiedliche Plattformen.

Mittwoch, 6. März 2013

Ruboto 0.10.2 im Anmarsch (JRuby auf Android)

Es gibt einen Release Candidate für die nächste Version 0.10.2 von Ruboto. Mit Ruboto kann man native Apps in JRuby schreiben und hat vollen Zugriff auf das Androide-API.

Dienstag, 5. März 2013

Redline Smalltalk bekommt invokedynamic-Support

Das Redline-Projekt bekommt Unterstützung von Charles Nutter (JRuby-Core-Committer). Und zwar implementiert er invokedynamic-Support, wenn Redline auf einer Java-7-JVM läuft. Redline ist eine Smalltalk-Implementierung auf der JVM, das noch Unterstützung (finanziell und idell) braucht. Auf indiegogo läuft dazu eine Kampagne.


Montag, 4. März 2013

JRuby Swing tutorial - Java mit JRuby nutzen

Hier gibt es ein JRuby-Swing-Tutorial. Interessant ist dabei nicht unbedingt Swing an sich, sondern die Nutzung von Java-Objekten direkt aus JRuby. Das kann man sehr gut nachvollziehen, da es viele Codebeispiele gibt.

Sonntag, 3. März 2013

Echzeit-Datenanalyse mit JRuby

Sehr interessanter Vortrag von David Dahl von Burt mit dem Titel Building a real time analytics engine in JRuby auf Speakerdeck verfügbar. Es geht dabei um eine Analyse-Engine für Online-Advertising. David diskutiert die verschiedenen Techniken, die er verwendet und auch die Constraints die zu Design-Entscheidungen geführt haben.

Samstag, 2. März 2013

Problem in activerecord-jdbc-adapter gem 1.2.6 -> upgrade

Das activerecord-jdbc-adapter gem, Version 1.2.6 hat ein Sicherheitsproblem. SQL-Injection ist damit möglich. Ein Upgrade auf 1.2.7 behebt das..

Freitag, 1. März 2013

krypt - Crypto-Gem für JRuby und MRI-Ruby

Ganz interessant: das krypt-Gem. Bietet ein einheitliches Krypto-API für JRuby und die C-basierten Rubies. Die damit gebauten Applikationen sind deshalb plattformunabhängig und man hat auch keinen Ärger beim Umstellen auf JRuby!