RailsConf Europe 2007: Day One (Tutorials)
After yesterday's Bratwurst on Rails, where we met some of the people that would be attending the conference while having a bratwurst and some drinks at the Kalkscheune, the next event was the Tutorials Day, starting at about 8:30am.
The early morning walk from the Radisson SAS hotel where I'm staying to the Maritim proArte where the conference was held was pleasant, consisting of about 1km down Unter den Linden to Friedrichstrasse.
Unfortunately, the Handling Large Concurrent Uploads tutorial was cancelled, so I switched to A Half-day of Behavior-driven Development on Rails, by David Chelimsky, Dan North and Aslak Hellesøy, which turned to be quite interesting, and quite enjoyable as well. These are some of the notes that I took from the tutorial (to be edited):
At the afternoon, I assisted to the Scaling a Rails Application from the Bottom Up in Europe, by Jason Hoffman (Joyent), quite similar to the one that he had already presented in the RailsConf in Portland, and that I had already read. He gave some interesting ideas as well.

Here are some notes of the tutorial (to be edited as well):
The early morning walk from the Radisson SAS hotel where I'm staying to the Maritim proArte where the conference was held was pleasant, consisting of about 1km down Unter den Linden to Friedrichstrasse.
Unfortunately, the Handling Large Concurrent Uploads tutorial was cancelled, so I switched to A Half-day of Behavior-driven Development on Rails, by David Chelimsky, Dan North and Aslak Hellesøy, which turned to be quite interesting, and quite enjoyable as well. These are some of the notes that I took from the tutorial (to be edited):
Behaviour Driven Development
writing software that matters
link what software should do with tech
test naming should be linked to what it's testing
agilemanifesto.org
rspec tool for tdd
agiledocs
BDD:
Narrative
As a [role]
I want [feature]
So that [benefit]
Acceptance criteria ->
Scenarios:
Given [some context]
Given [some other context]
When [some event occurs]
Then [expect some outcome]
And [another outcome]
rcov -> Coverage tests
rake stories
At the afternoon, I assisted to the Scaling a Rails Application from the Bottom Up in Europe, by Jason Hoffman (Joyent), quite similar to the one that he had already presented in the RailsConf in Portland, and that I had already read. He gave some interesting ideas as well.

Here are some notes of the tutorial (to be edited as well):
tiers should be 10x different in throughput
not spending more than 10% of revenue
he likes ruby as process
should not be threaded
glassfish -> generating autodeploying war files
better performance ( mongrel 150-400 vs 1000 req/sec), more memory footprint
use dns to scale (powerdns)
- group users by hostname (jason.strongspace.com)
- use GEO database to send them to different datacenters
layer7
- separate mongrels for different controllers
- can even give priority to first time users (new ip)
- can give priority to certain controllers, scale controllers, bring down controllers one by one
nginx, lighty -> <1000 req/sec
varnish: web service command line allows to "purge" cache to update at next hit
10000 req/sec
Application separation
- dynamic
- static
- uploads:
- separate from app
- downloads:
- mod_secdownload in lighty
tsung -> benchmark tool

