Minhas impressões – Ruby+Rails no mundo real 2010 – 29/05/10

Caros amigos e leitores,

Vou escrever nesse post uma cobertura acerca do que ocorreu no evento do dia de ontem e que estive presente, o Ruby+Rails no mundo real 2010, em sua segunda edição. No ano passado também estive presente nesse mesmo evento e fiz um post de cobertura do que aconteceu. Esse ano vou “repetir a dose”…rs. Confiram abaixo!

Panorama

Ontem foi mais um sábado perdido…brincadeira…mais um sábado dedicado a angariar informação ao “portifólio de conhecimento”, como gosto de citar. Estive nesse evento juntamente com o colega de empresa Fabrício Campos. Estávamos motivados e com expectativa alta para a segunda edição do evento, muito pelo que ocorreu no ano passado. Para mim foi a segunda participação no evento, Fabrício estava participando pela primeira vez.

A localização (e a manutenção do local do evento, mesmo do ano passado) do Century Flat facilitou bastante a chegada até o local, muito pela variedade de vias de acesso e disponibilidade de transporte público até a Av. Paulista. Cheguei com um pouco de antecedência (cerca de 8h35 da manhã), fiz meu credenciamento e aguardei até as 9h00 para o início.

Consegui um bom lugar para me estabelecer: perto de tomadas 🙂 Assim consegui manter meu notebook e celular “vivos” até o fim do evento! Apesar de no “fundão” o pessoal ter passado alguns “apertos” para visualizar alguns slides com código…

Abaixo vou colocar um resumo, informações e alguns apontamentos pessoais do que conferi “in loco”.

Wilian Molinari – Abertura do evento e o GURU-SP


Wilian Molinari, a.k.a PotHix, fez a abertura do evento contando para o pessoal o histórico sobre a idéia de criação do GURU-SP, e como eram as primeiras reuniões do grupo: o primeiro e segundo encontro tinham poucas pessoas (cerca de 3 ou 4). As reuniões eram esporádicas, mas conforme a lista de discussão crescia o desejo de se criar um evento crescia também. Assim o “Ruby+Rails no mundo real” (edição 2009, primeiro do grupo) foi bastante produtivo e aumentou consideravelmente o número de inscritos na lista.

A partir disso a comunidade Ruby aqui em SP cresceu e se tornou bastante sólida e ativa. As palestras subseqüentes (a maioria nos encontros mensais do grupo) foram melhores e com mais pessoas. Os encontros tornaram-se mais constantes e muitas outras empresas passaram a apoiar a o GURU-SP (inclusive a que trabalhamos eu e o Fabrício hoje: Voice Technology, que já recepcionou uma das reuniões do GURU-SP).

O GURU-SP hoje conta com alguns projetos e atividades:

Finalizando a abertura, foi passado um vídeo com uma mensagem do Matz (criador do Ruby) para o GURU-SP:

Abaixo a apresentação do PotHix na abertura (via Slideshare):

Douglas Campos & Scalone – Processamento batch – Escalando um sistema sem “fermento”


Nessa primeira palestra, @qmx e @scalone centraram as atenções para o conceito de processamento em batch, fazendo um paralelo (um tanto quanto extenso…) com a produção de pão.

A linha principal de raciocínio era: quando sua aplicação cresce muito e “escala sem esperar”, uma hora ela fatalmente não vai suprir a demanda(e “de repente” vai cair). Nesse ponto é preciso analisar alguns pontos e procurar um culpado (lógico! rs). O banco de dados (DBA), infra (sysadmin), entre outros são os primeiros da lista. O desenvolvedor nunca é o culpado (o famoso: “Eeeuu…que isso….eu não erro” rs). Por isso conhecer e saber desenvolver um sistema que possa processar múltiplas tarefas é necessário.

Para isso eles deram como “solução” o uso de dois processadores de tarefas: DJ e BJ.

Para um processamento de imagens pesadas em batch (ou conversão de vídeo), por exemplo, o mais indicado é uso do DJ. Abaixo algumas características:

Vantagens

  • Documentação e tutoriais vastos;
  • Curva de aprendizado baixa.

Detalhes

  • Sinatra-dj;
  • Compatível com rails > 2.2;
  • Usa daemon ou worker.

Desvantagem

Exemplos de código

