[SP-pm] rodar coisas periodicas em perl

Blabos de Blebe blabos at gmail.com
Tue Aug 27 11:30:18 PDT 2013


Se bem que uma flame, não deixa de ser algo periódico que roda na
comunidade Perl

:)


2013/8/27 Marcio Ferreira <marciodesouzaferreira em gmail.com>

> 25
>
>
> Em 27 de agosto de 2013 12:23, Lucas Moraes <lucastiagodemoraes em gmail.com>escreveu:
>
> Responder nessa lista é dar soco em ponta de faca.
>> Andre respeito sua opinião, mas o "foda-se" fica pra você :p
>>
>>
>>
>>
>>
>>
>> Em 27 de agosto de 2013 11:48, <ricardostock em bol.com.br> escreveu:
>>
>>   Galera, eu vejo assim.
>>>
>>> Se trocar 6 por meia dúzia esta certo ? –> errado, é mostrar ao cliente
>>> que esta fazendo algo quando na verdade não esta.
>>>
>>> Mexer no que esta funcionando esta errado ? –> errado, se fosse assim
>>> não passaríamos horas otimizando, buscando novas formas de melhorar nosso
>>> serviço e mostrar ao cliente que realmente estamos trabalhando.
>>>
>>> Quando comecei a aprender Perl, algo que nunca esqueci até hoje na capa
>>> do livro do Larry Wall foi “Existe mais de uma maneira de se fazer”;
>>>
>>> Tiago, concordo com você, se esta tosco não esta gostando mude, otimize,
>>> refaça, eu sigo algumas regras em meus códigos, e duas delas são:
>>>
>>> -> Tem que estar funcionando...    Mas tem que estar funcionando ao meu
>>> agrado e de forma correta.
>>>
>>>
>>> -> Se posso melhorar.... porque não tentar...
>>>
>>> Para mim todas as opniões são importantes.... mas nem todas são
>>> validas....
>>>
>>>
>>>  *From:* Tiago Peczenyj <tiago.peczenyj em gmail.com>
>>> *Sent:* Tuesday, August 27, 2013 11:30 AM
>>> *To:* saopaulo-pm em mail.pm.org
>>> *Subject:* Re: [SP-pm] rodar coisas periodicas em perl
>>>
>>>  calma galera tb não é pra tanto
>>>
>>> eu tava achando essa porrada de if (dois) dentro do meu while algo tosco
>>>
>>>
>>>
>>>
>>> 2013/8/27 Andre Carneiro <andregarciacarneiro em gmail.com>
>>>
>>>>  Se o Tiago estivesse com pressa, ele diria! E duvido que faria isso
>>>> da maneira como vocês fizeram.
>>>>
>>>> Achei chato mesmo e foda-se! Essa é a minha opinião!
>>>>
>>>>
>>>> Proost!
>>>>
>>>>
>>>>
>>>> 2013/8/27 Blabos de Blebe <blabos em gmail.com>
>>>>
>>>>> Na minha opinião, vc pode ter a sua opinião ;)
>>>>>
>>>>>
>>>>> 2013/8/26 Lucas Moraes <lucastiagodemoraes em gmail.com>
>>>>>
>>>>>> Mas ficar procurando soluções que não vai mudar muito o projeto é
>>>>>> trocar 6 por meia duzia. Conhecimento nunca é demais mesmo, isso é fato!
>>>>>> Mas tem quantas coisas novas para aprender em milhões de outros assuntos, o
>>>>>> que adianta você aprender várias formas de fazer se o final vai ser quase o
>>>>>> mesmo ou o mesmo. Tempo custa dinheiro, não é porque você tem tempo para
>>>>>> achar uma solução melhor que você é obrigado a fazer, aconselho a pessoa
>>>>>> descansar a mente ou procurar algo novo para fazer. Respeito sua opinião,
>>>>>> mas vou defendo a minha opinião. Eu postei minha opinião porque o código do
>>>>>> Tiago não esta feio, o módulo AE apesar de eu nunca ter usado, olhei no
>>>>>> metacpan esta com 49++ até o momento. Lembrando que é só uma opinião minha,
>>>>>> não estou colocando o revolver na cabeça de ninguém. Falou.
>>>>>>
>>>>>>
>>>>>> Em 26 de agosto de 2013 16:41, Andre Carneiro <
>>>>>> andregarciacarneiro em gmail.com> escreveu:
>>>>>>
>>>>>>  Que feio!
>>>>>>>
>>>>>>> Se houver prazo para pesquisa de novas soluções, eu não vejo porque
>>>>>>> usar! Além do mais eu aprendi que conhecimento nunca é demais. Então eu
>>>>>>> acho que essa nova visão agrega sim, e também qualquer visão diferente
>>>>>>> sobre a solução do problema. Obrigado Lorn!
>>>>>>>
>>>>>>> Aprendi também, que desenvolvedor tem que resolver o problema da
>>>>>>> melhor maneira possível! Que desempenho nunca é demais, e olhar para coisas
>>>>>>> novas deveria ser um incentivo para fazer as coisas corretamente, e não uma
>>>>>>> desculpa esfarrapada para resolver as coisas de qualquer maneira, ou
>>>>>>> desprezar a opinião dos outros de maneira tão grosseira.
>>>>>>>
>>>>>>> Proost!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2013/8/26 Lucas Moraes <lucastiagodemoraes em gmail.com>
>>>>>>>
>>>>>>>> Tiago se seu código esta funcionando deixa rodando. Melhor código é
>>>>>>>> aquele que atende as necessidades do cliente. Pare de procurar problemas
>>>>>>>> onde não existe :)
>>>>>>>>
>>>>>>>>
>>>>>>>> Em 26 de agosto de 2013 11:33, Tiago Peczenyj <
>>>>>>>> tiago.peczenyj em gmail.com> escreveu:
>>>>>>>>
>>>>>>>>  não entendi
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2013/8/26 Daniel de Oliveira Mantovani <
>>>>>>>>> daniel.oliveira.mantovani em gmail.com>
>>>>>>>>>
>>>>>>>>>> Para de perder tempo com coisas banais que não vão te agregar
>>>>>>>>>> nada.
>>>>>>>>>>
>>>>>>>>>> 2013/8/26 Tiago Peczenyj <tiago.peczenyj em gmail.com>:
>>>>>>>>>>  > e?
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> > 2013/8/26 Daniel de Oliveira Mantovani <
>>>>>>>>>> daniel.oliveira.mantovani em gmail.com>
>>>>>>>>>> >>
>>>>>>>>>> >> Tiago, "Easy things should be easy, and hard things should be
>>>>>>>>>> >> possible" - Larry Wall
>>>>>>>>>> >>
>>>>>>>>>> >> 2013/8/26 Tiago Peczenyj <tiago.peczenyj em gmail.com>:
>>>>>>>>>> >> > Depois vcs me pagam uma cerveja e fica tudo sussa.
>>>>>>>>>> >> >
>>>>>>>>>> >> >
>>>>>>>>>> >> > 2013/8/26 Lindolfo Lorn Rodrigues <lorn em lornlab.org>
>>>>>>>>>> >> >>
>>>>>>>>>> >> >> Antes que eu me esqueça: desculpe-me se insultei.
>>>>>>>>>> >> >>
>>>>>>>>>> >> >>
>>>>>>>>>> >> >> 2013/8/26 Lindolfo Lorn Rodrigues <lorn em lornlab.org>
>>>>>>>>>> >> >>>
>>>>>>>>>> >> >>> Não quis insultar, apenas dar outra visão para o problema
>>>>>>>>>> :)
>>>>>>>>>> >> >>>
>>>>>>>>>> >> >>>
>>>>>>>>>> >> >>>
>>>>>>>>>> >> >>> 2013/8/26 Tiago Peczenyj <tiago.peczenyj em gmail.com>
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>> foi mal, agora eu tenho algo como
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>> while(1){
>>>>>>>>>> >> >>>>    # calcula
>>>>>>>>>> >> >>>>    # if passou um minuto envia pro zabbix
>>>>>>>>>> >> >>>>    # if passou um dia reinicia o contador
>>>>>>>>>> >> >>>>    sleep(1);
>>>>>>>>>> >> >>>> }
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>> qualquer sugestão é bem vinda. de repente o zabbix pode
>>>>>>>>>> continuar com
>>>>>>>>>> >> >>>> a
>>>>>>>>>> >> >>>> monitoria e posso usar o StatsD para essas coisas novas,
>>>>>>>>>> ainda mais
>>>>>>>>>> >> >>>> se for
>>>>>>>>>> >> >>>> menos burocratico.
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>> 2013/8/26 Stanislaw Pusep <creaktive em gmail.com>
>>>>>>>>>> >> >>>>>
>>>>>>>>>> >> >>>>> Seja qual for o seu objetivo, o código que você postou
>>>>>>>>>> já está feito
>>>>>>>>>> >> >>>>> e
>>>>>>>>>> >> >>>>> funcionando bem, aparenemente.
>>>>>>>>>> >> >>>>> "Eu mudaria boa parte do que você fez" e "Eu usaria o
>>>>>>>>>> Statsd para
>>>>>>>>>> >> >>>>> acumular o valor e exportaria via graphite", seguido de
>>>>>>>>>> "Eu não
>>>>>>>>>> >> >>>>> entendi bem
>>>>>>>>>> >> >>>>> o motivo de ficar rodando a cada segundo então vou
>>>>>>>>>> chutar" é um
>>>>>>>>>> >> >>>>> insulto a
>>>>>>>>>> >> >>>>> sua inteligência, IMHO
>>>>>>>>>> >> >>>>>
>>>>>>>>>> >> >>>>>
>>>>>>>>>> >> >>>>> 2013/8/26 Tiago Peczenyj <tiago.peczenyj em gmail.com>
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>> Explain creaktive
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>> 2013/8/26 Stanislaw Pusep <creaktive em gmail.com>
>>>>>>>>>> >> >>>>>>>
>>>>>>>>>> >> >>>>>>> Overengineering detected!
>>>>>>>>>> >> >>>>>>>
>>>>>>>>>> >> >>>>>>>
>>>>>>>>>> >> >>>>>>> 2013/8/26 Lindolfo Lorn Rodrigues <lorn em lornlab.org>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> Eu mudaria boa parte do que você fez.
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> Não sei qual problema que você está tentando resolver
>>>>>>>>>> com isso,
>>>>>>>>>> >> >>>>>>>> por
>>>>>>>>>> >> >>>>>>>> isso tudo
>>>>>>>>>> >> >>>>>>>> isso aqui será uma mega hipotese, se puder dizer qual
>>>>>>>>>> o problema
>>>>>>>>>> >> >>>>>>>> está tentando
>>>>>>>>>> >> >>>>>>>> resolver, seria legal :)
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> Eu usaria o Statsd para acumular o valor e exportaria
>>>>>>>>>> via
>>>>>>>>>> >> >>>>>>>> graphite.
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> Eu não entendi bem o motivo de ficar rodando a cada
>>>>>>>>>> segundo então
>>>>>>>>>> >> >>>>>>>> vou chutar:
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> Você que capturar ações de usuário/sistema em algum
>>>>>>>>>> lugar?
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> Caso sim, você poderia colocar esse codigo logo
>>>>>>>>>> depois a ação do
>>>>>>>>>> >> >>>>>>>> usuário/sistema:
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> my $statsd = Etsy::StatsD->new
>>>>>>>>>> >> >>>>>>>> my $bucket = "pacman.hit_number"
>>>>>>>>>> >> >>>>>>>> $statsd->increment($bucket);
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> O stasd usa UDP, não vai alterar em nada perceptivo na
>>>>>>>>>> >> >>>>>>>> perfomance,
>>>>>>>>>> >> >>>>>>>> do seu sistema.
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> Mandando o contador acima para o statsd ele irá
>>>>>>>>>> acumular e mandar
>>>>>>>>>> >> >>>>>>>> para o graphite,
>>>>>>>>>> >> >>>>>>>> no graphite com o dado cru você pode criar várias
>>>>>>>>>> operações de
>>>>>>>>>> >> >>>>>>>> estatistica
>>>>>>>>>> >> >>>>>>>> ( mediana, media, percentile..etc ) e gerar graficos.
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> http://graphite.readthedocs.org/en/0.9.10/functions.html#module-graphite.render.functions
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> O Statsd suporta vários backend o mais
>>>>>>>>>> conhecido/usado deles é o
>>>>>>>>>> >> >>>>>>>> Graphite:
>>>>>>>>>> >> >>>>>>>> http://graphite.wikidot.com/screen-shots
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> A Etsy tem um post explicando melhor a "metodologia"
>>>>>>>>>> deles de
>>>>>>>>>> >> >>>>>>>> medir
>>>>>>>>>> >> >>>>>>>> tudo:
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> http://codeascraft.com/2011/02/15/measure-anything-measure-everything/
>>>>>>>>>> >> >>>>>>>> https://github.com/etsy/statsd
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> PS: O Statsd teve origem no Flickr, e a primeira
>>>>>>>>>> versão era em
>>>>>>>>>> >> >>>>>>>> Perl
>>>>>>>>>> >> >>>>>>>> recentemente eles
>>>>>>>>>> >> >>>>>>>> liberaram o código fonte:
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> https://github.com/iamcal/Flickr-StatsD
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> 2013/8/26 Stanislaw Pusep <creaktive em gmail.com>
>>>>>>>>>> >> >>>>>>>>>
>>>>>>>>>> >> >>>>>>>>> Use AE::time() no lugar do localtime
>>>>>>>>>> >> >>>>>>>>>
>>>>>>>>>> >> >>>>>>>>> понедельник, 26 августа 2013 г. пользователь Tiago
>>>>>>>>>> Peczenyj
>>>>>>>>>> >> >>>>>>>>> писал:
>>>>>>>>>> >> >>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> Ola
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> Eu tenho o seguinte caso
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> preciso rodar um certo método a cada segundo, que
>>>>>>>>>> por sua vez
>>>>>>>>>> >> >>>>>>>>>> acumula um valor em algum atributo interno do
>>>>>>>>>> objeto ( total +=
>>>>>>>>>> >> >>>>>>>>>> por exemplo
>>>>>>>>>> >> >>>>>>>>>> ).
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> a cada minuto quero enviar o valor de total para
>>>>>>>>>> algum lugar
>>>>>>>>>> >> >>>>>>>>>> (ex
>>>>>>>>>> >> >>>>>>>>>> Zabbix).
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> a meia noite eu quero limpar o total para 0.
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> Eu cheguei a algo assim:
>>>>>>>>>> >> >>>>>>>>>> use AnyEvent;
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> sub loop {
>>>>>>>>>> >> >>>>>>>>>> my $obj   = Foo->new;
>>>>>>>>>> >> >>>>>>>>>> my $cv    = AE::cv;
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> my $seconds_in_a_day = 60 * 60 * 24;
>>>>>>>>>> >> >>>>>>>>>> my $seconds_to_midnight =  $seconds_in_a_day -
>>>>>>>>>> >> >>>>>>>>>> seconds_from_midnight();
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> my $loop = AE::timer  0, 1,  sub { $obj->run   };
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> my $send = AE::timer  60, 60,  sub { $obj->send  };
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> my $clear= AE::timer  $seconds_to_midnight,
>>>>>>>>>> $seconds_in_a_day,
>>>>>>>>>> >> >>>>>>>>>> sub { $obj->clear };
>>>>>>>>>> >> >>>>>>>>>> $cv->recv;
>>>>>>>>>> >> >>>>>>>>>> }
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> a sub seconds_from_midnight usa localtime pra fazer
>>>>>>>>>> uma conta
>>>>>>>>>> >> >>>>>>>>>> marota.
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> A assinatura do AE::timer eh
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> AE::timer $delay, $interval, $callback;
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> No primeiro timer eu tenho o meu main loop,
>>>>>>>>>> chamando o metodo
>>>>>>>>>> >> >>>>>>>>>> run.
>>>>>>>>>> >> >>>>>>>>>> No segundo eu tenho o metodo que envia os dados a
>>>>>>>>>> cada 60
>>>>>>>>>> >> >>>>>>>>>> segundos
>>>>>>>>>> >> >>>>>>>>>> No terceiro eu calculo quantos segundos faltam para
>>>>>>>>>> a meia
>>>>>>>>>> >> >>>>>>>>>> noite e
>>>>>>>>>> >> >>>>>>>>>> mando repetir a cada 24 horas.
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> hoje eu tenho um loop com um sleep 1 e varios ifs.
>>>>>>>>>> quero que
>>>>>>>>>> >> >>>>>>>>>> fique
>>>>>>>>>> >> >>>>>>>>>> mais legivel e nao utilizo anyEvent em nenhum outro
>>>>>>>>>> lugar. Nao
>>>>>>>>>> >> >>>>>>>>>> precisa ser
>>>>>>>>>> >> >>>>>>>>>> EXATO, portanto um atraso de alguns segundos pode
>>>>>>>>>> acontecer.
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> Parece bom, mas eu tenho algumas duvidas.
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> 1) esta claro o suficiente?
>>>>>>>>>> >> >>>>>>>>>> 2) o overhead do AnyEvent parece ser o mesmo do
>>>>>>>>>> sleep (1)
>>>>>>>>>> >> >>>>>>>>>> durante
>>>>>>>>>> >> >>>>>>>>>> o runtime (ignorando quanto tempo demora pra
>>>>>>>>>> iniciar ou não),
>>>>>>>>>> >> >>>>>>>>>> certo?
>>>>>>>>>> >> >>>>>>>>>> 3) para rodar algo "a meia noite" me parece um
>>>>>>>>>> tanto confuso
>>>>>>>>>> >> >>>>>>>>>> ainda. não encontrei nenhum helper q me ajude (o
>>>>>>>>>> AnyEvent::Cron
>>>>>>>>>> >> >>>>>>>>>> da pau pra
>>>>>>>>>> >> >>>>>>>>>> mim). sera q nao eh melhor "re-setar" o time
>>>>>>>>>> watcher para a
>>>>>>>>>> >> >>>>>>>>>> proxima meia
>>>>>>>>>> >> >>>>>>>>>> noite?
>>>>>>>>>> >> >>>>>>>>>> 4) alias tem algo melhor do que ficar brincando com
>>>>>>>>>> localtime()
>>>>>>>>>> >> >>>>>>>>>> pra pegar quantos segundos faltam pra proxima meia
>>>>>>>>>> noite? algo
>>>>>>>>>> >> >>>>>>>>>> usando
>>>>>>>>>> >> >>>>>>>>>> DateTime
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> por fim
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> 5) tem algum problema ao usar AE::timer q eu não
>>>>>>>>>> esteja vendo?
>>>>>>>>>> >> >>>>>>>>>> Fora os problemas interentes como se eu usar IO
>>>>>>>>>> Bloqueante eu
>>>>>>>>>> >> >>>>>>>>>> não vou ter os
>>>>>>>>>> >> >>>>>>>>>> timers "exatos".
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> Obrigado
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> Tiago
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> --
>>>>>>>>>> >> >>>>>>>>>> Tiago B. Peczenyj
>>>>>>>>>> >> >>>>>>>>>> Linux User #405772
>>>>>>>>>> >> >>>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>> http://about.me/peczenyj
>>>>>>>>>> >> >>>>>>>>>
>>>>>>>>>> >> >>>>>>>>>
>>>>>>>>>> >> >>>>>>>>> =begin disclaimer
>>>>>>>>>> >> >>>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >> >>>>>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >> >>>>>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> >>>>>>>>> =end disclaimer
>>>>>>>>>> >> >>>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>> =begin disclaimer
>>>>>>>>>> >> >>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >> >>>>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >> >>>>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> >>>>>>>> =end disclaimer
>>>>>>>>>> >> >>>>>>>>
>>>>>>>>>> >> >>>>>>>
>>>>>>>>>> >> >>>>>>>
>>>>>>>>>> >> >>>>>>> =begin disclaimer
>>>>>>>>>> >> >>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >> >>>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >> >>>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> >>>>>>> =end disclaimer
>>>>>>>>>> >> >>>>>>>
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>> --
>>>>>>>>>> >> >>>>>> Tiago B. Peczenyj
>>>>>>>>>> >> >>>>>> Linux User #405772
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>> http://about.me/peczenyj
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>> =begin disclaimer
>>>>>>>>>> >> >>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >> >>>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >> >>>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> >>>>>> =end disclaimer
>>>>>>>>>> >> >>>>>>
>>>>>>>>>> >> >>>>>
>>>>>>>>>> >> >>>>>
>>>>>>>>>> >> >>>>> =begin disclaimer
>>>>>>>>>> >> >>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >> >>>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >> >>>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> >>>>> =end disclaimer
>>>>>>>>>> >> >>>>>
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>> --
>>>>>>>>>> >> >>>> Tiago B. Peczenyj
>>>>>>>>>> >> >>>> Linux User #405772
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>> http://about.me/peczenyj
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>> =begin disclaimer
>>>>>>>>>> >> >>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >> >>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >> >>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> >>>> =end disclaimer
>>>>>>>>>> >> >>>>
>>>>>>>>>> >> >>>
>>>>>>>>>> >> >>
>>>>>>>>>> >> >>
>>>>>>>>>> >> >> =begin disclaimer
>>>>>>>>>> >> >>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >> >>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >> >>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> >> =end disclaimer
>>>>>>>>>> >> >>
>>>>>>>>>> >> >
>>>>>>>>>> >> >
>>>>>>>>>> >> >
>>>>>>>>>> >> > --
>>>>>>>>>> >> > Tiago B. Peczenyj
>>>>>>>>>> >> > Linux User #405772
>>>>>>>>>> >> >
>>>>>>>>>> >> > http://about.me/peczenyj
>>>>>>>>>> >> >
>>>>>>>>>> >> > =begin disclaimer
>>>>>>>>>> >> >    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >> >  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> > =end disclaimer
>>>>>>>>>> >> >
>>>>>>>>>> >>
>>>>>>>>>> >>
>>>>>>>>>> >>
>>>>>>>>>> >> --
>>>>>>>>>> >>
>>>>>>>>>> >> -dom
>>>>>>>>>> >>
>>>>>>>>>> >> --
>>>>>>>>>> >>
>>>>>>>>>> >> Daniel de Oliveira Mantovani
>>>>>>>>>> >> Business Analytic Specialist
>>>>>>>>>> >> Perl Evangelist /Astrophysics hobbyist.
>>>>>>>>>> >> +55 11 9 8538-9897
>>>>>>>>>> >> XOXO
>>>>>>>>>> >> =begin disclaimer
>>>>>>>>>> >>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> >> =end disclaimer
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> > --
>>>>>>>>>> > Tiago B. Peczenyj
>>>>>>>>>> > Linux User #405772
>>>>>>>>>> >
>>>>>>>>>> > http://about.me/peczenyj
>>>>>>>>>> >
>>>>>>>>>> > =begin disclaimer
>>>>>>>>>> >    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> >  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> >  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> > =end disclaimer
>>>>>>>>>> >
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> -dom
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> Daniel de Oliveira Mantovani
>>>>>>>>>> Business Analytic Specialist
>>>>>>>>>> Perl Evangelist /Astrophysics hobbyist.
>>>>>>>>>> +55 11 9 8538-9897
>>>>>>>>>> XOXO
>>>>>>>>>> =begin disclaimer
>>>>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>>> =end disclaimer
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Tiago B. Peczenyj
>>>>>>>>> Linux User #405772
>>>>>>>>>
>>>>>>>>> http://about.me/peczenyj
>>>>>>>>>
>>>>>>>>> =begin disclaimer
>>>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>>> =end disclaimer
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> =begin disclaimer
>>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>>> =end disclaimer
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> André Garcia Carneiro
>>>>>>> Software Engineer
>>>>>>> (11)982907780
>>>>>>>
>>>>>>> =begin disclaimer
>>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>>> =end disclaimer
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> =begin disclaimer
>>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>>> =end disclaimer
>>>>>>
>>>>>>
>>>>>
>>>>> =begin disclaimer
>>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>>> =end disclaimer
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> André Garcia Carneiro
>>>> Software Engineer
>>>> (11)982907780
>>>>
>>>> =begin disclaimer
>>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>>> =end disclaimer
>>>>
>>>>
>>>
>>>
>>> --
>>> Tiago B. Peczenyj
>>> Linux User #405772
>>>
>>> http://about.me/peczenyj
>>>
>>> ------------------------------
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>>
>>> =begin disclaimer
>>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>>
>>
>> =begin disclaimer
>>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130827/a963cf50/attachment-0001.html>


More information about the SaoPaulo-pm mailing list