[SP-pm] rodar coisas periodicas em perl

Tiago Peczenyj tiago.peczenyj at gmail.com
Tue Aug 27 07:30:25 PDT 2013


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 at 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 at gmail.com>
>
>> Na minha opinião, vc pode ter a sua opinião ;)
>>
>>
>> 2013/8/26 Lucas Moraes <lucastiagodemoraes at 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 at 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 at 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 at gmail.com> escreveu:
>>>>>
>>>>> não entendi
>>>>>>
>>>>>>
>>>>>> 2013/8/26 Daniel de Oliveira Mantovani <
>>>>>> daniel.oliveira.mantovani at gmail.com>
>>>>>>
>>>>>>> Para de perder tempo com coisas banais que não vão te agregar nada.
>>>>>>>
>>>>>>> 2013/8/26 Tiago Peczenyj <tiago.peczenyj at gmail.com>:
>>>>>>> > e?
>>>>>>> >
>>>>>>> >
>>>>>>> > 2013/8/26 Daniel de Oliveira Mantovani <
>>>>>>> daniel.oliveira.mantovani at gmail.com>
>>>>>>> >>
>>>>>>> >> Tiago, "Easy things should be easy, and hard things should be
>>>>>>> >> possible" - Larry Wall
>>>>>>> >>
>>>>>>> >> 2013/8/26 Tiago Peczenyj <tiago.peczenyj at gmail.com>:
>>>>>>> >> > Depois vcs me pagam uma cerveja e fica tudo sussa.
>>>>>>> >> >
>>>>>>> >> >
>>>>>>> >> > 2013/8/26 Lindolfo Lorn Rodrigues <lorn at lornlab.org>
>>>>>>> >> >>
>>>>>>> >> >> Antes que eu me esqueça: desculpe-me se insultei.
>>>>>>> >> >>
>>>>>>> >> >>
>>>>>>> >> >> 2013/8/26 Lindolfo Lorn Rodrigues <lorn at lornlab.org>
>>>>>>> >> >>>
>>>>>>> >> >>> Não quis insultar, apenas dar outra visão para o problema :)
>>>>>>> >> >>>
>>>>>>> >> >>>
>>>>>>> >> >>>
>>>>>>> >> >>> 2013/8/26 Tiago Peczenyj <tiago.peczenyj at 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 at 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 at gmail.com>
>>>>>>> >> >>>>>>
>>>>>>> >> >>>>>> Explain creaktive
>>>>>>> >> >>>>>>
>>>>>>> >> >>>>>>
>>>>>>> >> >>>>>> 2013/8/26 Stanislaw Pusep <creaktive at gmail.com>
>>>>>>> >> >>>>>>>
>>>>>>> >> >>>>>>> Overengineering detected!
>>>>>>> >> >>>>>>>
>>>>>>> >> >>>>>>>
>>>>>>> >> >>>>>>> 2013/8/26 Lindolfo Lorn Rodrigues <lorn at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130827/0038a302/attachment-0001.html>


More information about the SaoPaulo-pm mailing list