Uma outra biblioteca útil para trabalhar em conjunto com o DJ é o delayed_paperclip.

Abaixo as informações acerca do outro framework, o BJ:

Vantagens

  • Mais simples e robusto;
  • Instalação fácil;
  • Curva de aprendizado mais baixa que o DJ.

Desvantagens

Um ponto importante que deve ser sempre ressaltado: DJ e BJ não são balas de prata. Uma outra ferramenta citada na apresentação foi o resque, usado em conjunto com o Redis (banco de dados NoSQL), para criação de filas de uso muito mais rápidas e escaláveis. Tem uma interface de administração legal e é uma solução muito valiosa.

As seguintes ferramentas de monitoração para soluções de processamento em batch foram dadas: Monit, God, Munin. E toda essa palestra se baseou em cases de sucesso, como o da própria AutoSeg (empresa onde trabalham ambos os palestrantes) e GitHub. Aliás, o GitHub também usa um servidor chamado Unicorn, que é faz parte das muitas soluções usadas pelo site para manter-se no ar com estabilidade.

Uma outra fonte muito legal sobre o assunto, que encontrei em pesquisas (o autor desse post mesmo…rs), foi um post do Tobin Harris intitulado “6 ways to run background jobs in Ruby“.

Para encerrar, só queria citar o ponto de que ambos os palestrantes estavam muito dispersos, divagaram demais no começo da apresentação. Até chegar na parte técnica mesmo foi “muito pão e poucas explicações claras”. Houve demora pra chegar no “core” da palestra (apesar das boas pitadas de humor). Mas tirando isso tudo certo…rs.

Abaixo confiram o vídeo da palestra (“produções Agaelebe”, by Hugo Borges, que gravou o evento todo e irá disponibilizar os vídeos a medida do possível):

[blip.tv ?posts_id=3716284&dest=-1]

A apresentação no Slideshare:

David Paniz e Leonardo Bessa – Entendendo metaprogramação e por que magia negra não existe (Voodoo é pra jacu)


O objetivo da apresentação, totalmente cercada por exemplos práticos (e a frase de título foi devido aos exemplos usando classes com o nome “Pica-pau”), era conhecer por dentro a metaprogramação e como ela realmente funciona  dentro da linguagem Ruby. Ambos os palestrantes demonstraram o porque não é um bicho de “sete cabeças” mesmo…rs.

Primeiramente, a definição da Wikipedia para metaprogramação é complicada:

“Metaprogramação é a programação de programas que escrevem ou manipulam outros programas (ou a si próprios) assim como seus dados, ou que fazem parte do trabalho em tempo de compilação.”

O correto seria : Metaprogramação é escrever código que escreve/gera código. Assim fica mais claro (!).

