Re: [Rio-pm] Metodos de Download em Massa

2017-05-24 Por tôpico Renato Santos
Eu costumo usar o yada
http://search.cpan.org/~syp/AnyEvent-Net-Curl-Queued-0.047/bin/yada

On May 24, 2017 12:55 AM, "breno"  wrote:

> Oi Aureliano,
>
> se você está interessado em benchmarks, pode experimentar o LWP::Curl em
> vez do Furl, ou se tiver paciência pra ir direto ao metal, Net::Curl ou
> WWW::Curl.
>
> O que quer dizer com "truncado"? Se a conexão cai depois de X bytes
> baixados (e se vc consegue garantir que o arquivo parcial contém apenas
> dados válidos), vc pode baixar só o que falta e depois juntar os dois
> pedaços na mão. Por exemplo, se o arquivo parcial foi baixado em
> "parcial.tmp":
>
> -8<-
> my $ua = Furl->new;
> my $res = $ua->get( 'http://exemplo.com/arquivo.tmp', Range => 'byes=' .
> -s 'parcial.tmp' . '-');
> open my $ fh, '>>', 'parcial.tmp;
> print $fh, $res->content;
> close $fh;
> -8<-
>
> (código não testado, estou no celular)
>
> Se o servidor suporta conteúdo parcial (ele responde o primeiro request
> com Accept-Ranges), isso deve baixar o resto do arquivo. Idealmente, em vez
> de sobrescever o arquivo parcial, vc junta o conteúdo dos dois em um
> terceiro arquivo.
>
> Finalmente, se quiser baixar vários pedaços do arquivo em paralelo, pode
> experimentar o HTTP::Range e o LWP::Parallel::UserAgent, ou se inspirar
> neles e implementar sua própria solução paralela com Furl ou LWP::Curl.
>
> []s
> -b
>
> On 23:26, Tue, 23 May 2017 Aureliano Guedes, 
> wrote:
>
>> Ola Monges,
>>
>>
>> Gostaria de saber qual metodo vocês mais gostam para fazer downloads em
>> massa.
>>
>>
>> Eu usava muito LWP, recentemente comecei usar uma combinação de
>> Parallel::ForkManager e Furl, mas pra meu tipo de dado tem truncado parte
>> dos download. (vale uma dica pra lidar com dados truncados?)
>>
>> No meu caso, eu to fazendo download de mais me milhoes de sequencias, pra
>> isso eu sigo a regra do servidor e peço apenas 500 por vez e limito em 10
>> fork.
>>
>> Tem outros metodos que posso usar mas acabo perdendo e muito a
>> eficiência. Por isso pretendo testar um benchmark em varias formas
>> diferentes.
>>
>> Bom, sei que existem ferramentas, BioPerl, etc...
>>
>> Abraços,
>> acpguedes
>> ___
>> Rio-pm mailing list
>> Rio-pm@pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
> ___
> Rio-pm mailing list
> Rio-pm@pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Função uniq com bug ou erro no codigo?

2017-03-06 Por tôpico Renato Santos
Ah, tem q sempre lembrar de enviar já ordenado ou
echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+SP" | tr '+' "\n"| *sort* | uniq
-c

2017-03-06 9:13 GMT-03:00 Renato Santos <renato.c...@gmail.com>:

> echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | tr '+' "\n"| uniq -c
>
> 2017-03-06 9:08 GMT-03:00 Aureliano Guedes <guedes_1...@hotmail.com>:
>
>> Saldações,
>>
>> Obrigado pela explicação, havia esquecido que o echo gera a quebra de
>> linha.
>> Abs,
>>
>>
>> --
>> *From:* Rio-pm <rio-pm-bounces+guedes_1000=hotmail@pm.org> on behalf
>> of Ronaldo Ferreira de Lima <jimmy@gmail.com>
>> *Sent:* Monday, March 6, 2017 12:04:44 PM
>> *To:* Rio PM
>>
>> *Subject:* Re: [Rio-pm] Função uniq com bug ou erro no codigo?
>>
>> Saudações Aureliano,
>>
>> On Sun, Mar 05, 2017 at 04:35:49PM +, Aureliano Guedes wrote:
>> > Ola,
>> >
>> > Caros Monges.
>> >
>> > Estou com uma pequena dúvida.
>> > Estou usando a função uniq (List::Util e List::MoreUtils) para reduzir a
>> > redundância de um array.
>> >
>> > echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | perl -MList::Util='uniq'
>> -MDDP -ne
>> > '@a = uniq (split (/\+/, $_)); print "\n"; p @a; print "\n"'
>> >
>> > Separa os elementos pelo '+' e depois remove a redundância. Acontece
>> que o
>> > ultimo elemento for redundante ele não é eliminado.
>> >
>> > Alguém sabe o porque disso??
>> O comando 'echo' produziu uma quebra de linha que não foi tratada pelo
>> código, ou seja, depois do 'split', a sua lista ficou assim:
>>
>> $VAR1 = [
>>   "SP",
>>   "TM",
>>   "TM",
>>   "TM",
>>   "TM",
>>   "TM",
>>   "TM",
>>   "TM",
>>   "TM",
>>   "TM",
>>   "TM",
>>   "TM\n"
>> ];
>>
>> >
>> > Alguma sujestão de como reverter sem q eu tenha que criar um script pra
>> isso ou
>> > minha propria rotina uniq??
>> Como já sugerido, remova a quebra de linha com o chomp ou similar que
>> estará resolvido.
>>
>> > Desde já grato.
>> []'s
>> --
>> "Não manejo bem as palavras
>> Mas manipulo bem as strings."
>> --
>> https://perspicazsite.wordpress.com
>> ___
>> Rio-pm mailing list
>> Rio-pm@pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>> ___
>> Rio-pm mailing list
>> Rio-pm@pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> YAGNI,
> Renato CRON
> http://www.renatocron.com/blog/
> @renato_cron <http://twitter.com/#!/renato_cron>
>



-- 
YAGNI,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron <http://twitter.com/#!/renato_cron>
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Função uniq com bug ou erro no codigo?

2017-03-06 Por tôpico Renato Santos
echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | tr '+' "\n"| uniq -c

2017-03-06 9:08 GMT-03:00 Aureliano Guedes :

> Saldações,
>
> Obrigado pela explicação, havia esquecido que o echo gera a quebra de
> linha.
> Abs,
>
>
> --
> *From:* Rio-pm  on behalf
> of Ronaldo Ferreira de Lima 
> *Sent:* Monday, March 6, 2017 12:04:44 PM
> *To:* Rio PM
>
> *Subject:* Re: [Rio-pm] Função uniq com bug ou erro no codigo?
>
> Saudações Aureliano,
>
> On Sun, Mar 05, 2017 at 04:35:49PM +, Aureliano Guedes wrote:
> > Ola,
> >
> > Caros Monges.
> >
> > Estou com uma pequena dúvida.
> > Estou usando a função uniq (List::Util e List::MoreUtils) para reduzir a
> > redundância de um array.
> >
> > echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | perl -MList::Util='uniq'
> -MDDP -ne
> > '@a = uniq (split (/\+/, $_)); print "\n"; p @a; print "\n"'
> >
> > Separa os elementos pelo '+' e depois remove a redundância. Acontece que
> o
> > ultimo elemento for redundante ele não é eliminado.
> >
> > Alguém sabe o porque disso??
> O comando 'echo' produziu uma quebra de linha que não foi tratada pelo
> código, ou seja, depois do 'split', a sua lista ficou assim:
>
> $VAR1 = [
>   "SP",
>   "TM",
>   "TM",
>   "TM",
>   "TM",
>   "TM",
>   "TM",
>   "TM",
>   "TM",
>   "TM",
>   "TM",
>   "TM\n"
> ];
>
> >
> > Alguma sujestão de como reverter sem q eu tenha que criar um script pra
> isso ou
> > minha propria rotina uniq??
> Como já sugerido, remova a quebra de linha com o chomp ou similar que
> estará resolvido.
>
> > Desde já grato.
> []'s
> --
> "Não manejo bem as palavras
> Mas manipulo bem as strings."
> --
> https://perspicazsite.wordpress.com
> ___
> Rio-pm mailing list
> Rio-pm@pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
> ___
> Rio-pm mailing list
> Rio-pm@pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
YAGNI,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron 
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] duvida cpan WWW::Mechanize

2016-04-29 Por tôpico Renato Santos
Tente outra versão,  pois parece um erro de typo!

Se não, tente instalar https://github.com/sdemingo/makeo

2016-04-29 19:58 GMT-03:00 Diego Tostes :

> Boa Noite pessoal,
>
> Tentando instalar o Mechanize com cpan:
>
> cpan WWW::Mechanize
>
>
> tomo a seguinte msg:
>
> Running make install
> sudo: unable to resolve host maria
> sudo: makeo: command not found
>   ETHER/WWW-Mechanize-1.75.tar.gz
>   sudo makeo install  -- NOT OK
>
>
> Acho estranho pois esse "makeo" realmente não existe, mas não sou eu que
> controlo isso...
>
> O que pode estar acontecendo?
>
> Abs
>
> Diego
>
>
> ___
> Rio-pm mailing list
> Rio-pm@pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
YAGNI,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron 
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [DÚVIDA]Hash: varias key pra um mesmo value

2016-04-13 Por tôpico Renato Santos
Also,

https://metacpan.org/pod/Bio::Regexp

Será que isso não te ajuda?


pS: se você não esta rodando isso na cloud, YOU SHOULD!

Contratar uma maquina com 200+ GB de ram e rodar por 20min (se vc conseguir
resolver neste tempo) e desligar \o

Nao consigo encontrar o artigo, mas tinha um cara falando sobre isso (a
unica diferença é que a empresa rodou em mais de 1 nó)

2016-04-13 7:57 GMT-03:00 Renato Santos <renato.c...@gmail.com>:

> Embora não acho que isso ajude no quesito velocidade, there's a module for
> that!
>
> https://metacpan.org/pod/Tie::RegexpHash
>
> 2016-04-13 5:30 GMT-03:00 Stanislaw Pusep <creakt...@gmail.com>:
>
>> Aureliano, o Perl não é suficientemente inteligente para interpretar
>> expressão regular como chave do hash :)
>> Pelo que entendi, vc quer algo assim:
>>
>> my %codon = (
>> (map { "CG".$_ => "A" } qw(A C T G)),
>> (map { "TT".$_ => "F" } qw(C T)),
>> (map { "TT".$_ => "L" } qw(A G)),
>> (map { "CU".$_ => "L" } qw(A C T G)),
>> );
>>
>> 2016-04-13 2:24 GMT+02:00 Aureliano Guedes <guedes_1...@hotmail.com>:
>>
>>> Ola monges,
>>>
>>> Eu tenho uma dúvida, caso possam me ajudar.
>>> Eu tenho varias códigos que acessam o mesmo valor (no caso que uso são
>>> vários códons que traduzem o mesmo aminoácido).
>>>
>>> Exemplo:
>>> Aminoacido -> Códons
>>>
>>> Sendo os aminoácidos representados por 20 letras diferentes mais o X
>>> (stop códon).
>>> E os codons, combinações de 3 nucleotídeos, sendo um total de 4
>>> nucleotídeos (A, T, C e G),  logo temos 64 combinações de 3 nucleotídeos
>>> (64 codons possíveis).
>>> Por isso um mesmo aminoácido pode ser codificado por mais de um códon.
>>> No caso do aminoácido Alanina (Ala || A) é códificado pelos códons GCA,
>>> GCC, GCT ou GCU.  Observe que os dois primeiros nucleotídeos são C e G,
>>> respectivamente, e o terceiro pode ser ocupado por qualquer um dos 4
>>> nucleotídeo possíveis.
>>> Dessa forma:
>>>
>>>- A -> CGA ou CGC ou CGT ou CGG
>>>
>>> Outros:
>>>
>>>- F -> TTC || TTT
>>>- L -> TTA || TTG || CTA || CTG || CTC || CTT
>>>
>>>
>>> Bom, meu objetivo é simplesmente criar um hash, como esse:
>>>
>>>- my %aa = ( "UUU" => "F", "UUC" => "F", "UUA" => "L", "UUG" => "L",
>>>"UCU" => "S", "UCC" => "S", "UCA" => "S", "UCG" => "S", "UAU" => "Y",
>>> "UAC" => "Y", "UAA" => "X", "UAG" => "X", "UGU" => "C", "UGC" =>
>>>"C", "UGA" => "X", "UGG" => "W", "CUU" => "L", "CUC" => "L", "CUA"
>>>=> "L", "CUG" => "L", "CCU" => "P", "CCC" => "P", "CCA" => "P", "CCG"
>>>=> "P", "CAU" => "H", "CAC" => "H", "CAA" => "Q", "CAG" => "Q",
>>>"CGU" => "R", "CGC" => "R", "CGA" => "R", "CGG" => "R", "AUU" =>
>>>"I", "AUC" => "I", "AUA" => "I", "AUG" => "M", "ACU" => "T", "ACC"
>>>=> "T", "ACA" => "T", "ACG" => "T", "AAU" => "N", "AAC" => "N", "AAA"
>>>=> "K", "AAG" => "K", "AGU" => "S", "AGC" => "S", "AGA" => "R", "AGG"
>>>=> "R", "GUU" => "V", "GUC" => "V", "GUA" => "V", "GUG" => "V",
>>>"GCU" => "A", "GCC" => "A", "GCA" => "A", "GCG" => "A", "GAU" =>
>>>"D", "GAC" => "D", "GAA" => "E", "GAG" => "E", "GGU" => "G", "GGC"
>>>=> "G", "GGA" => "G", "GGG" => "G",);
>>>
>>>
>>> Contudo pensei em tomar outra abordagem, informar pra chave quem ela
>>> pode ser. Não sei se é possível, mas eu comecei tentando algo como:
>>>
>>>- my %codon = ( "CG"./[ACTG]/ => "A", "TT"./[CT]/ => "F",
>>>("TT"./[AG]/||"CU"./[ACTG]/) => "L",);
>>>
>>> Mas não funcionou.
>>>
>>> Pensei em pegar uma abordagem mais IUPAC, onde:
>>>
>>>- Y = C ou T
>>>- R = A ou G
>>>- N = A, C, G ou T
>>>
>>> *tem outros, mas por enquanto apenas estou vendo a possibilidade.
>>> Então fiz:
>>>
>>>- my $Y = /[CT]/;
>>>- my $R = /[AG]/;
>>>- my $N = /[ACTG]/;
>>>-
>>>- my %codon = ( "CG".$N => "A", "TT".$Y => "F", ("TT".$R||"CU".$N)
>>>=> "L",);
>>>
>>> Mas não funcionou.
>>>
>>>
>>> ___
>>> Rio-pm mailing list
>>> Rio-pm@pm.org
>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>
>>
>>
>> ___
>> Rio-pm mailing list
>> Rio-pm@pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> YAGNI,
> Renato CRON
> http://www.renatocron.com/blog/
> @renato_cron <http://twitter.com/#!/renato_cron>
>



-- 
YAGNI,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron <http://twitter.com/#!/renato_cron>
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [DÚVIDA]Hash: varias key pra um mesmo value

2016-04-13 Por tôpico Renato Santos
Embora não acho que isso ajude no quesito velocidade, there's a module for
that!

https://metacpan.org/pod/Tie::RegexpHash

2016-04-13 5:30 GMT-03:00 Stanislaw Pusep :

> Aureliano, o Perl não é suficientemente inteligente para interpretar
> expressão regular como chave do hash :)
> Pelo que entendi, vc quer algo assim:
>
> my %codon = (
> (map { "CG".$_ => "A" } qw(A C T G)),
> (map { "TT".$_ => "F" } qw(C T)),
> (map { "TT".$_ => "L" } qw(A G)),
> (map { "CU".$_ => "L" } qw(A C T G)),
> );
>
> 2016-04-13 2:24 GMT+02:00 Aureliano Guedes :
>
>> Ola monges,
>>
>> Eu tenho uma dúvida, caso possam me ajudar.
>> Eu tenho varias códigos que acessam o mesmo valor (no caso que uso são
>> vários códons que traduzem o mesmo aminoácido).
>>
>> Exemplo:
>> Aminoacido -> Códons
>>
>> Sendo os aminoácidos representados por 20 letras diferentes mais o X
>> (stop códon).
>> E os codons, combinações de 3 nucleotídeos, sendo um total de 4
>> nucleotídeos (A, T, C e G),  logo temos 64 combinações de 3 nucleotídeos
>> (64 codons possíveis).
>> Por isso um mesmo aminoácido pode ser codificado por mais de um códon.
>> No caso do aminoácido Alanina (Ala || A) é códificado pelos códons GCA,
>> GCC, GCT ou GCU.  Observe que os dois primeiros nucleotídeos são C e G,
>> respectivamente, e o terceiro pode ser ocupado por qualquer um dos 4
>> nucleotídeo possíveis.
>> Dessa forma:
>>
>>- A -> CGA ou CGC ou CGT ou CGG
>>
>> Outros:
>>
>>- F -> TTC || TTT
>>- L -> TTA || TTG || CTA || CTG || CTC || CTT
>>
>>
>> Bom, meu objetivo é simplesmente criar um hash, como esse:
>>
>>- my %aa = ( "UUU" => "F", "UUC" => "F", "UUA" => "L", "UUG" => "L",
>>"UCU" => "S", "UCC" => "S", "UCA" => "S", "UCG" => "S", "UAU" => "Y", 
>> "UAC"
>>=> "Y", "UAA" => "X", "UAG" => "X", "UGU" => "C", "UGC" => "C", "UGA"
>>=> "X", "UGG" => "W", "CUU" => "L", "CUC" => "L", "CUA" => "L", "CUG"
>>=> "L", "CCU" => "P", "CCC" => "P", "CCA" => "P", "CCG" => "P", "CAU"
>>=> "H", "CAC" => "H", "CAA" => "Q", "CAG" => "Q", "CGU" => "R", "CGC"
>>=> "R", "CGA" => "R", "CGG" => "R", "AUU" => "I", "AUC" => "I", "AUA"
>>=> "I", "AUG" => "M", "ACU" => "T", "ACC" => "T", "ACA" => "T", "ACG"
>>=> "T", "AAU" => "N", "AAC" => "N", "AAA" => "K", "AAG" => "K", "AGU"
>>=> "S", "AGC" => "S", "AGA" => "R", "AGG" => "R", "GUU" => "V", "GUC"
>>=> "V", "GUA" => "V", "GUG" => "V", "GCU" => "A", "GCC" => "A", "GCA"
>>=> "A", "GCG" => "A", "GAU" => "D", "GAC" => "D", "GAA" => "E", "GAG"
>>=> "E", "GGU" => "G", "GGC" => "G", "GGA" => "G", "GGG" => "G",);
>>
>>
>> Contudo pensei em tomar outra abordagem, informar pra chave quem ela pode
>> ser. Não sei se é possível, mas eu comecei tentando algo como:
>>
>>- my %codon = ( "CG"./[ACTG]/ => "A", "TT"./[CT]/ => "F",
>>("TT"./[AG]/||"CU"./[ACTG]/) => "L",);
>>
>> Mas não funcionou.
>>
>> Pensei em pegar uma abordagem mais IUPAC, onde:
>>
>>- Y = C ou T
>>- R = A ou G
>>- N = A, C, G ou T
>>
>> *tem outros, mas por enquanto apenas estou vendo a possibilidade.
>> Então fiz:
>>
>>- my $Y = /[CT]/;
>>- my $R = /[AG]/;
>>- my $N = /[ACTG]/;
>>-
>>- my %codon = ( "CG".$N => "A", "TT".$Y => "F", ("TT".$R||"CU".$N) =>
>>"L",);
>>
>> Mas não funcionou.
>>
>>
>> ___
>> Rio-pm mailing list
>> Rio-pm@pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
> ___
> Rio-pm mailing list
> Rio-pm@pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



