Neu in Kategorie Rails

JRuby, Rails3 und RailsWayCon 2010

JRuby

Die meisten JRuby-Nutzer kommen bekanntlich aus dem Java-Umfeld. Sie nutzen die Agilität der Scriptsprache Ruby mit der ausgereiften Infrastruktur und einer Unmenge an Bibliotheken der Java-Welt. Daher werden die meisten auch Ant kennen. In der Ruby-Welt heißt Ant Rake!

Thomas Enebo zeigt nun in seinem Blogeintrag wie man
  • Ant-Tasks mit Rake aufruft
  • Rake mittels Ant nutzt
  • Rake-Tasks als aufrufbare Ant-Targets importiert (und umgekehrt)

Ein weiterer interessanter Artikel von Charles Nutter gibt Tipps um eine bessere JRuby-Startzeit zu erreichen. Im Artikel JRuby Startup Time Tips zeigt er, wie man mittels JVM Java_OPTS die Startperformance beschleunigen kann.

Ruby on Rails 3

Die Rails 3 Beta ist nun schon eine Weile zum Ausprobieren freigegeben. Falls Euch vor dem geplanten Update eurer Rails 2.3.x Anwendung Fragen wie
  • Was muss man beim Update beachten?
  • Wo finde ich Anleitungen zur Rails 3 Umstellung?
  • Welche Plugins und Gems laufen schon mit Rails 3?
durch den Kopf gehen, hier ein paar interessante Links zu Rails 3.

Auf rubyonrails.de gibt es eine super Sammlung von Tutorials, Screencasts und Blogeinträgen.

Die Webanwendung http://railsplugins.org/ bietet eine gute Übersicht, welche Plugins schon für Rails 3 bereit sind. Diese Liste kann von allen aktiv erweitert und aktualisiert werden. Des Weiteren wird zu jedem Plugin angegeben, ob es threadsicher ist, mit Ruby 1.9 und/oder JRuby läuft.

RailsWayCon 2010

RailsWayConf 2010Wer sich lieber selbst ein Bild von der aktuellen JRuby/Rails-Entwicklung machen will, findet sicherlich wieder viele interessante Vorträge auf der diesjährigen RailsWayCon vom 31. Mai bis zum 2. Juni in Berlin.

Ruby on Rails 3 bald als Beta verfügbar

Rails 3 ist die Verschmelzung von Rails und Merb (im Dezember 2008 angekündigt). Die Rails-Entwickler haben vor allem die schnelleren Teile des Merb-Frameworks integriert. (Performance in Rails 3 )
Weitere Neuerungen sind eine verbesserte Modularität, die Unterstützung für die JavaScript-Bibliothek jQuery und eine einfachere Routing-API, um die Webanwendungen auf Basis der REST-Architektur besser zu unterstützen. Die Entwicklung und Integration von Plugins wird vereinfacht und die Anwendung soll besser gegen Cross-Site-Scripting-Attacken (XSS) geschützt sein.

Die erste Beta von Rails 3 könnte schon im Februar erscheinen.

Interessant wird das Zusammenspiel von JRuby mit Rails 3. Die ersten Performance-Messungen von Yehuda Katz zeigen ein sehr erfreuliches Bild. Performance Messungen Rails 3 mit unterschiedlichen Implementationen (EngineYard Blog) (Bildquelle: Performance in Rails 3 )

Update: Mittlerweile ist die Beta tatsächlich draußen (zur Meldung). Sie ist natürlich noch nicht perfekt, aber um einen Eindruck vom neuen Framework zu bekommen und den Entwicklern erste Reaktionen zukommen zu lassen, reicht sie vollkommen aus. My Five Favorite Things About Rails 3
Rails 3 im Rails-Blog
Blog-Eintrag über Rails 3 von Yehuda Katz
Rails 3.0 Beta: 36 Links and Resources To Get You Going
Railscast #200 Rails 3 Beta and RVM
RVM - Ruby Version Manager

Observer in Migration ausschalten

Vor einiger Zeit erwähnten wir die Komplikationen, die auftreten können, wenn man Migrationen in Rails mit den realen Modellen der Anwendung durchführt. Um Validierungen, before_update-Methoden und ähnliches während der Migration auszuschalten, ist es oft günstig, der Migration eine eigene Version des Models zu geben.
Dazu noch ein Tipp:
Mit Model.delete_observers können Observer, welche am Model lauschen, entfernt werden. Da die Observer vom eigentlichen Model unabhängig sind, ist während der Migration nicht garantiert, dass die Observer problemlos arbeiten können.

GlassFish-Gem 1.0.0

Das GlassFish-Gem von Vivek Pandey ist in der Version 1.0.0 erschienen.

