Scrum Gathering Brazil 2009

May 11, 2009

Nesta terça (12/05) e quarta (13/05) estarei no Scrum Gathering Brazil 2009. O evento promete, com apresentações de profissionais nacionais e internacionais.

O que rolar no evento vou postar aqui ou no meu twitter.


Falando em Agile 2008

October 22, 2008

Nesta quinta e sexta-feira (23 e 24/10/2008) estarei em SP para o Falando em Agile, um grande evento sobre métodos ágeis. Organizado pela Caelum, contará com palestras de Guilherme Chapiewski, Phillip Calçado, Antônio Carlos Silveira e Danilo Bardusco, entre outros.

Certamente promete!


[Google I/O 2008] Vídeos e slides

June 13, 2008

Post rápido. O Google publicou os vídeos e slides do Google I/O 2008 aqui.


RailsConf 2008

June 13, 2008

Finalmente, com muito atraso, vou falar um pouco do que vi na RailsConf 2008.

Eu perdi o primeiro dia da RailsConf pois estava no Google I/O. Então, para mim, o evento começou na sexta-feira com o keynote do Joel Spolsky da Fog Creek Software. Foi muito bom… o cara é muito carismático.

O keynote do David Heinemeier Hansson também foi um ponto alto do evento. Uma das coisas interessantes que ele falou foi sobre o fato de Rails ser opinionated. Ele mencionou que normalmente as pessoas consideram o fato de ter escolhas como sendo algo positivo. Mas na hora de efetivamente decidir por uma opção elas ficam perdidas e gostam da ajuda de alguém para decidir isso. O Rails adota essa filosofia: já vem com as escolhas feitas… mas sempre é possível mudar o default. O engraçado é que após esse keynote, nós passamos exatamente por essa situação no jantar. Fomos num lugar que oferecia mais de 150 rótulos de cerveja. Esse foi exatamente o chamariz para irmos lá. Mas na hora de escolher uma, eu e outros ficamos perdidos. Eu acabei pedindo ajuda da garçonete para escolher para mim!

Outro keynote que não posso deixar de mencionar foi o do Kent Beck. Ele é o criador do eXtreme Programming (XP). Foi com o livro dele, eXtreme Programing eXplained: Embrace Change, 1ª edição publicado em 1999, que eu comecei a me interessar e estudar métodos ágeis. Foi muito bom a oportunidade de assistí-lo ao vivo.

O foco (informal) da conferência foi escalabilidade. Praticamente todas as sessões que eu assisti (mesmo as que não tinham isso como tema) falavam sobre escalabilidade de alguma forma, nem que fosse uma piada ou um comentário. O consenso geral (e eu concordo) é que não é uma linguagem (Ruby) ou framework (Rails) que escala ou não. O que escala é a arquitetura da aplicação. O problema é que as pessoas muitas vezes não conhecem bem as ferramentas. Java EE pode não escalar se for mal utilizado. Diversas sessões falavam de sites com muitos acessos e como funcionava a arquitetura deles. Não há nenhum segredo ou truque. É pura aplicação de conhecimento técnico para identificar e resolver gargalos.

Um dos pontos altos foi a apresentação do MagLev. MagLev é uma máquina virtual para Ruby baseada na VM GemStone/S, que roda Smalltalk. Como eles disseram, Ruby e Smalltalk são muito parecidas. Assim, eles aproveitaram o know-how e tecnologia de décadas de desenvolvimento do GemStone/S para fazer uma VM Ruby. Com apenas alguns meses de desenvolvimento, o MagLev já apresenta desempenho fantástico. Alguns benchmarks são 100x mais rápidos do que MRI. A tecnologia toda envolve as VMs, caches em memória (um pra cada VM) e um repositório de objetos no backend. Assim, é possível fazer o que eles mostraram na apresentação: uma VM é iniciada em um terminal; nessa VM instancia-se um objeto; em outro terminal, inicia-se uma segunda VM; o objeto instanciado na primeira VM está disponível na segunda VM, de forma totalmente transparente. E isso tudo com completo controle transacional! O repositório comporta trilhões de objetos e até 17 petabytes de dados! O Akita fala sobre o MagLev em mais detalhes no seu blog.

Outra apresentação de impacto foi a do Phusion Passenger. O Passenger é um módulo do Apache para Ruby on Rails. Na apresentação eles explicaram que o objetivo era facilidade de uso. Ainda não tive oportunidade de testar, mas parece que eles conseguiram. O legal é que a performance não ficou comprometida. Está compatível com as alternativas existentes. Tá aí um importante passo para aumentar a adoção de Ruby on Rails.