-- 
YAGNI,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron 
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Problema com PP (PAR) e Variable::Magic

2014-09-30 Por tôpico Renato Santos
Tambem tem o fatpack, que junta todos suas deps em um unico arquivo.pl


2014-09-30 18:09 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com:

  Cara. Sempre tive problema com o PP.

 Manoel Domingues Junior manoel.domingues.jun...@gmail.com escreveu:

  Samir,

 Esses dias, quando enfrentava problemas semelhantes de portabilidade,
 conheci o carton que me ajudou muito.

 Da uma olhada, ele é capaz de gerar uma pasta bundle com todas as
 dependências e basta ir no servidor remoto e executar um:
 carton install --cached --deployment
 E depois um:
 carton exec script.pl

 Outra dica legal que encontrei foi usar o plenv para cuidar das versões de
 perl...

 Abraços,
 Em 30/09/2014 15:51, Samir Cury samircu...@gmail.com escreveu:

 Galera,

  Escrevi um codigo basico para uma tarefa trivial. Problema : Usei o CPAN
 demais e tenho muitas dependencias. Vou rodar o codigo em sistemas remotos
 onde so e garantido existir o Perl + core modules.

  Pensei em usar o PAR, que ja me cria um executavel com todos os modulo
 (-B). Perfeito.

  Nem tanto. Uma vez que consigo o executavel, ele reclama de nao achar o
 Variable::Magic [1].

  Porem o .pl original roda tranquilo no mesmo sistema :

  -bash-4.1$ ./report-fjr-couch.pl --fjr=FrameworkJobReport.xml
  --couchurl=http://a.cloudant.com --db=tr-benchmarks
 CouchDB::Client::Doc=HASH(0x1286d60)

 O erro ate fez sentido uma vez que percebi que o sistema que usei para
 gerar o executavel nao tinha o Variable::Magic instalado. Imaginei que
 instalando e rodando de novo com -B iria incluir o modulo. Nada.

  Sendo mais concreto, aqui estao os pp s que tentei :

 pp -B  -o report-fjr-couch report-fjr-couch.pl
  pp -B -P -o report-fjr-couch report-fjr-couch.pl
  pp -B -p -o report-fjr-couch report-fjr-couch.pl

  Mesmo problema em todos.

  Descricao das opcoes :

 http://search.cpan.org/~rschupp/PAR-Packer-1.022/lib/pp.pm

  Caso queiram ver o codigo, aqui esta, mas fiquem tranquilos, admito e
 sei que nao foi feito para ser bonito, mas funciona :


 https://github.com/samircury/CMSSW-benchmarks/blob/master/condor/report-fjr-couch.pl

  Alguem ja passou por uma situacao parecida ou teria dicas de como
 resolver?

  Valeu!

  [1] :

  -bash-4.1$ ./report-fjr-couch --fjr=FrameworkJobReport.xml  --couchurl=
 http://a.cloudant.com --db=tr-benchmarks
 Could not find a suitable B::Hooks::EndOfScope implementation: Can't
 locate Variable/Magic.pm in @INC (@INC contains: CODE(0x1e1aca0)
 /tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc/lib
 /tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc
 CODE(0x1aea050) CODE(0x1aea4d0)) at Module/Runtime.pm line 317.
 BEGIN failed--compilation aborted at B/Hooks/EndOfScope/XS.pm line 17.
 Compilation failed in require at Module/Runtime.pm line 317.
 Can't locate B/Hooks/EndOfScope/PP/FieldHash.pm in @INC (@INC contains:
 CODE(0x1e1aca0)
 /tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc/lib
 /tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc
 CODE(0x1aea050) CODE(0x1aea4d0)) at Module/Runtime.pm line 317.
 BEGIN failed--compilation aborted at B/Hooks/EndOfScope/PP.pm line 29.
 Compilation failed in require at Module/Runtime.pm line 317.
  at B/Hooks/EndOfScope.pm line 22
 BEGIN failed--compilation aborted at B/Hooks/EndOfScope.pm line 26.
 Compilation failed in require at namespace/clean.pm line 11.
 BEGIN failed--compilation aborted at namespace/clean.pm line 11.
 Compilation failed in require at JSON/Any.pm line 11.
 BEGIN failed--compilation aborted at JSON/Any.pm line 11.
 Compilation failed in require at CouchDB/Client.pm line 9.
 BEGIN failed--compilation aborted at CouchDB/Client.pm line 9.
 Compilation failed in require at script/report-fjr-couch.pl line 6.
 BEGIN failed--compilation aborted at script/report-fjr-couch.pl line 6.


 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm


 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Problema com PP (PAR) e Variable::Magic

2014-09-30 Por tôpico Renato Santos
Você não pode usar o XS no fatpack.

mas eu também não sei como seria isso em qualquer outro cenário sem o
compilador e todos os fontes das dependências de cada binário que você
precisa.

2014-09-30 19:05 GMT-03:00 Samir Cury samircu...@gmail.com:

 Achei que fosse algo bobo. A premissa e interessante e quase que essencial
 no meu caso. Vou rodar isso em varios setups diferentes onde nao tenho
 acesso a root, com a unica garantia de que o SO e CentOS 5 ou 6. Ter um
 binario que simplesmente roda sem depender de nada que nao venha no CentOS
 5 padrao seria perfeito.

 Valeu pela dica Manoel, infelizmente viraria um problema de ovo e galinha
 neste caso - nao dependo de todos os modulos mas dependo do carton. Que
 tambem nao posso instalar no servidor remoto.

 Renato, fatpack parece interessante. Mas parece que o que o Solli comentou
 responde o que aconteceu aqui :

 -bash-4.1$ fatpack packlists-for `cat fatpacker.trace`  packlists
 Attempt to reload B/Hooks/EndOfScope/XS.pm aborted.

 Parece que o caminho de menor resistencia seria mandar um tarball de um
 lib/ com todos os modulos relevantes, e incluir no @INC do .pl. Totalmente
 manual. Achei que essas ferramentas resolveriam.

 Mas acredito que tentar os canais de suporte oficiais do pp pode ser uma
 boa ideia, se existirem.

 Abracos,
 Samir

 2014-09-30 14:09 GMT-07:00 Aureliano Guedes guedes_1...@hotmail.com:

  Cara. Sempre tive problema com o PP.

 Manoel Domingues Junior manoel.domingues.jun...@gmail.com escreveu:

  Samir,

 Esses dias, quando enfrentava problemas semelhantes de portabilidade,
 conheci o carton que me ajudou muito.

 Da uma olhada, ele é capaz de gerar uma pasta bundle com todas as
 dependências e basta ir no servidor remoto e executar um:
 carton install --cached --deployment
 E depois um:
 carton exec script.pl

 Outra dica legal que encontrei foi usar o plenv para cuidar das versões
 de perl...

 Abraços,
 Em 30/09/2014 15:51, Samir Cury samircu...@gmail.com escreveu:

 Galera,

  Escrevi um codigo basico para uma tarefa trivial. Problema : Usei o
 CPAN demais e tenho muitas dependencias. Vou rodar o codigo em sistemas
 remotos onde so e garantido existir o Perl + core modules.

  Pensei em usar o PAR, que ja me cria um executavel com todos os
 modulo (-B). Perfeito.

  Nem tanto. Uma vez que consigo o executavel, ele reclama de nao achar o
 Variable::Magic [1].

  Porem o .pl original roda tranquilo no mesmo sistema :

  -bash-4.1$ ./report-fjr-couch.pl --fjr=FrameworkJobReport.xml
  --couchurl=http://a.cloudant.com --db=tr-benchmarks
 CouchDB::Client::Doc=HASH(0x1286d60)

 O erro ate fez sentido uma vez que percebi que o sistema que usei para
 gerar o executavel nao tinha o Variable::Magic instalado. Imaginei que
 instalando e rodando de novo com -B iria incluir o modulo. Nada.

  Sendo mais concreto, aqui estao os pp s que tentei :

 pp -B  -o report-fjr-couch report-fjr-couch.pl
  pp -B -P -o report-fjr-couch report-fjr-couch.pl
  pp -B -p -o report-fjr-couch report-fjr-couch.pl

  Mesmo problema em todos.

  Descricao das opcoes :

 http://search.cpan.org/~rschupp/PAR-Packer-1.022/lib/pp.pm

  Caso queiram ver o codigo, aqui esta, mas fiquem tranquilos, admito e
 sei que nao foi feito para ser bonito, mas funciona :


 https://github.com/samircury/CMSSW-benchmarks/blob/master/condor/report-fjr-couch.pl

  Alguem ja passou por uma situacao parecida ou teria dicas de como
 resolver?

  Valeu!

  [1] :

  -bash-4.1$ ./report-fjr-couch --fjr=FrameworkJobReport.xml  --couchurl=
 http://a.cloudant.com --db=tr-benchmarks
 Could not find a suitable B::Hooks::EndOfScope implementation: Can't
 locate Variable/Magic.pm in @INC (@INC contains: CODE(0x1e1aca0)
 /tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc/lib
 /tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc
 CODE(0x1aea050) CODE(0x1aea4d0)) at Module/Runtime.pm line 317.
 BEGIN failed--compilation aborted at B/Hooks/EndOfScope/XS.pm line 17.
 Compilation failed in require at Module/Runtime.pm line 317.
 Can't locate B/Hooks/EndOfScope/PP/FieldHash.pm in @INC (@INC contains:
 CODE(0x1e1aca0)
 /tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc/lib
 /tmp/par-6e697374657374/cache-9f11098dccd910be2e44325e17711ef504029e65/inc
 CODE(0x1aea050) CODE(0x1aea4d0)) at Module/Runtime.pm line 317.
 BEGIN failed--compilation aborted at B/Hooks/EndOfScope/PP.pm line 29.
 Compilation failed in require at Module/Runtime.pm line 317.
  at B/Hooks/EndOfScope.pm line 22
 BEGIN failed--compilation aborted at B/Hooks/EndOfScope.pm line 26.
 Compilation failed in require at namespace/clean.pm line 11.
 BEGIN failed--compilation aborted at namespace/clean.pm line 11.
 Compilation failed in require at JSON/Any.pm line 11.
 BEGIN failed--compilation aborted at JSON/Any.pm line 11.
 Compilation failed in require at CouchDB/Client.pm line 9.
 BEGIN failed--compilation aborted at CouchDB/Client.pm line 9.
 Compilation failed in 

Re: [Rio-pm] Modulo - dependencias em pacotes do sistema

2014-08-08 Por tôpico Renato Santos
Hm
acho que você procura algo sobre isso:
https://metacpan.org/pod/Alien


2014-08-08 15:14 GMT-03:00 Samir Cury samircu...@gmail.com:

 Perlssoal,

 Estou testando como um modulo que escrevi instala em um CentOS 6 puro,
 para que no fim eu me livre do selo works on my machine.

 Percebi que o CPAN vai sofrer um pouco se nao houver expat-devel e gcc
 instalados no sistema. Pode-se argumentar que e fora do escopo do CPAN,
 resolver problemas como este.

 O que me faz sentir falta do Slackware, que ja vinha bem completo e era so
 alegria.

 O que pensei em fazer e um RPM para o Fedora/CentOS que contem estas
 dependencias. Beleza, dai o cara pode usar yum install perl-package-name ou
 yum install 'perl(Package::Name)'.

 Mas me deixa nervoso ter algo no CPAN que nao seria instalado
 perfeitamente pelo CPAN na distribuicao padrao. Tenho quase certeza que o
 maximo que posso fazer e deixar um warning gigante no POD, mas queria
 conferir com voces.

 Se precisarem, o modulo e HTCondor::Queue::Parser. Por acidente achei o
 report no CPAN Testers, que parece bem tranquilo :


 http://www.cpantesters.org/distro/H/HTCondor-Queue-Parser.html?oncpan=1distmat=1version=0.04

 Talvez o ambiente deles ja resolve esses problemas. Mas por perfeccionismo
 quero que o modulo instale sem problemas no CentOS padrao.

 Abracos,
 Samir



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Modulo - dependencias em pacotes do sistema

2014-08-08 Por tôpico Renato Santos
Ah,

Este jeito que vou contar abaixo, não é recomendavel para ĩnstalações de
modulos (afinal, você vai querer que seu modulo seja instalado ao lado dos
outros, e não levar o codigo de mais um monte de modulos juntos ao seu),
mas funciona para distribuir aplicativos.

O Thiago (maluco) e o Gabriel (gabiruh) criaram um jeito legal para
distribuir a versão linux do agente da b-datum, e todo o código está aberto
em:
https://github.com/b-datum/b-datum-linux

Eu sei que ele usa o https://metacpan.org/pod/App::FatPacker para pegar
todos os modulos que não são core, mas que são pure-perl, e a partir dai, o
fatpacker junta todos os modulos na fatlib, então você pode ter quantos
modulos PP você quiser.

Mas você ainda tem que cuidar dos modulos que dependem de binarios, e de
alguns modulos que alguns OS mudam o arquivo do core do perl (medo)

Para os modulos binarios, na hora de montar o .deb por exemplo, você coloca
o modulo binario que você precisa, como dependencia. Neste caso, alguem já
precisa ter feito a gentiliza de cria-lo para você.

https://github.com/b-datum/b-datum-linux/blob/master/linux/b-datum-linux.spec
https://github.com/b-datum/b-datum-linux/tree/master/linux/debian
https://github.com/b-datum/b-datum-linux/blob/master/macos/com.bdatum.backup.mac.plist

Eu não lembro exatamente como ele faz para gerar cada release e soltar no
github, mas ai da até pra colocar lá
https://github.com/b-datum/b-datum-linux/releases




2014-08-08 22:19 GMT-03:00 Rodrigo Mosconi (perl) p...@mosconi.mat.br:




 Em 8 de agosto de 2014 15:14, Samir Cury samircu...@gmail.com escreveu:

 Perlssoal,

 Estou testando como um modulo que escrevi instala em um CentOS 6 puro,
 para que no fim eu me livre do selo works on my machine.

 Percebi que o CPAN vai sofrer um pouco se nao houver expat-devel e
 gcc instalados no sistema. Pode-se argumentar que e fora do escopo do
 CPAN, resolver problemas como este.

 O que me faz sentir falta do Slackware, que ja vinha bem completo e era
 so alegria.

 O que pensei em fazer e um RPM para o Fedora/CentOS que contem estas
 dependencias. Beleza, dai o cara pode usar yum install perl-package-name ou
 yum install 'perl(Package::Name)'.

 Mas me deixa nervoso ter algo no CPAN que nao seria instalado
 perfeitamente pelo CPAN na distribuicao padrao. Tenho quase certeza que o
 maximo que posso fazer e deixar um warning gigante no POD, mas queria
 conferir com voces.

 Se precisarem, o modulo e HTCondor::Queue::Parser. Por acidente achei o
 report no CPAN Testers, que parece bem tranquilo :


 http://www.cpantesters.org/distro/H/HTCondor-Queue-Parser.html?oncpan=1distmat=1version=0.04

 Talvez o ambiente deles ja resolve esses problemas. Mas por
 perfeccionismo quero que o modulo instale sem problemas no CentOS padrao.

 Abracos,
 Samir


 Os módulos Perl provenientes do CPAN podem ser obtidos pela ferramentas
 cpanspec ou cpan2rpm.

 A primeira gera o arquivo .spec que permitirá a criação dos RPM e SRPM.

  A segunda não cheguei a usar/testar.



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] nota de falecimento

2014-05-10 Por tôpico Renato Santos
Vish vei, que bad

:-\

Pã
On May 10, 2014 8:32 PM, Thiago Rondon thi...@aware.com.br wrote:

 Tristeza... Como pode
 Em 10/05/2014 19:18, breno br...@rio.pm.org escreveu:

 Oi pessoal,

 é com muita tristeza e saudade que venho comunicar o falecimento de
 nossa querida amiga Diana Rosa.

 Diana começou a frequentar a comunidade nos encontros sociais da Rio
 Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo
 e ensinando. Tímida mas sempre animada, ela gostava de contar como, na
 época em que trabalhava com Java, implementou rapidamente um one-liner
 em Perl para corrigir um bug enquanto seus colegas ainda estavam
 desenhando 19 quadrinhos de UML para representar o problema.
 Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual.

 A di, como era conhecida pelos amigos, também adorava canto lírico e
 era uma excelente pintora. Uma de suas obras, feita para homenagear um
 amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua
 Alice, em frente ao local onde fizemos tantos encontros sociais da
 comunidade (e onde provavelmente faremos o próximo).

 Ainda não temos muitas informações, mas ao que parece ela não estava
 se sentindo bem ontem à noite, deitou para descansar e, infelizmente,
 não acordou. Ela nos deixa aos 27 anos.

 Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a
 partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro
 será amanhã (11/05) às 11:00.


 Nossos sentimentos hoje vão para toda a família e amigos.

 breno
 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm


 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm

___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor

2014-04-29 Por tôpico Renato Santos
Cara, café não se pode ferver! seu café deve ser 'duro'


