Too Cool for Internet Explorer

Tuesday, October 20, 2009

Rails Summit Latin America 2009 Rocks

I’m on vacations right now, and there are some parallel talks and obviously I didn’t get them all, so, to get this done quickly I will use someone else information for each part of the event and free translate, summarize and mix with my own perception here.

Let me start (of course) with AkitaOnRails:

"About 550 attendees, 20 speakers on a semi-crisis years was a good result”.

"More people outside São Paulo have attended this year, a large group from Rio, but from North, Northeast, South and Center regions also. And even from Argentina.”

"Brazilians once more surpass in hospitality and comrade-ship we have happy hour evenings all days, including the day after, something we didn’t see in RailsConf elsewhere.”

Then Akita disposes about a few problems in the back stage, which the only that could be seen by the audience, was some microphone problems in the first day, nothing else.

"More sponsors this year, what is great, but we need to do even better next.”

"About the talks I try to choose the speakers to provide a big mix in motivational and technical themes, and more focused into the Brazilian audience.”

"In the first day we have our "now famous lightning talk session” which rocks again.”

Then Akita summarizes about the talks, including his own (I will do the same bellow, but considering different sources).

"We from Rails Summit organization staff had recorded all the talks. They are on a final video editing phase, and will be published ASAP in the official event site”

"By now, some attendees recorded and published many of the talks, so, you can watch them up front.” Thanks to Hugo Borges' videos.

"The community participation is always the best part of the event. And you don’t disappoint. Many Railers interacting exchanging ideas and experiences that is the big deal, watch the talks is just a little part. It becomes clear in the "after shift”. In the first day, we had a "Denial of Service” in the "Brahma do Aeroclube” pub and in the second we had a "Stack Overflow” in the "Vila Vintém” pub. May be the only Rails event with hangover effect” – Great moments.

First day talks:

Ruby on Rails Insurgency – Chad Fowler

Chad’s talk resembles the original 2001 talk "Ruby Insurgency” in many aspects but of course in a fresh and renewed view point.

He pointed out that we spent more then a half time of our lives at work, so we must do it the right way. He talked about reasons leading companies to become resistant over new technologies.

There are managers asking a lot of questions: Rails do this? Rails do that? Just waiting for a NO answer to have a chance to state: "Ahaa That is the reason we couldn’t use it”.

Then he brings a recipe on how to push Ruby / Rails into a big company. Doing it slowly, step by step, starting with minor projects.

Presentation: STILL WAITING

On The Edge of Rails Performance – Gregg Pollack

Greg show up a lot of plugins used to detect and fix many scalability problems in Rails applications in the following areas:

ActiveRecord plugins for DB Optimization.
Rails plugins to prevent Memory Bloat
Ruby libraries to help scale


Yet another Ruby Framework: How Rails works from the inside – Carlos Brando

Carlos have changed the presentation a bit turning it into a more introductory level he exposes how we can benefit on creating a framework ourselves. In his case he need to deal with open social platforms and had spoken on how he created a framework for development into this platform. Then he picks some architectural decisions (push-based vs. pull based), database ORM strategy, code generation and templates as examples on how easy it could be.


Real-time Ruby for the Real-Time Web – Ilya Grigorik

I feel Ilya’s talk will be a so much advanced topic for me, so, I choose to watch the Carlos Brando talk.

I thing you could see most of the topics covered in the "Advanced Messaging & Routing with AMPQ” article:


Tarantula: Easy Fuzz Testing for Rails Apps – Glenn Vanderburg