Neuerungen sind neben einigen BugFixes:
  1. die Implementierung mittels des neu erschienen Glassfish v3 Servers
  2. die Startzeit wurde um ca. 15% verbessert
  3. die Unterstützung von Rack (Ruby Webserver Interface) ist komplett
  4. es ist möglich, Glassfish mittels eines Codeblockes auszuführen
    GlassFish::Server.start(:address=>"127.0.0.1", :port=>4000) do
     use Rack::CommonLogger
     use Rack::ShowExceptions
     map "/hello" do
     use Rack::Lint
     run Proc.new {[200, {"Content-Type" => "text/html"}, "Hello"]}
     end
    end
    
  5. der Sinatra-Support wurde verbessert
  6. auf der Kommandozeile kann die IP Adresse mitgegeben werden
  7. die Konfiguration von Grizzly (NIO based HTTP Lib) kann mittels der glassfish.yml festgelegt werden
  8. man findet es nun auch bei GemCutter
Was ist eigentlich das GlassFish-Gem?

Einführung ins Test Driven Development

Nicht erst mit dem Bekannterwerden von Rails erfreuen sich Unit-Tests und insbesondere das Test Driven Development immer größerer Beliebtheit. Rails bringt bereits viel Funktionalität mit, damit das Testen von Models, Controllern und Views sehr vereinfacht wird.

Rails 2.3.5, JRuby und Java

Es ist viel passiert in der letzten Zeit! JRuby ist in der Version 1.4 erschienen. Rails kommt mit einem neuen Bugfix-Release 2.3.5, in dem es auch mittels des RailsXss-Plugins von Michael Koziarski einen Vorgeschmack auf die kommende Rails 3 Version gibt.

Wer etwas mehr über die Vorträge zur ersten JRuby-Konferenz erfahren will, kann sich bei ruby-mine informieren.

Die JRuby-Entwickler Nick Sieger, Charles Nutter und Thomas Enebo schreiben auf dem Engine Yard Blog weiterhin interessante Artikel.

RubyMine 2.0 veröffentlicht

Seit der ersten Veröffentlichung von RubyMine arbeiten wir mit dieser coolen IDE und sind sehr zufrieden. Seit einigen Wochen konnten wir nun schon Beta-Versionen des neuen Releases testen und können sagen, dass JetBrains hier nochmal richtig gute Erweiterungen geschaffen hat: Oft verwendete Ruby- und Rails-Techniken wie HAML, RSpec, Cucumber und die Rails-I18n-API werden direkt von der IDE unterstützt und die Editoren wissen noch mehr über den Aufbau der Rails-Projekte, sodass viele neue Refactorings und Code Inspections möglich wurden. Außerdem wurde die JRuby-Unterstützung verbessert - so lassen sich nun zum Beispiel auch unter Windows die gestarteten Server ohne den Umweg über den Task-Manager beenden.

Die Arbeit mit den Betas machte schon Spaß, das fertige Release freut uns um so mehr.
Zum Download geht es hier.

JRuby Anwendungen kundenspezifisch anpassen

Branding und Customizing einer JRuby on Rails Anwendung

Wenn man Rails-Anwendungen für Kunden betreibt, muss man frühzeitig an kundenspezifische Anpassungen denken. Neben dem kundenspezifischen Design (Farben und Logos aus dem Corporate Design, "Branding") spielen dabei auch konfigurierbare Feature-Sets ("Customizing") eine wichtige Rolle. Natürlich wird jeder Kunde sowohl seine eigene Datenbank bekommen als auch seinen eigenen Rails-Server: Sicherheit geht vor!
ObjectTime Branding BlueObjectTime Branding Orange
Jedoch will man als Entwickler nicht deswegen mehrere Kopien des Quelltextes auf dem aktuellen Stand halten müssen. In diesem Artikel wollen wir unser Branding-Konzept am Beispiel unserer Zeiterfassung ObjectTime vorstellen. An den Stellen, wo wir es einsetzen, hat es sich bereits ausgezahlt.

View-Helper mit Kommentaren

Heute mal ein Bericht von einer Merkwürdigkeit, über die wir soeben gestolpert sind:
<% 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.

Cache-Probleme bei nicht-migrierter DB

Vor einiger Zeit berichteten wir über eine Möglichkeit, Datenbank-Aktualisierungen auch unter JRuby einfach nach dem Deployment durchzuführen, indem man die Migration über den Browser anstößt.
Wir haben das nun schon eine Weile - auch produktiv - im Einsatz und sind sehr zufrieden damit. Es gibt aber einen Punkt, den man bei der Anwendungsentwicklung im Blick haben muss.
Bookmark and Share

Sponsor

Gesponsort von ObjectFab GmbH

Letzte Kommentare

  • iGEL: Auf GitHub sind auch aktuelle Versionen verfügbar. Sucht euch hier Mehr lesen
  • David Cresces: Jaa stimmt ein ähnliches Problem hatte ich auch schonmal vor Mehr lesen
  • David Cresces: Jaa stimmt ein ähnliches Problem hatte ich auch schonmal vor Mehr lesen
  • Martin: Zur Subversion-Problematik konnte dank JetBrains' Forum eine Lösung gefunden werden. Mehr lesen
  • Claudia: http://it-republik.de/jaxenter/news/Google-App-Engine-JRuby-on-Rails-und-Groovy-sind-dabei-048255.html Mehr lesen