A apresentação do Story Runner do RSpec do David Chelimsky também foi muito boa. Para mim, o melhor de Ruby/Rails é o RSpec! O Story Runner é a parte do RSpec para testes de aceitação. Com ele é possível literalmente criar histórias (user stories) executáveis. Dessa forma é simples assegurar quando determinada história está pronta (done) e atende ao que o usuário deseja.

Vin�cius Teles, Jim Weirich, Guilherme Cirne e Pedro TeixeiraDialogue Concerning the Two Chief Modeling Systems foi diferente do que se está acostumado em termos de apresentação e também foi muito boa. Utilizando o formato de uma peça de teatro, os três apresentadores (atores!) discutiam sobre qual a melhor forma de modelar sistemas: uma centrada em dados e o schema do banco e outra centrada em objetos e suas interações. No final, a conclusão é de que não se deve ser extremista em favor de uma ou outra forma; deve-se buscar encontrar o meio termo ideal. Essa conclusão é diferente do que está escrito no link anterior sobre a apresentação. Eles explicaram que inicialmente a idéia era mostrar que a forma OO é superior, mas ao preparar o material eles mudaram suas conclusões.

Galera do Brasil (incluindo o Carl!)Além das palestras, foi muito bom conhecer algumas pessoas que estavam presentes no evento. Eram muitos brasileiros. Tive a oportunidade de conhecer melhor e trocar várias idéias com o Vinícius Manhães Teles, o Fábio Akita e o Carl Youngblood, um americano que fala português melhor que muito brasileiro!!! Foi uma excelente experiência!


[Google I/O 2008] Dia 2

June 5, 2008

Eu tinha a idéia de fazer um post no final de cada dia dos eventos que participei na semana passada. Mas já ficou claro que isso não foi possível! O post do primeiro dia do Google I/O já veio atrasado… esse agora (e os outros – ainda por vir – da RailsConf) então, nem se fala!!!

Além disso, resolvi mudar um pouco o formato dos posts também. Vou falar só do que eu achei interessante de alguma forma e não mais de tudo o que vi.

Bem, o segundo dia do Google I/O começou com um keynote de Marissa Mayer, vice presidente de Search Products & User Experience. Foi bem legal. Um dos pontos mais interessantes que ela mencionou foi que metade dos lançamentos de produtos do Google analisados em um período de 6 meses surgiu do tão falado 20% developer time. Outro ponto que me chamou a atenção foi a mensagem de copyright que existe no final da página principal. Ela explicou que essa mensagem foi incluída após uma sessão de testes de experiência com usuários. Eles tinham como tarefa pesquisar algo específico utilizando a página do Google. Ela observou que os usuários ficaram alguns minutos olhando para a tela sem fazer nada. Quando perguntados porque eles não faziam nada, disseram que estavam esperando a página carregar! Como a página do Google é bem enxuta, não tem praticamente nada, eles achavam que faltava alguma coisa. A mensagem de copyright foi inserida para sinalizar que tudo já tinha sido carregado e a página podia ser usada; e não por alguma razão legal ou algo parecido!

Even Faster Websites do Steve Souders foi boa. Ele á autor de um plugin para o Firebug chamado YSlow. Este plugin serve para identificar gargalos em páginas web. Ele fornece guidelines para melhorar o tempo de carregamento de páginas, melhorando a experiência do usuário. Mas a palestra não foi sobre o que já existe no YSlow e sim sobre as novas pesquisas que ele está fazendo sobre o assunto e que provavelmente vão aparecer numa versão futura do YSlow. Vale a pena dar uma olhada nos slides da apresentação.

Search Friendly Development foi legalzinho. Foi sobre como melhorar o ranking de um site na busca do Google. Interessante mas nada de novo ou avançado. Maile Ohye, a autora da palestra, é coordenadora do Google Webmaster Central, que trata do assunto.

Trabalhando na equipe de Globo Vídeos, não poderia deixar de assistir uma palestra sobre o YouTube. Em Design your own YouTube player, o Geoff Stearns mostrou como customizar o player e inserí-lo em qualquer site. Mostrou também as APIs javascript e flash para controle do player. A estratégia é facilitar bastante a vida do usuário para que ele possa criar sites muito facilmente com conteúdo do YouTube. E parece que eles estão conseguindo isso. Pena que ocorreram alguns problemas técnicos na apresentação.

Uma observação: os organizadores informaram que as palestras seriam disponibilizadas no site do evento, mas até agora eu não vi nada lá.

Para resumir, o evento foi fraco em termos de conteúdo técnico das palestras. Foi basicamente uma apresentação dos produtos Google. Para quem não conhecia nada, pode ter sido interessante; mas para muitos não teve nada de novo.