2014-04-29 19:01 GMT-03:00 Blabos de Blebe bla...@gmail.com:

 Enquanto meu café ferve, aqui vale uma reflexão:

 Boas práticas é um conceito flutuante.

 Perl é uma linguagem extremamente rica e se desenvolvimento bastante
 dinâmico. O que era boa prática quando eu aprendi, já não é boa prática
 hoje. As coisas mudam.

 http://perldoc.perl.org/perlhist.html

 Embora muita gente fale que Perl é pré-histórico, a versão mais atual foi
 lançada em janeiro. Se você bobear, você que fica pré-histórico.

 []'s




 2014-04-29 18:52 GMT-03:00 Blabos de Blebe bla...@gmail.com:

 Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  que Modulo::funcao dispensa declarar o construtor.

 Não dispensa. Não tem nada a ver. Não misture as coisas.

 Construtor é um conceito associado a um método especial utilizado para
 inicializar objetos, ou seja, quando você está utilizando uma interface
 orientada a objetos.

 Em C++, o Construtor tem que ser um método cujo nome é o nome da classe.

 Em Python é outro padrão.

 Em Perl isso é livre, um construtor, ou seja um inicializador de objetos
 pode ser qualquer método que eventualmente invoque a sub bless().

 http://perldoc.perl.org/functions/bless.html

 Em Perl convencionamos, pra ninguém ficar louco, que o construtor
 chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso.

 Modulo::funcao() é uma chamada 'procedural' aplicando o namespace
 completo FQN. Não tem nada a ver com objetos, ou construtores.

 ***

 No seu caso, como bem observado pelo Junior, o que você quer é não ter
 que passar o namespace completo, por isso o uso do Exporter, que nada mais
 faz do que tornar a sua função conhecida no namespace atual.

 Exporter também não tem nada a ver com objetos.

 A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por
 default. Nesse caso, ao usar o seu módulo você precisa fazer:

 use Modulo qw{ funcao };

 Aqui, boa prática significa basicamente, vou tormar o cuidado de
 exportar apenas o necessário pra não correr risco de dar conflito com outra
 função de mesmo nome de outro módulo.

 Mas é só uma politica de boa vizinhança, não quer dizer,
 necessariamente, errado. Depende do seu contexto.

 ***

 Como em Perl as coisas são mais livres, você vai ver casos de um package
 que tem construtor, métodos *E* funções comuns, ou seja, tanto uma
 interface OO quanto procedural. Exemplo:
 https://metacpan.org/pod/String::Trigram

 Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma
 interface OO *E* uma interface procedural, pra ficar ao gosto do cliente
 escolher. Outro exemplo: https://metacpan.org/pod/CGI

 Por essas e outras, *EU*, acho meio confuso ter Perl como primeira
 linguagem, pois ela te dar liberdades que em não tendo todos os conceitos
 bem sedimentados, *pode* confundir.

 O importante é, em estar estudando, não parar no estágio ah consegui
 fazer mas sim prosseguir pelo menos até o ah, entendi como funciona.

 []'s




 2014-04-29 18:32 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com:

  Funcionou da forma que o Junior passou.

 Obrigado.

 Experimentei fazer o dumper como o Bablos falou. Realmente são formas
 diferentes, sendo que Modulo::funcao dispensa declarar o construtor.

 --
 From: juniiior...@gmail.com
 Date: Tue, 29 Apr 2014 18:15:00 -0300

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor

 Hi.

 Em 29 de abril de 2014 18:07, Blabos de Blebe bla...@gmail.comescreveu:

 Só mais uma coisa,

 Isso não tem nada a ver com Exporter.

 []'s


 Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la
 possível ser chamada à partir de outro script bastando dar um use no
 módulo, e não como invocar um método estaticamente como eu pensei.

 Creio que o jeito mais roots seria:








 *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA=
 (qw(Exporter));@EXPORT = qw(acp); sub acp {*

 *...*
 *}*
 1;

 Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a
 função acp() estará acessível, assim como no Math::Prime::Util.

 []'s

  ___

 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm





 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor

2014-04-29 Por tôpico Renato Santos
** FLAME WARR***
C++ e Delphi ?

linus torvalds discorda disso!

http://article.gmane.org/gmane.comp.version-control.git/57918




2014-04-29 20:02 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com:

  ter Perl como primeira linguagem
 Esse foi meu feliz erro.
 Sofro com alguns problemas de boas praticas mas em questão de logica pura
 eu m dou bem.
 Eu diria que quem quer aprender logica deveria aprender Perl.
 Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar
 aprender boas praticas.



 Blabos de Blebe bla...@gmail.com escreveu:

  Mas ok, não é uma boa prática...


 2014-04-29 19:15 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  café deve ser 'duro'

  TimToady!!!


 2014-04-29 19:12 GMT-03:00 Renato Santos renato.c...@gmail.com:

  Cara, café não se pode ferver! seu café deve ser 'duro'


 2014-04-29 19:01 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  Enquanto meu café ferve, aqui vale uma reflexão:

  Boas práticas é um conceito flutuante.

  Perl é uma linguagem extremamente rica e se desenvolvimento bastante
 dinâmico. O que era boa prática quando eu aprendi, já não é boa prática
 hoje. As coisas mudam.

  http://perldoc.perl.org/perlhist.html

  Embora muita gente fale que Perl é pré-histórico, a versão mais atual
 foi lançada em janeiro. Se você bobear, você que fica pré-histórico.

  []'s




 2014-04-29 18:52 GMT-03:00 Blabos de Blebe bla...@gmail.com:

  Pacman, copião :)


 2014-04-29 18:50 GMT-03:00 Blabos de Blebe bla...@gmail.com:

   que Modulo::funcao dispensa declarar o construtor.

  Não dispensa. Não tem nada a ver. Não misture as coisas.

  Construtor é um conceito associado a um método especial utilizado para
 inicializar objetos, ou seja, quando você está utilizando uma interface
 orientada a objetos.

  Em C++, o Construtor tem que ser um método cujo nome é o nome da classe.

  Em Python é outro padrão.

  Em Perl isso é livre, um construtor, ou seja um inicializador de objetos
 pode ser qualquer método que eventualmente invoque a sub bless().

  http://perldoc.perl.org/functions/bless.html

  Em Perl convencionamos, pra ninguém ficar louco, que o construtor
 chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso.

  Modulo::funcao() é uma chamada 'procedural' aplicando o namespace
 completo FQN. Não tem nada a ver com objetos, ou construtores.

  ***

  No seu caso, como bem observado pelo Junior, o que você quer é não ter
 que passar o namespace completo, por isso o uso do Exporter, que nada mais
 faz do que tornar a sua função conhecida no namespace atual.

  Exporter também não tem nada a ver com objetos.

  A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por
 default. Nesse caso, ao usar o seu módulo você precisa fazer:

  use Modulo qw{ funcao };

  Aqui, boa prática significa basicamente, vou tormar o cuidado de
 exportar apenas o necessário pra não correr risco de dar conflito com outra
 função de mesmo nome de outro módulo.

  Mas é só uma politica de boa vizinhança, não quer dizer,
 necessariamente, errado. Depende do seu contexto.

  ***

  Como em Perl as coisas são mais livres, você vai ver casos de um package
 que tem construtor, métodos *E* funções comuns, ou seja, tanto uma
 interface OO quanto procedural. Exemplo:
 https://metacpan.org/pod/String::Trigram

  Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma
 interface OO *E* uma interface procedural, pra ficar ao gosto do cliente
 escolher. Outro exemplo: https://metacpan.org/pod/CGI

  Por essas e outras, *EU*, acho meio confuso ter Perl como primeira
 linguagem, pois ela te dar liberdades que em não tendo todos os conceitos
 bem sedimentados, *pode* confundir.

  O importante é, em estar estudando, não parar no estágio ah consegui
 fazer mas sim prosseguir pelo menos até o ah, entendi como funciona.

  []'s




 2014-04-29 18:32 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com:

  Funcionou da forma que o Junior passou.

  Obrigado.

  Experimentei fazer o dumper como o Bablos falou. Realmente são formas
 diferentes, sendo que Modulo::funcao dispensa declarar o construtor.

  --
 From: juniiior...@gmail.com
 Date: Tue, 29 Apr 2014 18:15:00 -0300

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor

Hi.

 Em 29 de abril de 2014 18:07, Blabos de Blebe bla...@gmail.com escreveu:

 Só mais uma coisa,

  Isso não tem nada a ver com Exporter.

  []'s


 Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la
 possível ser chamada à partir de outro script bastando dar um use no
 módulo, e não como invocar um método estaticamente como eu pensei.

 Creio que o jeito mais roots seria:








 *package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA=
 (qw(Exporter)); @EXPORT = qw(acp); sub acp {*

 *... *
 *}*
 1;

  Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função
 acp() estará acessível, assim como no Math::Prime::Util.

  []'s

Re: [Rio-pm] alguma diferença

2014-04-11 Por tôpico Renato Santos
http://blogs.perl.org/users/michael_g_schwern/2011/03/and-the-fastest-oo-accessor-is.html


2014-04-11 17:00 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com:

 De fato, percebi isso. Mas então o Class::Accessor não traz nada de novo?
 Como já uso o Moose não vi vantagem nenhuma no Class::Accessor.

 --
 From: tiago.pecze...@gmail.com
 Date: Fri, 11 Apr 2014 16:37:59 -0300
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] alguma diferença

 Moose tem muito mais features (lazy, delegators, roles) e plugins (
 procure por MooseX:: ) do que o Class::Accessor, fora os hooks after /
 before / around.

 Moo é um subset do Moose que também tem muito mais features que o
 Class::Accessor.


 2014-04-11 16:33 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com:

 Monges,

 riam o quanto quiserem mas conheci hoje o Class::Accessor.
 Minha dúvida é: Qual a diferença dele e do Moose?

 Ao primeiro ver me parece a mesma coisa.

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Tiago B. Peczenyj
 Linux User #405772

 http://about.me/peczenyj

 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes

2014-04-04 Por tôpico Renato Santos
Não sei quanto ao Fedora em especifico, mas geralmente, se você não esta
instalando os pacotes usando local::lib ou perlbrew, você pode, sem querer,
acabar instalando módulos novos em cima dos módulos do sistema, o que
poderia, teoricamente, quebrar o sistema,

é um pouco mais grave quando o sistema alterou o fonte de alguns módulos do
perl-core, pois ai quando você atualiza, você remove essa alteração e ai
começa as loucuras.

Você pode dar uma olhada no https://metacpan.org/pod/local::lib
pois ele cria um ambiente, que quando você rodar o programa cpan, ele vai
instalar na pasta ~/perl5 evitando conflitos com o sistema.

Com ele, você continua usando o mesmo binário do perl do sistema, porém,
com as libs apontando para carregar antes em ~/perl5.


Já com perlbrew (http://sao-paulo.pm.org/equinocio/2011/set/3) você compila
uma versão do perl para um determinado usuário (ou vários) totalmente
independente do perl do SO.

Ai você pode instalar os módulos em cada versão do perl separadamente.

Todos os módulos feitos puramente em perl, teoricamente, funcionam em
todas plataformas que o perl é possivelmente compilado.

Porém, uma boa parte dos módulos fazem uso de XS e link externo com outras
libs.

Esse não parece ser o caso do CouchDB::Client, pois olhando o código por
cima, ele se comunica com o CouchDB via HTTP.

Mas é o caso do SDL, por exemplo, ou DBD::Pg (que precisa saber onde ta a
lib do postgres)

Ai criaram os pacotes que começam com Alien:: que prepara o ambiente,
compila e linka os modulos, ex: Alien::SDL



2014-04-04 15:24 GMT-03:00 Samir Cury samircu...@gmail.com:

 E ai pessoal,

 Acabei de passar por um pequeno problema com o CPAN e achei uma solucao
 interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do
 CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e
 bom/ruim para o ecossistema.

 Entao, o problema foi quando tentei cpan install CouchDB::Client. Que
 funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou
 em algum modulo referente a testes, que dependia do Module::Build que
 tambem falhou.

 Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de
 modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao
 gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas
 acabei de achar um macete :

 yum install 'perl(Module::Build)'

 O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi
 instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia.
 Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi
 tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em
 consertar testes :-).

 Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das principais
 desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba nao
 sabendo o que o Yum/Apt instalou. Procede? Existe algum efeito colateral
 grave conhecido?

 Abracos,
 Samir

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes

2014-04-04 Por tôpico Renato Santos
Samir, o problema não é um teste seu quebrar, isso seria bom!

Ruim é quando algo do sistema feito em perl quebra, e você só vai saber
disso quando o SO bootar pela metade, num caso ruim.


2014-04-04 16:35 GMT-03:00 Bruno Buss bruno.b...@gmail.com:

 Você poderia manter um setup do local::lib/perlbrew que fosse
 compartilhado pelos usuários do seu servidor... não e' porque estamos usado
 algum desses, que precisa ser per-user a instalação de cada um :-)
 Talvez seja necessário configurar algumas variáveis de ambiente pros
 usuários, mas isso não me parece ser um problema muito difícil, certo? ;)

 [ ]'s
 Buss

 2014-04-04 16:14 GMT-03:00 Samir Cury samircu...@gmail.com:

 Interessante.

 Agora, se olharmos de um ponto de vista mais sysadmin -- voce *quer*
 que os modulos estejam disponiveis system-wide (todos usuarios/ambientes) e
 nao se importa tanto com as versoes especificas dos modulos -- porque a
 principio a maioria das aplicacoes serao compativeis com uma faixa grande
 de versoes de cada modulo.

 (acredito que da menos trabalho pensar assim e consertar individualmente
 o que quebrar, do que fazer um bootstrap pra cada aplicacao pra ter certeza
 que funcionou, nao respira)

 Seria o CPAN puro como root ainda sim a melhor opcao neste caso?

 Valeu pela dica dos modulos dos pacotes sobre-escritos. Realmente e para
 se considerar. No entanto, nao vejo tanto mal de ter o mesmo modulo
 presente, outra versao. Concordo que e tosco ter rpm -qa | grep Modulo
 dizendo uma coisa e quando voce carrega o modulo ser outra.

 Quando o RPM for desisntalado deve remover o arquivo, dai o CPAN
 provavelmente vai se perder. Mas enquanto nao remover nada deve ser
 ~tranquilo.

 O que estou tentando entender e - qual a melhor maneira de configurar um
 sistema padrao com ferramentas padrao (cpan, rpm, apt). Pelo visto o preco
 de eventuais gambiarras como a que descrevi nao causaria mais problemas do
 que o tempo gasto debugando o teste que nao passou no CPAN. Indesejavel,
 mas nao fatal.

 Pelo que entendi no melhor dos mundos -- da instalacao padrao, voce
 escolhe entre 2 caminhos :

   * usa CPAN como root - se um teste quebrar, vai perder um tempo
   * usa RPMs para tudo - se nao existir um pacote para o modulo, vai ter
 que comecar a sujar o sistema com modulos instalados pelo CPAN

 E tenta nao misturar.

 Abs


 2014-04-04 11:48 GMT-07:00 Blabos de Blebe bla...@gmail.com:

 Olá,

 Normalmente eu evito mexer no Perl do sistema. O fedora, inclusive, é
 historicamente bastante hostil ao lidar com o Perl, diga-se de passagem.

 Nos meus projetos, eu procedo da seguinte forma:

 1) Instalar perlbrew*
 2) Instalar a versão do Perl que eu vou usar**
 3) Instalar o cpanm (App::cpanminus)
 4) se máquina de desenvolvimento então
 instalar Carton e Dist::Zilla
 end-se

 Daí, para os meus módulos ou aplicações, faço o gerenciamento de pacotes
 com Carton, que me deixa travar a versão exata*** de cada módulo.

 Para os módulos não é necessário, mas para as aplicações, o carton
 permite que você empacote todas as dependências em um diretório vendor/,
 que você pode fazer um tar e subir para aquele servidor de produção que não
 sai pra internet, e então instalar normalmente, de forma que mesmo pacotes
 com XS funcionem. O carton se empacotes junto, inclusive, para o caso da
 máquina destino não ter carton instalado.

 Assim eu tenho o controle exato de cada versão de cada pacote.

 O CPAN é fantástico, sempre foi, mas eu diria que dá pra dividi-lo em
 duas eras: antes e depois do Carton.



 * Curiosamente hoje, a instalação do Perlbrew falhou num debian 6 que eu
 to configurando e eu precisei instalar o pacote Devel::PatchPerl
 diretamente no sistema com o cpan tradicional (root).

 ** O drawback é que eu preciso de acesso ao compilador.

 *** Sim, raramente acontece, mas eu já precisei achar uma combinação X
 de versões pra funcionar redondo, mas nada além de editar o cpanfile e
 rodar carton install denovo.

 []'s


 2014-04-04 15:24 GMT-03:00 Samir Cury samircu...@gmail.com:

 E ai pessoal,

 Acabei de passar por um pequeno problema com o CPAN e achei uma solucao
 interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do
 CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e
 bom/ruim para o ecossistema.

 Entao, o problema foi quando tentei cpan install CouchDB::Client. Que
 funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou
 em algum modulo referente a testes, que dependia do Module::Build que
 tambem falhou.

 Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes
 de modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao
 gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas
 acabei de achar um macete :

 yum install 'perl(Module::Build)'

 O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi
 instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia.
 Porem voltando para o CPAN 

Re: [Rio-pm] Configuração de usuário não root no cpan Perl Roll em Rocks Cluster

