Neu in Kategorie Ruby

DNS Probleme bei RubyForge.org

Jeder Rails Entwickler kennt RubyForge - und jeder der gerade Gems installieren möchte, wird folgendes Problem festgestellt haben:
ERROR:  While executing gem ... (Gem::RemoteSourceException)
Error fetching remote gem cache: SocketError: getaddrinfo: no address associated with hostname. (http://gems.rubyforge.org/yaml)

RailsWayCon 2010 - Tag 3

Tag 3 - 02.06.2010

Der letzte Konferenztag ist angebrochen. Heute stehen noch einige interesante Vorträge auf der Agenda. Hier schon mal die Auflistung aller heutigen RailsWayCon Vorträge.

"Establishing an integrated JRuby/Rails - Stack in a Legacy environment" - Rubén Parés-Selders

"The State of RESTful Rails" - Stefan Tilkov

"Rails/Ruby Coding Dojo" - Jens-Christian Fischer, Michael Mahlberg

"Ruby and Redis - Simple meets Awesome" - Mathias Meyer

"Holy Code. Holy Shit! - Designer-Developer-Hölle" - Gerrit van Aaken, Daniela Feuersinger, Stefan Nitzsche

"Using jQuery with Rails" - Yehuda Katz
Endlich! Rails 3 nutzt Markups zur Kommunikation mit Javascript. Dadurch entfällt der in Rails 2.X generierte JS Quellcode in den html Dateien.
# HTML Aufruf
Update

# JS-Driver Function
$("a[data-remote]").live("click, function () {
  $.get($this).attr("href"));
});
Yehuda erläuterte auch, wie einfach das Wechseln der Javascript Libs in Rails 3 wird. Prototyp ist nicht mehr festverankert, sondern man nutzt JS-Driver. Den JQuery-Driver findet man unter jquery-ujs

"Deliver Software with MacRuby" - Thilo Utke

"The Anatomy of Ruby I18n: Overview of the Gem's architecture and advanced features" - Sven Fuchs
Cool in der Version 0.4.0 von I18n kann man sein Backend mühelos auswechseln oder sogar per Chainbackend mehrere definieren. In seinem Vortrag erläuterte Sven sehr gut die Neuerungen und Ansätze von I18n, wie Pluralization, Fallbacks, Gettext, Cache und Chained backend.

Slides:
von Mathias Meyer: Ruby and Redis - Simple meets Awesome
von Stefan Tilkov: The State of RESTful Rails
von Jens-Christian Fischer und Michael Mahlberg: Rails/Ruby Coding Dojo
von Thilo Utke: Deliver Software with MacRuby

Websites:
von Rubén Parés-Selders: Establishing an integrated JRuby/Rails - Stack in a Legacy environment
von Yehuda Katz: http://yehudakatz.com/
von Sven Fuchs: The Anatomy of Ruby I18n

RailsWayCon 2010 - Tag 2

Tag 2 - 01.06.2010

Der Tag began mit einem super Vortrag "Rails 3: Dashing to the Finish" von Yehuda Katz über Rails 3 und die Anpassungen zu Rails 2.3.X. Da kann man sich schon auf das nächste Projekt mit Rails 3 freuen.

Thilo Utke berichtete über seine Erfahrungen beim Schreiben von gutem Testcode "A Testing Survival Guide" Beispiele für gutes Testen. Seine wichtiger Grundsatz "Haltet die Tests einfach!" trifft sich mit gut mit unserem Motto "simple is beautiful". Desweiteren nannte er einige Tools, die ihn beim Testen unterstützen: Spork, Bundler, Factories (Machinist, Factory Girl), Hydra/Parallel Spec, Capybara, Webmocks/SHAM_RACK

"Rails in the Cloud - Lessons learned from building a platform on EC2" war das heutige Thema von Jonathan Weiss. Die Folien des Vortrages sind unten verlinkt.

Ein sehr cooler Vortrag war "10 fun projects to improve your coding skills"" von Jan Krutisch. Er stellte 10 Fun-Projekte vor, welche uns etwas von der täglichen Arbeit ablenken sollen, aber trotzdem unsere Skills fördern und verbessern können. Mehr auch auf seiner Webseite Ten fun projects

Oleg Shpynov und Dennis Ushakov von JetBrains stellten in Ihrem Vortrag Neuigkeiten der RubyMine IDE vor - "Productive Rails development with RubyMine".