[Google I/O 2008] Dia 1

May 30, 2008

Segue um resumo do primeiro dia do Google I/O 2008.

Começou com o keynote do Vic Gundotra sobre Client, Conectivity and the Cloud. Foi basicamente um resumo dos produtos, APIs, etc que o Google está desenvolvendo e qual o futuro deles. O momento que arrancou suspiros da platéia foi o Street View do Google Maps rodando no Android e utilizando o compass. Ao girar o celular, a visão girava junto. Muito show!

Tentei assistir a Painless Python for Proficient Programmers, apresentado por Alex Martelli, mas a sala era tão pequena e estava tão lotada que foi inviável. Tive que desistir. Entrei então na apresentação de Flash API for Google Maps, do Michael Jones. Parecia ser uma apresentação de cada método da API, um a um. Fiquei apenas 2 minutos e saí. Por fim entrei na State of AJAX: The Universe Is Expanding, por Dion Almaer e Ben Galbraith, co-fundadores do Ajaxian.com. Essa parece ter sido bem interessante, mas só cheguei no fim. Mesmo assim, deu pra ver a demonstração do controle do Wii usado para comandar um jogo de dardos rodando em um browser, via AJAX! Se me lembro bem, o controle se comunicava com o computador via bluetooth; uma biblioteca em C lia os comandos e enviava para um applet rodando no browser; este por sua vez controlava o javascript!!!

Para a segunda sessão assisti Rapid Development with Python, Django and Google App Engine, do Guido van Rossum. O App Engine parece interessante. Tem tudo para vingar. Mas eu estava mais interessado no Django. Confesso que fiquei bastante decepcionado. Pelo pouco que foi mostrado, não vi uma separação clara entre controllers e views. Estranho. Rails me parece bem melhor.

Depois vi Can We Get There From Here?, por Alex Russel. Foi bem interessante. Focava em qual o futuro de desenvolvimento web. Por um lado com HTML 5, Gears e bibliotecas AJAX, que são um caminho de evolução natural para o que já existe, e que têm a vantagem de onipresença e de “padrões” abertos. Por outro, Google Web Toolkit, Flex e Silverlight, que têm a visão de que a web é um problema a ser resolvido e que tentam dar mais poder aos desenvolvedores para fazer mais em menos tempo. Foi uma discussão bem legal. Mas no final ficaram várias perguntas sem resposta, o que natural em um exercício sobre visão do futuro.

Underneath the Covers at Google lotadaUnderneath the Covers at Google foi muito bom. O Jeff Dean falou sobre o uso de máquinas baratas no Google. Basicamente, qualquer máquina – mesmo máquinas high-end – vão falhar. Então sai mais barato utilizar máquinas comuns e montar uma estrutura de monitoração, controle e redundância. Explicou sobre o sistema de arquivos distribuído que eles desenvolveram, o GoogleFS. Mostrou como funciona o MapReduce que é o algoritmo para distribuir processamento entre diversas máquinas. Falou também sobre o BigTable que é o sistema de base de dados desenvolvido internamente para aguentar a quantidade de dados que eles processam. O slide mais legal foi o que mostra todos os passos que acontecem quando alguém faz uma busca. Vendo essa palestra dá até pra ficar assustado com o poder que o Google tem nas mãos!

Por último, vi Improving Browsers in New Ways: Gears++, do Chris Prince. Basicamente ele explicou que o Gears não é um plugin para oferecer funcionalidade offline. O objetivo é melhorar a capacidade dos browsers. Muito do que é implementado pelo Gears está se tornando padrão no HTML 5. Foi interessante, mas nada de mais.

After Hours at Google I/OÀ noite teve um evento que foi muito bom. Muita comida, bebida, show da banda Flight of the Conchords. Máquinas de fliperama, Wiis, mesas de sinuca espalhadas por todos os cantos. Foi legal para conversar com algumas pessoas. Conhecemos um brasileiro que está estagiando no Google e que antes estagiava na Microsoft. Muito legal algumas observações dele sobre as diferenças entre Google e Microsoft. Uma que me impressionou é que na Microsoft eles são muito mais liberais na hora de deixar os desenvolvedores terem acesso à arvore de código; no Google eles são mais paranóicos com isso.

Para resumir, achei o conteúdo das palestras bem fraco. Nade de novo, nada de impressionante, nada de mais. A organização das salas também não foi das melhores. Foi muito comum termos salas absolutamente lotadas. Era preciso chegar cedo para garantir um lugar. Com um intervalo de apenas 15 minutos entre as sessões (inclusive para o almoço!) isso foi bem difícil de conseguir.

