Einträge tagged mit “ruby”
Ruby - Blocks, Procs und Lambdas
JRuby Neuigkeiten, Tipps und Tricks
Nach seeeeehr langer Zeit ohne Blogeintrag (geschuldet durch eine gut ausgelastete Projekttätigkeit), soll jetzt hier ein kleiner Überblick über die Neuigkeiten und Entwicklung von JRuby gegeben werden. Es ist einiges passiert!
JRuby 1.7.2 ist erschienen Nachdem im Oktober 2012 die Version 1.7.0 erschien, gibt es mittlerweile schon zwei weitere Versionen, in die hauptsächlich Bug- und Securityfixes integriert wurden. Außerdem wurde die Kompatibilität zu Ruby 1.9.3 verbessert. (Die Ruby Version 1.9.3-p392 erschien am 25.12.2012) Eine der neuen Optimierungen samt Performanceanalyse erläutert Charle Nutter in seinem Blogeintrag Constant and Global Optimization in JRuby 1.7.1 and 1.7.2
Die Unterstützung und Akzeptanz von JRuby hat im letzten halben Jahr weiter zugenommen. So werden in Version 4 des Phussion Passenger JRuby Anwendungen laufen und auch Heroku unterstützt nun nach einjähriger Beta-Phase JRuby - Run JRuby on Heroku Right Now.
Was auch sehr auffällt: JRuby ist auf immer mehr Konferenzen ein Thema. Hier eine Liste von JRuby Vorträgen und Videos.Why JRuby?Euruko 2012 - JRubyJRuby vs. RubiniusIntroduction to JRubyCharles Nutter - JRuby, dudes! EURUKOInvokedynamic: Changing the JVM Forever Deploying with JRuby - Joe Kutner JRuby on Rails - RoR's Simplicity Meets Java's Class - RubyConf India 2012
Wer sich gern weitere JRuby-Themen ansehen will, sollte folgende Webseiten besuchen. Sie sind eine gute Anlaufstelle für Tipps und Neuigkeiten.http://blog.headius.comhttps://github.com/jruby/jruby/wikihttp://jrubytips.comhttp://www.jruby.deJRuby Railscasts
eurucamp/JRubyConfEu 2012 - Ein Rückblick
Drei Tage können ganz schnell rum sein - vor allem, wenn man in einem Hotel direkt am Berliner Müggelsee ist und spannenden Vorträgen lauscht. So zum Beispiel am letzten Wochenende bei der eurucamp - zusammen mit der JRubyConfEU, die am Freitag stattfand. Neben einem aktuellen Statement von Tom Enebo zur Entwicklung von JRuby war für uns der Vortrag von Toby Crawley zu TorqueBox das Highlight des Tages.
Am Samstag gab es, passend zum Wetter, eine vierstündige Mittagspause, die viele direkt zum Sprung in den See oder zur Umrundung des selbigen mit dem Rad nutzten. Drum herum gab es viele kürzere Vorträge zu diversen technischen Themen - (J)Ruby ist mittlerweile auf Android und auf iOS nutzbar, Sinatra kann man in 8 Zeilen unterbringen - aber auch weiter gefasste Betrachtungen wie "Love-Driven Development" (Isaac Wolkerstorfer) und "Development and Philosophy" (Steve Klabnik) kamen nicht zu kurz.
Kurzum: Ein sehr gelungenes Wochenende, wir freuen uns auf nächstes Jahr!
Sprecher JRubyConfEU
Vorträge JRubyConfEU
Fotos,Vorträge und Videos vom eurucamp
JRuby Jam Session
Für alle Interessierten hier die Links zu einem sehenswerten JRuby Vortrag von Charles Nutter und Nick Sieger - Video (ca. 1h) und die Vortragsfolien.
Und einen Blick in die Zukunft von JRuby mit Java 7 kann man hier bekommen JRuby and Java 7: What to Expect .
JRuby 1.6.3 erschienen
Seit dem 7. Juli gibt es JRuby in der Version 1.6.3. Die neue Version erhöht erneut die Kompatibilität zu Ruby 1.9 und die Performance bei der Ruby-Objekt-Konstruktion. Weiterhin wurden die Windows-Unterstützung verbessert und 39 weitere Probleme behoben (siehe Release Notes).
Release Notes von JRuby 1.6.3
DNS Probleme bei RubyForge.org
ERROR: While executing gem ... (Gem::RemoteSourceException) Error fetching remote gem cache: SocketError: getaddrinfo: no address associated with hostname. (http://gems.rubyforge.org/yaml)
RubyMine 2.0 veröffentlicht
Die Arbeit mit den Betas machte schon Spaß, das fertige Release freut uns um so mehr.
Zum Download geht es hier.
JRuby und Ruby interpretieren Erb-Kommentare unterschiedlich
<% # comment %> oder <%- #comment %>schreibt, geht das unter JRuby - unter Ruby aber nicht. Dort werden in merkwürdiger Weise Teile von nachfolgenden Statements abgeschnitten, sodass dann Teile des HTML-Quellcodes auf der Webseite landen. Hier sollte also nur die korrekte Form
<%# comment%> verwendet werden.
Vorschau auf JRuby 1.4
Gerade wurden, neben den üblichen Bugfixes, 5 Hauptthemen der neuen Version JRuby 1.4 angekündigt.
- JRuby 1.4 wird kompatibel zu Ruby 1.8.7
- Weitere Verbesserungen der Ruby 1.9 Unterstützung.
- Ein neuer YAML-Parser wird enthalten sein. (geschrieben von Ola Bini)
- Die Java-Integration wird verbessert.
Genauer gesagt soll es möglich sein, präziser zu bestimmen, welche Java-Methoden angesprochen werden sollen.
Zur Zeit gibt es nämlich das Problem, dass, wenn man z.B. die Methodeuse()bei dieser Java-Klassepublic class Overloaded { public static void use(int i) { /* ... */ } public static void use(long l) { /* ... */ } }mit JRuby aufruft,Java::Overloaded.use 10
die Methodepublic static void use(long l)genutzt wird. Das jetzige JRuby-Verhalten erzwingt eine Umwandlung von Ruby-Fixnumin einenlong-Wert in Java. Daher kann nie die Java-Methode mit demint-Argument aufgerufen werden. - Die Generierung von echten Java-Klassen aus Ruby wird "experimentell" enthalten sein.
Zum Beispiel wird aus:require 'java' require 'jruby/core_ext' class SimpleTest def equals raise "not equal" unless 1.0 == 1 end end SimpleTest.add_method_signature("equals", [java.lang.Void::TYPE]) SimpleTest.add_method_annotation("equals", org.junit.Test => {}) SimpleTest.become_java!package ruby; import org.junit.Test; public class SimpleTest { @Test public void equals() { // dispatch back to Ruby code here } }
5 Things to Look for in JRuby 1.4
JRuby Ruby-to-Java Compiler
View-Helper mit Kommentaren
<% my_helper do #comment %> <div>Text</div> <%= function() %> <% end %>
my_helper ist ein normaler Helper - in unserem Fall sollte er sich den Code nehmen und auf der Webseite als Text anzeigen, was auch klappte. Nur im Produktivsystem war lediglich die Ausgabe von function() zu sehen. Wieso? Was hier falsch ist, ist der Kommentar direkt nach dem
do. RubyMine zeigt zwar eine korrekte Syntax und auf meinem localhost-System funktioniert es auch. Warum es nur produktiv nicht klappte, bleibt ein Rätsel, wir konnten bisher nur rausfinden, dass es nicht an der Environment liegt.
Statische Migrationen, flexible Anwendung
Ein Entwickler startet ein neues Projekt und legt das Model
User an. Da das Projekt am Anfang steht, hat der User erst mal nur ein Login. In der Migration wird auch gleich ein "admin"-User angelegt. Ein paar Tage später wird entschieden, dass beim User auch Vor- und Nachname benötigt werden. Also legt der Entwickler eine Migration an, die dem User diese Felder hinzufügt und das User-Model erhält Validierungen, damit die Vor- und Nachnamen auch befüllt werden.Nun kommt ein zweiter Entwickler zum Projekt hinzu. Er checkt die Sourcen frisch aus und will seine Entwicklungs-DB migrieren. Schon die erste Migration schlägt fehl, da diese den "admin"-User ohne Vor- und Nachnamen anlegen will. Auch später im Produktivsystem funktioniert diese Migration nicht mehr.
Noch spannender wird es, wenn im Laufe der Zeit durch ein Refactoring ein Model ganz entfernt wurde. Alle vorangehenden Migrationen, die irgendwie auf die Klasse zugreifen wollen, schlagen fehl. Kurzum: Die Anwendung entwickelt sich dynamisch, während die Migrationen zum jeweiligen Anwendungsstand in Stein gemeißelt werden.
JetBrains RubyMine veröffentlicht
RailsWayCon 2009 in Berlin
Die Macher des Magazins stehen auch hinter der ersten RailsWay Konferenz. Die RailsWayCon 2009 findet vom 25. - 27. Mai in Berlin statt. In der aktuellen Ausgabe des Magazins und auf www.railswayconference.com kann man sich die beeindruckende Liste der internationalen Referenten und Vortragsthemen ansehen. Wir sind gespannt, welche Neuigkeiten und coole Erfahrungen uns dort begegnen.

Performance ist relativ - JRuby gegen Ruby
Die mit dem relativ einfachen „tak"-Benchmark gemessenen Ergebnisse zeigen z.B. von Ruby 1.8.6 auf 1.9.1 eine Steigerung der Performance um den Faktor 5. Ein JRuby 1.3 ohne jegliche Optimierung kann allerdings 30-50% schlechter sein als Ruby 1.8.6. Nach zwei Optimierungsschritten ist es allerdings bereits besser als Ruby 1.9.1, mit leichten Einschnitten bei der Kompatibilität wird es fast dreimal so schnell.
Wie erwähnt, die Zahlen gelten für „tak". Inwieweit sie in der Realität erreichbar sind, steht auf einem anderen Blatt. Mit Charles' aktueller Spielsprache Duby, deren Code ähnlich wie Ruby aussieht, läuft „tak" übrigens zwei Zehnerpotenzen schneller...
Anlass des Artikels war ein Post über MacRuby mit Angaben zur Performance von MacRuby 0.5. Die konstruktive Kritik wurde bereits berücksichtigt.
Antonio Cangianos Blog
MacRuby
Installation von JRuby on Rails
Folgende Schritte sind nötig:
A. Installation von JRuby
B. Installation von Rails mittels Gem
Was ist JRuby on Rails?
dem deutschprachigem Blog über Jruby on Rails!
JRuby on Rails (JRoR) verbindet die Agilität der Skriptsprache Ruby mit der ausgereiften Infrastruktur und einer Unmenge an Bibliotheken der Java-Welt. Das ist eine sehr mächtige Kombination, denn die Kunden bekommen eine stabile Webanwendung mit großem Funktionsumfang für einen vergleichsweise geringen Aufwand. Und welcher Kunde will das nicht?
In diesem Blog werden wir Informationen rund um JRuby, Rails und Ruby zusammentragen. Neben Links zu anderen Seiten und interessanten Büchern werden wir auch eigene Lösungen vorstellen und Trends diskutieren. Wir möchten auch andere professionelle Softwareentwickler einladen, sich zu beteiligen, und hoffen so zum Erfahrungsaustausch beizutragen.