2014-01-30 Por tôpico Renato Santos
Posso estar falando besteira, mas da pra você configurar o perlbrew também
pra ser compartilhado. Mas aí quando um usuário instalar um módulo, todos
os outros vão enxergar esse módulo também
On Jan 30, 2014 12:02 PM, Nicole Scherer bionica2007-p...@yahoo.com
wrote:

 Oi Stanislaw,

 era exatamente isso que eu queria evitar, ter que invocar o local::lib
 pelo profile, pois assim, teria que instalá-lo em todos os nós do cluster,
 e isso seria uma outra acrobacia, devido a forma que o rocks funciona.
 Vou pensar um uma estratégia para colocar no .bashrc do usuário durante a
 configuração, como deveria ter sido feito pelo FirstTime.pm, mas não foi.
 Ainda não entendi por que não está funcionando.

 De toda forma, muito obrigada

 Abraços,
 Nicole



   Em Quinta-feira, 30 de Janeiro de 2014 11:46, Stanislaw Pusep 
 creakt...@gmail.com escreveu:
  Isso mesmo; na primeira vez em que perl -Mlocal::lib roda ele cria os
 diretórios necessários. Se salvar as variáveis de ambiente, não precisa
 rodar nunca mais.
 Entretanto, as variáveis serão diferentes para cada usuário. Para melhorar
 a automação, basta colocar no final do /etc/profile (sim, o do sistema):
 eval $(perl -Mlocal::lib). Desse jeito os usuários automagicamente terão
 local::lib configurado ao fazer o login :)


 2014-01-30 Nicole Scherer bionica2007-p...@yahoo.com

 Obrigada, Stanislaw!

 Então o usuário só precisará rodar o perl -Mlocal::lib uma única vez e
 colocar este output no .bashrc ou .profile, certo? Tendo feito isso, ele
 nunca mais precisará invocar o local::lib, ou terá que fazer isto toda vez
 que for instalar novos pacotes? Com as variáveis de ambiente definidas
 ainda preciso do local::lib?

 Abraços,
 Nicole




   Em Quinta-feira, 30 de Janeiro de 2014 11:06, Stanislaw Pusep 
 creakt...@gmail.com escreveu:
  Olá Nicole! O processo que eu descrevi é o de bootstrapping; se o Perl
 do seu /opt/perl já tiver local::lib instalado como root, não precisa dessa
 etapa.
 O que acontece se você rodar perl -Mlocal::lib?
 Aqui, por exemplo, aparece:

 PATH=/Users/stas/perl5/bin${PATH+:}$PATH;
 export PATH;
 PERL5LIB=/Users/stas/perl5/lib/perl5${PERL5LIB+:}$PERL5LIB;
 export PERL5LIB;

 PERL_LOCAL_LIB_ROOT=/Users/stas/perl5${PERL_LOCAL_LIB_ROOT+:}$PERL_LOCAL_LIB_ROOT;
 export PERL_LOCAL_LIB_ROOT;
 PERL_MB_OPT=--install_base \/Users/stas/perl5\;
 export PERL_MB_OPT;
 PERL_MM_OPT=INSTALL_BASE=/Users/stas/perl5;
 export PERL_MM_OPT;

 Se você colar o output produzido no seu sistema para o .bashrc/.profile, o
 Perl se sentirá em casa no $HOME :)
 O cpanminus é opcional; única coisa absolutamente necessária é que perl
 -Mlocal::lib seja rodado para inicializar o $HOME/perl5, e que as
 variáveis de ambiente estejam definidas do jeito que o perl -Mlocal::lib
 diz.


 2014-01-30 Nicole Scherer bionica2007-p...@yahoo.com

 Obrigada Stanislaw e Aureliano!

 Aureliano, a bioinformática está tomada por mulheres :-) Já foste no
 X-Meeting?

 Stanislaw,

 como gestora do cluster, meu objetivo é deixar para o usuário o sistema
 pronto para que ele possa instalar seus módulos localmente sem ter que
 fazer acrobacias. Eu já instalei o local::lib no sistema como root, então
 não seria necessário que o usuário instalasse novamente, correto? Ou ele
 precisaria fazer sua própria instalação?

 Quando o usuário faz sua primeira incursão no cpan e realiza a
 configuração, aparece a seguinte mensagem:


 ---
 local::lib is installed. You must now add the following environment
 variables
 to your shell configuration files (or registry, if you are on Windows) and
 then restart your command line shell and CPAN before installing modules:


 Would you like me to append that to /home/hpcst06/.bashrc now? [yes]


 ---

 Porém, como podes ver, o following environment variables está vazio e
 nenhuma modificação é feita no .bashrc

 Esta etapa é que deveria definir as tais variáveis de ambiente. Não
 entendo por que não está funcionando.
 Desta forma, a única solução seria mesmo acrescentar estas linhas ao
 .profile a força.

 Uma opção que tenho é criar toda a árvore de diretórios do perl e do cpan
 e colocar no /etc/skel para ser criada junto com o usuário, mas talvez isso
 seja demais, não?

 Qual o objetivo de instalar o App::cpanminus?
 A partir daí o usuário deve usar cpanm ao invés de cpan?

 Outra dúvida, se eu não instalar o local::lib nos nós do cluster (só
 instalei no frontend), pode dar problema na hora de executar os programas
 em paralelo? Digo, o local::lib só é chamado na instalação de módulos e na
 configuração do ambiente local, não é usado na execução dos módulos, certo?
 O home do usuário é montado em cada nó durante a execução, então o perl vai
 executar com as variáveis de ambiente já definidas pelo usuário, então não
 vai precisar executar o 

Re: [Rio-pm] [HELP] Controlando comandos do sistema

2013-11-25 Por tôpico Renato Santos
você tem que ignorar o sinal de KILL do sistema.


para saber mais sobre os sinais, http://perldoc.perl.org/perlipc.html

algo para ignorar pra sempre,


$SIG{KILL} = 'IGNORE';



2013/11/25 Aureliano Guedes guedes_1...@hotmail.com

 Boa tarde,
 Monges.

 Gostaria de saber se existe a possibilidade de eu controlar comandos do
 sistema?

 Bom, quando estamos executando algum script, se eu quiser encerra-lo a
 qualquer momento basta que eu tecle Ctrl + C.
 Mas e se eu quisesse, especificamente em um script, determinar que seu
 encerramento fosse após apertar 3 vezes consecutivas Ctrl + C, ou então ao
 apertar Ctrl + shift + C, ou sei lá, qualquer outro comando que eu queira,
 como deveria fazer?

 Desde já grato.

 Att,
 Aureliano Guedes

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Emissão de NF-e

2013-10-28 Por tôpico Renato Santos
Hmm,

e um plus, sobre o B:BR:NFe::RPS::TXT é que ele é apenas para o estado de
São Paulo

E o TXT tem que ser enviado manualmente pelo contador/responsavel.



Até onde eu sei, o mais completo em linguagens não java nem .net é o
http://www.nfephp.org/

porém nunca usei!



2013/10/28 Aureliano Guedes guedes_1...@hotmail.com

 Bom, eu já havia lido a respeito, e vi que é bem complicadinho, pois
 existe muita burrocracia (regrinha), alem de que a maioria dos
 desenvolvedores que conheci que mechem com isso falaram que não há consenso
 entre os órgãos.
 A exemplo disso é o código das cidades, o CEP é o modelo mais conhecido
 para identificar uma cidade, mas na receita federal são identificados por
 outro número, e no IBGE outro.

 Em Delphi, existe um componente chamado AcBR (
 http://acbr.sourceforge.net/drupal/?q=node/36) não é um emissor, mas
 adianta o trabalho e muito.
 No CPAN tem um módulo chamado Business::BR::NFe::RPS::TXT (
 http://search.cpan.org/~rentocron/Business-BR-NFe-RPS-TXT-0.0124/lib/Business/BR/NFe/RPS/TXT.pm),
 e só.

 Pensei em tentar desenvolver um módulo para facilitar o desenvolvimento de
 emissores de NF-e em Perl, pois acho que ficaria muito bom já que tem
 empresas que emitem um volume assustador de notas.

 O emissor gratuito do governo trava totalmente quando você emite mais de
 30 notas por dia, digo pois conheço um cara mão-de-vaca, que só usa ele e
 passa dificuldades por conta disso.

 Quanto a ser pago, vou verificar, pois também acho um absurdo se fosse
 (pago para receita, não para empresas que desenvolvem essas ferramentas),
 contudo o emissor gratuito do governo não é pago, o que me faz pensar que
 eu tenho direito de desenvolver meu próprio emissor sem precisar pagar nada
 pra ninguém.



 --
 Date: Sun, 27 Oct 2013 22:54:21 -0200
 From: andregarciacarne...@gmail.com
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] Emissão de NF-e


 Aureliano

 Acho difícil que exista algo desse tipo em qualquer linguagem, que não
 seja proprietário. Mesmo para poder usar a API via webservice é preciso
 está credenciado pela receita federal, e o serviço, se não me engano, é
 pago! O que acho um absurdo, mas isso não importa!


 Achei esse material aqui num fórum. Não sei se está atualizado Espero que
 seja útil!

 http://www.guj.com.br/posts/downloadAttach/4710.java


 Fuçando mais um pouquinho achei isso aqui:

 http://www.ticontrole.gov.br/portal/page/portal/ticontrole/biblioteca


 Por acaso é a origem do documento que encontrei no fórum. Mas não
 encontrei essas coisas no site da receita federal. Provavelmente porque não
 deveria mesmo estar lá!

 Proost!



 2013/10/27 Aureliano Guedes guedes_1...@hotmail.com

 Boa tarde,
 Monges.

 Gostaria de saber se alguém conhece algum módulo voltado para integração
 com a secretaria da fazenda para emissão de nota fiscal eletrônica?

 Obrigado,

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 André Garcia Carneiro
 Software Engineer
 (11)982907780

 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Emissão de NF-e

2013-10-28 Por tôpico Renato Santos
Até onde eu lembro, o maior problema mesmo era conseguir testar se os XML
estavam corretos, pq tem q ter os arquivos de chaves e etc.

eu não entendo bem disso (embora seja o mantedor do modulo haha)

acho que pra pequenas empresas que queiram fazer isso, compensa pagar algum
terceiro.

mas seria bem legal ter em perl, poderia ate virar concorrente dessas
empresas que vendem para pequnas!


2013/10/28 Daniel Vinciguerra dan.vincigue...@gmail.com

 Se alguém iniciar o projeto eu me proponho a contribuir!

 Só deve ser definido bem se o projeto em questão será para nota fiscal
 eletrônica (federal) ou  para notas de serviço (municipal e cada prefeitura
 possui uma implementação).

 Abraço,


 *
 Daniel Vinciguerra*
 Web Solutions Architect and Co-Owner at Bivee
 http://github.com/dvinciguerra http://github.com/dvinciguerra


 2013/10/28 Renato Santos renato.c...@gmail.com

 Hmm,

 e um plus, sobre o B:BR:NFe::RPS::TXT é que ele é apenas para o estado de
 São Paulo

 E o TXT tem que ser enviado manualmente pelo contador/responsavel.

 

 Até onde eu sei, o mais completo em linguagens não java nem .net é o
 http://www.nfephp.org/

 porém nunca usei!



 2013/10/28 Aureliano Guedes guedes_1...@hotmail.com

 Bom, eu já havia lido a respeito, e vi que é bem complicadinho, pois
 existe muita burrocracia (regrinha), alem de que a maioria dos
 desenvolvedores que conheci que mechem com isso falaram que não há consenso
 entre os órgãos.
 A exemplo disso é o código das cidades, o CEP é o modelo mais conhecido
 para identificar uma cidade, mas na receita federal são identificados por
 outro número, e no IBGE outro.

 Em Delphi, existe um componente chamado AcBR (
 http://acbr.sourceforge.net/drupal/?q=node/36) não é um emissor, mas
 adianta o trabalho e muito.
 No CPAN tem um módulo chamado Business::BR::NFe::RPS::TXT (
 http://search.cpan.org/~rentocron/Business-BR-NFe-RPS-TXT-0.0124/lib/Business/BR/NFe/RPS/TXT.pm),
 e só.

 Pensei em tentar desenvolver um módulo para facilitar o desenvolvimento
 de emissores de NF-e em Perl, pois acho que ficaria muito bom já que tem
 empresas que emitem um volume assustador de notas.

 O emissor gratuito do governo trava totalmente quando você emite mais de
 30 notas por dia, digo pois conheço um cara mão-de-vaca, que só usa ele e
 passa dificuldades por conta disso.

 Quanto a ser pago, vou verificar, pois também acho um absurdo se fosse
 (pago para receita, não para empresas que desenvolvem essas ferramentas),
 contudo o emissor gratuito do governo não é pago, o que me faz pensar que
 eu tenho direito de desenvolver meu próprio emissor sem precisar pagar nada
 pra ninguém.



 --
 Date: Sun, 27 Oct 2013 22:54:21 -0200
 From: andregarciacarne...@gmail.com
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] Emissão de NF-e


 Aureliano

 Acho difícil que exista algo desse tipo em qualquer linguagem, que não
 seja proprietário. Mesmo para poder usar a API via webservice é preciso
 está credenciado pela receita federal, e o serviço, se não me engano, é
 pago! O que acho um absurdo, mas isso não importa!


 Achei esse material aqui num fórum. Não sei se está atualizado Espero
 que seja útil!

 http://www.guj.com.br/posts/downloadAttach/4710.java


 Fuçando mais um pouquinho achei isso aqui:

 http://www.ticontrole.gov.br/portal/page/portal/ticontrole/biblioteca


 Por acaso é a origem do documento que encontrei no fórum. Mas não
 encontrei essas coisas no site da receita federal. Provavelmente porque não
 deveria mesmo estar lá!

 Proost!



 2013/10/27 Aureliano Guedes guedes_1...@hotmail.com

 Boa tarde,
 Monges.

 Gostaria de saber se alguém conhece algum módulo voltado para integração
 com a secretaria da fazenda para emissão de nota fiscal eletrônica?

 Obrigado,

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 André Garcia Carneiro
 Software Engineer
 (11)982907780

 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] ES Hoje? Que tal Bar do B?

2013-06-13 Por tôpico Renato Santos
Qual é Marcio, só pq tu nunca pediu licensa pros ratos no gordurinha, o
cara lá pedia!



2013/6/13 Marcio Ferreira marciodesouzaferre...@gmail.com

 Retrospect YAPC??
 Mercadinho no way. Última q fui tive de pedir licensa pra barata sair do
 copo =/




 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768


 2013/6/13 breno br...@rio.pm.org

 Mercadinho? Eu topo!

 2013/6/13 Nuba Princigalli n...@fastmail.fm:
  É a segunda quinta do mês! É dia de ES! Nunca é tarde demais pra puxar a
  thread:
 
  Que tal Bar do B?
 
  Tem blues lá hoje, https://www.facebook.com/bardobonline/about a
 partir de
  9pm.
 
  Abraço,
 
  Nuba
 
 
  --
  Nuba R. Princigalli n...@pauleira.com http://pauleira.com @nprincigalli
  Discipline is not an end in itself, just a means to an end. - King
 Crimson
 
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm
 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [OFF] - Mão de Obra Projetos

2013-06-13 Por tôpico Renato Santos
HAHAHAHAHAHA Aureliano++



2013/6/13 Aureliano Guedes guedes_1...@hotmail.com

 Aleluia, pela divina grassa de Deus eu sou ateu. Amem senhor!

 http://www.youtube.com/watch?v=VgCx2bNxveM

  Date: Thu, 13 Jun 2013 15:16:45 -0300
  From: daniel.oliveira.mantov...@gmail.com

  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] [OFF] - Mão de Obra Projetos
 
  Márcio, o problema é que você é um tipo de profissional que um
  designer (que não tem foco em programação) olhou a sua lógica e
  começou a bater a cabeça na porta de tão absurda que estava. Seus
  ex-colegas de trabalho são testemunhas.
 
  Você fica repetindo esses provérbios que seu pastor falou na igreja,
  porque você não lê um livro inteiro e aprende alguma coisa ?
 
  2013/6/13 Marcio Ferreira marciodesouzaferre...@gmail.com:
   E nao houve desdenha, pelo contrário.
   Como diz o ditado: Corrija um sábio e o fará mais sábio. Corrija um
 tolo e
   o fará teu inimigo!!!
   Sem mais
  
  
   []s,
  
   Marcio Ferreira
   skype: marcio.ferreir4
   (21) 8365-7768
  
  
   2013/6/13 Daniel de Oliveira Mantovani 
 daniel.oliveira.mantov...@gmail.com
  
   Márcio, a sua tentativa de desdenha e o seu comportamento na lista
   depois dos perl mongers terem ajudado você e a sua família mostra que
   você não tem educação.
  
   2013/6/13 Marcio Ferreira marciodesouzaferre...@gmail.com:
OK Mantovani, se seu pai nao te deu educação, nao sou eu a fazer
 isso.
   
Boa sorte!
   
   
   
   
[]s,
   
Marcio Ferreira
skype: marcio.ferreir4
(21) 8365-7768
   
   
2013/6/13 Daniel de Oliveira Mantovani
daniel.oliveira.mantov...@gmail.com
   
Márcio, sua experiência pessoal se limita a ser um simples
desenvolvedor PHP. Deixe as pessoas sérias interessadas se
 colocarem.
Mas não fiquei triste, isso não é uma piada é a sua situação atual.
   
2013/6/13 Marcio Ferreira marciodesouzaferre...@gmail.com:
 Mantovani,

 não entendi o objetivo do seu e-mail, é captação de projeto?
 Se for isso recomendo vc usar o linkedin!

 Pessoal, estou com uma equipe de quatro pessoas boas. Uma delas
 é a
 pessoa mais inteligente que eu conheço,


 Detalhe melhor sua equipe, a pessoa mais inteligente que
 conheço é
 tão
 arbitrário quanto dizer hoje é o dia mais ensolarado da minha
 vida.
 Da forma que está escrito soa infantil e sem peso comercial.
 Diga a experiência de cada um, no que sua equipe foco(sem tiver),
 projetos
 que já desenvolveram, etc.


 eu consigo um preço incrível na hora.


 Isso é um detalhe sensível, e acredito q varie com o projeto, ou
 seja,
 parece SPAM ou algo do genero, evite essa abordagem assim tão
 aberta.


 O desenvolvimento será em Java e dependendo do problema
 poderá ser usado qualquer outra linguagem.


 Se o desenvolvimento é em Java, não é interessante enviar numa
 lista
 de
 Java? Linkedin mais uma vez!


 Se alguém tem algum projeto interessante e quiser fazer um
 teste me
 manda um e-mail pessoal, daniel.oliveira.mantov...@gmail.com


 O que é projeto interessante?


 E encare que o fato de você enviar publicamente, está aberto de
 ser
 alvo
 de
 piada, não se preocupe com isso, é uma piada ;-)

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm
   
   
   
--
   
-dom
   
--
   
IBM - Business Analytics Optimization Consultant
Daniel Mantovani +5511 8538-9897
XOXO
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm
   
   
   
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm
  
  
  
   --
  
   -dom
  
   --
  
   IBM - Business Analytics Optimization Consultant
   Daniel Mantovani +5511 8538-9897
   XOXO
   ___
   Rio-pm mailing list
   Rio-pm@pm.org
   http://mail.pm.org/mailman/listinfo/rio-pm
  
  
  
   ___
   Rio-pm mailing list
   Rio-pm@pm.org
   http://mail.pm.org/mailman/listinfo/rio-pm
 
 
 
  --
 
  -dom
 
  --
 
  IBM - Business Analytics Optimization Consultant
  Daniel Mantovani +5511 8538-9897
  XOXO
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Submissão de Palestras para o YAPC::Brasil