Em Ruby é totalmente aceitável aproveitar as open classes, ou seja, a facilidade que a linguagem dá pra mudar o comportamento de objetos em tempo de execução, ao contrário de outras linguagens (Java e C#, por exemplo). Mas, usar e abusar disso não é legal: deve ser feito com responsabilidade e a medida que for necessário usar, sempre com comprometimento e responsabilidade.

Na apresentação as demos mostradas eram exemplos práticos dos mais variados assuntos: eu realmente posso adicionar um método a um objeto? onde o método fica? que tipo de objeto pode definir métodos? Métodos são adicionados em classes ou objetos?

E para complementar o assunto houveram definições de Singleton Class, Metaclass e EigenClass. Apesar de ser um assunto fora do meu conhecimento, consegui “pescar” alguns conceitos. 🙂

Abaixo o vídeo da palestra, gravado pelo Agaelebe:

[blip.tv ?posts_id=3728666&dest=-1]

E a apresentação no Slideshare:

Hugo Baraúna – Keynote: O que há de novo no Rails 3?


Hugo Baraúna, desenvolvedor Ruby/Rails há 3 anos na Plataforma Tecnologia (empresa focada em projetos/coaching em Rails, onde trabalha também José Valim, core Rails), trouxe um overview acerca das novidades do Rails 3, a ser lançado no segundo semestre de 2010. A maioria das informações se encontram no RailsGuides.

Abaixo os pontos, informações e mudanças mais importantes:

Para quem estiver interessado,  a Plataforma mantém um profile no GitHub com alguns projetos relacionados a Rails 3. Abaixo 2 deles:

  • Mail Form: “Send e-mail straight from forms in Rails with I18n, validations, attachments and request information”;
  • Responders: “A set of Rails 3 responders to dry up your application”.

Abaixo o vídeo da palestra, gravado pelo Agaelebe:

[blip.tv ?posts_id=3721460&dest=-1]

E os slides presentes no Slideshare:

Marcelo Castellani – Rhodes, um framework para o desenvolvimento de aplicações nativas para smartphones usando Ruby


Essa para mim era uma das principais palestras do evento, pois já tinha ouvido falar dessa ferramenta (além do Titanium, que é open source também), para construção de aplicativos para dispositivos mobile (leia-se smartphones) multiplataforma.

O mercado mobile é muito promissor e já é uma realidade, fato. Há perspectivas para que no ano que vem existam mais acessos a internet pelo celular do que pelo Desktop (leia uma das fontes da notícia aqui). Portanto, conhecer e dominar técnicas de escrita de aplicativos para o mundo mobile, e não só para Desktop ou Web, é necessário.

Abaixo uma listagem das features do Rhodes, citadas pelo Castellani na apresentação:

  • Faz parte da “família Rhomobile“, composta pelo Rhodes, RhoSync e Rhohub;
  • Suporte a Iphone OS, Android, Blackberry, Symbian e Windows Mobile. Ou seja, praticamente 95% do mercado;
  • As aplicações são nativas mesmo, para cada plataforma. Não há aplicações web rodando por baixo e mascaradas;
  • O Rhodes possibilita a criação de aplicativos de celular com linguagem Ruby, ou seja, existe ganho de produtividade;
  • A API é bem extensa para todos tipos de celulares;
  • Rhodes é open source 🙂 ;
  • Como vantagens podemos citar uns dos lemas do Java 😉 : Write once, Run everywhere;
  • Há abstração de hardware (não há necessidade de saber a arquitetura física do celular);
  • RhoSync é pago 😦
  • RhoHub tem um plano Free e outros pagos 😦
  • Programa interessante para análise: Pivotal Tracker (Traker-r);
  • Instalação: gem install rhodes / rhodes-setup.  “Very easy” 😉
  • Atenção: o interpretador de Ruby do Rhodes é um subset do Ruby 1.9, portanto não há algumas funcionalidades da linguagem;
  • A parte de persistência é feita através do Rhom: é um mini object mapper disponível no Rhodes (como se fosse um Active Record);
  • É possível criar splash screen (tela de carregamento da aplicação), páginas de tratamento de erro, pode-se definir arquivos específicos por plataforma, usar GPS, câmera, etc;
  • Para usar GPS na aplicação é preciso implementar Ajax. A plataforma Blackberry é a única que não suporta Ajax;
  • Existe uma biblioteca para implementação de testes: Mspec;
  • Licença: livre para aplicativos open source; 1000 dólares para aplicativos que forem cobrados.

Castellani tinha uma hora para apresentar e terminou em 45 minutos (!). Ao final muitas perguntas foram feitas e o pessoal realmente achou o assunto interessante!

A apresentação no Slideshare se encontra abaixo:

E o vídeo da palestra no blip.tv:

[blip.tv ?posts_id=3730009&dest=-1]

Anderson Leite – BDD e Cucumber


Antes de iniciar a sua palestra (e após um longo hiato de espera onde o pessoal dispersou…), Anderson Leite informou ao público que a nova reunião do GURU-SP está marcada previamente para o dia 26/06/10. Mas a data pode ser alterada (pois já existem outros eventos oficiais marcados, como o Agile Brazil e o Profissão Java, por exemplo).

A respeito da palestra, a mesma se centrou em 3 pontos: BDD, Cucumber e Cobertura de testes.

A idéia central é que um software deve ter testes, e devem estar de acordo com a visão do cliente, com o comportamento do software e daquilo que pode ser útil/com finalidade. É sabido que cerca de 80% de um software não é usado pelo cliente final.

Para nos auxiliar a fazer aplicações de valor (usando Ruby) a implementação dos conceitos de BDD se torna necessária. Algumas informações adicionais:

  • Livros indicados para leitura: The RSpec Book e Domain Driven Design;
  • Frameworks de teste baseados em BDD necessitam de uma linguagem de domínio;
  • A linguagem de domínio no BDD deve ser baseada na visão dos stakeholders;
  • No BDD faça o suficiente. Sempre entregue de valor real. Tudo é comportamento. Prefira algo “sem papelada”.

O Cucumber é uma ferramenta para a linguagem Ruby, baseada em BDD, que dificulta a perda de informação acerca de um domínio entre cliente, desenvolvedor e testadores. O Anderson fez alguns exemplos práticos, mostrando cenários de teste, mas para não “chover no molhado” nesse post e colocar informação repetida, eu indico algumas referências para o aprendizado:

Para encerrar ele indicou um projeto para cobertura de testes: relevance-rcov.

E lembre-se: escrever código sem testes é uma #putafaltadesacanagem

Abaixo a apresentação no Slideshare:

E o vídeo no blip.tv:

[blip.tv ?posts_id=3737359&dest=-1]

Cassio Marques – Refatorando Ruby – Técnicas de Orientação a Objetos e Design Patterns Aplicados a Linguagens Dinâmicas


Essa foi a última palestra do evento, ufa! Mas não é aquele “ufa!” de “putz, não vai acabar essa joça não…”, pelo contrário: essa não foi aquela palestra que você não vê a hora de terminar para ir embora. Cassio Marques segurou o público até o final com um tema muito bom e de grande interesse do pessoal, inclusive o meu!

Para explicar e pensar no assunto precisamos responder algumas perguntas como: O que é refatorar um código? Porque mexer no código? Se o código está funcionando porque vou mexer??

As motivações, ou melhor, razão para refatoração em código são muitas:

  • Muitas pessoas usam Ruby mas não sabem orientar a objeto (ainda tem dúvidas do paradigma Procedural x OO);
  • Raciocínio estático;
  • Uso de linguagem nova mas usando hábitos antigos;
  • Organização de código;
  • Modularizar o código;
  • Facilitar manutenção e compreensão do código.

E quais as motivações para usar Design Patterns:

  • Ajuda Ruby a ser “Enterprise”;
  • YAGNI” (eu não conhecia esse termo não…rs!).

E não esquecendo de que escrever, ter uma suíte de testes escritos e uma cobertura de testes é necessário pra verificar uma refatoração.

As dicas sobre refatoração foram:

  • Mantenha seus métodos pequenos e facilitando compreensão e coesão;
  • Dê nome aos parâmetros dos métodos;
  • Uma classe não deve realizar trabalhos que não estejam relacionadas a ela! Tenha coesão;
  • Substitua “números mágicos” por constantes;
  • Encapsule variáveis/propriedades de objeto (como getters e setters do Java);
  • Substitua condicionais por polimorfismo;
  • Simplifique expressões condicionais;
  • Padrões que valem ser estudados para Ruby: Command, Strategy, Delegation.

Abaixo a palestra, disponibilizada pelo Cassio Marques. Deixo meus parabéns para o mesmo pela apresentação e responsabilidade de fechar o evento!

O vídeo gravado e disponibilizado no blip.tv pelo Hugo Borges (@agaelebe) está abaixo:

[blip.tv ?posts_id=3737667&dest=-1]

Conclusão

O evento superou minhas expectativas? De certo modo não, de certo modo sim…(momento Cléber Machado…rs). Se eu fosse comparar com o evento do ano passado, na minha concepção, a grade de palestras do ano passado foi melhor. Esse ano o nível de palestras foi bom (nota 7). O diferencial, sem dúvida, foi a interação do pessoal, que fez muito mais networking e estava muito mais ativo em relação ao ano passado, junto com o aumento do número de patrocinadores e estandes de empresa no local.

Na minha concepção:

Pontos negativos

  • Coffee break fraco;
  • Wi-Fi muito lento e instável. Ano passado não houve disponibilidade de sinal, e esse ano foi praticamente se não tivesse também;
  • Tela de projeção muito baixa, dificultando visão do pessoal do fundo da sala;
  • Houve um hiato muito grande entre a palestra do Castellani e do Anderson, fora o sorteio e o problema do datashow. Nesse momento o pessoal dispersou no “fundão” do local…

Pontos positivos

  • Boa localização
  • Fabrício Campos foi sorteado e ganhou uma mochila da Localweb com alguns brindes dentro! 🙂

Para aqueles que queiram ver fotos do evento, vejam os links abaixo:

E quem quiser acompanhar os tweets do evento:

O Ricardo Almeida escreveu um post no site #horaextra, contendo as apresentações e vídeos das palestras.

Bem, acredito que seja isso que eu queria passar. Espero que vocês tenham gostado da cobertura e conforme as palestras, ou informações adicionais, forem liberadas eu atualizo o post.

Nos vemos no Ruby+Rails no mundo real 2011 e viva a comunidade Ruby em Sampa!

Até mais!

Anúncios

Ebook gratuito sobre Google App Engine (GAE) disponível para download

Romin Irani, autor do Blog Google App Engine Java Experiments, publicou um ebook completamente gratuito sobre como desenvolver aplicações Java no Google App Engine. Segundo críticas, o livro é excelente e conta com mais de 200 páginas abordando detalhadamente tudo o que é preciso saber para desenvolver aplicações no GAJ usando Java.

Baixar o Ebook

Link: http://gaejexperiments.wordpress.com/gaej-experiments-ebook/

P.S. : “Pinçado” do site JavaFree.org.

Getting Started with Grails, Second Edition – E-book (Download)

Nesses últimos dias venho lendo algumas matérias sobre Grails, esse framework de várias vantagens em produtividade, clareza de código e similaridade/compatibilidade com a plataforma Java.

Ressalto que na edição número 39 da Revista Mundo Java (15 anos de Design Patterns) há uma matéria do assunto, a qual já li e gostei (Grails – Um caso de Sucesso – Autor: Felipe Rodrigues de Almeida).

Hoje, lendo o InfoQ, existe disponível um e-book gratuito para download sobre o assunto, intitulado “Getting Started with Grails, Second Edition” (Scott Davis & Jason Rudolph).

Você pode adquirir o e-book gratuitamente por esse link. Se preferir, pode solicitar a versão impressa por $22,95 (acesse esse link).

Resumo

Grails is a Java- and Groovy-based web framework that is built for speed. First-time developers are amazed at how quickly you can get a page-centric MVC web site up and running thanks to the scaffolding and convention over configuration that Grails provides. Advanced web developers are often pleasantly surprised at how easy it is to leverage their existing Spring and Hibernate experience.

“Getting Started with Grails” brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, Tropicana, and Taco Bell are all using Grails. Are you ready to get started as well?

160 pages, 6″ x 9″, ISBN: 978-0-557-18321-0

Bom estudo e começo em Grails!

Referências sobre BDD – artigos para leitura

Para os interessados em aprender e entender o que é BDD, conhecer os conceitos essenciais dessa prática ágil, indico dois posts que li nesse dia de hoje, referências boas para quem busca respostas iniciais sobre assunto. Eis os links abaixo:

Ferramentas para BDD

Procurando por ferramentas para aplicar BDD?

Se você programa em Java pode usar um framework chamado JBehave. No site do projeto há um tutorial de 2 minutos (!) explicando o uso da ferramenta. Vale a pena dar uma passada por lá.

Se programa em Ruby use o framework Cucumber. O próprio site do projeto é bem completo e com muitas referências, inclusive para livros (o principal: “The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends”).

Caso eu encontre outras referências do assunto, estarei colocando no blog a medida do possível.

Até mais e bons estudos!

MakeWare Java versão 4.0.3 – (IDE de programação brasileira para a linguagem Java)

Mais uma IDE de programação para a linguagem Java, agora em português, com menos de 3Mb e feita por um brasileiro 🙂 . O único defeito é que é para Windows 😦 . Seguem as informações abaixo. Informação retirada do site JavaFree.org.

Para quem nunca ouviu falar do MakeWare Java, o MakeWare Java é uma ferramenta de programação que eu desenvolvi para o desenvolvimento de aplicações usando a linguagem Java. Você pode fazer várias tipos de aplicações com essa ferramenta: Aplicações para console, aplicações gráficas com formulários (como no Delphi), aplicações baseadas em sistemas distribuídos, Applets Java,Aplicações para Banco de Dados e até aplicações para celulares, com o J2ME.

No MakeWare Java você possui sete tipos diferentes de projetos, são eles:

– Projeto Java Simples : Neste tipo de projeto você pode trabalhar com o essencial do Java: classes, interfaces e pacotes. E você pode Criar:

– aplicações baseadas em console e,
– aplicações gráficas utilizando componentes Swing

– Projeto Java RMI: Neste tipo de projeto, você cria um modelo pronto de sistema distrbuído Java utilizando RMI (Remote Method Invacation). Nele você vai especificar o cliente, servidor e interface remota. Para que você tenha um exemplo do seu funcionamento, retire os comentários existentes nos cliente, servidor e interface.

– Projeto Java Corba: Neste tipo de projeto, você cria um modelo pronto de sistema distrbuído Java utilizando Corba (Common Object Request Broker Architecture). Nele você vai especificar o cliente, servidor e interface (IDL). Para que você tenha um exemplo do seu funcionamento, retire os comentários existentes nos cliente, servidor e interface.

– Projeto Java Applet: Neste tipo de projeto você cria aplicações applets em Java, onde toda a execução será exebida no seu browser.

– Projeto Java Socket: Neste tipo de projeto, você cria um modelo pronto para trabalhar com Sockets. Nele você vai especificar o cliente e servidor. Para que você tenha um exemplo do seu funcionamento, simplesmente execute o projeto, não é preciso descomentar nada. O Projeto Java Socket já possui agora um help.

– Projetos Java BD: Neste projeto é criado um modelo pronto que faz a utilização de mecanismos de banco de dados fornecidos pela linguagem Java, o JDBC (Java DataBase Connectivity). Também nesse projeto podemos fazer uso e criar uma fonte de dados ODBC (Open DataBase Connectivity), que funciona como um “alias” para o nosso banco de dados. No momento, o projeto Java BD só cria fotne de dados voltados para banco de dados Accesss.

– Projeto Java Mobile: Este é um tipo de projeto voltado para o desenvolvimento de aplicações Java para dispositivos móveis (J2ME). Para usar esse projeto, é necessário ter instalado o o Wireless Tool Kit da Sun(de preferência na versão 2.5.2 (versão atual)) voltado para dispositivos do tipo CLDC (Connected Limited Device Configuration). Para fazer o download deste prgrama, clique aqui. A instalação do Wireless Tool Kit NÃO É OBRIGATÓRIA, caso você não esteja interessado em desenvolver aplicações para dispositivos móveis, não precisa informar o diretório.

Observações sobre o Projeto Java Mobile : Quando você cria um projeto Java Mobile, é criada também uma pasta com o mesmo nome do projeto, quando você mudar o projeto para um outro local, leve essa pasta junto.

O MakeWare Java oferece diversos recursos que facilitam a vida do programador, como um analisar dinânico de erros de código, mostrando em tempo de projeto onde se encontram os erros daquele e , dependendo do erro, ele te da uma sugestão para você corrigir aquele erro.

O MareWare Java ainda oferece alguns utilitários que ajudam o usuário no desenvolvimento de suas aplicações, são eles: Você conta com um utilitário que realiza consultas SQL em um determinado banco de dados Access, caso vá trabalhar com banco de dados em Java. Você também conta com um utiliário que cria, de modo fácil, arquivos JAR (Java Archive). Um arquivo JAR é como se fosse um arquivo ZIP que contém todas as classes e entre outros arquivos que constituem uma aplicação Java.

O MakeWare Java faz tudo isso com apenas 2,88MB.

Pré-requisitos:

Para o MakeWare Java, é preciso que você tenha instalado o JDK, de preferência da versão 5.0 em diante.

Se por acaso você deseja criar aplicações para celulares , é preciso que você tenha instalado o Wireless Tool Kit, versão 2.5.2.

Para fazer seu download, visitem:

http://makeware.orgfree.com/mkjava.php

VRaptor 3 está liberado pra uso

Este ano participei do Falando em Java 2009, evento promovido pela Caelum. Lá  comtemplei a palestra “VRaptor3: Guerrilha Web” (para ver o report completo do evento, favor acessar o post escrito por mim e André Pantalião no Blog do Ensinar).

No evento foi anunciado e apresentadas algumas features da nova versão do VRaptor, a versão 3. Era previsto o lançamento para o mês seguinte (Junho/2009), mas só agora o mesmo foi liberado em versão beta.

Interessado? Acesse o site do projeto VRaptor. Para feedback, report de dúvidas, sugestões ou bugs entcontrados acesse o Fórum do GUJ (frameworks brasileiros).

Abaixo o vídeo da palestra no Falando em Java 2009.

P.S. : Informação retirada do Blog da Caelum.