After Hours at Google I/OO lado positivo fica por conta das pessoas presentes, da comida e do evento à noite!

Obs.: o pessoal da organização avisou que a partir do meio da próxima semana os slides das apresentações vão estar disponíveis no site do evento.


“Google I/O 2008” e “RailsConf 2008”

May 22, 2008

Na próxima semana estarei viajando novamente. Dessa vez vou para os EUA para dois eventos. O primeiro é o Google I/O que acontece nos dias 28 e 29/05 em São Francisco. O segundo é o RailsConf, que ocorre do dia 29/05 ao dia 01/06 em Portland, mas eu só estarei lá a partir do dia 30/05.

Como os dois eventos têm muitas sessões interessantes em paralelo, o difícil vai ser escolher o que assistir! Depois conto o que vi por lá!


Falando em Java 2008

May 20, 2008

No último domingo estive no Falando em Java 2008. Foi um evento excelente, muito bem organizado pelo pessoal da Caelum. Na minha opinião os destaques foram:

  • A apresentação sobre Domain-Driven Design (DDD) do Sérgio Lopes. No dia anterior eu tinha participado de um workshop sobre DDD bastante interessante. Mas essa apresentação foi simplesmente show. No pouco tempo disponível – apenas 40 minutos – o Sérgio conseguiu passar o que é a essência de DDD: foco no domínio para resolver o problema; resgate da Orientação a Objetos; utilização da Linguagem Ubíqua, onde os mesmos termos utilizados na conversa com o cliente apareciam no modelo expresso em código. Fez isso usando um exemplo prático, onde a partir de uma conversa com o cliente implementava o sistema que este queria. Excelente!
  • A palestra do Fabio Kung sobre JRuby on Rails. O Kung deu uma aula sobre Ruby, JRuby e Rails. O mais interessante foi o final, onde ele mostrou que, apesar de JRuby on Rails (assim como Ruby MRI on Rails) ser lento e ter seus problemas para deploy em produção, a versão 3 do GUJ (feita em JRuby on Rails) consegue atender diversas vezes mais requisições por segundo do que a versão atual, em java.
  • A presença do Emmanuel Bernard, líder de diversos projetos do Hibernate. O Emmanuel fez duas apresentações. A primeira foi sobre a versão 2.0 do Java Persistence API (JPA). Basicamente eles estão incluindo nesta nova versão diversas funcionalidades que já existem no Hibernate e em outras ferramentas de ORM. A segunda foi sobre o Hibernate Search, uma ferramenta que utiliza o Apache Lucene e possibilita full text search de modelos de domínio persistentes. Muito interessante!

Workshop de Modelagem Ágil e DDD

May 20, 2008

Nos dias 16 e 17/05 estive em São Paulo para um workshop de Modelagem Ágil e DDD, organizado pela Fratech.

A parte de Modelagem Ágil começou com uma explicação mais teórica: modelos ágeis servem para facilitar a comunicação e não substituir a comunicação face a face; modelos devem ser criados e mantidos somente quando trouxerem valor real para o cliente; modelo não é a mesma coisa que documentação. Depois foram apresentados os conceitos de UML em Cores e Mind Map Modeling (M3). Minha impressão é que esses conceitos vão contra o que a modelagem ágil sugere. Estão mais para documentação do que modelagem. Não acredito que eles favorecem a utilização de abordagens ágeis na modelagem. O único conceito apresentado que, para mim, tem a ver com modelagem ágil é o AgileDraw, que nada mais é do que uma formalização dos rabiscos e rascunhos que fazemos nos quadros brancos, como bem disse o Bruno Carvalho.

Já a apresentação sobre Domain-Driven Design (DDD) foi bem mais interessante. O nível técnico em geral foi bem elevado assim como o nível das discussões. Alguns participantes já tinham um bom conhecimento sobre o assunto e a troca de experiências foi bastante produtiva.

Além disso, tive a oportunidade de conhecer diversas pessoas interessantes. Pena não termos conseguido marcar um chope. Na próxima não pode faltar!


“Modelagem Ágil e DDD” e “Falando em Java 2008”

May 12, 2008

Nesse próximo final de semana estarei em São Paulo para 2 eventos, junto com Vitor Pellegrino e Bruno Carvalho. O primeiro é um workshop de Modelagem Ágil e Domain-Driven Design que vai acontecer na sexta e sábado (dias 16 e 17). O segundo é o Falando em Java 2008 da Caelum, que acontece no domingo (dia 18). Neste evento, vamos estar acompanhados também do Guilherme Chapiewski.

Depois vou postar aqui as minhas impressões desses 2 eventos que prometem!