2013-06-04 Por tôpico Renato Santos
Eu perguntei pro mst ontem, ele disse que nunca foi convidado, e quando foi
avisado o t0m foi no ligar dele haha
Em 04/06/2013 13:01, Thiago Rondon thi...@aware.com.br escreveu:


 Eu gostaria muito de ver o MST no Yapc::Brasil ! Mas, todo os demais são
 excelente também.

 Felipe, dá uma 'cutucada' no Renato e no Breno para convidarem estes
 caboclos presencialmente lá!

 Abs!
 -Thiago Rondon


 On Tuesday, June 4, 2013 at 2:57 PM, Renato Santos wrote:

  E o mst também manja só catalyst
  Em 04/06/2013 12:44, Tiago Peczenyj tiago.pecze...@gmail.com (mailto:
 tiago.pecze...@gmail.com) escreveu:
   minhas sugestões
  
   Tom Christiansen (tchrist)
   - motivo: excelente palestrante, manja de unix e unicode pra caralho,
 fala portugues!!
   Ricardo Signes (RJBS)
   - motivo: Dist::Zilla. Email. etc
   Obra
   - motivo: ele quer conhecer o Brasil. Nhe.
   Stevan Little (stevan)
   - motivo: Moose
   Matt S Trout
   - motivo: Moo
  
   eu colocaria o Chromatic e o Marc Lehmann (
 http://search.cpan.org/~mlehmann/) ai mas não sei se eles são sociaveis.
  
  
   2013/6/4 Felipe da Veiga Leprevost leprevos...@gmail.com (mailto:
 leprevos...@gmail.com)
Olá pessoal
   
Gostaríamos de convidar a todos a submeterem suas palestras no site
 do nosso evento. Estamos aos poucos montando a grade de apresentações e
 para que possamos divulgar o evento para as demais comunidades seria
 importante que tenhamos material na grade.
   
Peço que utilizem o formulário do site do evento
 http://2013.yapcbrasil.org.br para a submissão.
   
Lembrando novamente que esse é o evento mais importante da
 comunidade Perl, e que possui visibilidade não só nacional, mas
 internacional também. Apesar de estarmos organizando ele aqui em Curitiba,
 quem realmente faz o evento é a comunidade em si, com a participação de
 todos.
   
Já começamos a enviar os convites para palestrantes de fora do
 Brasil, entre eles:
   
   
Tatsuhiko Miyagawa, responsável por uma enorme contribuição à
 linguagem e sua comunidade com módulos e bibliotecas voltadas à Web, como
 por exemplo o Plack/PSGI.
   
Dr. Karl Glazebrook, professor de Astronomia do Centre for
 Astrophysics  Supercomputing da Universidade Swinburne. O Karl é
 simplesmente a pessoal responsável pela criação do Perl Data Language (PDL).
   
Jason Stajich, professor de Genética e Genômica da Universidade da
 Califórnia. Jason trabalha no desenvolvimento do BioPerl desde 2000 e é
 fundador da Open Bioinformatics Foundation.
   
   
Os nomes podem mudar assim como temos ainda uma lista de pessoas que
 podem ser convidadas, estamos aguardando a resposta de todos, espero que
 isso já possa servir de incentivo =)
   
Também estamos aceitando sugestões de palestrantes a serem
 convidados, por favor enviem seus nomes a mim.
   
Qualquer dúvida ou problemas com a submissão, por favor entrem em
 contato comigo.
   
Abraços a todos.
   
--
Felipe da Veiga Leprevost
www.leprevost.com.br (http://www.leprevost.com.br)
Laboratory for Proteomics and Protein Engineering.
Fiocruz, Brazil.
   
___
Rio-pm mailing list
Rio-pm@pm.org (mailto:Rio-pm@pm.org)
http://mail.pm.org/mailman/listinfo/rio-pm
  
  
  
  
   --
   Tiago B. Peczenyj
   Linux User #405772
  
   http://about.me/peczenyj
   ___
   Rio-pm mailing list
   Rio-pm@pm.org (mailto:Rio-pm@pm.org)
   http://mail.pm.org/mailman/listinfo/rio-pm
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org (mailto:Rio-pm@pm.org)
  http://mail.pm.org/mailman/listinfo/rio-pm



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm

___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] breakpoint

2013-06-04 Por tôpico Renato Santos
$DB::single = 1;

 anywhere in any perl program, and the debugger will break immediately
after it executes that line. This is also a good way (the only way?) to set
a breakpoint in code that will be run at compile time.

http://stackoverflow.com/questions/8920477/how-to-set-breakpoint-on-a-particular-file-in-perl-program


2013/6/4 Marcio Ferreira marciodesouzaferre...@gmail.com

 Andei escrevendo no Visual Studio C# e ~viciei~ em breakpoints, alterar
 coisas em tempo de execução e etc. Conheço o perl -d, mas nao consigo ter a
 mesma sensação. Alguém aqui usa breakpoint? Alguma magia escondida por aí?

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] breakpoint

2013-06-04 Por tôpico Renato Santos
a- e tem debugger no Padre.


On Tue, Jun 4, 2013 at 7:59 PM, Renato Santos renato.c...@gmail.com wrote:

 $DB::single = 1;

  anywhere in any perl program, and the debugger will break immediately
 after it executes that line. This is also a good way (the only way?) to set
 a breakpoint in code that will be run at compile time.


 http://stackoverflow.com/questions/8920477/how-to-set-breakpoint-on-a-particular-file-in-perl-program


 2013/6/4 Marcio Ferreira marciodesouzaferre...@gmail.com

 Andei escrevendo no Visual Studio C# e ~viciei~ em breakpoints, alterar
 coisas em tempo de execução e etc. Conheço o perl -d, mas nao consigo ter a
 mesma sensação. Alguém aqui usa breakpoint? Alguma magia escondida por aí?

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] breakpoint

2013-06-04 Por tôpico Renato Santos
[troll mode]

Escreva seu codigo direito!

[haha]

use DDP; p $foo; exit;



2013/6/4 Marcio Ferreira marciodesouzaferre...@gmail.com

 Uso o vim, vou usar esse cara
 http://vim.sourceforge.net/scripts/script.php?script_id=663

 Na experiência de vocês, maioria fica com o -d?


 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768


 On Tue, Jun 4, 2013 at 9:59 PM, Renato Santos renato.c...@gmail.comwrote:

 a- e tem debugger no Padre.


 On Tue, Jun 4, 2013 at 7:59 PM, Renato Santos renato.c...@gmail.comwrote:



 $DB::single = 1;

  anywhere in any perl program, and the debugger will break immediately
 after it executes that line. This is also a good way (the only way?) to set
 a breakpoint in code that will be run at compile time.


 http://stackoverflow.com/questions/8920477/how-to-set-breakpoint-on-a-particular-file-in-perl-program


 2013/6/4 Marcio Ferreira marciodesouzaferre...@gmail.com

 Andei escrevendo no Visual Studio C# e ~viciei~ em breakpoints, alterar
 coisas em tempo de execução e etc. Conheço o perl -d, mas nao consigo ter a
 mesma sensação. Alguém aqui usa breakpoint? Alguma magia escondida por aí?

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] breakpoint

2013-06-04 Por tôpico Renato Santos
eu realmente não entendi.

Pra mim é muito mais simples ir no meio do código e colocar use DDP; p
$foo; p $bar; [exit, last, next if $xoo... etc..] do que subir o perl com
debug, que vai deixar tudo mais lento, e não apenas na hora do Dumper.

porque assim, geralmente eu não vou alterar nenhum valor, eu só quero saber
oq esta nas variaveis naquele momento e fim! olho o resultado e mudo o
código!

outra coisa,
geralmente, pelo menos com o que eu ando fazendo, é que eu tenho testes!
então os testes passam por todos os lugares do código!

efim, eu disse troll mode antes de falar do dpp..



2013/6/4 Marcio Ferreira marciodesouzaferre...@gmail.com

 ops, (x²-x)/2 ;)


 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768


 2013/6/5 Marcio Ferreira marciodesouzaferre...@gmail.com

 De verdade achei tão sem noção o DDP pro tópico que nem comentei, afinal
 estava falando de breakpoint(parar o processamento e voltar de onde parou)
  =P
 Meu cenário é um processamento complexo e preciso debugar umas varaiveis
 nesse meio tempo, aí rodar um Dumper é ~custoso~ no sentido de demorado e
 pouco eficiente. _Mockar_ também é díficil por ser um problema ~complexo~
 na medida de (x²-x)/x, sendo que x é no minimo 5k, então já viu =P

 Quanto ao uso de IDE, quem usa o vim tem dificuldade de ir pra outro
 editor/IDE, pela filosofia da ferramenta e o gap de aprender outra sempre
 pesa na balança. Perguntei porque achei que fosse mais comum o uso de
 brakpoint. Mas enfim, vou tentar o breakpoint com o vim.



 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768


 2013/6/4 Lindolfo Lorn Rodrigues l...@lornlab.org

 Eu sempre sou da opnião que se deve aprender usar as ferramentas na
 linha de comando e depois analisar se 'compensa' usar uma IDE.
 No caso do git, por exemplo, demorou muito para as IDE's implementarem
 coisas como git rebase e mesmo assim ainda tem gente que só confia no
 rebase da linha de comando.
 Sinceramente tenho mais o costume do debug na base do Data::Dumper como
 o Cron disse :P


 2013/6/4 Renato Santos renato.c...@gmail.com

 [troll mode]

 Escreva seu codigo direito!

 [haha]

 use DDP; p $foo; exit;



 2013/6/4 Marcio Ferreira marciodesouzaferre...@gmail.com

 Uso o vim, vou usar esse cara
 http://vim.sourceforge.net/scripts/script.php?script_id=663

  Na experiência de vocês, maioria fica com o -d?


 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768


 On Tue, Jun 4, 2013 at 9:59 PM, Renato Santos 
 renato.c...@gmail.comwrote:

 a- e tem debugger no Padre.


 On Tue, Jun 4, 2013 at 7:59 PM, Renato Santos 
 renato.c...@gmail.comwrote:





 $DB::single = 1;

  anywhere in any perl program, and the debugger will break
 immediately after it executes that line. This is also a good way (the 
 only
 way?) to set a breakpoint in code that will be run at compile time.


 http://stackoverflow.com/questions/8920477/how-to-set-breakpoint-on-a-particular-file-in-perl-program


 2013/6/4 Marcio Ferreira marciodesouzaferre...@gmail.com

 Andei escrevendo no Visual Studio C# e ~viciei~ em breakpoints,
 alterar coisas em tempo de execução e etc. Conheço o perl -d, mas nao
 consigo ter a mesma sensação. Alguém aqui usa breakpoint? Alguma magia
 escondida por aí?

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] benchmark framework web,

2013-05-17 Por tôpico Renato Santos
acho q nao souberam configurar o web-simple direito.


2013/5/17 Marcio Ferreira marciodesouzaferre...@gmail.com

 Antes de qualquer coisa, post na paz, Ok?

 Fiquei surpreso com o benchmark de Java, Lua e Go estão muito bem =)
 Perl ficou apagado :P
 http://www.techempower.com/benchmarks

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] ambiente stable/patch

2013-04-11 Por tôpico Renato Santos
Que?

Se você quer estar alguma lib no lugar de outra, você pode usar o -I do
perl e passar pra pasta que você modificou o modulo e pronto!
Em 11/04/2013 13:08, Marcio Ferreira marciodesouzaferre...@gmail.com
escreveu:

 Quando vocês contribuem em algum módulo CPAN, como vocês o aparta da
 versão stable instalada?

 Pensei em um uma versão perlbrew pra isso, mas achei um canhão pra matar
 formiga :P

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm

___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Cache RESTfulie

2013-03-11 Por tôpico Renato Santos
*Acho* que você deve criar uma função de entrada, cuja saida seja sempre a
mesma para determinados parametros, e ai você utiliza isso como chave.

vamos supor um REST assim:

   - POST /user
   - PUT /user/$id
   - DELETE /user/$id
   - GET /user
   - GET /user/$id

Você tem que apagar o cache corretamente quando alguem efetuar POST, PUT,
DELETE e fazer leituras (e escritas, caso não exista o cache) no cache no
GET.

Se for exatamente o REST acima, um mundo perfeito, é facil apagar o cache
das URL que são 'pais', por exemplo, editou o nome de um usuario, você tem
que apagar a listagem do usuario e o cache do get do usuario. Limpar toda a
lista dos usuarios pode se tornar um problema se você tem muitas escritas e
o o objeto em questão não estiver no /user (vamos supor que é paginado, ..)

e ai começam os problemas..


2013/3/12 Marcio Ferreira marciodesouzaferre...@gmail.com

 Desculpem, o título devia ser cache RESTful


 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768


 2013/3/12 Marcio Ferreira marciodesouzaferre...@gmail.com

 (Imagina q nao existe varnish, nem nada no proxy, *OK*!)

 Tenho uma mesmo app service rodando em várias instancias balanceadas
 pelo nginx.
 Até aqui tudo bem, mas aí quero fazer cache dos acessos da API.

 penso.em/usar/minha/url como chave chave do Redis, alguém me condena por
 isso?
 Isso não parece ser uma boa prática, porque resolve até certo ponto, não
 resolve se meu serviço aceita parametros via header =/

 Qual pratica recomendada/adotada quando vocês precisam cachear RESTfulie
 a *nível de app*?

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [hackathon] - amanhã(09/03) no starbucks

2013-03-08 Por tôpico Renato Santos
Estou amanhã foi demais :-) dr Who haha
Em 08/03/2013 18:09, Marcio Ferreira marciodesouzaferre...@gmail.com
escreveu:

 Estou amanhã no Starbucks Rio Sul blogando pro Equinócio da SPPM e fazendo
 maluquisses com perl, se alguém quiser juntar =)

 []s,

 Marcio Ferreira
 skype: marcio.ferreir4
 (21) 8365-7768

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm

___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] remaps (was: IDE para Perl)

2013-03-07 Por tôpico Renato Santos
what?

e o ESC foi pra onde?

2013/3/7 Diogo Leal estra...@diogoleal.com

 Já tem algum tempo que alterei o Caps Lock para ser o meu ESC.
 Foi uma das melhores configurações que fiz no meu ambiente.



 Diogo Leal [estranho]
 http://diogoleal.com
 msn | gtalk: estra...@diogoleal.com


 2013/3/7 Nuba Princigalli n...@fastmail.fm:
  Caros,
 
  Vendo isso aqui dá pra entender melhor os keybindings do vim:
  https://en.wikipedia.org/wiki/Esc_key#Uses
 
  Eu vivi com mindinho cansado/dolorido no fim do dia por um certo tempo,
  mas depois dos remaps, nunca mais.
 
  E nem me preocupei em colocar CAPS LOCKS em algum lugar. Foi pro s*. É
  uma posição muito estratégica (home row, ao lado do A) pra uma tecla tão
  pouco útil.
 
  Para quem não quiser sair remapeando, mas quiser manter a mão mais na
  área da home row, fica a dica de que
 
  * TAB é ^I
  * ESC é ^[
 
  :D
 
  Abraço,
 
  Nuba
 
  On Sat, Mar 2, 2013, at 09:02 AM, Gabriel Andrade wrote:
 
  On Mar 1, 2013, at 11:51 PM, Giuliani Sanches 
 giulianisanc...@gmail.com
  wrote:
 
   Quanto ao Emacs faço uma recomendação: faça sua tecla caps lock virar
 um control.
  
   Você pode inverter ela com o control esquerdo (control vira caps,
 caps vira control) ou então fazer com que ela simplesmente seja mais um
 control e migrar o caps para outra tecla como eu fiz no windows com o
 SharpKeys e quero testar o mesmo no Mac.
  
   Leva um tempo para se acostumar mas pode ter certeza, vc estará
 fazendo um bem imenso para suas mãos (eu recomendo essa mudança pra qqer um
 e qqer editor, mas ninguém me escuta :) )
 
  +1
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm
 
 
  --
  Nuba R. Princigalli  n...@pauleira.com  http://pauleira.com
  @nprincigalli
  Discipline is not an end in itself, just a means to an end. - King
  Crimson
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm
 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Spreadsheet::XLSX

2013-01-15 Por tôpico Renato Santos
no warnings =P

ou no warnings 'uninitialized';

2013/1/15 Diana Rosa diana.g.a.r...@gmail.com

 ele le perfeito mas polui o log_error do apache.


 2013/1/15 Tiago Peczenyj tiago.pecze...@gmail.com

 ele gera o warning E não le o xlsx ?

 ou ele lê perfeito mas gera esses warnings?

 On Tue, Jan 15, 2013 at 5:22 PM, Diana Rosa diana.g.a.r...@gmail.com
 wrote:
  Estava usando o modulo Spreadsheet::XLSX para ler arquivos .xlsx. Porem
 para
  arquivos do Libreoffice acontecem estes warnings:
 
  xx.cgi: Use of uninitialized value in hash element at
  /usr/lib/.../Spreadsheet/XLSX.pm line 189., referer: xx.cgi
  xx.cgi: Use of uninitialized value in pattern match (m//) at
  /usr/lib/.../Spreadsheet/XLSX.pm line 190., referer: xx.cgi
 
  Link do bug:
  https://rt.cpan.org/Public/Bug/Display.html?id=79770
 
 
  Existe outro modulo mais aconselhavel para ler xlsx?
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm



 --
 Tiago B. Peczenyj
 Linux User #405772

 http://about.me/peczenyj
 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] PerlBrew mudanças no sistema

2012-12-17 Por tôpico Renato Santos
2012/12/17 Aureliano Guedes guedes_1...@hotmail.com

  Ola, monges.

 Estou usando o Perlbrew no ubuntu 12.04, atualmente a minha versão é a
 5.14.2.

 Sei que com PerlBrew posso instalar n versões do Perl, mas a minha dúvida
 é:
 Se eu instalar a ultima versão do perl, posso desistalar todas as outras
 anteriores, posso manter a mais recente como default sem prejudicar o
 sistema?


vc só deveria remover outras versoes do proprio perlbrew, mas como vc vai
acabar de instalar ele, não vai ter nenhuma.



 E outra dúvida é:
 Tem algum metodo para manter todos os módulos que ja tenho instalados?

vc pode fazer um autobundle do CPAN, mas eu prefiro não fazer isso, porque
geralmente não precisa, prefiro instalar os modulos com *cpanm -n
installdeps .* nos projetos, quando mudo de versão  [-n porque já sei que
funciona na maquina, perl geralmente não quebra nada trocando de versão =P ]

Mais detalhes em http://sao-paulo.pm.org/equinocio/2011/set/3


 Desde já grato.

 Att,
 Aureliano Guedes.

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] PerlBrew mudanças no sistema

2012-12-17 Por tôpico Renato Santos
cara, lê o link lá!

http://sao-paulo.pm.org/equinocio/2011/set/3

não é uma boa tirar o perl do SO assim como é bom instalar o perlbrew
justamente para vc não atrapalhar nada o perl que o SO usa.

   perl -MCPAN -e autobundle




