A RubyConf Brasil 2010 foi *oda!
Estive semana passada em São Paulo para a RubyConf Brasil 2010 realizada pela Locaweb. Simplesmente um evento fantástico e de altíssimo nível técnico. A grade de palestrantes incluiu conteúdo extremamente relevante e não o mesmo basicão que costumamos ver em eventos de linguagens específicas. Este foi um evento para quem já tem alguma experiência com Ruby e tenho certeza que essas pessoas não saíram decepcionadas.
Vou fazer um rápido resumo das palestras que assisti. Pelo que pude perceber todas as palestras que assisti estavam sendo filmadas, esperamos que a Locaweb disponibilize o conteúdo para que eu também possa ver algumas palestras muito boas que perdi.
1º Dia
Fábio Akita – Ruby On Rails Rocks
A abertura do Evento ficou por conta do Fábio Akita que dispensa apresentações. Pra ser sincero essa foi a palestra mais “básica” do evento. Ele deu um overview da comunidade Ruby no Brasil e no mundo citando as ferramentas e pessoas mais relevantes. Como de costume também deu uma “intimada” na galera dizendo que todos nós podemos colaborar com grandes projetos e que ainda há muito o que fazer!
Mais importante que isso, ele destacou a inquietude da comunidade Ruby, que não se contenta com o mais ou menos, com a única solução, com baixa performance ou ferramentas que não ajudam o desenvolvedor. Por essas e por outras que hoje eu vejo a comunidade Ruby como a crista da onda na área de tecnologia, posição que há alguns anos pertencia à comunidade Java.
Yehuda é um dos nomes mais relevantes da comunidade Ruby no mundo sendo membro do Core Team do Rails e Lead Developer do Merb. Na sua palestra ele falou sobre um tema de suma importância e extremamente negligenciado: O Client Side de aplicações Web. Citou várias técnicas de otimização da camada de apresentação como reduzir requisições, caching, compactação de arquivos, entre outras.
Porém o principal ponto foi o conceito de desenvolver aplicações web comunicando-se com o server side por meio de uma API baseada em JSON (ou outro formato). Desta forma, sua aplicação web funciona como um cliente de uma API fazendo uso extensivo de Javascript e DOM para manipulação de eventos das telas. Neste ponto ele sugeriu técnicas para otimização de chamadas Javascript como agrupar várias operações DOM e depois executá-las em lote. Propôs também um modelo misto onde browsers com Javascript mais lento (leia-se antigos) fazem requisições no servidor e recebem o HTML formado enquanto browsers melhores recebem JSON e atualizam a interface por meio de Javascript. O Gmail já faz isso há vários anos garantindo uma boa performance mesmo com conexões lentas devido à otimização na transferência de dados.
Chris Wanstrath Scott Chacon – Redis, Rails, e Resque – Paraíso em Tarefas de Pano de Fundo
O Chris teve um problema durante a viagem para o Brasil e não pôde palestrar no evento, mas o Scott estava presente e substituiu seu colega de Github falando sobre Resque, que é um framework para processamento em batch desenvolvido para o Github. O problema e ser resolvido é o agendamento de tarefas e processamento de filas. O framework é bem legal com API bastante simples e direta. Esse tutorial explica em linhas gerais o que ele falou, e no final também mostrou alguns exemplos de código e rodou uma rápida demo.
José Valim – Rails 2.3, 3.0 e 3.1: Passado, Presente e Futuro
Depois do almoço tivemos José Valim, que foi o commiter mais ativo do core team de desenvolvimento do Rails 3, falando sobre as novidades do Rails e mostrando alguns detalhes sobre a solução de problemas típicos como Cache, ActiveRecord, Flexibilidade do framework, Performance, entre outros.
Para aqueles que como eu não acompanhou a evolução do Rails 3 foi extremamente instrutivo pois ele explicou em detalhes como alguns problemas foram resolvidos e como ficou a arquitetura de módulos, novos componentes, conceitos, etc. Além disso já deu uma prévia do que teremos no Rails 3.1 provavelmente ainda em 2010!
Esta foi uma palestra bastante diferente, os caras falaram sobre o Ruby Summer of Code, que é um programa que financia estudantes para realização de melhorias na tecnologia Ruby com grana doada por diversas empresas. Este ano eles arrecadaram US$ 100.000,00 e financiaram a realização de 19 projetos. Gostei muito de saber detalhes sobre o funcionamento do programa que é uma cópia de outros SoCs como do Google e Fedora.
O Thiago desenvolveu um projeto de replicação de dados integrado com o ActiveRecord (ActiveRecord Sharding) e o Ricardo trabalhou em melhorias da implementação do Ruby 1.9 em C. Muito bacana a proposta do projeto onde os alunos são orientados por pessoas de grande experiência na comunidade gerando conhecimento para todos os envolvidos!
Depois do coffee break deu um tempo para trocar umas idéias nos corredores e depois tivemos a Desconferência com várias Lightning Talks de 15 minutos sobre diversos temas, com destaque para a palestra figuraça do Luca Bastos sobre “Programação de Macho”! (essa fica só para quem estava lá)…
.:.
2º Dia
Evan Phoenix – Rubinius para Você
O Evan é o lead developer do Rubinius que é uma máquina virtual em Ruby para rodar Ruby. A priori parece estranho, mas a aplicação que Evan mostrou trata-se de ferramentas úteis para o desenvolvedor como técnicas de avançadas profiling. Não me pareceu muito útil, mas o Rodrigo Toledo ficou de fazer alguns testes para profiling de alguns métodos pesados que ele têm.
Charles Nutter – JRuby: O Melhor dos Dois Mundos
Ninguém tem mais critério para falar de JRuby como o seu criador! E realmente essa palestra foi excelente, ele mostrou dados sobre performance e compatibilidade com as versões do Ruby e várias demos usando diversas APIs como Swing e também um console à lá IRB para Android. Gostei bastante!
David Chelimsky – A manutenção do equilíbrio, reduzindo a duplicação
Eu tinha bastante expectativa para essa palestra visto que RSpec para mim é uma das melhores invenções do mundo Ruby, e David é o criador e colaborador de outros excelentes projetos como Cucumber, além de autor do eterno beta The RSpec Book. E ele não decepcionou, com muito bom humor mostrou vários exemplos de DRY (Don’t Repeat Yourself) mostrando erros comuns de interpretação do conceito.
Ola Bini – O passado e o futuro das linguagens de programação
Ola Bini tem um tom de voz que não combina muito com as 14:30 logo depois do almoço com um happy hour no dia anterior. Ele fez um panorama comparando várias linguagens de programação de todos os tipos. Foi uma palestra totalmente informativa e gostei muito disso, apesar dele ter falado um pouco rápido demais.
Depois disso dei um tempo novamente nos bastidores a aproveitei para dar uma descansada para o final do evento.
Guilherme Silveira e Anderson Leite – O melhor dos dois mundos: funcional e orientado a objetos
Depois do coffee break tivemos uma palestra frenética com o Guilherme e o Anderson, ambos da Caelum, onde eles fizeram alguns exemplos de como é possível simular o comportamento de linguagens funcionais em Ruby. Infelizmente nem todos os exemplos funcionaram, mas a intenção foi muito legal pois deu uma visão diferente à algumas técnicas de programação usadas em linguagens funcionais.
.:.
No final tivemos uma rápida palestra do Diego Carrion em portunhol e com extremo bom humor sobre a GoNow. Foi um merchandizing legal! E depois disso tivemos uma sessão musical com o @danicuki @luizfaias @ucoaaa e @andrefaria que o apresentam: Regaae do Node
E para finalizar, tivemos o Jim falando sobre o conceito SOLID que contém os 5 princípios para um bom design de software:
- Single Responsability Principle – Princípio da Responsabilidade Individual
- Open Closed Principle – Principio Aberto / Fechado
- Liskov Substitution Principle – Princípio da substituição Liskov
- Interface Segregation Principle – Princípio da Segregação de Interface
- Dependency Investion Principle – Princípio da Inversão de Dependência
Ele citou vários exemplos mostrando diferenças de código Java par Ruby e como as coisas devem ser pensadas da melhor forma. Realmente a melhor palestra do evento. Ele tem essa mesma apresentação disponível em vídeo.
.:.
Como sempre tivemos os happy hours do evento onde pudemos interagir com várias pessoas legais, além de tomar cerveja e falar bastante besteira (em inglês após a 2ª cerveja tudo fica mais “fluente”), com destaque para o pessoal da equipe do Friends Around, a galera de BH, de Buenos Aires, do #horaextra do Rio e vários outros com quem tivemos a oportunidade de trocar idéias!
Enfim, pra mim foi um excelente evento, com um certo arrependimento de não ter participado das outras edições e ao mesmo tempo com vontade de participar novamente ano que vem!