"Evolutionary programming with Ruby" - Julian Fischer

"Improved performance with client side optimization" - Patrick Hüsler

"Culerity: Full stack Rails testing with Cucumber and Celerity" - Patrick Hüsler

"SOLID Rails, SOLID Ruby - practical patterns applied" - Jens-Christian Fischer, Michael Mahlberg

Slides:
von Jonathan Weiss: Rails in the Cloud - Lessons learned from building a platform on EC2
von Yehuda Katz: Rails 3: Dashing to the Finish
von Oleg Shpynov, Dennis Ushakov(JetBrains): Productive Rails development with RubyMine
von Thilo Utke: A Testing Survival Guide
von Jan Krutisch: 10 fun projects to improve your coding skills
von Jens-Christian Fischer, Michael Mahlberg: SOLID Rails, SOLID Ruby - practical patterns applied

RailsWayCon 2010 - Tag 1

Tag 1 - 31.05.2010

Der erste Konferenz-Tag ist vorüber und die ersten Eindrücke sind verarbeitet. Neben dem Treffen mit alten Bekannten waren wir auch wieder aktiv beim Besuchen der Vorträge. Da wir aktuell zu dritt auf der RailsWayCon unterwegs sind, konnten wir auch alle Vorträge besuchen.

"Dynamic Language VMs: Ruby 1.9" und "Command your Domain" (beide von Lourens Naudé) bildeten den Start- und Endpunkt des heutigen Tages.

Jonathan Weiss und Jan Krutisch berichteten beide von Ihren Erfahrungen mit dokumentenorientierte Datenbanken und Rails. Jonathan von CouchDB und Jan von MongoDB.

Martin Kleppmann berichtete über "Cross-browser testing in the real world". Techniken wie Selenium, Webdriver, Cucumber/RSpec, Culerity und Celerity wurden genannt und an einigen Beispielen erläutert. Sehr interessant war seine Top 10 der Dinge, die beim Cross-browser Testing zu beachten sind.

"Push it to the limit - An intro to Websockets and Rails applications" und "Be Authentic - Get into LDAP, Users and Roles" waren die Themen von Michael Johann.

"Ruby on Rails Security Updated" - Heiko Webers zeigte die Rails 3 Security Anpassungen. Viele Infos findet man auch auf seinem Blog "Ruby on Rails Security Project"

"Small is Sexy - We need Components in Rails!" - Nick Sutterer berichtete von seinem Cell-Gem und Apotomo - Widgets in Rails. Beides waren auch schon Themen im RailsWay Magazin.

Wir sind gespannt wie weitergeht und hoffen das in den morgigen Konferenzräumen mehr Sitzplätze vorhanden sind. Ok, enges Beisamenstehen fördert auch die Kommunikation.

Slides:
von Martin Kleppmann: Cross-browser testing in the real world
von Jonathan Weiss: CouchDB
von Lourens Naudé: Dynamic Language VMs Command your Domain
von Jan Krutisch: mongodb and mongomapper 4 real!

RailsWayCon 2010 hat begonnen

RailsWayConf 2010Der Startschuß ist gefallen. Zum zweiten Mal treffen sich auf der RailsWayCon in Berlin (J)Ruby on Rails Experten und Enthusiasten zum Erfahrungsaustausch.
Wir sind mit vor Ort und berichten!

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.

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 und Ruby interpretieren Erb-Kommentare unterschiedlich

Erst neulich berichteten wir von Kommentaren in Erb-Files, die das Layout zerstören. Heute haben wir eine unserer Anwendungen testweise auf reinem Ruby laufen lassen und mussten hier folgenden Unterschied feststellen. Wenn man in einem Erb-File einen einzeiligen Kommentar mit
<% # 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.

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.

Statische Migrationen, flexible Anwendung

Da wir unsere Projekte meist im Team bearbeiten, standen wir schon öfter vor folgendem Problem:
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.
Bookmark and Share

Sponsor

Gesponsort von ObjectFab GmbH

Letzte Kommentare

  • MerrittMaryellen35: Set your own life more easy get the loans and Mehr lesen
  • Andre: Schön, dass jetzt endlich die Classpath-bugs gefixt sind! Macht sich Mehr lesen
  • 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
  • Martin: Zur Subversion-Problematik konnte dank JetBrains' Forum eine Lösung gefunden werden. Mehr lesen