Dovadi

None of us is as smart as all of us.

De Eeuwige Enterprise Ready Discussie

Ik kwam een "een blog post ":http://duckdown.blogspot.com/2006/11/certifying-ruby-on-rails-as-being.html tegen over wat er allemaal gedaan moet worden om ruby in de “enterprise” te krijgen.

In eerste instantie wilde ik zijn punten gewoon weerleggen, zoals het feit dat we tools als ant en junit moeten krijgen. Huh, is dit weer zo een architect die niet de moeite neemt om de technologie waar hij over praat uit te proberen.

Maar uitendelijk vind ik het een zinlozediscussie. Waarom moeten we de “enterprise” overtuigen? Laat de markt zijn werk doen. Ruby on Rails komt vanuit de kleinere shops met mensen die daar bewust voor gekozen hebben.
Als dit segment uiteindelijk consistent de grotere jongens aftroeft door sneller te kunnen inspelen op zakelijke kansen en het in de winst gevoeld gaat worden, dan hebben we onze validatie.

Het is namelijk geen technologische discussie op het nivo van dynamisch vs static type, maar over het leveren van business value.

GURU4Pro: Chad Fowler

Gisteren was er een presentatie van Chad Fowler in het kader van GURU4Pro georganiseerd door LogicaCMG. Goed georganiseerd, goede lokatie, prima catering, toegang voor iedereen en na afloop een exemplaar van Rails Recipes en dit alles gratis!

Chad gaf een goede overview (met live demo) van de mogelijkheden van Ruby en Rails. Dit gebeurde met veel humor en veel Java bashing.

Interessant was dat Chad zich afvroeg waarom Rails zo populair is geworden. Zo is Rails bijvoorbeeld gebaseerd op het MVC pattern en dat is niet nieuw of zelfs maar innovatief. Seaside bijvoorbeeld vraagt een totaal andere benadering van het ontwikkelen van webapplicaties. Seaside is pas echt innovatief. En dat is juist de reden waarom Rails succesvol is geworden. It’s boring! Het kost om die reden weinig moeite om Rails toe te passen.

Zo had ik zelf nog niet eerder naar Rails gekeken……..

Smalltalk en Seaside

Programmeren in Smalltalk wilde ik serieus leren vanaf het moment ik met Extreme Programming aanraking kwam. Het was er nooit echt van gekomen, maar misschien dat het me nu wel gaat lukken nu je met Seaside wel applicaties voor een breder publiek kunt maken. Op zijn minst wordt ik er een betere ruby programmeur door. Ik hou het een en ander bij op een smalltalk blog.

Installeren Van Railsbench

Vorige week ben ik aan de slag gegaan met Railsbench. Het viel me op dat de installatie instructies summier zijn. Zeker als je nog niet echt een ervaren gebruiker bent van linux (zoals ik). Hier zijn mijn aanvullingen en ervaringen:

  • Download en pak het railsbench-X.X.X tar.gz uit in de ruby directory (in mijn geval /usr/lib/ruby/1.8/)
  • Ga naar de railsbench directory cd /usr/lib/ruby/1.8/railsbench-x.×.x
  • Kopieer site-ruby/benchmark.rb over de originele benchmark.rb sudo cp site-ruby/benchmark.rb ../benchmark.rb
  • Set de script directory in het search path door een regel toe te voegen aan .bashrc file (in home directory of systemwide /etc/bashrc): sudo export PATH=$PATH:/usr/lib/ruby/1.8/railsbench-x.×.x/script/
    >> .bashrc
  • Kopier de benchmark-bestanden naar je project automatisch met install (check met —dry-run) ruby install.rb
  • Set RAILS_ROOT environment variable (deze verwijst vreemd genoeg direct naar de applicatie die je wilt gaan testen en niet de projecten-directory) export RAILS_ROOT=../../railsprojects/myapp

Nu runnen maar met perf_run of perf_bench.

Nog twee ervaringen:

  • Let op dat wanneer je een wijziging maakt in je applicatie, dat je dan geen fout maakt waardoor er bv een 500 error ontstaat. Het lijkt voor de hand te liggen, maar omdat je alleen maar bezig bent met performance vergeet je je testen te draaien. Je denkt een enorme verbetering gemaakt te hebben, perf_run laat duidelijk betere getallen zien, maar dat komt dan omdat op dat moment de applicatie een error geneert en dat doet ie veel sneller dan het volledig afhandelen van de method die je aan het verbeteren bent. Perf_run laat alleen getallen zien en geen foutmeldingen van je app.
  • Railsbench werkt niet als je sessies raadpleegt in een helper (moet je natuurlijk nooit doen). Maar je applicatie werkt, je testen werken, alleen railsbench creeert excepties en kan er niet mee om gaan.