His explanation on how Tarantula crawls a Rails app, traversing links and looking for potential problems (broken links, XSS and SQL Injection vulnerabilities, etc, was really amazing. There are a lot of test steps this tool can handle.

Presentation: STILL WAITING

Code Generators with Thor – José Valim

José speaks about Thor and Rails 3 code generators, and how we could easily customize them. He explains about Thor advantages over the former code generators.

A practical example using RSpec in which a "spec_model” will generate migrations also, considering migrations is not part of RSpec scope, the only option is to change "script/generate model” into "script/generate rspec_model” using this example, he shows how the new generators will help on plugin tasks from now on.


Ruby, dynamism and metraprogramming at DSL construction – Fabio Kung

This one was a big surprise for me, I was thinking Fabio’s talk will stay on a basic DSL level, but he goes beyond, and here is the surprise: besides there are a lot of "black magic” on his code examples, since Ruby is a so crystal clear language, I feel I can play with that "black magic” code as a homework. Really cool presentation.


RSpec and Cucumber: Beyond the Basics – David Chelimsky

In another hard decision I have chosen the Fabio Kung Talk this year.

David talked about some cool RSpec features like: pending capabilities for tests, implicit subject, explicit subject, custom matchers and wrapped assertions. He also mentioned Spork/Autotest, which are automating test tools that quickly execute all RSpec tests of an application every time a test file is modified (and saved).

Presentation: STILL WAITING

Agile, beyond Chaos – Fabio Akita

In this presentation, Fabio makes a "big trip” on how we need to be on the edge or try to get there most of the time, to keep things working on an agile way:

If the team is constantly winning it is time to change it.
Success is not a plan consequence, but environment adaptability is.
Break the rules.
Agile is important, but not the final step.
The absence of Chaos is death.

Presentation: STILL WAITING

The Future of Ruby & Rails – Matt Aimonetti

Matt talks on how the work on Rails 3 is being conducted. Explain many Rails 3 aspects and new features. And show it in the context of the various Ruby language implementations (MRI, IronRuby, JRuby, MacRuby and Rubinius) also.


Lightning Talks:

This session rocks last year and get even better now.

People from Guru-SP and Ruby-Inside-BR, presented themselves, people from Plataforma Tec, presented a new authentication plugin called "Devise”, Cipriani presented about real-time communication systems using Rails, AMPQ, etc. People from Rio show all the activities going there like DojoRio, DevInRio, HoraExtra, etc. People from Natal (RN state), talks about how do NOT make an event, and OxenteRails 2010.

From all this a special reference to Cipriani who shows not only an interesting Ruby on Rails real time application, but a new (for me at least) presentation tool called Prezi.

The highest point here becomes "A 15 minutes blog in Rails” presentation. Nothing new you may say, but presented by an 11 years old boy? With a previous lightning talk describing his journey into this? It was simply awesome.

You need to see this video, even if you don’t speak Portuguese.

Stop the engines and cool down...

Then, after shift time!

Second day talks:

Mac Ruby – Rich Kilmer

Since I’m not a Mac user, this talk has no meaning to me by now, but, here it is:

"Ladies and Gentleman… Mr. Rich Kilmer…”, conducts a nice presentation about HotCocoa and MacRuby, and even nicer to know about the Apple effort in making MacRuby "The development language” in Mac OS/X environment.


Ruby at ThoughtWorks – Carlos Villela

Carlos presented a summary Martin Fowler has done, concerning Ruby projects since 2006 at ThoughtWorks.

What is remarkable about this research is that the majority of projects were considered to have made the right choice in using Ruby and many developers reported a productivity boost of at least twice.

Presentation: STILL WAITING

What changed in Ruby 1.9 – Nando Vieira

Nando talks about new features of Ruby 1.9, his magnificent presentation bring many notes about the changes. A few points:

Releases in December 2008, it is a Ruby 2.0 preview (faster and less memory used)
m17n (multilingualization): many options to get it.
The regexp: uses the uniguruma library now (multi-language, faster, many optios)
New hash syntax, which turns the syntax even clear.
Now rubygems, rake, rdoc are native parts of Ruby.


Lessons Learnt In 2009 – Pratik Naik

Pratik was a bit nervous on his first ever talk, besides that, there are a plenty of useful tips in his presentation. Here are just a few:

Use Ruby Enterprise Edition whenever possible. It is faster and will make your tests faster.
Use the Tickle plugin to execute parallel tests.
Focus on integration tests, not the unit tests.
Security: rails_xss (default in Rails 3).
Will_paginate doesn’t scale. Use Ajax instead (like Twitter).


A little about CouchDB – Marcos Tapajós

Tapajós shows an overview of CouchDB, and how to work on it. He also show how to change your mind from a relational database approach into a document oriented database, a totally different paradigm.

He splits the presentation into two parts, giving plenty of time for questions and hands on doubts.


Rails Can’t Scale – Bruno Miranda

Bruno and Jason (absent) talk about a real project they both make scaling: the Cyloop the MSN music channel, and how they could keep a scalable infrastructure using Rails. Here are some data about the project:

13500 requests per minute
Using Memcached
Using Scrooge
Using Webservices with Sinatra
Proxies: Round Robin, HA Proxy, Nginx Fair Proxy
Tests: test applications with real data
Log everything to keep it safe if something goes down.

Presentation: STILL WAITING

JRuby in the enterprise world: Using Rails with legacy code – Leonardo Borges

Leonardo talks about how to introduce JRuby into a Java project. He presents his approach on how to integrate Java legacy code with JRuby using Maven.

The basic idea is to pack the application into a jar file and put it into the load path of the Rails application.

Presentation: STILL WAITING

From service to product – Vinícius Telles

Vinicius have made one of the best, if not THE BEST, presentation of the event. Simply presenting a short description of his life path from an IT service business man to the recent release of his product the "Be on The Net

He shared useful pieces of advice and lessons learned in his professional (and personal) life.

Presentation: STILL WAITING

Version Control the correct way – Arthur Zapparoli

Arthur talks about the basics on Version Control Systems, then focusing on GIT (of course), give some practical examples and tips on how to do it the right way.


Mastering the Art of Application Development – Obie Fernandez

Once more, Obie closes the event: In a stylish presentation, he establishes parallels between arts like sculpture, painting, playing piano, playing violin and application development. How schools are not the best place to learn to be a master on application development.

He talks about the importance of Practice, including the martial arts Shu – Ha – Ri path where you follow a Master in the Shu stage, you discuss with a Master in the Ra stage, and become a Master in the Ri stage.

His talk makes we question ourselves on how time we spent coding or reading code now, comparing with violinists which practice from the age of 5, and the ones who will become superstars practices 30 hours a week, totaling 10.000 practicing hours to become superstars.

But there are myths on how to become a Master…

Practice makes perfect. No!
Practice makes permanent.
Perfect practice makes perfect.

In order to play fast I have to practice fast. No!
In order to play fast I have to practice slowly.

I don’t need to practice reading music (or code). No!
Just like musicians, developers spent (or should) most of the time reading code.

The paints are available, so, focus on the artwork.
We all develop our own "stack” over time.
Don’t focus on the tools, focus on Why?
The pallet is not the point! The point is what we create with them.
How many brushes do you need to paint a master piece?

Code like a paint process:
Have an idea about the finish piece.
Create a sketch
Improve the sketch targeting the composition

So the final messages for people who care about are:

Forget about the tools; think about the composition and innovation.
Keep practicing the right way, and keep reaching for excellence.

Presentation: STILL WAITING

My final notes about the event:

You can get the official photo set from here:

Some information I have transcribed here also come from these guys:

Leonardo Faria
Alexandre Gazola
The Paladin of the Heaven .ix (PotHix)
Herbert G. Fischer

I need to mention a successful live stream Rails application made by Cairo Noleto and a few other guys. It is called "”, and is simply amazing.

This year the morena_opensource project have gathered a few more enthusiasts.

And I have launched its counterpart: the real_world_woman_on_rails_summit project, a fair reverence to the woman (not models) that made the event even more beautiful, and in this case, more real.

I have planned to talk in the lightning talk session, proposing a new challenge for Rio de Janeiro city, but when I get into the list it was getting late, and half of the audience had gone, so, I think my lightning talk will be done elsewhere this year.

And finally my thanks to the sponsors that helps making this event possible.

Locaweb, Intel, Gonow and ThoughtWorks

That is it.

Sunday, October 18, 2009

What Matters Most: Size or Pleasure?

Let me start talking about: People, Principles, Hardware and Furniture in the Web development environment.

There is a, considered by some, “epic” post reasoning about “Why Pair Programming Is Not for the Masses”.

People do or do not pair programming, for different reasons, and in totally different circumstances in US, Europe, India, China, Japan or Brazil.

Of course, an up to date hardware, a smooth and comfortable furniture, a cool and big enough workplace with a beautiful view will improve the life quality no matter where.

But the real question is: what does it matter most?

People & Principles or Hardware & Furniture?

I have being pair programming myself for a while and my boss doesn’t even know about that. Why? Because pair programming isn’t an acceptable practice where I work, so, we the craftsman, do some pair programming now and then, when we feel the need and we feel that is the best option to get things done.

And we do it wherever possible. A few months ago for instance, I was working as an outsourced resource inside the customer building, and my team mate at that time was from another third party company. My company occupies the 1rst floor in the client building. He was on the second, and the average hardware there was a dual core PC with 17’’ screen…

And YES, we do pair programming. We pair program at his desk on the 2nd floor, or at mine on the 1st. And we do it in cubicles.

Not by coincidence, this was one of the most successful recent projects on that client.

I was wondering if only our managers buy the agile idea, follow the principles, buy the hardware and furniture and sit the developers on a cool place, how better it could be…

In the end, lesson learned, about pair programming:

  • You just need TWO PEOPLE fully accountable for what they do, no matter the hardware nor the furniture, nor the view.
  • The (screen) size doesn’t matter, what matters most is the customer pleasure experienced when a quality product is delivered.

That is it.