ERROR: While executing gem ... (Gem::RemoteSourceException) Error fetching remote gem cache: SocketError: getaddrinfo: no address associated with hostname. (http://gems.rubyforge.org/yaml)
Einträge tagged mit “ruby”
DNS Probleme bei RubyForge.org
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.