2012/12/17 Tiago Peczenyj tiago.pecze...@gmail.com

 vc precisa adicionar isso no seu script de inicialização do seu sistema
 operacional

 por exemplo o .bashrc ou .profile


 2012/12/17 Aureliano Guedes guedes_1...@hotmail.com

  Eu tinha perguntado sobre o perl do SO não o do perlbrew.

 Alias, minha duvida agora é outra, acabei de perceber que o perl-5.16.2
 fica ativo apenas quando ativo o perlbrew, ele não fica ativo sozinho. Como
 faço para tornar ele default?

 Meu objetivo era que ficasse como default no meu sistema (mesmo que não
 remova o atual), para que todos meus scripts fossem executados pelo perl
 5.16.2, sem precisar digitar

 perlbrew switch perl-5.14.1

 toda vez.

 Não achei nada sobre no CPAN nem aqui
 http://sao-paulo.pm.org/equinocio/2011/set/3

 --
 From: renato.c...@gmail.com
 Date: Mon, 17 Dec 2012 17:30:30 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] PerlBrew mudanças no sistema




 2012/12/17 Aureliano Guedes guedes_1...@hotmail.com

  Ola, monges.

 Estou usando o Perlbrew no ubuntu 12.04, atualmente a minha versão é a
 5.14.2.

 Sei que com PerlBrew posso instalar n versões do Perl, mas a minha dúvida
 é:
 Se eu instalar a ultima versão do perl, posso desistalar todas as outras
 anteriores, posso manter a mais recente como default sem prejudicar o
 sistema?


 vc só deveria remover outras versoes do proprio perlbrew, mas como vc vai
 acabar de instalar ele, não vai ter nenhuma.



 E outra dúvida é:
 Tem algum metodo para manter todos os módulos que ja tenho instalados?

 vc pode fazer um autobundle do CPAN, mas eu prefiro não fazer isso,
 porque geralmente não precisa, prefiro instalar os modulos com *cpanm -n
 installdeps .* nos projetos, quando mudo de versão  [-n porque já sei
 que funciona na maquina, perl geralmente não quebra nada trocando de versão
 =P ]

 Mais detalhes em http://sao-paulo.pm.org/equinocio/2011/set/3


 Desde já grato.

 Att,
 Aureliano Guedes.

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#%21/renato_cron


 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Tiago B. Peczenyj
 Linux User #405772

 http://about.me/peczenyj

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

2012-12-13 Por tôpico Renato Santos
hmm, esse brainfuck é pra fibbo! (como se tivesse lido o codigo =p)

2012/12/13 Stanislaw Pusep creakt...@gmail.com

 Aureliano, o lexer do brainfuck utilizando given/when ficaria +/- assim:

 #!/usr/bin/env perl
 use 5.010;
 use strict;
 use warnings qw(all);

 local ($|, $/) = (1, \1);

 for my $instr (DATA) {
 given ($instr) {
 when ('') { ... }
 when ('') { ... }
 when ('+') { ... }
 when ('-') { ... }
 when ('.') { ... }
 when (',') { ... }
 when ('[') { ... }
 when (']') { ... }
 default { next }
 }
 }

 __DATA__
 +++
 +
 [[+
 +-][+-][++[-
 -[++-][+-]+[[-][-]][[+
 -][-]]][++-][+-]+[[-][-]]
 [+[-]]][+
 +++.[-]]++[--]
 .[-]
 [++-][+-]-[..
 [-]][++-][+-][+-][+-]-]

 Lição de casa: preencher os espaços dos '...' para que calcule e imprima
 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 (pq Hello World! é muito fácil,
 rsss)

 ABS()



 2012/12/12 Aureliano Guedes guedes_1...@hotmail.com

  Ainda não tinha me aventurado nas novidades do Perl 5.16.

 o when eu entendi, mas o given não, alguem poderia me explicar o uso do
 given??

 O break ja funciona no 5.16?? se sim, como???

 --
 From: creakt...@gmail.com
 Date: Wed, 12 Dec 2012 14:06:14 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

 As variáveis @loop e $s não afetam a lógica do seu programa.
 Isso é, a sua implementação das instruções de ciclo condicional, [ e ],
 está incompleta.
 Outra coisa, ao invés de usar if(){}elsif(){}, procure usar given/when,
 nesse caso seria mais apropriado.
 Por fim, o I/O do brainfuck é por caractere, então certifique-se de que o
 buffering de I/O do Perl esteja desligado e que  retorne 1 caractere de
 cada vez: local ($|, $/) = (1, \1);

  ABS()



 2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  Por isso é passatempo, é pra quem tem tempo. hahaha

 Valeu

 --
 From: renato.c...@gmail.com
 Date: Tue, 11 Dec 2012 21:45:03 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

 pow,

 se ninguem te ajudar até domingo, até domingo eu do uma olhada! haha #
 semtempo

 2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  Não so isso, deve ter algo mais.

 Mesmo trocando $p-- if ($i eq ''); por  $p-- if ($i eq '');.

 Os caracteres que saem são estranhos, não sai o que eu queria.

 --
 From: renato.c...@gmail.com
 Date: Tue, 11 Dec 2012 21:36:03 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

 não são essas linhas aqui?


1. $p++ if ($i eq '');
2. $p-- if ($i eq '');


 2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  ahsuahuhasuahsuah

 Da hora mesmo, quando terminar, quem sabe não faço algo do tipo.

 --
 From: creakt...@gmail.com
 Date: Tue, 11 Dec 2012 21:15:38 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck


 Dahora, parabéns :D
 BTW, isso me lembrou de um dialeto do brainfuck, o trollscript:
 https://github.com/caius/trollscript
 Isso é um hello world em trollscript:

 Trooloolooloolooloolooloolooloolollolooloolooloolooloololoolooloolooloolooloolooloololooloololoooloolooloololloololoololooolooloolooloolooloololoolooolooloololooloololloololooloolooloolooloolooloolooloolooloolooloolololooolooloololooollollollollollolllooollollollollollollollollloolololooll
 É sério.

 ABS()



 2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  Ola monges,

 Estou desenvolvendo um novo brinquedo, como forma de passatempo mesmo, um
 interpretador para BrainFuck.

 Futuramente pretendo desenvolver um compilador.

 Se alguem se interessar pelo assunto e puder colaborar e/ou ajudar, o que
 deesenvolvi ainda não esta funcional, e estou tendo algumas dificuldades.

 http://pastebin.com/aEppcPKt

 Para testarem um hello wolrd em BF:


 ++[+-]++.+.+++..+++.++.+++..+++.--..+..













 Os comandos de brainfuck : http://pt.wikipedia.org/wiki/Brainfuck#Comandos

 Aqui tem um pequeno tutorial tambem: 
 http://wiki.portugal-a-programar.pt/dev_geral:linguagens_esoterica:brainfuck











 Aqui tambem:

 Basicamente é isso:

 http://unauthorizedaccess.files.wordpress.com/2011/02/cmds.jpg?w=610












 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 

Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

2012-12-13 Por tôpico Renato Santos
Procura no perldoc a função alarm

--
Renato Cron

Sent from Samsung Mobile Phone
Em 13/12/2012 20:18, Aureliano Guedes guedes_1...@hotmail.com escreveu:

  Bom, estou em duvidas quanto ao que fazer no loop, como indicar que [
 inicia e ] termina o loop.

 ate agora, preencehndo o dever de casa

 #!/usr/bin/env perl
 use 5.010;
 use strict;
 use warnings qw(all);

 local ($|, $/) = (1, \1);

 my $p = 0;
 my $lim = 5000;
 my @a = (1..$lim);

 for my $instr (DATA) {
 given ($instr) {
 when ('') {$p++;}
 when ('') {$p--}
 when ('+') {$a[$p]++;}
 when ('-') {$a[$p]--;}
 when ('.') {print chr $a[$p];}
 when (',') {
 chomp (my $in = );
 $a[$p] = ord(substr($in,0,1));}
 when ('[') { ... }
 when (']') { ... }
 default { next }
 }
 }
 __DATA__
 +++
 +
 [[+
 +-][+-][++[-
 -[++-][+-]+[[-][-]][[+
 -][-]]][++-][+-]+[[-][-]]
 [+[-]]][+
 +++.[-]]++[--]
 .[-]
 [++-][+-]-[..
 [-]][++-][+-][+-][+-]-]

 So mais uma perguntinha boba: Alguem sabe como colocar um limite de tempo
 no STDIN?

 Exemplo, eu tenho :

 my $input = ;
 if ($input == undef){
 ...
 }
 else{
 ...
 }

 Exemplo, input so tem 10 segundo para receber a entrada ou fica indefinido.
 Vi algo como:
 http://www.perlmonks.org/index.pl?abspart=1;displaytype=displaycode;node_id=282330;part=1

 Mas o que digito não aparece no monitor na hora que digito.

 --
 From: tiago.pecze...@gmail.com
 Date: Thu, 13 Dec 2012 15:55:28 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

 IMHO poderiamos abordar um esquema TDD

 Eu criaria algo como

 my $ret = Parser::parser($code, $stdin, $stdout);

 $ret deveria retornar sucesso em caso do code ser valido

 $stdout deveria receber a string hello world se o codigo brainfuck para
 hello world fosse introduzido

 Usar o Test::More nesse caso seria bem interessante. Ainda mais se for
 usado o Devel::Cover e analisado se o teste realmente exercitou todo o
 codigo do parser.

 os testes poderiam ser

 ok( Parser::parser(, undef, undef),um script vazio é um codigo valido);
 ok( Parser::parser(comentario, undef, undef),comentarios são qualquer
 caracter fora aqueles 8);

 para verificar se o stdin ou stdout foram lidos ou escritos, eu usaria o
 Test::MockObject do chromatic. entretanto pode ficar um pouco complicado o
 teste, talvez um IO::Handler de teste possa ser mais interessante.


 2012/12/13 Stanislaw Pusep creakt...@gmail.com

 Aureliano, o lexer do brainfuck utilizando given/when ficaria +/- assim:

 #!/usr/bin/env perl
 use 5.010;
 use strict;
 use warnings qw(all);

 local ($|, $/) = (1, \1);

 for my $instr (DATA) {
 given ($instr) {
 when ('') { ... }
 when ('') { ... }
 when ('+') { ... }
 when ('-') { ... }
 when ('.') { ... }
 when (',') { ... }
 when ('[') { ... }
 when (']') { ... }
 default { next }
 }
 }

 __DATA__
 +++
 +
 [[+
 +-][+-][++[-
 -[++-][+-]+[[-][-]][[+
 -][-]]][++-][+-]+[[-][-]]
 [+[-]]][+
 +++.[-]]++[--]
 .[-]
 [++-][+-]-[..
 [-]][++-][+-][+-][+-]-]

 Lição de casa: preencher os espaços dos '...' para que calcule e imprima
 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 (pq Hello World! é muito fácil,
 rsss)

 ABS()



 2012/12/12 Aureliano Guedes guedes_1...@hotmail.com

  Ainda não tinha me aventurado nas novidades do Perl 5.16.

 o when eu entendi, mas o given não, alguem poderia me explicar o uso do
 given??

 O break ja funciona no 5.16?? se sim, como???

 --
 From: creakt...@gmail.com
 Date: Wed, 12 Dec 2012 14:06:14 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

 As variáveis @loop e $s não afetam a lógica do seu programa.
 Isso é, a sua implementação das instruções de ciclo condicional, [ e ],
 está incompleta.
 Outra coisa, ao invés de usar if(){}elsif(){}, procure usar given/when,
 nesse caso seria mais apropriado.
 Por fim, o I/O do brainfuck é por caractere, então certifique-se de que o
 buffering de I/O do Perl esteja desligado e que  retorne 1 caractere de
 cada vez: local ($|, $/) = (1, \1);

  ABS()



 2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  Por isso é passatempo, é pra quem tem tempo. hahaha

 Valeu

 --
 From: renato.c...@gmail.com
 Date: Tue, 11 Dec 2012 21:45:03 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

 pow,

 se ninguem te ajudar até domingo, até domingo eu do uma olhada! haha #
 semtempo

 2012/12/11 

Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

2012-12-11 Por tôpico Renato Santos
não são essas linhas aqui?


   1. $p++ if ($i eq '');
   2. $p-- if ($i eq '');


2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  ahsuahuhasuahsuah

 Da hora mesmo, quando terminar, quem sabe não faço algo do tipo.

 --
 From: creakt...@gmail.com
 Date: Tue, 11 Dec 2012 21:15:38 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck


 Dahora, parabéns :D
 BTW, isso me lembrou de um dialeto do brainfuck, o trollscript:
 https://github.com/caius/trollscript
 Isso é um hello world em trollscript:

 Trooloolooloolooloolooloolooloolollolooloolooloolooloololoolooloolooloolooloolooloololooloololoooloolooloololloololoololooolooloolooloolooloololoolooolooloololooloololloololooloolooloolooloolooloolooloolooloolooloolololooolooloololooollollollollollolllooollollollollollollollollloolololooll
 É sério.

 ABS()



 2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  Ola monges,

 Estou desenvolvendo um novo brinquedo, como forma de passatempo mesmo, um
 interpretador para BrainFuck.

 Futuramente pretendo desenvolver um compilador.

 Se alguem se interessar pelo assunto e puder colaborar e/ou ajudar, o que
 deesenvolvi ainda não esta funcional, e estou tendo algumas dificuldades.

 http://pastebin.com/aEppcPKt

 Para testarem um hello wolrd em BF:


 ++[+-]++.+.+++..+++.++.+++..+++.--..+..





 Os comandos de brainfuck : http://pt.wikipedia.org/wiki/Brainfuck#Comandos

 Aqui tem um pequeno tutorial tambem: 
 http://wiki.portugal-a-programar.pt/dev_geral:linguagens_esoterica:brainfuck



 Aqui tambem:

 Basicamente é isso:

 http://unauthorizedaccess.files.wordpress.com/2011/02/cmds.jpg?w=610




 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

2012-12-11 Por tôpico Renato Santos
pow,

se ninguem te ajudar até domingo, até domingo eu do uma olhada! haha #
semtempo

2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  Não so isso, deve ter algo mais.

 Mesmo trocando $p-- if ($i eq ''); por  $p-- if ($i eq '');.

 Os caracteres que saem são estranhos, não sai o que eu queria.

 --
 From: renato.c...@gmail.com
 Date: Tue, 11 Dec 2012 21:36:03 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck

 não são essas linhas aqui?


1. $p++ if ($i eq '');
2. $p-- if ($i eq '');


 2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  ahsuahuhasuahsuah

 Da hora mesmo, quando terminar, quem sabe não faço algo do tipo.

 --
 From: creakt...@gmail.com
 Date: Tue, 11 Dec 2012 21:15:38 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck


 Dahora, parabéns :D
 BTW, isso me lembrou de um dialeto do brainfuck, o trollscript:
 https://github.com/caius/trollscript
 Isso é um hello world em trollscript:

 Trooloolooloolooloolooloolooloolollolooloolooloolooloololoolooloolooloolooloolooloololooloololoooloolooloololloololoololooolooloolooloolooloololoolooolooloololooloololloololooloolooloolooloolooloolooloolooloolooloolololooolooloololooollollollollollolllooollollollollollollollollloolololooll
 É sério.

 ABS()



 2012/12/11 Aureliano Guedes guedes_1...@hotmail.com

  Ola monges,

 Estou desenvolvendo um novo brinquedo, como forma de passatempo mesmo, um
 interpretador para BrainFuck.

 Futuramente pretendo desenvolver um compilador.

 Se alguem se interessar pelo assunto e puder colaborar e/ou ajudar, o que
 deesenvolvi ainda não esta funcional, e estou tendo algumas dificuldades.

 http://pastebin.com/aEppcPKt

 Para testarem um hello wolrd em BF:


 ++[+-]++.+.+++..+++.++.+++..+++.--..+..







 Os comandos de brainfuck : http://pt.wikipedia.org/wiki/Brainfuck#Comandos

 Aqui tem um pequeno tutorial tambem: 
 http://wiki.portugal-a-programar.pt/dev_geral:linguagens_esoterica:brainfuck





 Aqui tambem:

 Basicamente é isso:

 http://unauthorizedaccess.files.wordpress.com/2011/02/cmds.jpg?w=610






 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm



 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#%21/renato_cron


 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-12-04 Por tôpico Renato Santos
Gente, não tem diferença na comparação!!
é só na ordem que as coisas ocorrem conforme as coisas foram escritas!!

alguem ai ja disse:

$c = $a  $b  *COMPILA PRA *$c = ( $a  $b )
$c = $a and $b *COMPILA PRA* ($c = $a) and $b

2012/12/4 Aureliano Guedes guedes_1...@hotmail.com

 Acho que não é nada impactante a diferença de usar  ou and em dias
 normais, mas quando trabalhar bit-a-bit acho que o  é mais apropiado




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-30 Por tôpico Renato Santos
faça o push (só que sem a funcao),

outra forma, porque não usar uma array ? e ai você coloca assim:

 my @hmfe;

  while (..){ ...
  push @hmfe, {valor = $mirna, registro = $record};
  ...
  }


e ai você faria o seu loop pra encontrar o valor mudando apenas

$keys por $linha-{valor}

foreach my $linha (@hmfe){
   ... if ..
}

-
uma coisa: eu vi que sua funcao lá de intervalo está criando tudo de novo,
dependendo do caso, você pode fazer a leitura apenas uma vez, retornar
o @hmfe (em referencia {  return \@hmfe }, para nao duplicar na memoria) e
depois usar ele na funcao que recebe o intervalo e retorna os registros.

