<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-FAMILY: 'Verdana'; COLOR: #000000; FONT-SIZE: 10pt">
<DIV>Galera, eu vejo assim.</DIV>
<DIV> </DIV>
<DIV>Se trocar 6 por meia dúzia esta certo ? –> errado, é mostrar ao cliente
que esta fazendo algo quando na verdade não esta.</DIV>
<DIV> </DIV>
<DIV>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.</DIV>
<DIV> </DIV>
<DIV>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”;</DIV>
<DIV> </DIV>
<DIV>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:</DIV>
<DIV> </DIV>
<DIV>-> Tem que estar funcionando... Mas tem que estar
funcionando ao meu agrado e de forma correta.</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>-> Se posso melhorar.... porque não tentar...</DIV>
<DIV> </DIV>
<DIV>Para mim todas as opniões são importantes.... mas nem todas são
validas....</DIV>
<DIV> </DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
<DIV style="FONT: 10pt tahoma">
<DIV> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=tiago.peczenyj@gmail.com
href="mailto:tiago.peczenyj@gmail.com">Tiago Peczenyj</A> </DIV>
<DIV><B>Sent:</B> Tuesday, August 27, 2013 11:30 AM</DIV>
<DIV><B>To:</B> <A title=saopaulo-pm@mail.pm.org
href="mailto:saopaulo-pm@mail.pm.org">saopaulo-pm@mail.pm.org</A> </DIV>
<DIV><B>Subject:</B> Re: [SP-pm] rodar coisas periodicas em
perl</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV
style="FONT-STYLE: normal; DISPLAY: inline; FONT-FAMILY: 'Calibri'; COLOR: #000000; FONT-SIZE: small; FONT-WEIGHT: normal; TEXT-DECORATION: none">
<DIV dir=ltr>calma galera tb não é pra tanto
<DIV> </DIV>
<DIV>eu tava achando essa porrada de if (dois) dentro do meu while algo
tosco</DIV>
<DIV> </DIV>
<DIV> </DIV></DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>2013/8/27 Andre Carneiro <SPAN dir=ltr><<A
href="mailto:andregarciacarneiro@gmail.com"
target=_blank>andregarciacarneiro@gmail.com</A>></SPAN><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>
<DIV dir=ltr>
<DIV>Se o Tiago estivesse com pressa, ele diria! E duvido que faria isso da
maneira como vocês fizeram. </DIV>
<DIV> </DIV>
<DIV>Achei chato mesmo e foda-se! Essa é a minha opinião!</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Proost!</DIV>
<DIV> </DIV></DIV>
<DIV class=HOEnZb>
<DIV class=h5>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>2013/8/27 Blabos de Blebe <SPAN dir=ltr><<A
href="mailto:blabos@gmail.com"
target=_blank>blabos@gmail.com</A>></SPAN><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>
<DIV dir=ltr>Na minha opinião, vc pode ter a sua opinião ;)</DIV>
<DIV>
<DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>2013/8/26 Lucas Moraes <SPAN dir=ltr><<A
href="mailto:lucastiagodemoraes@gmail.com"
target=_blank>lucastiagodemoraes@gmail.com</A>></SPAN><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>
<DIV dir=ltr>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.</DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>Em 26 de agosto de 2013 16:41, Andre Carneiro <SPAN
dir=ltr><<A href="mailto:andregarciacarneiro@gmail.com"
target=_blank>andregarciacarneiro@gmail.com</A>></SPAN> escreveu:
<DIV>
<DIV><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>
<DIV dir=ltr>
<DIV>Que feio!</DIV>
<DIV> </DIV>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!
<DIV> </DIV>
<DIV>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.
<DIV> </DIV>
<DIV>Proost!</DIV></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV></DIV>
<DIV class=gmail_extra>
<DIV>
<DIV><BR><BR>
<DIV class=gmail_quote>2013/8/26 Lucas Moraes <SPAN dir=ltr><<A
href="mailto:lucastiagodemoraes@gmail.com"
target=_blank>lucastiagodemoraes@gmail.com</A>></SPAN><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>
<DIV dir=ltr>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 :)</DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>Em 26 de agosto de 2013 11:33, Tiago Peczenyj
<SPAN dir=ltr><<A href="mailto:tiago.peczenyj@gmail.com"
target=_blank>tiago.peczenyj@gmail.com</A>></SPAN> escreveu:
<DIV>
<DIV><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>
<DIV dir=ltr>não entendi</DIV>
<DIV>
<DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>2013/8/26 Daniel de Oliveira Mantovani <SPAN
dir=ltr><<A href="mailto:daniel.oliveira.mantovani@gmail.com"
target=_blank>daniel.oliveira.mantovani@gmail.com</A>></SPAN><BR>
<BLOCKQUOTE
style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"
class=gmail_quote>Para de perder tempo com coisas banais que não
vão te agregar nada.<BR><BR>2013/8/26 Tiago Peczenyj <<A
href="mailto:tiago.peczenyj@gmail.com"
target=_blank>tiago.peczenyj@gmail.com</A>>:<BR>
<DIV>
<DIV>> e?<BR>><BR>><BR>> 2013/8/26 Daniel de Oliveira
Mantovani <<A href="mailto:daniel.oliveira.mantovani@gmail.com"
target=_blank>daniel.oliveira.mantovani@gmail.com</A>><BR>>><BR>>>
Tiago, "Easy things should be easy, and hard things should
be<BR>>> possible" - Larry Wall<BR>>><BR>>>
2013/8/26 Tiago Peczenyj <<A
href="mailto:tiago.peczenyj@gmail.com"
target=_blank>tiago.peczenyj@gmail.com</A>>:<BR>>> >
Depois vcs me pagam uma cerveja e fica tudo sussa.<BR>>>
><BR>>> ><BR>>> > 2013/8/26 Lindolfo Lorn
Rodrigues <<A href="mailto:lorn@lornlab.org"
target=_blank>lorn@lornlab.org</A>><BR>>>
>><BR>>> >> Antes que eu me esqueça: desculpe-me
se insultei.<BR>>> >><BR>>> >><BR>>>
>> 2013/8/26 Lindolfo Lorn Rodrigues <<A
href="mailto:lorn@lornlab.org"
target=_blank>lorn@lornlab.org</A>><BR>>>
>>><BR>>> >>> Não quis insultar, apenas
dar outra visão para o problema :)<BR>>>
>>><BR>>> >>><BR>>>
>>><BR>>> >>> 2013/8/26 Tiago Peczenyj
<<A href="mailto:tiago.peczenyj@gmail.com"
target=_blank>tiago.peczenyj@gmail.com</A>><BR>>>
>>>><BR>>> >>>> foi mal, agora eu
tenho algo como<BR>>> >>>><BR>>>
>>>> while(1){<BR>>>
>>>> # calcula<BR>>>
>>>> # if passou um minuto envia pro
zabbix<BR>>> >>>> # if passou
um dia reinicia o contador<BR>>>
>>>> sleep(1);<BR>>>
>>>> }<BR>>> >>>><BR>>>
>>>> qualquer sugestão é bem vinda. de repente o
zabbix pode continuar com<BR>>> >>>>
a<BR>>> >>>> monitoria e posso usar o StatsD
para essas coisas novas, ainda mais<BR>>> >>>>
se for<BR>>> >>>> menos burocratico.<BR>>>
>>>><BR>>> >>>><BR>>>
>>>> 2013/8/26 Stanislaw Pusep <<A
href="mailto:creaktive@gmail.com"
target=_blank>creaktive@gmail.com</A>><BR>>>
>>>>><BR>>> >>>>> Seja qual
for o seu objetivo, o código que você postou já está
feito<BR>>> >>>>> e<BR>>>
>>>>> funcionando bem, aparenemente.<BR>>>
>>>>> "Eu mudaria boa parte do que você fez" e "Eu
usaria o Statsd para<BR>>> >>>>> acumular o
valor e exportaria via graphite", seguido de "Eu não<BR>>>
>>>>> entendi bem<BR>>> >>>>>
o motivo de ficar rodando a cada segundo então vou chutar" é
um<BR>>> >>>>> insulto a<BR>>>
>>>>> sua inteligência, IMHO<BR>>>
>>>>><BR>>> >>>>><BR>>>
>>>>> 2013/8/26 Tiago Peczenyj <<A
href="mailto:tiago.peczenyj@gmail.com"
target=_blank>tiago.peczenyj@gmail.com</A>><BR>>>
>>>>>><BR>>> >>>>>>
Explain creaktive<BR>>> >>>>>><BR>>>
>>>>>><BR>>> >>>>>>
2013/8/26 Stanislaw Pusep <<A href="mailto:creaktive@gmail.com"
target=_blank>creaktive@gmail.com</A>><BR>>>
>>>>>>><BR>>>
>>>>>>> Overengineering detected!<BR>>>
>>>>>>><BR>>>
>>>>>>><BR>>>
>>>>>>> 2013/8/26 Lindolfo Lorn Rodrigues
<<A href="mailto:lorn@lornlab.org"
target=_blank>lorn@lornlab.org</A>><BR>>>
>>>>>>>><BR>>>
>>>>>>>> Eu mudaria boa parte do que você
fez.<BR>>> >>>>>>>><BR>>>
>>>>>>>> Não sei qual problema que você
está tentando resolver com isso,<BR>>>
>>>>>>>> por<BR>>>
>>>>>>>> isso tudo<BR>>>
>>>>>>>> isso aqui será uma mega hipotese,
se puder dizer qual o problema<BR>>>
>>>>>>>> está tentando<BR>>>
>>>>>>>> resolver, seria legal
:)<BR>>> >>>>>>>><BR>>>
>>>>>>>> Eu usaria o Statsd para acumular
o valor e exportaria via<BR>>>
>>>>>>>> graphite.<BR>>>
>>>>>>>><BR>>>
>>>>>>>> Eu não entendi bem o motivo de
ficar rodando a cada segundo então<BR>>>
>>>>>>>> vou chutar:<BR>>>
>>>>>>>><BR>>>
>>>>>>>> Você que capturar ações de
usuário/sistema em algum lugar?<BR>>>
>>>>>>>><BR>>>
>>>>>>>> Caso sim, você poderia colocar
esse codigo logo depois a ação do<BR>>>
>>>>>>>> usuário/sistema:<BR>>>
>>>>>>>><BR>>>
>>>>>>>> my $statsd =
Etsy::StatsD->new<BR>>> >>>>>>>>
my $bucket = "pacman.hit_number"<BR>>>
>>>>>>>>
$statsd->increment($bucket);<BR>>>
>>>>>>>><BR>>>
>>>>>>>> O stasd usa UDP, não vai alterar
em nada perceptivo na<BR>>> >>>>>>>>
perfomance,<BR>>> >>>>>>>> do seu
sistema.<BR>>> >>>>>>>><BR>>>
>>>>>>>> Mandando o contador acima para o
statsd ele irá acumular e mandar<BR>>>
>>>>>>>> para o graphite,<BR>>>
>>>>>>>> no graphite com o dado cru você
pode criar várias operações de<BR>>>
>>>>>>>> estatistica<BR>>>
>>>>>>>> ( mediana, media, percentile..etc
) e gerar graficos.<BR>>>
>>>>>>>><BR>>>
>>>>>>>><BR>>>
>>>>>>>><BR>>>
>>>>>>>> <A
href="http://graphite.readthedocs.org/en/0.9.10/functions.html#module-graphite.render.functions"
target=_blank>http://graphite.readthedocs.org/en/0.9.10/functions.html#module-graphite.render.functions</A><BR>>>
>>>>>>>><BR>>>
>>>>>>>> O Statsd suporta vários backend o
mais conhecido/usado deles é o<BR>>>
>>>>>>>> Graphite:<BR>>>
>>>>>>>> <A
href="http://graphite.wikidot.com/screen-shots"
target=_blank>http://graphite.wikidot.com/screen-shots</A><BR>>>
>>>>>>>><BR>>>
>>>>>>>> A Etsy tem um post explicando
melhor a "metodologia" deles de<BR>>>
>>>>>>>> medir<BR>>>
>>>>>>>> tudo:<BR>>>
>>>>>>>><BR>>>
>>>>>>>><BR>>>
>>>>>>>><BR>>>
>>>>>>>> <A
href="http://codeascraft.com/2011/02/15/measure-anything-measure-everything/"
target=_blank>http://codeascraft.com/2011/02/15/measure-anything-measure-everything/</A><BR>>>
>>>>>>>> <A
href="https://github.com/etsy/statsd"
target=_blank>https://github.com/etsy/statsd</A><BR>>>
>>>>>>>><BR>>>
>>>>>>>> PS: O Statsd teve origem no
Flickr, e a primeira versão era em<BR>>>
>>>>>>>> Perl<BR>>>
>>>>>>>> recentemente eles<BR>>>
>>>>>>>> liberaram o código
fonte:<BR>>> >>>>>>>><BR>>>
>>>>>>>> <A
href="https://github.com/iamcal/Flickr-StatsD"
target=_blank>https://github.com/iamcal/Flickr-StatsD</A><BR>>>
>>>>>>>><BR>>>
>>>>>>>><BR>>>
>>>>>>>><BR>>>
>>>>>>>> 2013/8/26 Stanislaw Pusep <<A
href="mailto:creaktive@gmail.com"
target=_blank>creaktive@gmail.com</A>><BR>>>
>>>>>>>>><BR>>>
>>>>>>>>> Use AE::time() no lugar do
localtime<BR>>>
>>>>>>>>><BR>>>
>>>>>>>>> понедельник, 26 августа 2013
г. пользователь Tiago Peczenyj<BR>>>
>>>>>>>>> писал:<BR>>>
>>>>>>>>><BR>>>
>>>>>>>>>> Ola<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> Eu tenho o seguinte
caso<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> preciso rodar um certo
método a cada segundo, que por sua vez<BR>>>
>>>>>>>>>> acumula um valor em algum
atributo interno do objeto ( total +=<BR>>>
>>>>>>>>>> por exemplo<BR>>>
>>>>>>>>>> ).<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> a cada minuto quero
enviar o valor de total para algum lugar<BR>>>
>>>>>>>>>> (ex<BR>>>
>>>>>>>>>> Zabbix).<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> a meia noite eu quero
limpar o total para 0.<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> Eu cheguei a algo
assim:<BR>>> >>>>>>>>>> use
AnyEvent;<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> sub loop {<BR>>>
>>>>>>>>>> my $obj =
Foo->new;<BR>>> >>>>>>>>>>
my $cv = AE::cv;<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> my $seconds_in_a_day = 60
* 60 * 24;<BR>>> >>>>>>>>>> my
$seconds_to_midnight = $seconds_in_a_day -<BR>>>
>>>>>>>>>>
seconds_from_midnight();<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> my $loop =
AE::timer 0, 1, sub { $obj->run
};<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> my $send =
AE::timer 60, 60, sub { $obj->send
};<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> my $clear=
AE::timer $seconds_to_midnight,
$seconds_in_a_day,<BR>>>
>>>>>>>>>> sub { $obj->clear
};<BR>>> >>>>>>>>>>
$cv->recv;<BR>>> >>>>>>>>>>
}<BR>>> >>>>>>>>>><BR>>>
>>>>>>>>>> a sub
seconds_from_midnight usa localtime pra fazer uma
conta<BR>>> >>>>>>>>>>
marota.<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> A assinatura do AE::timer
eh<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> AE::timer $delay,
$interval, $callback;<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> No primeiro timer eu
tenho o meu main loop, chamando o metodo<BR>>>
>>>>>>>>>> run.<BR>>>
>>>>>>>>>> No segundo eu tenho o
metodo que envia os dados a cada 60<BR>>>
>>>>>>>>>> segundos<BR>>>
>>>>>>>>>> No terceiro eu calculo
quantos segundos faltam para a meia<BR>>>
>>>>>>>>>> noite e<BR>>>
>>>>>>>>>> mando repetir a cada 24
horas.<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> hoje eu tenho um loop com
um sleep 1 e varios ifs. quero que<BR>>>
>>>>>>>>>> fique<BR>>>
>>>>>>>>>> mais legivel e nao
utilizo anyEvent em nenhum outro lugar. Nao<BR>>>
>>>>>>>>>> precisa ser<BR>>>
>>>>>>>>>> EXATO, portanto um atraso
de alguns segundos pode acontecer.<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> Parece bom, mas eu tenho
algumas duvidas.<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> 1) esta claro o
suficiente?<BR>>> >>>>>>>>>>
2) o overhead do AnyEvent parece ser o mesmo do sleep
(1)<BR>>> >>>>>>>>>>
durante<BR>>> >>>>>>>>>> o
runtime (ignorando quanto tempo demora pra iniciar ou
não),<BR>>> >>>>>>>>>>
certo?<BR>>> >>>>>>>>>> 3)
para rodar algo "a meia noite" me parece um tanto
confuso<BR>>> >>>>>>>>>>
ainda. não encontrei nenhum helper q me ajude (o
AnyEvent::Cron<BR>>>
>>>>>>>>>> da pau pra<BR>>>
>>>>>>>>>> mim). sera q nao eh
melhor "re-setar" o time watcher para a<BR>>>
>>>>>>>>>> proxima meia<BR>>>
>>>>>>>>>> noite?<BR>>>
>>>>>>>>>> 4) alias tem algo melhor
do que ficar brincando com localtime()<BR>>>
>>>>>>>>>> pra pegar quantos
segundos faltam pra proxima meia noite? algo<BR>>>
>>>>>>>>>> usando<BR>>>
>>>>>>>>>> DateTime<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> por fim<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> 5) tem algum problema ao
usar AE::timer q eu não esteja vendo?<BR>>>
>>>>>>>>>> Fora os problemas
interentes como se eu usar IO Bloqueante eu<BR>>>
>>>>>>>>>> não vou ter
os<BR>>> >>>>>>>>>> timers
"exatos".<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> Obrigado<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> Tiago<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> --<BR>>>
>>>>>>>>>> Tiago B.
Peczenyj<BR>>> >>>>>>>>>>
Linux User #405772<BR>>>
>>>>>>>>>><BR>>>
>>>>>>>>>> <A
href="http://about.me/peczenyj"
target=_blank>http://about.me/peczenyj</A><BR>>>
>>>>>>>>><BR>>>
>>>>>>>>><BR>>>
>>>>>>>>> =begin disclaimer<BR>>>
>>>>>>>>> Sao Paulo
Perl Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>>
>>>>>>>>> SaoPaulo-pm mailing
list: <A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>>
>>>>>>>>> L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
>>>>>>>>> =end disclaimer<BR>>>
>>>>>>>>><BR>>>
>>>>>>>><BR>>>
>>>>>>>><BR>>>
>>>>>>>> =begin disclaimer<BR>>>
>>>>>>>> Sao Paulo Perl
Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>>
>>>>>>>> SaoPaulo-pm mailing list:
<A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>>
>>>>>>>> L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
>>>>>>>> =end disclaimer<BR>>>
>>>>>>>><BR>>>
>>>>>>><BR>>>
>>>>>>><BR>>>
>>>>>>> =begin disclaimer<BR>>>
>>>>>>> Sao Paulo Perl
Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>>
>>>>>>> SaoPaulo-pm mailing list: <A
href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>>
>>>>>>> L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
>>>>>>> =end disclaimer<BR>>>
>>>>>>><BR>>>
>>>>>><BR>>>
>>>>>><BR>>>
>>>>>><BR>>> >>>>>>
--<BR>>> >>>>>> Tiago B.
Peczenyj<BR>>> >>>>>> Linux User
#405772<BR>>> >>>>>><BR>>>
>>>>>> <A href="http://about.me/peczenyj"
target=_blank>http://about.me/peczenyj</A><BR>>>
>>>>>><BR>>> >>>>>>
=begin disclaimer<BR>>>
>>>>>> Sao Paulo Perl Mongers:
<A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>>
>>>>>> SaoPaulo-pm mailing list: <A
href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>>
>>>>>> L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
>>>>>> =end disclaimer<BR>>>
>>>>>><BR>>>
>>>>><BR>>> >>>>><BR>>>
>>>>> =begin disclaimer<BR>>>
>>>>> Sao Paulo Perl Mongers: <A
href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>>
>>>>> SaoPaulo-pm mailing list: <A
href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>>
>>>>> L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
>>>>> =end disclaimer<BR>>>
>>>>><BR>>> >>>><BR>>>
>>>><BR>>> >>>><BR>>>
>>>> --<BR>>> >>>> Tiago B.
Peczenyj<BR>>> >>>> Linux User
#405772<BR>>> >>>><BR>>> >>>>
<A href="http://about.me/peczenyj"
target=_blank>http://about.me/peczenyj</A><BR>>>
>>>><BR>>> >>>> =begin
disclaimer<BR>>> >>>> Sao
Paulo Perl Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>>
>>>> SaoPaulo-pm mailing list: <A
href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>>
>>>> L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
>>>> =end disclaimer<BR>>>
>>>><BR>>> >>><BR>>>
>><BR>>> >><BR>>> >> =begin
disclaimer<BR>>> >> Sao Paulo Perl
Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>>
>> SaoPaulo-pm mailing list: <A
href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>> >>
L<<A href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
>> =end disclaimer<BR>>> >><BR>>>
><BR>>> ><BR>>> ><BR>>> >
--<BR>>> > Tiago B. Peczenyj<BR>>> > Linux User
#405772<BR>>> ><BR>>> > <A
href="http://about.me/peczenyj"
target=_blank>http://about.me/peczenyj</A><BR>>>
><BR>>> > =begin disclaimer<BR>>>
> Sao Paulo Perl Mongers: <A
href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>> >
SaoPaulo-pm mailing list: <A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>> >
L<<A href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
> =end disclaimer<BR>>>
><BR>>><BR>>><BR>>><BR>>>
--<BR>>><BR>>> -dom<BR>>><BR>>>
--<BR>>><BR>>> Daniel de Oliveira
Mantovani<BR>>> Business Analytic Specialist<BR>>>
Perl Evangelist /Astrophysics hobbyist.<BR>>> <A
href="tel:%2B55%2011%209%208538-9897" target=_blank
value="+5511985389897">+55 11 9 8538-9897</A><BR>>>
XOXO<BR>>> =begin disclaimer<BR>>>
Sao Paulo Perl Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>>
SaoPaulo-pm mailing list: <A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>>> L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>>
=end disclaimer<BR>><BR>><BR>><BR>><BR>> --<BR>>
Tiago B. Peczenyj<BR>> Linux User #405772<BR>><BR>> <A
href="http://about.me/peczenyj"
target=_blank>http://about.me/peczenyj</A><BR>><BR>> =begin
disclaimer<BR>> Sao Paulo Perl Mongers: <A
href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>>
SaoPaulo-pm mailing list: <A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>> L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>>
=end
disclaimer<BR>><BR><BR><BR><BR>--<BR><BR>-dom<BR><BR>--<BR><BR>Daniel
de Oliveira Mantovani<BR>Business Analytic Specialist<BR>Perl
Evangelist /Astrophysics hobbyist.<BR><A
href="tel:%2B55%2011%209%208538-9897" target=_blank
value="+5511985389897">+55 11 9 8538-9897</A><BR>XOXO<BR>=begin
disclaimer<BR> Sao Paulo Perl Mongers: <A
href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing
list: <A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end
disclaimer<BR></DIV></DIV></BLOCKQUOTE></DIV><BR><BR clear=all>
<DIV> </DIV>-- <BR>Tiago B. Peczenyj<BR>Linux User
#405772<BR><BR><A href="http://about.me/peczenyj"
target=_blank>http://about.me/peczenyj</A>
</DIV></DIV></DIV><BR>=begin disclaimer<BR> Sao Paulo
Perl Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing
list: <A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end
disclaimer<BR><BR></BLOCKQUOTE></DIV></DIV></DIV>
<DIV> </DIV></DIV><BR>=begin disclaimer<BR> Sao Paulo
Perl Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing
list: <A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end
disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
<DIV> </DIV>-- <BR></DIV></DIV>André Garcia Carneiro<BR>Software
Engineer<BR><A href="tel:%2811%29982907780" target=_blank
value="+5511982907780">(11)982907780</A> </DIV><BR>=begin
disclaimer<BR> Sao Paulo Perl Mongers: <A
href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list:
<A href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end
disclaimer<BR><BR></BLOCKQUOTE></DIV></DIV></DIV>
<DIV> </DIV></DIV><BR>=begin disclaimer<BR> Sao Paulo
Perl Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A
href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end
disclaimer<BR><BR></BLOCKQUOTE></DIV>
<DIV> </DIV></DIV></DIV></DIV><BR>=begin disclaimer<BR> Sao
Paulo Perl Mongers: <A href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A
href="mailto:SaoPaulo-pm@pm.org"
target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end
disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
<DIV> </DIV>-- <BR>André Garcia Carneiro<BR>Software Engineer<BR><A
href="tel:%2811%29982907780" target=_blank
value="+5511982907780">(11)982907780</A> </DIV></DIV></DIV><BR>=begin
disclaimer<BR> Sao Paulo Perl Mongers: <A
href="http://sao-paulo.pm.org/"
target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A
href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</A><BR>L<<A
href="http://mail.pm.org/mailman/listinfo/saopaulo-pm"
target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end
disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
<DIV> </DIV>-- <BR>Tiago B. Peczenyj<BR>Linux User #405772<BR><BR><A
href="http://about.me/peczenyj" target=_blank>http://about.me/peczenyj</A>
</DIV>
<P>
<HR>
=begin disclaimer<BR> Sao Paulo Perl Mongers:
http://sao-paulo.pm.org/<BR>SaoPaulo-pm mailing list:
SaoPaulo-pm@pm.org<BR>L<http://mail.pm.org/mailman/listinfo/saopaulo-pm><BR>=end
disclaimer<BR></DIV></DIV></DIV></BODY></HTML>