domingo, 18 de julho de 2010

Momento N.E.R.D

http://www.youtube.com/watch?v=HJRR17kphLk&feature=related

quinta-feira, 15 de julho de 2010

WWW::Mechanize - problemas com 'memory leak'

Estava no trabalho tentando resolver um problema a quase três dias. Tratava-se de um spider que estava consumindo até 8GB de memória do servidor. O engraçado é que ele não fazia isso antes, mas enfim... O fato é que ele passou a se comportar assim.

Normalmente os parsers são culpados por problemas de 'memory leak' ( ou vazamento de memória ). Então concentrei meus esforços para descobrir em que ponto do spider estava gerando o leak, mas a única coisa que consegui foi 'atrasar' o problema. O parser que eu estava usando é o HTML::TreeBuilder::XPath, e eu já tive problema de 'memory leak' com ele. Logo parecia ser um bom 'alvo'.

Finalmente depois de quase três dias, eu resolvi descartar o parser e procurar outros culpados, foi quando me caiu a ficha... O agente poderia ser o culpado. Claro! Agora fazia sentido, mesmo porque lembrando dos monitoramentos das iterações, normalmente mem. subia quando alguma requisição era feita... :P .

O módulo que eu usei para ser o agente no caso foi o maravilhoso WWW::Mechanize. Então comecei a procurar referências no google e logo descobri várias pessoas tendo o mesmo problema. A solução, felizmente, é bem simples. Apenas re-instancie o módulo dentro das iterações e pronto!!! Problema resolvido!

Mas o que me deixou fulo foi o tempo que levei para descobrir. Muito tempo mesmo! Isso me deixou tão chateado, que resolvi que vou encontrar uma maneira de observar o problema mais eficientemente, e quando conseguir, vou escrever um módulo e um artigo.

Cheers!

domingo, 11 de julho de 2010

São Paulo Perl Mongers Workshop

Muito loko! O evento foi no dia 10/07, com a palestra inicial do Thiago Rondom, que introduziu HTTP para o pessoal, depois foi a vez do Tomas Doran. Cara bem excêntrico, mas fez ótimas palestras. Uma sobre boas práticas em projetos de desenvolvimento, ao invés de preocupações menores como 'qual webframework usar'.

Deu boas dicas sobre o que focar nos projetos e como analisar algumas situações corriqueiras e contornar problemas comuns a todos os projetos, e falou um pouco sobre o Catalyst também.

O Eden deu uma palestra sobre Catalyst + Reaction e tentou focar um pouco em como isso pode agilizar o processo de desenvolvimento utilizando Moose + alguns 'kitutes' como MooseX e Reaction, para atualizar widgets e comportamentos somente modificando a 'configuração' da classe responsável por aquele widget.

Tomas voltou com outras duas palestras, uma sobre Monitoramento, mas não me convenceu muito sobre a parte 'tempo real' na web, mesmo assim foi uma boa apresentação.

Por último Tomas falou sobre arquitetura de grandes plataformas em Perl, apresentando o seu dia-dia na empresa em que ele trabalha e como lidou com os vários problemas nos projetos.

No final, pra variar, fomos todos encher a cara no Don Mariano, onde pude conhecer um pouco melhor a figurinha. O pessoal o apelidou de 'WoodPeaker'(pica-pau), por causa do cabelo vermelho, mas ele levou na brincadeira. Cara bem-humorado e beberrão... pena que não curte rock'n roll... ehehe mas ninguém é perfeito!

O evento foi ótimo, muitas pessoas de fora apareceram e essecialmente, tudo deu certo! Só acho que ainda falta focar um pouco nas empresas, mas isso é algo que deve se ajustar com os outros eventos.