2012/11/30 Aureliano Guedes guedes_1...@hotmail.com

  Biólogo não, biomedico, acredite essa diferença fere nossos sentimentos.
 hahaha


  Hashs não têm mais de uma chave igual. Ele vai mudar o valor
  relacionado à chave e não criar outra chave com o mesmo valor.

 Agora sim, isso é um problemão. Estarei perdendo dados assim.

 Como poderia reverter isso então??

 Faria a chave ser valor e o valor ser chave?? Quais minhas opções??

 sub h_energy{
 my $self = shift;
 my $data = $self-h_data || die cannot find data;
 my $file = file($data)-openr();
 my %hmfe = ();
 my $mirna;
 my $record;

 while (my $linha = $file) {
 if ( $linha =~ m{target:.*} ) {
 $record = $linha . $record if ($record);
 $hmfe{$mirna} = $record if ($mirna);
 $mirna = $+{mirna};
 $record = q() if ($record);
 }
 elsif ($linha =~ m{mfe:\s+(\S+)\s+kcal/mol}){
 $mirna = $1;
 $record .= $linha;
 }
  else {
 $record .= $linha;
  }
 }
 return %hmfe;
 }

  Date: Fri, 30 Nov 2012 10:30:17 -0200
  From: thiagogla...@ticursos.net

  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] Chaves de hash
 
  Hashs não têm mais de uma chave igual. Ele vai mudar o valor
  relacionado à chave e não criar outra chave com o mesmo valor.
 
  Em 2012-11-30 00:24, Aureliano Guedes escreveu:
   Bruno, no meu if funcionou tanto com  quanto com and. O meu erro
   mesmo foi que a regex pegava um espasso.
  
   Bem a minha duvida ficou em porque seria problematico colocar reais
   em chaves de hash no meu caso?
  
   Se eu fosse pesquisar um valor especifico e tivesse duas ou mais
   chaves com o mesmo valor real seria problema
   mas no meu caso umporta que o valor esteja em um determinado
   intervalo, podem ter 20 chaves iguais, estando no intervalo
   eu quero os 20 valores. 49??
  
   -
   From: leonardo.bal...@gmail.com
   Date: Fri, 30 Nov 2012 00:15:50 -0200
   To: rio-pm@pm.org
   Subject: Re: [Rio-pm] Chaves de hash
  
   Quero participar dessa discussao antes do 50.
  
   Por que tanta peculiariade na dicotomia de popular?
  
   Na buzilis da cizania ja nao era mais sobre Perl ou foi impressao
   minha?
  
   Leo Balter - via mobile
  
   Em 30/11/2012, às 00:02, Marcio Ferreira
   marciodesouzaferre...@gmail.com escreveu:
  
   47
  
   On Nov 29, 2012 11:35 PM, Renato Santos renato.c...@gmail.com
   wrote:
  
   #define float_epsilon 0.1;
   #define float_equal(a,b) (fabs((a) - (b))  float_epsilon)
  
   BTW
  
   2012/11/29 Blabos de Blebe bla...@gmail.com
  
   float_equal
  
   --
  
   Saravá,
   Renato CRON
  
   http://www.renatocron.com/blog/ [1]
   @renato_cron [2]
  
   ___
   Rio-pm mailing list
   Rio-pm@pm.org
   http://mail.pm.org/mailman/listinfo/rio-pm [3]
  
   ___
   Rio-pm mailing list
   Rio-pm@pm.org
   http://mail.pm.org/mailman/listinfo/rio-pm [3]
  
   ___ Rio-pm mailing list
   Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
  
   Links:
   --
   [1] http://www.renatocron.com/blog/
   [2] http://twitter.com/#%21/renato_cron
   [3] http://mail.pm.org/mailman/listinfo/rio-pm
  
   ___
   Rio-pm mailing list
   Rio-pm@pm.org
   http://mail.pm.org/mailman/listinfo/rio-pm
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-30 Por tôpico Renato Santos
que toda vez que você passar termofilter('arquivo', -30, -20) todo o
arquivo estaria sendo lido (o q é obvio)

que por exemplo, poderia ser

$dados = h_energy('arquivo.txt');

termofilter($dados, -30, -20);

nesse caso, o codigo ficaria assim:
http://pastebin.com/ZyWPxq9A



2012/11/30 Aureliano Guedes guedes_1...@hotmail.com

  Entendi, eu so não entendi a parte de uma coisa: eu vi que sua funcao lá
 de intervalo está criando tudo de novo, dependendo do caso, você pode fazer
 a leitura apenas uma vez,.

 O que você quis dizer com isso?

 --
 From: renato.c...@gmail.com
 Date: Fri, 30 Nov 2012 10:44:24 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] Chaves de hash

 faça o push (só que sem a funcao),

 outra forma, porque não usar uma array ? e ai você coloca assim:

  my @hmfe;

   while (..){ ...
   push @hmfe, {valor = $mirna, registro = $record};
   ...
   }


 e ai você faria o seu loop pra encontrar o valor mudando apenas

 $keys por $linha-{valor}

 foreach my $linha (@hmfe){
... if ..
 }

 -
 uma coisa: eu vi que sua funcao lá de intervalo está criando tudo de novo,
 dependendo do caso, você pode fazer a leitura apenas uma vez, retornar
 o @hmfe (em referencia {  return \@hmfe }, para nao duplicar na memoria) e
 depois usar ele na funcao que recebe o intervalo e retorna os registros.

 2012/11/30 Aureliano Guedes guedes_1...@hotmail.com

  Biólogo não, biomedico, acredite essa diferença fere nossos sentimentos.
 hahaha


  Hashs não têm mais de uma chave igual. Ele vai mudar o valor
  relacionado à chave e não criar outra chave com o mesmo valor.

 Agora sim, isso é um problemão. Estarei perdendo dados assim.

 Como poderia reverter isso então??

 Faria a chave ser valor e o valor ser chave?? Quais minhas opções??

 sub h_energy{
 my $self = shift;
 my $data = $self-h_data || die cannot find data;
 my $file = file($data)-openr();
 my %hmfe = ();
 my $mirna;
 my $record;

 while (my $linha = $file) {
 if ( $linha =~ m{target:.*} ) {
 $record = $linha . $record if ($record);
 $hmfe{$mirna} = $record if ($mirna);
 $mirna = $+{mirna};
 $record = q() if ($record);
 }
 elsif ($linha =~ m{mfe:\s+(\S+)\s+kcal/mol}){
 $mirna = $1;
 $record .= $linha;
 }
  else {
 $record .= $linha;
  }
 }
 return %hmfe;
 }

  Date: Fri, 30 Nov 2012 10:30:17 -0200
  From: thiagogla...@ticursos.net

  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] Chaves de hash
 
  Hashs não têm mais de uma chave igual. Ele vai mudar o valor
  relacionado à chave e não criar outra chave com o mesmo valor.
 
  Em 2012-11-30 00:24, Aureliano Guedes escreveu:
   Bruno, no meu if funcionou tanto com  quanto com and. O meu erro
   mesmo foi que a regex pegava um espasso.
  
   Bem a minha duvida ficou em porque seria problematico colocar reais
   em chaves de hash no meu caso?
  
   Se eu fosse pesquisar um valor especifico e tivesse duas ou mais
   chaves com o mesmo valor real seria problema
   mas no meu caso umporta que o valor esteja em um determinado
   intervalo, podem ter 20 chaves iguais, estando no intervalo
   eu quero os 20 valores. 49??
  
   -
   From: leonardo.bal...@gmail.com
   Date: Fri, 30 Nov 2012 00:15:50 -0200
   To: rio-pm@pm.org
   Subject: Re: [Rio-pm] Chaves de hash
  
   Quero participar dessa discussao antes do 50.
  
   Por que tanta peculiariade na dicotomia de popular?
  
   Na buzilis da cizania ja nao era mais sobre Perl ou foi impressao
   minha?
  
   Leo Balter - via mobile
  
   Em 30/11/2012, às 00:02, Marcio Ferreira
   marciodesouzaferre...@gmail.com escreveu:
  
   47
  
   On Nov 29, 2012 11:35 PM, Renato Santos renato.c...@gmail.com
   wrote:
  
   #define float_epsilon 0.1;
   #define float_equal(a,b) (fabs((a) - (b))  float_epsilon)
  
   BTW
  
   2012/11/29 Blabos de Blebe bla...@gmail.com
  
   float_equal
  
   --
  
   Saravá,
   Renato CRON
  
   http://www.renatocron.com/blog/ [1]
   @renato_cron [2]
  
   ___
   Rio-pm mailing list
   Rio-pm@pm.org
   http://mail.pm.org/mailman/listinfo/rio-pm [3]
  
   ___
   Rio-pm mailing list
   Rio-pm@pm.org
   http://mail.pm.org/mailman/listinfo/rio-pm [3]
  
   ___ Rio-pm mailing list
   Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
  
   Links:
   --
   [1] http://www.renatocron.com/blog/
   [2] http://twitter.com/#%21/renato_cron
   [3] http://mail.pm.org/mailman/listinfo/rio-pm
  
   ___
   Rio-pm mailing list
   Rio-pm@pm.org
   http://mail.pm.org/mailman/listinfo/rio-pm
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-29 Por tôpico Renato Santos
Assim,
não sei se tem muita diferença na memoria entre um $h e um %s,

eu costumo usar $h por habito mesmo, mas poderia ser push @{$h{$grupo}} sem
problemas, talvez até @$h{$grupo} funcione certo


O 'evitar o loop' q eu digo, é você popular um hash inteiro já com os
grupos montados, por exemplo ,se o grupo for a cada 10 numeros reais, voce
poderia retornar
-30:-20 como chave para todos os valores de entrada dessa funcao, e
popular tudo de uma vez só, no lugar de ler as chaves a cada pergunta de
intervalo

2012/11/29 Aureliano Guedes guedes_1...@hotmail.com

  Renato, fiquei sem entender, no meu caso não esta fazendo so um loop? E
 qual a diferença entre usar um hash %h ou tranformar $h em um hash??
 Desculpe as perguntas é que não faço nenhum curso ligado a computação logo
 as vezes fico boiando.

 Thiago, segue o script caso tenha também algo a modificar/acrescentar a
 nível das minhas péssimas práticas.

 use warnings;
 use strict;
 use Path::Class;

 #Guardar os valores em um hash acessado pelo valor do mfe
 sub h_energy{
 my $data = shift;
 my $file = file($data)-openr();
 my %hmfe = ();
 my $mirna;
 my $record;

 while (my $linha = $file) {
 if ( $linha =~ m{target:.*} ) {
 $record = $linha . $record if ($record);
 $hmfe{$mirna} = $record if ($mirna);
 $mirna = $+{mirna};
 $record = q() if ($record);
 }
 elsif ($linha =~ m{mfe:\s+(\S+)\s+kcal/mol}){
 $mirna = $1;
 $record .= $linha;
 }
  else {
 $record .= $linha;
  }
 }
 return %hmfe;
 }


 sub termofilter{
 my ($data, $min, $max) = @_;
 my %d = h_energy($data);

 foreach my $keys (keys %d){
 if($keys = $min and $keys = $max){
 print $keys . \n;
 }
 }
 }
 termofilter(hybrid.txt, -30, -20);

  Date: Thu, 29 Nov 2012 17:27:15 -0200

  From: thiagogla...@ticursos.net
  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] Chaves de hash
 
  Onde estou agora o firewall bloqueia o pastebin. Pela sua explicação,
  verificar por regex seria uma solução segura. O número sera convertido
  para um string e, se a sua regex prevê uma margem segura para a
  imprecisão do ponto flutuante na sua aplicação, funciona sem problemas.
 
  Em 2012-11-29 16:59, Aureliano Guedes escreveu:
   Nossa, aqui virou uma arena de ideias, da para aprender muita coisa
   so lendo.
  
   O problema é o seguinte, eu tenho uma lista nesse formato:
  
   target: 01010101
   length: 581
   miRNA : hsa-miR-15a
   length: 22
  
   mfe: -24.4 kcal/mol
   p-value: 0.334111
  
   position 244
   target 5' C UCUCCUGUGGUCUCU G U 3'
   CACA GACCA GUGCUGUU
   GUGU UUGGU CACGACGA
   miRNA 3' AAUA U 5'
  
   Conforme este arquivo http://pastebin.com/9v6WFUT7
  
   Eu quero filtrar essa lista de acordo com o valor de mfe.
  
   Exemplo, se mfe for menor que -30 e maior que -20 esta dentro.
  
   Logo fiz da seguinte forma: http://pastebin.com/Dnhv0Zya
  
   Funcionou, o problema era sono. Não percebi que a regex estava
   pegando um espaço.
  
   Quanto a usar reais como chave de hash, se eu tiver dois reais iguais
   poderá ser um problema para acessar os valores,
   mas em toda regra existe sua exceção.
  
   No meu caso, o que me importa é que mfe esteja no intervalo
   determinado.
  
   Caso descordem seria uma honra ler a explicação de qualquer um de
   vocês.
  
   Date: Thu, 29 Nov 2012 16:44:50 -0200
   From: thiagogla...@ticursos.net
   To: rio-pm@pm.org
   Subject: Re: [Rio-pm] Chaves de hash
  
   Um exemplo mais preciso:
  
   $ uname -a
   SunOS cg01spo 5.10 Generic_13-03 sun4v sparc
   SUNW,SPARC-Enterprise-T5120
  
   $ perl -E '
   if (0.2  0.19997){
   say 0.2 is greater than 0.19997;}
   else {
   say Floating Point is not true real};'
   0.2 is greater than 0.19997
   $
  
   $ perl -E '
   if (0.2  0.19998){
   say 0.2 is greater than 0.19998;}
   else {
   say Floating Point is not true real};'
   Floating Point is not true real
   $
  
   Por que é importante saber essas coisas?
   http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html
  
  
  
  
  
  
   Em 2012-11-29 15:13, thiagogla...@ticursos.net escreveu:
Não se compara reais por igualdade.
Se você tem erro na igualdade, terá nas outras comparações se a
diferença entre os números for menor que o maior acréscimo
   suportado
pela plataforma:
   
$ perl -E '
if (0.2  0.1999){
say 0.2 is greater than
   0.19;}
else {
say Floating Point is not true real};'
Floating Point is not true real
$
   
$ perl -E '
if (0.2  0.19){
say 0.2 is greater than 0.19;}
else {
say Floating Point is not true real};'
0.2 is greater than 0.19
$
   
Então, comparar pontos flutuantes não é seguro. Nem igualdade, nem
maio, 

Re: [Rio-pm] Chaves de hash

2012-11-29 Por tôpico Renato Santos
eu prefiro geralmente multiplicar por 1+N casas e usar apenas o numero
inteiro,

se a quantidade de casas for pequena, *é mais rapido* do que ligar uma lib
externa pra processar numeros.

ps: teoricamente é mais rapido, não fiz testes para tal

2012/11/29 thiagogla...@ticursos.net

 Seu primeiro erro é o operador and. No documento perlop: $ perldoc perlop
 você vai descobrir o seguinte:

   Logical And
  Binary and returns the logical conjunction of the two
  surrounding expressions.  It's equivalent to  except for
  the very low precedence.  This means that it short-circuits:
  i.e., the right expression is evaluated only if the left
  expression is true.
 [...]
   C-style Logical And
  Binary  performs a short-circuit logical AND operation.
  That is, if the left operand is false, the right operand is
  not even evaluated.  Scalar or list context propagates down
  to the right operand if it is evaluated.

 Logo, seu código


 if($keys = $min and $keys = $max){

 deveria ser if($keys = $min  $keys = $max){

 A segunda coisa é o seu range. Não sei a precisão que seu código precisa.
 Veja isso:

  $ perl -E '
 if (-30.1 = -30 ){
 say -30.1 is equal -30? Really;}

 else {
 say Floating Point is not true real};'
 -30.1 is equal -30? Really
  $


 Eu faria algo como:

 if($keys  $min and $keys  $max)

 e, usaria, por exemplo -30.01 como min e -20.01 como max, por
 exemplo, para contornar o ponto flutuante, ou usaria um módulo matemático,
 como o Math::BigFloat.

 http://perldoc.perl.org/Math/**BigFloat.htmlhttp://perldoc.perl.org/Math/BigFloat.html

 Eu nunca usei em algo que fosse crítico, mas me parece bem sólida e segura.


 Em 2012-11-29 18:46, Aureliano Guedes escreveu:

 Renato, fiquei sem entender, no meu caso não esta fazendo so um loop?
 E qual a diferença entre usar um hash %h ou tranformar $h em um hash??
 Desculpe as perguntas é que não faço nenhum curso ligado a computação
 logo as vezes fico boiando.

 Thiago, segue o script caso tenha também algo a modificar/acrescentar
 a nível das minhas péssimas práticas.

 use warnings;
 use strict;
 use Path::Class;

 #Guardar os valores em um hash acessado pelo valor do mfe
 sub h_energy{
  my $data = shift;
  my $file = file($data)-openr();
  my %hmfe = ();
  my $mirna;
  my $record;

  while (my $linha = $file) {
  if ( $linha =~ m{target:.*} ) {
  $record = $linha . $record if ($record);
  $hmfe{$mirna} = $record if ($mirna);
  $mirna = $+{mirna};
  $record = q() if ($record);
  }
  elsif ($linha =~ m{mfe:s+(S+)s+kcal/mol}){

  $mirna = $1;
  $record .= $linha;
  }
  else {
  $record .= $linha;
  }
  }
  return %hmfe;
 }

 sub termofilter{
  my ($data, $min, $max) = @_;
  my %d = h_energy($data);
  foreach my $keys (keys %d){
  if($keys = $min and $keys = $max){
  print $keys . n;
  }
  }
 }
 termofilter(hybrid.txt, -30, -20);

  Date: Thu, 29 Nov 2012 17:27:15 -0200
 From: thiagogla...@ticursos.net
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] Chaves de hash

 Onde estou agora o firewall bloqueia o pastebin. Pela sua explicação,
 verificar por regex seria uma solução segura. O número sera convertido
 para um string e, se a sua regex prevê uma margem segura para a
 imprecisão do ponto flutuante na sua aplicação, funciona sem problemas.

 Em 2012-11-29 16:59, Aureliano Guedes escreveu:
  Nossa, aqui virou uma arena de ideias, da para aprender muita coisa
  so lendo.
 
  O problema é o seguinte, eu tenho uma lista nesse formato:
 
  target: 01010101
  length: 581
  miRNA : hsa-miR-15a
  length: 22
 
  mfe: -24.4 kcal/mol
  p-value: 0.334111
 
  position 244
  target 5' C UCUCCUGUGGUCUCU G U 3'
  CACA GACCA GUGCUGUU
  GUGU UUGGU CACGACGA
  miRNA 3' AAUA U 5'
 
  Conforme este arquivo http://pastebin.com/9v6WFUT7
 
  Eu quero filtrar essa lista de acordo com o valor de mfe.
 
  Exemplo, se mfe for menor que -30 e maior que -20 esta dentro.
 
  Logo fiz da seguinte forma: http://pastebin.com/Dnhv0Zya
 
  Funcionou, o problema era sono. Não percebi que a regex estava
  pegando um espaço.
 
  Quanto a usar reais como chave de hash, se eu tiver dois reais iguais
  poderá ser um problema para acessar os valores,
  mas em toda regra existe sua exceção.
 
  No meu caso, o que me importa é que mfe esteja no intervalo
  determinado.
 
  Caso descordem seria uma honra ler a explicação de qualquer um de
  vocês.
 
  Date: Thu, 29 Nov 2012 16:44:50 -0200
  From: thiagogla...@ticursos.net
  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] Chaves de hash
 
  Um exemplo mais preciso:
 
  $ uname -a
  SunOS cg01spo 5.10 Generic_13-03 sun4v sparc
  SUNW,SPARC-Enterprise-T5120
 
  $ perl -E '
  if (0.2  0.19997){
  say 0.2 is greater than 0.19997;}
  else {
  say Floating Point is not true real};'
  0.2 is greater than 0.19997
  $
 
  $ perl -E '
  if (0.2  0.19998){
  say 0.2 is greater than 0.19998;}
  else {
  say Floating Point 

Re: [Rio-pm] Chaves de hash

2012-11-29 Por tôpico Renato Santos
http://perldoc.perl.org/functions/-X.html

procure por -d e por -e e por  leia tudo!

2012/11/29 Aureliano Guedes guedes_1...@hotmail.com

  So aproveitando a oportunidade.

 Estou brincando com brinquedinhos novos.
 Mas ainda não entendi uma coisa.

 Aqui eu quero escrever na tela so o que for documento, não quero o que for
 diretorio.
 Na unha eu sei fazer, eu quero fazer isso usando o modulo Path::Class.

 Abaixo não esta dando muito certo.
 O que errei??

 use Path::Class;

 my $dir  = dir('Parse');
 my $s = $dir-open or die cant open: $!;
 my @o = $s-read;
 foreach my $p (@o){
 if ($p-file){
 print $p;
 }
 }

  Date: Thu, 29 Nov 2012 19:52:45 -0200

  From: thiagogla...@ticursos.net
  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] Chaves de hash
 
  Só para ser chato:
 
   popular um hash inteiro já com os grupos montados,
 
  popular
  adj. 2 g.
  1. Relativo ou pertencente ao povo.
  2. Que é usado ou comum entre o povo.
  3. Que é do agrado do povo.
  4. Vulgar, notório.
  5. Democrático.
  s. m.
  6. Homem do povo.
 
  povoar - Conjugar
  (povo + -oar)
  v. tr.
  1. Fundar povoações em.
  2. Estabelecer habitantes em.
  3. Disseminar animais para reprodução.
  4. Dispor grande quantidade de árvores em.
  5. Dispor grande quantidade de plantas (ex.: povoar o terreno de
  vinha).
 
  6. [Por extensão] Encher com determinada coisa (ex.: a notícia
   povoou a sua vida com alegria).
 
  v. pron.
  7. Encher-se de habitantes.
 
 
  Em 2012-11-29 19:41, Renato Santos escreveu:
   Assim,
   não sei se tem muita diferença na memoria entre um $h e um %s,
  
   eu costumo usar $h por habito mesmo, mas poderia ser push
   @{$h{$grupo}} sem problemas, talvez até @$h{$grupo} funcione certo
  
   O 'evitar o loop' q eu digo, é você popular um hash inteiro já com os
   grupos montados, por exemplo ,se o grupo for a cada 10 numeros reais,
   voce poderia retornar
   -30:-20 como chave para todos os valores de entrada dessa funcao, e
   popular tudo de uma vez só, no lugar de ler as chaves a cada pergunta
   de intervalo
  
   2012/11/29 Aureliano Guedes guedes_1...@hotmail.com
  
   Renato, fiquei sem entender, no meu caso não esta fazendo so um
   loop? E qual a diferença entre usar um hash %h ou tranformar $h em um
   hash??
   Desculpe as perguntas é que não faço nenhum curso ligado a
   computação logo as vezes fico boiando.
  
   Thiago, segue o script caso tenha também algo a
   modificar/acrescentar a nível das minhas péssimas práticas.
  
   use warnings;
   use strict;
   use Path::Class;
  
   #Guardar os valores em um hash acessado pelo valor do mfe
   sub h_energy{
   my $data = shift;
   my $file = file($data)-openr();
   my %hmfe = ();
   my $mirna;
   my $record;
  
   while (my $linha = $file) {
   if ( $linha =~ m{target:.*} ) {
   $record = $linha . $record if ($record);
   $hmfe{$mirna} = $record if ($mirna);
   $mirna = $+{mirna};
   $record = q() if ($record);
   }
   elsif ($linha =~ m{mfe:s+(S+)s+kcal/mol}){
   $mirna = $1;
   $record .= $linha;
   }
else {
   $record .= $linha;
}
   }
   return %hmfe;
   }
  
   sub termofilter{
   my ($data, $min, $max) = @_;
   my %d = h_energy($data);
  
   foreach my $keys (keys %d){
   if($keys = $min and $keys = $max){
   print $keys . n;
   }
   }
   }
   termofilter(hybrid.txt, -30, -20);
  
   Date: Thu, 29 Nov 2012 17:27:15 -0200
  
   From: thiagogla...@ticursos.net
   To: rio-pm@pm.org
