Informações sobre o encontro
03/05/2008 (Sábado): Sprint BeautifulSoup, Inscrições limitadas, até 5!
- Endereço: AV. Pref. Omar Sabbag, 947. Jardim Botânico
Horário: das 14:00h até 19:00h ou até aguentarmos.
Relatório do encontro
Inttrodução
A atividade de sprint é um evento de programação com foco em um problema que dura de 2 a 3 dias e utiliza técnicas de desenvolvimento extremo. Planejamos o nosso sprint inicialmente para nor reunirmos e iniciar um hábito de nos encontrarmos de vez em quando e com frequencia, além de experimentar essa modalidade de apoio a software livre. A idéia proposta é de melhorar a performance da biblioteca BeautifulSoup. A biblioteca BeautifulSoup é usada para tratar arquivos xml e htmlPag. do Projeto. Esta página pretende documentar a experiência, sugerir maneiras de organizar um sprint e sobre as ferramentas e sobre a biblioteca BeautifulSoup. Consiste dessa introdução, uma breve ata, avaliação da experiência, sugestões e ao final a conclusão.
Ata
Reunimos à partir das 14:00 h de sábado, dia 03 de maio, Éverton Ribeiro, Luiz Carlos Geron, Ramiro Batista da Luz e Wilian Alves Souza no escritório do Luiz. Fizemos uma pequena apresentação sobre a biblioteca e começamos a pesuisa. O Luiz estudou o código da biblioteca, enquanto os outros ficaram pesquisando implementações de XPath em python, e possiveis substitutos à biblioteca sgmllib, usada pela biblioteca BeautifulSoup. Durante o tempo que estivemos pesquisando fomos olhando juntos e discutindo algumas coisas relacionadas às possibilidades de implantação. Trocamos experiencias sobre ferramentas e encontramos um script de benchmarch para algumas bibliotecas de parser html/xml num blogsgml benchmark, lendo o blog com mais calma achei outro link interessante de outro bloghtml parser performance.
Avaliação
Avaliamos o encontro como bom. Não podemos dizer que foi ótimo e produtivo, mas também não foi ruim. Trocamos experiências, estudamos juntos, tomamos refrigerante, contamos piadas, enfim foi divertido e aprendemos muito ao mesmo tempo. Além de ter a oportunidade de participar de um pequeno sprint pudemos observar como funciona e como achamos que deveria funcionar. Todas essas coisas vamos abordar nas sugestões.
Sugestões
Algumas das ferramentas usadas e que gostaríamos de sugerir pois são bacanas.
- htop Um top melhorado, muito bacana com muitas opções diferenciadas em relação ao top comum.
KCacheGrind Muito legal, apresenta em modo gráfico informações relacionadas ao profile de execução de programaPag. do projeto.
- cProfile Opção para geração de profile, para rodar é só usar:
- python -m cProfile programa.py
lsprofcalltree.py Outra opção para profile, útil para gerar saída para o KCacheGrindScript.
- cElementTree Opção de biblioteca para parser HTML em substituição à sgmllib, pelas pesquisas tem possibilidade de ser mais rápida.
- 4Suite Outra opção de biblioteca para substituir a sgmllib.
- ipython Interpretador python com recursos adicionais como complemento por TAB e diversas macros úteis.
Aprendemos com nossa experiência que a preparação é muito importante. Estudar a biblioteca, olhar o código, documentação para desenvolvedores, buscar opções e idéias de implementação, combinar com os outros participantes os caminhos que serão tomados, para aproveitar bem o tempo em desenvolvimento. Além disso é importante lembrar que um sprint tem duração de 2 ou três dias, nós nos reunimos por cerca de 5 horas.
Uma outra idéia é que o sprint tem um coordenador, alguém que é responsável por buscar informações sobre a biblioteca, pesquisar algumas opções e coordenar a disseminação das informações e também as atividades do sprint. Um secretário para ir reunindo informações e documentando o encontro, além de escrever o relatório do encontro é importante também.
Conclusão
Concluímos que o encontro foi bom e ainda pode gerar resultados, tivemos um nivelamento inicial do conhecimento dos participantes sobre a biblioteca, aprendemos uns com os outros e fortalecemos nossa amizade. Esse tipo de experiencia é muito gratificante pois a troca de conhecimento e a convivencia traz um sentimento de que saímos do encontro diferentes do que quando chegamos, para melhor.