Subject: Re: [Rio-pm] Chaves de hash
  
   Onde estou agora o firewall bloqueia o pastebin. Pela sua
   explicação,
   verificar por regex seria uma solução segura. O número sera
   convertido
   para um string e, se a sua regex prevê uma margem segura para a
imprecisão do ponto flutuante na sua aplicação, funciona sem
   problemas.
  
   Em 2012-11-29 16:59, Aureliano Guedes escreveu:
Nossa, aqui virou uma arena de ideias, da para aprender muita
   coisa
 so lendo.
   
O problema é o seguinte, eu tenho uma lista nesse formato:
   
target: 01010101
length: 581
miRNA : hsa-miR-15a
length: 22

mfe: -24.4 kcal/mol
p-value: 0.334111
   
position 244
target 5' C UCUCCUGUGGUCUCU G U 3'
CACA GACCA GUGCUGUU
GUGU UUGGU CACGACGA
 miRNA 3' AAUA U 5'
   
Conforme este arquivo http://pastebin.com/9v6WFUT7 [1]
   
Eu quero filtrar essa lista de acordo com o valor de mfe.

Exemplo, se mfe for menor que -30 e maior que -20 esta dentro.
   
Logo fiz da seguinte forma: http://pastebin.com/Dnhv0Zya [2]

Funcionou, o problema era sono. Não percebi que a regex estava
pegando um espaço.
   
Quanto a usar reais como chave de hash, se eu tiver dois reais
   iguais
poderá ser um problema para acessar os valores,
 mas em toda regra existe sua exceção

Re: [Rio-pm] Chaves de hash

2012-11-29 Por tôpico Renato Santos
 pra evitar 'QUANDO EU COMPREI, FUNCIONAVA RAPIDO'

2012/11/29 Tiago Peczenyj tiago.pecze...@gmail.com

 Olha... tinha uma gem pra ruby que adicionava uns sleeps no codigo pra
 deixar propositalmente lento para demonstrações enterprise. Afinal se é
 rapido, não é sistema web interno corporativo.




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-29 Por tôpico Renato Santos
#define float_epsilon 0.1;#define float_equal(a,b) (fabs((a) -
(b))  float_epsilon)

*BTW*

2012/11/29 Blabos de Blebe bla...@gmail.com

 float_equal




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-29 Por tôpico Renato Santos
obs:

 perl -E 'sub a{my $x = shift() * 1000; $x = int($x/200)*200; $x}; say a
-0.7; say a -0.8'
-600
-800

como esta arredondando via truncate, o 79 geralmente deveria
estar no grupo do 800, OU NÃO! você que decide isso


2012/11/30 Renato Santos renato.c...@gmail.com

 pronto, na 51 eu respondo!

 2012/11/30 Aureliano Guedes guedes_1...@hotmail.com

  Bruno, no meu if funcionou tanto com  quanto com and. O meu erro mesmo
 foi que a regex pegava um espasso.

  pois é, vai funcionar!
 #no more comments

 Bem a minha duvida ficou em porque seria problematico colocar reais em
 chaves de hash no meu caso?

 tenho quase certeza que, como já foi removido de um texto, o numero real
 em questão, seja apenas um scalar, sem a flag de 'real' (se é existe essa
 flag internamente),

 portanto, você pode colocar qualquer coisa nas chaves de um hash sem
 problema

 (to em duvida se existe algum byte especial que é usado para separar as
 chaves internamente, esse valor fica em uma das variaveis magicas)



 Se eu fosse pesquisar um valor especifico e tivesse duas ou mais chaves
 com o mesmo valor real seria problema

 você tem que pesquisar exatamente o valor desejado, mas não tem problema
 pois você esta percorrendo todas as chaves

 mas no meu caso *i*mporta que o valor estej*e *em um determinado
 intervalo, podem ter 20 chaves iguais, estando no intervalo

 eu quero os 20 valores. 49??

 que? 20 chaves iguais não pode!


 voltando a que eu respondi no email via celular, eu faria o codigo de
 outra forma,
 se for possivel e os intervalos forem já predetermindados:
 no lugar de
 $hmfe{$mirna} = $record if ($mirna);
 eu já montaria ( fill, populate, do the inserts ) o hash com as chaves já
 sendo o intervalo, calculado por uma funcao (que eu chameria de filtro)

 push(@{$hmfe{determina_intervalo($mirna)}, $record} if ($mirna);

 $truncate = 1000; # isso transforma -0.123456789 em -0.123 e desconsidera
 o que estiver na frente do 3. o round-up transformaria em 0.12*4*
 *
 *
 sub determina_intervalo {
 my $valor = shift;
 # isso so faz o truncate
 $valor = int ($valor * $truncate) / $truncate;

 # depois separa em grupos de 200:
 $valor *= 1000;
 return int($valor/200)*200; # isso retorna só '200' que ja vale, mas
 poderia ser tambem:

 my $tmp = int($valor/200)*200;
 retrun $tmp:.$tmp+200 # que vai retornar '-400:-200' que
 }

 e assim o valor da chave do intervalo já contem todos os registros daquele
 intervalo, nem de if precisa!

 perl -E 'sub a{my $x = shift() * 1000; $x = int($x/200)*200; $x}; say a
 -0.12; say a -0.23; say a -0.25; say a -0.26; say a -5; say a -0.29; say a
 -0.5; say a -0.71'
 0
 -200
 -200
 -200
 -5000
 -200
 -400
 -600



 --
 From: leonardo.bal...@gmail.com
 Date: Fri, 30 Nov 2012 00:15:50 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] Chaves de hash

 Quero participar dessa discussao antes do 50.

 Por que tanta peculiariade na dicotomia  de popular?

 Na buzilis da cizania ja nao era mais sobre Perl ou foi impressao minha?


 Leo Balter - via mobile

 Em 30/11/2012, às 00:02, Marcio Ferreira marciodesouzaferre...@gmail.com
 escreveu:

 47
 On Nov 29, 2012 11:35 PM, Renato Santos renato.c...@gmail.com wrote:

 #define float_epsilon 0.1;#define float_equal(a,b) (fabs((a) - (b))  
 float_epsilon)

 *BTW*

 2012/11/29 Blabos de Blebe bla...@gmail.com

 float_equal




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#%21/renato_cron


 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm


 ___ Rio-pm mailing list
 Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




 --
 Saravá,
 Renato CRON
 http://www.renatocron.com/blog/
 @renato_cron http://twitter.com/#!/renato_cron




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-29 Por tôpico Renato Santos
eu com a mania de corrigir o certo! é esteja mesmo!

2012/11/30 Renato Santos renato.c...@gmail.com

 estej*e*




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-28 Por tôpico Renato Santos
VERDADE! HAHA

Mas acho que estamos com um problema aqui de nomes. talvez assim fique mais
claro:

foreach my $numero (keys %d) {
if ($numero = $min ) { # atencao, numeros iguais entram aqui
print $numero tem valor $d{$numero} e eh menor que $min\n;
}elsif ($numero  $min ) {
print $numero tem valor $d{$numero} e eh maior que $max\n;
}
}

2012/11/28 Ole Peter Smith ole@gmail.com

 como que keys sera menor do min e maior do que max? so se os tres sao
 iguais nao?

 if keys =min min=keys
 if krys = max max=keys

 0le

 Send via Android
 On Nov 28, 2012 9:43 PM, Aureliano Guedes guedes_1...@hotmail.com
 wrote:

  Ola Monges.

 Estou com um problema simples mas que não acho a solução.

 Eu tenho um hash onde as chaves são valores numericos reais (a maioria
 negativo e quase nenhum inteiro).
 Estou limitando esses valores por um maximo e um minimo.

 foreach my $keys (keys %d) {
 if ($keys = $min and $keys = $max) {
 print $d{$keys};
 }
 }

 Problema que não da certo.
 Ha algo de errado aqui??

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm


 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Chaves de hash

2012-11-28 Por tôpico Renato Santos
perl -MO=Deparse pra descobrir as pegadinhas

2012/11/28 Blabos de Blebe bla...@gmail.com

 TRUCO!!!

 perl -E '$a=0; 0 and $a=1; say $a'
 perl -E '$a=0; say 0 and $a=1; say $a'

 A pegadinha fica como exercício...



 2012/11/28 Bruno Buss bruno.b...@gmail.com:
  Sim, o seu exemplo é a perfeita demonstração do que eu disse: a única
  diferença é que você não consegue fazer short-circuit com 'and', só com
  ''.
 
  A menos que o sinal de = e = agora tenha algum side-effect como o
 '++', eu
  não particularmente não consigo chegar numa linha razoável de raciocínio
  para reclamar do , and e precedências no if do Aureliano.
 
  [ ]'s
 
  2012/11/28 Renato Santos renato.c...@gmail.com
 
  Acho que o que o Marcio disse isso pois o and computa ambos os lados da
  expressão, para então retornar um boolean (ou continuar a sequencia de
  computar mais 'ands' e 'ors')
 
 
  $x = 0;
  $x and $x++; # $x = 1
 
  $y = 0;
  $y  $y++; # $y = 0
 
 
  perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m  $m++; say $m'
  0
  0
 
  perl -e 'use v5.14.0;use v5.14.0; my $m=0; say $m and $m++; say $m'
  0
  1
 
 
  o retorno foi o mesmo, mas o comportamento não.
 
  2012/11/28 Bruno Buss bruno.b...@gmail.com
 
  @Thiago e Marcio:
  O que vocês estão falando? Pelo amor de Larry...
  O operador 'and' é *exatamente* igual ao '', tirando o nível de
  precedência... onde o 'and' é um dos que tem a precedência mais baixa.
  (perldoc perlop por favor...)
  Ou seja, você pode fazer tudo que faz com '' com 'and', menos contar
  com short-circuit em condicionais ;)
 
 
 
 
  --
  Saravá,
  Renato CRON
  http://www.renatocron.com/blog/
  @renato_cron
 
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm
 
 
 
 
  --
  Bruno C. Buss
  http://www.brunobuss.net
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  http://mail.pm.org/mailman/listinfo/rio-pm
 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [Curitiba-pm] Contribuição ao Open Data BR - wikipoliticos.com.br

2012-10-05 Por tôpico Renato Santos
Gil++

Ficou muito legal!


Depois das eleições, teremos mais dados para poder brincar com quem passou
dos limites, ou não.


2012/10/5 Gil Magno gilma...@gmail.com

 Olá, Monges,

 Acompanho várias listas de Perl, mas mais com um observador. Gosto muito
 da linguagem; infelizmente no trabalho uso menos do que eu gostaria, mas
 estou mudando isso.

 Pesquisando para a eleições, achei uma fonte de dados muito boa no
 Tribunal Superior Eleitoral. A lei 9.504 obriga os candidatos a fazerem
 duas prestações de contas de suas campanhas ainda durante as eleições.
 Em agosto e em setembro eles declararam quanto e de quem receberam
 doações, e também com o que as gastaram.

 Peguei a segunda parcial (de setembro), importei para um banco de dados
 e fiz uma interface. Ela está em wikipoliticos.com.br

 Nessa página podemos ver as doações feitas para as campanhas de prefeito
 e vereador até o início de setembro, incluindo o nome de quem doou
 (pessoas físicas, empresas etc.) e a proporção por tipo de doação
 (doações de pessoas físicas, doações de empresas etc.)

 Também podemos ver o quanto cada candidato declarou que gastaria, no
 máximo, em sua campanha. Essa é uma informação muito importante, pois
 entre setembro e o dia das eleições as doações ainda estão acontecendo,
 mas a segunda prestação de contas parciais só nos dá dados até setembro.

 Assim como o www.deputando.com.br e o
 www.paraondefoiomeudinheiro.com.br, espero que seja uma contribuição
 para o Open Data BR.

 Os scripts de importação e a interface web foram escrito em Perl e
 Catalyst. A escrita está ruim[1], mas não me importo; ela está atingindo
 o objetivo de deixar a informação acessível, então tudo bem. Após às
 eleições vou reescrevê-lo e importar mais informações.

 E desculpem o relativo spam (estou mandando para muitas listas de Perl

 Qualquer crítica, sugestão, contribuição é bem-vinda.

 [1] github.com/gilmagno/dados-eleitorais

 gil
 ___
 Curitiba-pm mailing list
 curitiba...@pm.org
 http://mail.pm.org/mailman/listinfo/curitiba-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] Mojolicious - inserindo código HTML no template via rota

2012-09-07 Por tôpico Renato Santos
Olá,

você deve mudar sua view para:

de %= 'lalala' %
para  %== 'ptest/p' %

vi no
http://search.cpan.org/~sri/Mojolicious-3.36/lib/Mojolicious/Guides/Rendering.pod#Embedded_Perl

2012/9/7 Manoel Domingues Junior manoel.domingues.jun...@gmail.com

 Olá pessoal,

 Estou construindo mais uma aplicação web com mojolicious::lite e estou
 enfrentando mais uma dificuldade.
 A minha aplicação irá gerar gráficos via javascript, mas preciso enviar
 esses dados pre-formatados entre tags script/script.

 A ideia é colocar um grafico semenhante a esse:
 http://www.highcharts.com/demo/line-basic/gray

 Como verão, existe alguns div's que devo colocar no template, mas também
 devo colocar um código javascript. Esse código muda, pois realiza consultas
 no banco de dados para obter os valores, logo criei uma funcão que gera ele.

 Essa função retorna uma string com todo o código ($widget_timeline) e
 tento então passar o valor dessa string para o template, mas o mojolicious
 faz a conversão para HTML, logo não aparece como código...

 Dentro da rota da minha aplicação coloquei um $self-stash(widget_timeline
 = $widget_timeline), acredito que tenha que usar outra função para passar
 o código, ou então usar outra abordagem...

 Sugestões?

 Abraços,
 --
 --
 Manoel Domingues Junior
 Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados
 é o primeiro passo para a comunidade.
 IBM - Prodigy Linux


 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm




-- 
Saravá,
Renato CRON
http://www.renatocron.com/blog/
@renato_cron http://twitter.com/#!/renato_cron
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm