Re: [Rio-pm] Metodos de Download em Massa
Então, esses no caso to pegando do NCBI. Muita gente vai dizer que tem e-utilities, BioPerl, mas convenhamos que epost, efetch não são muito eficientes para dataset largos, um curl e furl ja baixam mais rápido. BioPerl é dispensável pra pra um simples get. E ja baixei o que precisava, inclusive eu tinha outro script pra essa tarefa, so que agora to usando muitos datasets todos na faixa dos 2-3 milhoes de entradas cada. From: Rio-pm <rio-pm-bounces+guedes_1000=hotmail@pm.org> on behalf of Felipe Leprevost <leprevos...@gmail.com> Sent: Wednesday, May 24, 2017 7:53:48 PM To: Perl Mongers Rio de Janeiro Subject: Re: [Rio-pm] Metodos de Download em Massa Apenas como curiosidade Aureliano, de onde você está tentando obter os arquivos ? On Wed, May 24, 2017 at 3:21 PM Felipe da Veiga Leprevost <fel...@leprevost.com.br<mailto:fel...@leprevost.com.br>> wrote: Apenas como curiosidade Aureliano, de onde você está tentando obter os arquivos ? On Wed, May 24, 2017 at 3:19 PM Aureliano Guedes <guedes_1...@hotmail.com<mailto:guedes_1...@hotmail.com>> wrote: Opa, Yada achei muito complicado pra pouca coisa que vou fazer. Mas to convencido a tentar. Breno, o truncado é por causa que estou fazendo varios downloads com o Parallel::ForkManager de um arquivo no formato texto, onde cada identificador é um dado do arquivo, como eu trabalho com milhoes desses identificadores e o servidor recomenda se limitar a 500 por requisição acaba que tenho que fazer varios downloads. So que to imprimindo tudo em STDOUT e redirecionando a saida pra um aarquivo estilo UNIX mesmo > , então tem varios processo tenetando escrever na tela ao mesmo tempo, eu pensei em fazer um lock mas acho q isso vai fazer demorar. Exatamente aqui é o problema, IPC::ShareTable ou algo assim deve resolver. Alguma sujestão de solução ? my $pm = new Parallel::ForkManager($req); while(my $id = <$IN>){ $cnt++; chomp $id; if ($cnt == $split || $. == $nl){ #$split = 500; push @ids, $id; my @tmp = @ids; undef @ids; $cnt = 0; $pm->start and next; # do the fork my @resp = get_fasta(\@tmp, $db, $timeout); if ($resp[0]){ $resp[1] =~ s/^\s*\n+//mg; print STDOUT $resp[1]; } else{ print STDERR "Status: $resp[2]\n$resp[3]\nDetails: $resp[1]\n"; print STDERR join (" ", "Fail:", @tmp, "\n"); } $pm->finish; #tihs is a fork, at the end (here) the memory will be released } else{ push @ids, $id; } } $pm->wait_all_children; From: Rio-pm <rio-pm-bounces+guedes_1000=hotmail@pm.org<mailto:hotmail@pm.org>> on behalf of breno <oainikus...@gmail.com<mailto:oainikus...@gmail.com>> Sent: Wednesday, May 24, 2017 3:54:47 AM To: Perl Mongers Rio de Janeiro Subject: Re: [Rio-pm] Metodos de Download em Massa 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, <guedes_1...@hotmail.com<mailto:guedes_1...@hotmail.com>> 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
Re: [Rio-pm] Metodos de Download em Massa
Opa, Yada achei muito complicado pra pouca coisa que vou fazer. Mas to convencido a tentar. Breno, o truncado é por causa que estou fazendo varios downloads com o Parallel::ForkManager de um arquivo no formato texto, onde cada identificador é um dado do arquivo, como eu trabalho com milhoes desses identificadores e o servidor recomenda se limitar a 500 por requisição acaba que tenho que fazer varios downloads. So que to imprimindo tudo em STDOUT e redirecionando a saida pra um aarquivo estilo UNIX mesmo > , então tem varios processo tenetando escrever na tela ao mesmo tempo, eu pensei em fazer um lock mas acho q isso vai fazer demorar. Exatamente aqui é o problema, IPC::ShareTable ou algo assim deve resolver. Alguma sujestão de solução ? my $pm = new Parallel::ForkManager($req); while(my $id = <$IN>){ $cnt++; chomp $id; if ($cnt == $split || $. == $nl){ #$split = 500; push @ids, $id; my @tmp = @ids; undef @ids; $cnt = 0; $pm->start and next; # do the fork my @resp = get_fasta(\@tmp, $db, $timeout); if ($resp[0]){ $resp[1] =~ s/^\s*\n+//mg; print STDOUT $resp[1]; } else{ print STDERR "Status: $resp[2]\n$resp[3]\nDetails: $resp[1]\n"; print STDERR join (" ", "Fail:", @tmp, "\n"); } $pm->finish; #tihs is a fork, at the end (here) the memory will be released } else{ push @ids, $id; } } $pm->wait_all_children; From: Rio-pm <rio-pm-bounces+guedes_1000=hotmail@pm.org> on behalf of breno <oainikus...@gmail.com> Sent: Wednesday, May 24, 2017 3:54:47 AM To: Perl Mongers Rio de Janeiro Subject: Re: [Rio-pm] Metodos de Download em Massa 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, <guedes_1...@hotmail.com<mailto:guedes_1...@hotmail.com>> 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<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] Metodos de Download em Massa
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
Re: [Rio-pm] (sem assunto)
Eu resolvi o problema, era so eu retornar um array de resultados da recurção [caso tenha] e incluir juntar com o array da interação anterior sempre que terminar uma das recurções. Quanto a dúvida da string, seria forçar uma string vazia (uma string que não está guardando nenhuma referência) virar um array; my @a = qw(a b c d e); my $b = \@a; #isso é uma string com o endereço de memoria do array (referÊncia) my $b; @$b = qw(a b c d e); #isso é um array forçado mas a dúvida é, o que fica em $b? Pelo que me parece ele cria automaticamente uma referência pra um array anonimo que dereferenciado por @$b O que me leva a crer que my @a = qw(a b c d e); my $b = \@a; é o mesmo que my $b ; @$b = qw(a b c d e);j From: Rio-pm <rio-pm-bounces+guedes_1000=hotmail@pm.org> on behalf of Andre Carneiro <andregarciacarne...@gmail.com> Sent: Friday, March 24, 2017 4:54:22 PM To: Perl Mongers Rio de Janeiro Subject: Re: [Rio-pm] (sem assunto) Creio que você esteja pensando nisso errado! Se vc tem uma String em $S, você não tem uma referência para array @A. Se você quer uma referência do array @A em $S, você pode fazer: my $S = \@A; Eu sugiro que você use Data::Printer ou mesmo Data::Dumper para ver o conteúdo das variáveis. Quanto ao problema da string, não sei se entendi o que vc quer. Vou dizer como transformar uma string em array sem usar 'join'. use strict; use warnings; use feature qw/say/; use Data::Printer colored => 1; my $s = "WHATEVER"; my @A = split //,$s; print p @A; 2017-03-22 19:14 GMT-03:00 Aureliano Guedes <guedes_1...@hotmail.com<mailto:guedes_1...@hotmail.com>>: Olá monges, Estou com uma série de dúvidas relacionada a uma rotina que estou fazendo; Dado um hash de arrays eu preciso construir uma hierarquia não redundante dos valores desse array. Tudo esta explicado melhor em : http://pastebin.com/64fJvYr6 Duas dúvidas surgiram meio essa questão 1- Como forçar uma string virar um array sem fazer join dos valores, sendo que a string não está guardando uma referência? Algo como: my $s; @$s = qw(a b c d e); 2- Se eu tenho uma string $S que guarda uma referencia para um array @A, essa string está dentro de uma rotina e a rotina é recursiva, e precisa enviar os valores da string S para a recursão, o que deve ser enviado é a string $S ou o array @$S? sub teste{ my ($S) = @_; teste(\@$S) # ou simplesmente $S? } Desde já grato. Att, acp ___ Rio-pm mailing list Rio-pm@pm.org<mailto: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
Re: [Rio-pm] Função uniq com bug ou erro no codigo?
Verdade, um simples chomp; antes do código resolve. To enferrujado From: Rio-pm <rio-pm-bounces+guedes_1000=hotmail@pm.org> on behalf of Nicole Scherer <bionica2007-p...@yahoo.com> Sent: Monday, March 6, 2017 4:30:39 PM To: Perl Mongers Rio de Janeiro Subject: Re: [Rio-pm] Função uniq com bug ou erro no codigo? Oi Aureliano, Já testaste usar um chomp antes do split? []'s Nicole Em Domingo, 5 de Março de 2017 13:36, Aureliano Guedes <guedes_1...@hotmail.com> escreveu: 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?? Alguma sujestão de como reverter sem q eu tenha que criar um script pra isso ou minha propria rotina uniq?? Desde já grato. ___ 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
Re: [Rio-pm] Função uniq com bug ou erro no codigo?
Obrigado, era so o chomp mesmo. Perl6 é interessante mas pra agora não seria ideal. A solução com array seria a melhor talvez, mas ate tentei echo "WXG+WXG+PT-COG5412+Tox-SHH+TM+TM+TM+TM" | perl -MDDP -nE 'foreach(split /\+/){$a{$_}++}; p %a' Mas deu problema que fiquei com preguissa de tratar. saiu linha em branco e a ultima repetição. Obrigado monges From: Rio-pm <rio-pm-bounces+guedes_1000=hotmail@pm.org> on behalf of Fernando Oliveira <fernandocor...@gmail.com> Sent: Sunday, March 5, 2017 5:15:08 PM To: Perl Mongers Rio de Janeiro Subject: Re: [Rio-pm] Função uniq com bug ou erro no codigo? echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | perl6 -n 'say set .split: "+"' Enviado do meu iPhone Em 5 de mar de 2017, às 13:59, Fernando Oliveira <fernandocor...@gmail.com<mailto:fernandocor...@gmail.com>> escreveu: Eu não sei qual é o problema, mas tenho uma sugestão de solução (código não testado, tô no celular): echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | perl -nE '%a{split "+"}++; say keys %a}' Enviado do meu iPhone Em 5 de mar de 2017, às 13:51, Lucas Mateus <lucasmateus.olive...@gmail.com<mailto:lucasmateus.olive...@gmail.com>> escreveu: É algum bug no código echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | xargs perl -MList::Util=uniq -MDDP -e '@a=uniq(split(/\+/,$ARGV[0]));p @a' Em 5 de março de 2017 13:35, Aureliano Guedes <guedes_1...@hotmail.com<mailto:guedes_1...@hotmail.com>> escreveu: 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?? Alguma sujestão de como reverter sem q eu tenha que criar um script pra isso ou minha propria rotina uniq?? Desde já grato. ___ 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] Função uniq com bug ou erro no codigo?
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?? Alguma sujestão de como reverter sem q eu tenha que criar um script pra isso ou minha propria rotina uniq?? Desde já grato. ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] (sem assunto)
Ola monges, Tenho uma pergunta simples pra vocês. Eu tenho um script que abre um arquivo e printa o resultado na saida padrão. Os parâmetros adicionais são processados via Getopt::Long; Bom, o que eu queria era fazer algo mais Unix style. Quero poder receber o nome do arquivo para abrir ou poder redirecionar a saida padrão pro script caso esteja em um pipeline. Por exemplo, hoje, se eu der um grep em um arquivo pra depois passar pro script eu tenho que fazer: $ grep '' arquivo >arquivo.tmp $ script.pl arquivo.tmp Eu quero poder fazer algo no estilo $ grep '' arquivo | script.pl Como eu poderia fazer isso? lembrando que eu posso passar pro script mais parametros se precisar Abraços, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] [HELP] Getopt::Long multiplos parametros por opção
Monges,Boa noite. Estou tentando fazer um script que abre varios arquivos recebido pela linha de comando. A ideia é que ele rode com comando semelhante a esse:./programa -f file1 file2 file3 ... filen Ou seja, independe da quantidade de arquivos. eu to tentando algo do tipo: use Getopt::Long;my @files;GetOptions("f=s{2}" => \@files,) or die "erro";print $_,"\n" foreach @files; Porem assim eu tenho que passar exatamente 2 parametros. 1 ou 3 da erro, logicamente. Eu queria saber como eu faço pra ele ser flexivel para receber 1 ou n parametros que o usuário passar. Como devo fazer? Abraços,Aureliano Livre de vírus. www.avast.com. ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] RES: RES: [SP-pm] Testando o Slack (https://brazil-pm.slack.com)
Podem me convidar, também? Date: Sat, 30 Apr 2016 08:29:43 -0300 From: dtos...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] RES: RES: [SP-pm] Testando o Slack (https://brazil-pm.slack.com) Podem me convidar? Em 18/04/2016 15:33, "Gabriel Vieira"escreveu: http://www.nyctechslack.com/ Podemos ter algo assim. 2016-04-17 8:48 GMT-04:00 astec : > Brigado turma > > > > Julio cezar > > > > De: Rio-pm [mailto:rio-pm-bounces+astec=centroin.com...@pm.org] Em nome de > Otávio Fernandes > Enviada em: domingo, 17 de abril de 2016 06:25 > Para: Perl Mongers Rio de Janeiro > Assunto: Re: [Rio-pm] RES: [SP-pm] Testando o Slack > (https://brazil-pm.slack.com) > > > > > > 2016-04-16 13:07 GMT+02:00 astec : > > as...@centroin.com.br > > > > Opa! Desculpa a demora, mas segue o convite. > > abraço, > > > -- OF > > > ___ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm -- Gabriel Vieira ___ 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 Livre de vírus. www.avast.com. ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] [DÚVIDA]Hash: varias key pra um mesmo value
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 CGGOutros: F -> TTC || TTTL -> 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 TR = A ou GN = 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] Dúvida com split
Ola monges, Tenho uma dúvida simples. Digamos que eu tenha uma string com uma sequencia de RNA: $rna = 'AUGACGAAGCGUUGAUCC'; Só hipotético mesmo. Então quero agrupar de 3 em 3 letras (nucleotídeos) formando codons: AUG ACG AAG CGU UGA UCC Para isso eu acho conveniente colocar em um array, e faço isso usando um split my @codons = split /condição/, $dna; O meu problema é na condição, não estou conseguindo uma condição para agrupar de 3 em 3 letras já tentei: /(A|C|U|G){3}/ /(A|C|U|G)(A|C|U|G)(A|C|U|G)/ /(d+){3}/ /d+\d+\d+\/ /d+{3}/ /d+d+d+/ Ate tentei mexer no split my @codons = /(A|U|C|G)/, $rna, 3; Sei que a dúvida é besta, mas alguém de daria uma luz? Obrigado. ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [HELP] Download
Ajudou muito, não conhecia o Entrez. Obrigado. From: leprevos...@gmail.com To: rio-pm@pm.org Date: Thu, 6 Nov 2014 08:27:54 -0200 Subject: Re: [Rio-pm] [HELP] Download Oi Aureliano, Não sei se você já ouviu falar do NCBI Entrez Direct ou se já o utilizou alguma vez, ams nesse caso acredito que ele possa ser mais útil. O Entrez Direct é um conjunto de scripts bash e Perl que o NCBI forneceu para que quisesse realizar algum tipo de acesso mais avançado aos seus bancos de dados, e de forma programática. veja aqui mais informações sobre o Entrez Direct: http://www.ncbi.nlm.nih.gov/books/NBK179288/ Bom, vamos ao seu problema agora; O que você está querendo fazer é baixar pelo terminal uma sequencia do banco de nucleotídeos certo? De acordo com a documentação do Entrez Direct você vai precisar usar o seguinte comando: ./esearch -db nucleotide -query AL123456 [ACN] | ./efetch -format fasta O eDirect funciona encadeando os scripts, nesse caso eu estou usando 2 deles, o esearch para a busca e o efetch para o download. Você pode ver na página do livro (o link que passei acima) todos os parâmetros que existem, da pra fazer muita coisa com esses scripts deles. Então, para salvar em um arquivo a sequencia do genoma basta direcionar o comando acima: ./esearch -db nucleotide -query AL123456 [ACN] | ./efetch -format fasta genome.fa e pronto, seu genoma foi baixado e salvo. Espero que dessa forma você consiga contornar o problema que lhe impedia de usar o wget ou o ftp para o download. abraços On 05-11-2014 23:57, Aureliano Guedes wrote: Ola Monges, tenho uma dúvida que talvez seja um pouco específica, provavelmente voltada para bioinformatas. Bom precisava fazer o download desse arquivo (http://www.ncbi.nlm.nih.gov/nuccore/AL123456.3?report=fastalog$=seqview). Só que não posso fazer de qualquer forma, precisava que fosse um script executando o wget ou ftp. O problema é fazer o download através do wget que estou com dificuldade. Seria basicamente um 'system 'wget .'' só não estou sabendo como fazer. Alguém aqui poderia me ajudar com o wget? No final, só preciso gerar um arquivo no formato fasta. Ex: gi|444893469|emb|AL123456.3| Mycobacterium tuberculosis H37Rv complete genome TTGACCGATGAGGTTCAGGCTTCACCACAGTGTGGAACGCGGTCGTCTCCGAACTTAACGGCGACC CTAAGGTTGACGACGGACCCAGCAGTGATGCTAATCTCAGCGCTCCGCTGATCAGCAAAGGGCTTG GCTCAATCTCGTCCAGCCATTGACCATCGTCGATTTGCTCTGTTATCCGTGCCGAGCAGCTTTGTC CCGAAATCGAGCGCCATCTGCGGGGATTACCGACGCTCTCAGCCGCCGACTCGGACATCAGA ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Felipe da Veiga Leprevost, PhD. www.leprevost.com.br Laboratory for Proteomics and Protein Engineering. Fiocruz, Brazil. -- Felipe ___ 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] Dúvida com split
Obrigado. Ajudou muito mesmo. Vou salvar aqui pois depois posso precisar dessas dicas. Enrique Pessoa enrique.pes...@rrd.com escreveu: Aureliano, Sobre, \w, \W, \s, \S, mais informações em http://perldoc.perl.org/perlre.html#Regular-Expressions , item Character Classes and other Special Escapes. Para casar apenas com um A, C, U ou G você deveria usar /[ACUG]/. Para casar com 3 dessas letras acrescente {3} para indicar 'três vezes', assim: / [ACUG]{3}/ No caso da sequências de caracteres com as quais você está trabalhando (que contém sempre apenas essas letras), todas as outras opções abaixo são válidas, mas não necessariamente apropriadas. /.{3}/ - três caracteres quaisquer /\w{3}/ - três letras /\D{3}/ - três não digitos /\S{3}/ - três não espaço /[^vV]{3}/ - três caracteres que não sejam a letra v /[ACUG]{3}/i - três caracteres que sejam A, C, U ou G (podendo ser minúsculas) Quanto às formas de se obter partes de uma sequência de caracteres, eu só tenho o hábito de usar split quando quero remover o delimitador. my $lista_de_numeros = '12,23,34'; my $delimitador = ','; my @numeros = split($delimitador, $lista_de_numeros); Uma outra forma possível de fazer esse mesmo trabalho é: my @codons; # global continue pegando de um a três caracteres (para caso len($ma) mod 3 não dê zero) while ($ma =~ /\G(.{1,3})/gc) { push @codons, $1; } Abraços, Enrique Pessôa *Enrique Pessôa | Technology Products Manager, Brazil | RR Donnelley | Global Capital Markets* +55 21 2103.0508 | enrique.pes...@rrd.com | +55 21 9.8127.0077 * http://www.infoinvest.com.br/ | 15 anos de tecnologia para RI | Clique para conferir https://www.youtube.com/watch?v=gkxxbshF4Icfeature=youtu.be* Em 7 de novembro de 2014 12:51, Daniel Vinciguerra dan.vincigue...@gmail.com escreveu: pode usar o split mesmo... my @array = split '(\w{3})', $rna; *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and co-founder at *Bivee* bivee.com.br - github.com/Bivee 2014-11-07 12:03 GMT-02:00 Aureliano Guedes guedes_1...@hotmail.com: Funcionou, o fato é que ainda não aprendi bem regex então não conhecia o \w. Mas compreendi completamente o código. Obrigado. -- Date: Fri, 7 Nov 2014 11:47:06 -0200 From: leprevos...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Dúvida com split Oi Aureliano, tenta o seguinte: my @codons = $rna =~ m/\w{3}/g; abraços On 07-11-2014 11:44, Aureliano Guedes wrote: Ola monges, Tenho uma dúvida simples. Digamos que eu tenha uma string com uma sequencia de RNA: $rna = 'AUGACGAAGCGUUGAUCC'; Só hipotético mesmo. Então quero agrupar de 3 em 3 letras (nucleotídeos) formando codons: AUG ACG AAG CGU UGA UCC Para isso eu acho conveniente colocar em um array, e faço isso usando um split my @codons = split /condição/, $dna; O meu problema é na condição, não estou conseguindo uma condição para agrupar de 3 em 3 letras já tentei: /(A|C|U|G){3}/ /(A|C|U|G)(A|C|U|G)(A|C|U|G)/ /(d+){3}/ /d+\d+\d+\/ /d+{3}/ /d+d+d+/ Ate tentei mexer no split my @codons = /(A|U|C|G)/, $rna, 3; Sei que a dúvida é besta, mas alguém de daria uma luz? Obrigado. ___ Rio-pm mailing listRio-pm@pm.orghttp://mail.pm.org/mailman/listinfo/rio-pm -- Felipe da Veiga Leprevost, PhD.www.leprevost.com.br Laboratory for Proteomics and Protein Engineering. Fiocruz, Brazil. ___ 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___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Dúvida com split
Eu conheço o BioPerl. Mas eu preciso fazer essas pequenas rotinas eu mesmo. Porque alem de serem pequenas pra necessitar de módulos externos, fica mais portável para sistemas que nao possuem o BioPerl instalado. E também são exercícios. Mesmo assim obrigado. Andre Carneiro andregarciacarne...@gmail.com escreveu: Aureliano, Você considerou usar Bioperl, para auxiliá-lo na 'lida' com bioinformática? É uma biblioteca bastante madura e amplamente usada. Seria bom dar uma olhada - http://www.bioperl.org/wiki/Main_Page https://metacpan.org/pod/distribution/BioPerl/BioPerl.pm Atenciosamente 2014-11-07 20:35 GMT-02:00 Ronaldo Ferreira de Lima jimmy@gmail.com: Saudações Aureliano, On Fri, Nov 07, 2014 at 02:03:08PM +, Aureliano Guedes wrote: [...] o fato é que ainda não aprendi bem regex então não conhecia \w. [...] Sendo regexp uma limitação, você poderia fazer a manipulação de strings sem o uso de regexp neste caso. Dois exemplos (de provavelmente dezenas): 1. # Obs.: Destrói o conteúdo de $rna my @condom; push @condom, substr $rna, 0, 3, q() while length $rna 2; 2. # Trata o conteúdo da scalar $rna como um filehandle local $/ = \3; open my $fh, q(), \$rna; my @condom = $fh; []'s -- Não manejo bem as palavras Mas manipulo bem as strings. -- http://tecnoveneno.blogspot.com ___ 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
[Rio-pm] Modulos Publicados no CPAN e Lattes
Ola, Monges Tenho uma dúvida simples. Não sei se alguém aqui é da área acadêmica ou usa o currículo na plataforma Lattes. O que queria saber é se posso colocar os módulos publicados no CPAN no Lattes? Se sim, como? Entra como programa com registro ou sem registro? Obrigado. Att, Aureliano Guedes ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Modulos Publicados no CPAN e Lattes
Hahaha. Eu também vi isso. Mas eu tenho lattes a um bom tempo. Sou sensato. Mas estou acostumado colocar artigos, nunca coloquei um programa. Mas é so pra saber vou cocar minhas aplicações de bioinformática. Samir Cury samircu...@gmail.com escreveu: Aureliano, acho que e tranquilo, desde que ajude o curriculo a cumprir seu papel. Um tempo atras vi uma galera achando que Lattes era perfil do Orkut e escrevendo muita coisa sem nocao. Desde que tenha bom senso, esta valendo. Abs 2014-10-25 5:09 GMT-07:00 Aureliano Guedes guedes_1...@hotmail.com: Certo. Obrigado mesmo. Felipe da Veiga Leprevost leprevos...@gmail.com escreveu: Oi Aureliano, Eu listo os módulos como software sem registro, e no tipo de software eu seleciono 'bibliotecas (libraries)'. Costumo colocar apenas os módulos relacionados à área acadêmica. -- Felipe Leprevost On Sat, Oct 25, 2014, at 10:02 AM, Aureliano Guedes wrote: Ola, Monges Tenho uma dúvida simples. Não sei se alguém aqui é da área acadêmica ou usa o currículo na plataforma Lattes. O que queria saber é se posso colocar os módulos publicados no CPAN no Lattes? Se sim, como? Entra como programa com registro ou sem registro? Obrigado. Att, Aureliano Guedes *___* 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
Re: [Rio-pm] Problema com o PhantomJS
Bruno, qual exatamente o erro que retorna ao executar esse script? Date: Mon, 20 Oct 2014 12:07:13 -0300 From: bruno.macab...@gmail.com To: rio-pm@pm.org Subject: [Rio-pm] Problema com o PhantomJS Boa tarde, sou Bruno, conhecido do Aureliano e ele me sugeriu pedir suporte aqui. O problema que estou tendo no Perl é durante a construção do PhantomJS.Considere o seguinte código (uma versão bem resumida do que estou de fato desenvolvendo):#!usr/bin/env perl use common::sense; use WWW::Mechanize::PhantomJS; my $phantom = WWW::Mechanize::PhantomJS-new(); __END__ Baixando o PhantomJS e colocando o caminho dele na variável de ambiente Path, eu consigo executa-lo com sucesso em um determinado computador de casa. Porém, fazendo o mesmo em outro computador, não funciona. Recebo a mensagem selenium server did not return proper status na linha do construtor.A versão do módulo PhantomJS que estou usando é a 0.10, em ambos computadores. Estou usando o interpretador Strawberry.Não sei se é relevante, mas o computador que funciona é Windows 8. No que não funciona é Windows 7. Também estou pedindo suporte no PerlMonks. ___ 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] Problema com o PhantomJS
Bruno, eu testei esse script em uma maquina rodando Windows 8.1 x64 usando a ultima versão estável do WWW::Mechanize::PhantomJS (versão 0.11).Não me retornou erro algum.Mas você me falou que já foi testado em varias máquinas e retornou esse erro, certo? Esse erro parece erro de comunicação com o servidor. Faz o seguinte, coloca o PhantomJS no mesmo diretório onde encontra-se seu script, execute-o e veja se retorna algo. Date: Mon, 20 Oct 2014 12:40:23 -0300 From: bruno.macab...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Problema com o PhantomJS Aureliano, o erro completo é:Selenium server did not return proper status at (eval 48) line 61. Em 20 de outubro de 2014 12:28, Aureliano Guedes guedes_1...@hotmail.com escreveu: Bruno, qual exatamente o erro que retorna ao executar esse script? Date: Mon, 20 Oct 2014 12:07:13 -0300 From: bruno.macab...@gmail.com To: rio-pm@pm.org Subject: [Rio-pm] Problema com o PhantomJS Boa tarde, sou Bruno, conhecido do Aureliano e ele me sugeriu pedir suporte aqui. O problema que estou tendo no Perl é durante a construção do PhantomJS.Considere o seguinte código (uma versão bem resumida do que estou de fato desenvolvendo):#!usr/bin/env perl use common::sense; use WWW::Mechanize::PhantomJS; my $phantom = WWW::Mechanize::PhantomJS-new(); __END__ Baixando o PhantomJS e colocando o caminho dele na variável de ambiente Path, eu consigo executa-lo com sucesso em um determinado computador de casa. Porém, fazendo o mesmo em outro computador, não funciona. Recebo a mensagem selenium server did not return proper status na linha do construtor.A versão do módulo PhantomJS que estou usando é a 0.10, em ambos computadores. Estou usando o interpretador Strawberry.Não sei se é relevante, mas o computador que funciona é Windows 8. No que não funciona é Windows 7. Também estou pedindo suporte no PerlMonks. ___ 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
Re: [Rio-pm] Problema entre versões
Monges, Muito obrigado. Resolvi a questão de usar a versão 0.10 pela forma que o Blablos indicou, depois com esse ultimo email do Breno, achei mais simples a forma que ele passou. Irei torrar a paciência do autor reportando o bug, mas por hora farei como o Breno falou. De qualquer forma todas as dicas me ensinaram algo. Obrigado. breno br...@rio.pm.org escreveu: Aureliano, todas as dicas até agora foram muito boas: * A do Enrique te diz como instalar apenas a versão que vc quer do módulo, ou fazer downgrade se necessário. * A do Blabos mostra uma forma testada pela indústria de como fazer instalações de aplicações forçando não só a versão de um módulo, mas de todo o ambiente. * A do Erik, apesar de na forma de pergunta, aponta para uma questão importante: analisar o problema melhor, confirmar se é um problema do módulo mesmo (ainda mais em um sistema tão heterogêneo com Perl, Selenium PhantomJS), perturbar o autor, e tentar trabalhar sempre com a versão (estável) mais recente de todos esses componentes. A minha é essa: se vc **realmente** precisa forçar uma versão específica, pode fazer isso em runtime procurando pela variável $VERSION do módulo. Por exemplo: BEGIN { use WWW::Mechanize::PhantomJS; die por favor instale a versão 0.10 do WWW::Mechanize::PhantomJS unless $WWW::Mechanize::PhantomJS::VERSION == 0.10; }; Boa sorte! []s -b 2014-10-17 7:41 GMT-03:00 Blabos de Blebe bla...@gmail.com: https://metacpan.org/pod/Carton 2014-10-16 23:10 GMT-03:00 Enrique Pessoa enrique.pes...@rrd.com: fix na segunda linha cpan: cpan install CORION/WWW-Mechanize-PhantomJS-0.10.tar.gz Enrique Pessôa *Enrique Pessôa | Technology Products Manager, Brazil | RR Donnelley | Global Capital Markets* +55 21 2103.0508 | enrique.pes...@rrd.com | +55 21 9.8127.0077 * http://www.infoinvest.com.br/ | 15 anos de tecnologia para RI | Clique para conferir https://www.youtube.com/watch?v=gkxxbshF4Icfeature=youtu.be* Em 16 de outubro de 2014 23:10, Enrique Pessoa enrique.pes...@rrd.com escreveu: Boa noite, Aureliano. Quanto a instalar uma versão que não é a mais recente. Eu nunca precisei disso, mas parece que dá para fazer usando o cpan shell. cpan o conf urllist push http://backpan.perl.org/ cpan install CORION/WWW-Mechanize-PhantomJS-0.10 Agora... experimente verificar se a interface dessa biblioteca não mudou de uma versão para a outra. Pode ser esse o motivo de não conectar. Abraços, Enrique Enrique Pessôa *Enrique Pessôa | Technology Products Manager, Brazil | RR Donnelley | Global Capital Markets* +55 21 2103.0508 | enrique.pes...@rrd.com | +55 21 9.8127.0077 * http://www.infoinvest.com.br/ | 15 anos de tecnologia para RI | Clique para conferir https://www.youtube.com/watch?v=gkxxbshF4Icfeature=youtu.be* Em 16 de outubro de 2014 21:53, Aureliano Guedes guedes_1...@hotmail.com escreveu: Na verdade, eu acredito que a versão mais nova do módulo esta bugada, esta gerando erro de conecção com o servidor, da versão 0.10 para a 0.11 a diferença são de 8 dias, e é muito recente, mandei um e-mail para o autor mas ele ainda não respondeu. Depois reporto o bug mais formalmente. -- Date: Thu, 16 Oct 2014 21:16:39 -0300 From: cont...@erikhenrique.com.br To: rio-pm@pm.org Subject: Re: [Rio-pm] Problema entre versões Vc não pode migrar esse script para usar a versão mais nova? Conexão* Abs Em 16/10/2014 20:51, Aureliano Guedes guedes_1...@hotmail.com escreveu: Ola Monges, Fiz um pequeno script que usa o WWW::Mechanize::PhantomJS http://search.cpan.org/~corion/WWW-Mechanize-PhantomJS-0.11/lib/WWW/Mechanize/PhantomJS.pm . Tudo funciona corretamente, so que funciona quando a versão do PhantomJS é a 0.10 que foi publicada dia 01/10/2014. A ultima versão, a 0.11, é do dia 09/10/2014, e quando tento executar o mesmo script com essa versão da erro de conecção com servidor. Acontece quem um dos computadores esta a versão OK a 0.10, no outro dei a bobeira de atualizar para a 0.11 e portanto começou a dar o bug. Queria saber como faço para forçar o script só executar com a versão 0.10. É alguma coisa no 'use'? Tipo? use WWW::Mechanize::PhantomJS::0.10; ou use WWW::Mechanize::PhantomJS 'version 0.10'; como faço isso? Além disso, tem como remover a versão 0.11 do pc e instalar a 0.10? Desde já grato. Att, Aureliano Guedes ___ 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
[Rio-pm] Problema entre versões
Ola Monges, Fiz um pequeno script que usa o WWW::Mechanize::PhantomJS. Tudo funciona corretamente, so que funciona quando a versão do PhantomJS é a 0.10 que foi publicada dia 01/10/2014. A ultima versão, a 0.11, é do dia 09/10/2014, e quando tento executar o mesmo script com essa versão da erro de conecção com servidor. Acontece quem um dos computadores esta a versão OK a 0.10, no outro dei a bobeira de atualizar para a 0.11 e portanto começou a dar o bug. Queria saber como faço para forçar o script só executar com a versão 0.10. É alguma coisa no 'use'? Tipo? use WWW::Mechanize::PhantomJS::0.10; ou use WWW::Mechanize::PhantomJS 'version 0.10'; como faço isso? Além disso, tem como remover a versão 0.11 do pc e instalar a 0.10? Desde já grato. Att, Aureliano Guedes ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] Ajuda: download de imagem
Gente, Estou muito enferrujado quanto a programação. Tem uma biblioteca virtual que tenho acesso e queria criar um script para baixar imagem por imagem de um livro qualquer. Mas aparentemente é tudo feito em JS e acho que o método para passar as paginas seria por jQuery. Não tenho certeza. Alguém poderia me indicar um caminho? Algum material. Qualquer ajuda vale, ate R$ 0,50. Site: http://bvu.ifce.edu.br/login.php login: 20131014020101 ___ 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
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___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa
Paciência... Quando acho que to no caminho certo, descubro que estou navegando em aguas desconhecidas. From: bla...@gmail.com Date: Wed, 9 Jul 2014 14:32:11 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa Simples meu caro gafanhoto! Você seguiu o be-a-bá tradicional de forma correta. Acessa a página do formulário, preenche os dados e submit. Só que esse form na realidade não faz o tradicional. Se você inspecionar a página com o Inspect ou o firebug no Firefox, vai ver que o form não declara um method o que implica GET. Entretanto, para acessar os dados, a página faz um POST, provavelmente via AJAX e não um submit tradicional. Quando vc faz o submit, o Mechanize tenta enviar os dados pela URL usando o método GET e o sevidor te responde com um 404 Not Found. É isso que o Mechanize está te avisando. Dá uma olhada nisso aqui: https://github.com/blabos/Docs/wiki/Protocolo-HTTP []'s 2014-07-09 14:15 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, Estou desenvolvendo um scriptzinho teste que se der tudo certo transformo em modulo e faço o upload para o CPAN. O script trabalha com calculo de frete, semelhante ao WWW::Correios::PrecoPrazo do Garu. A diferença é que ele calcula o frete com o desconto oferecido pelo PagSeguro para Envio Fácil (e-sedex) quando o pagamento é efetuado via PagSeguro. Estou usando o WWW::Mechanize, mas algo da errado. Quando preencho os fields e submito retorna o seguinte erro:'Error GETing https://pagseguro.uol.com.br/para_seu_negocio/howItWorksCalculator. jhtml?originCep=74491626destinyCep=36072130width=30height=6length=40weight=0.300: Not Found at C:\Users\Aureliano\Desktop\CEP\CEP.pl line 29.' Mas não sei exato qual o problema, mas parece que ta tentando puxar essa uri, ou sei la o que ta acontecendo. Alguem tem alguma ideia? link do script completo: http://pastebin.com/Cg7XWBgB Rotina onde acredito estar o problema:sub envio_facil{ my ($o, $d, $c, $a, $l) = @_; my $url = WWW::Mechanize-new(); $url-get('http://www.pagseguro.uol.com.br/para_seu_negocio/envio-facil.jhtml'); $url-submit_form( form_id = 'simulateCep', fields = {originCep = $c, destinyCep = $d, width = $l, height = $a, length = $c, , }, ); my $preco = $url-decoded_content; return $preco;} ___ 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] Release de modulo Beta no CPAN
) make test. Lê o Makefile para executar os testes do seu módulo. e) make install Quando você cria um módulo, para montar o .tar.gz normalmente você faz: a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo Makefile adaptado pra sua máquina. b) make manifest. Isso vai criar uma lista com todos os arquivos que precisam ser distribuídos dentro do seu .tar.gz c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. Os arquivos *.PL precisam ser executados no momento da instalação para que o Makefile seja montado de acordo com a máquina onde ele está sendo instalado e não de acordo com a máquina onde o módulo foi criado. 4) Release. Consiste em enviar o seu módulo para o CPAN. *** O Module::Make eu vou desconsiderar, porque ele só tem uma versão antiga lançada e nenhum outro módulo do cpan o utiliza (https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). *** Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre todas as etapas listadas acima e mais algumas outras, como integração com o seu sistema de controle de versão e simplificação da criação de POD, por exemplo. Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou outra, ou ainda combiná-las entre si. Eu particularmente tenho módulos que usam o dzil (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não usam (https://github.com/blabos/Paginator-Lite). E quando não uso, tenho preferência por criar o módulo com o Module::Starter (não confundir com https://metacpan.org/pod/Module::Start) usando como builder o Module::Install. *** Finalizando, só preste atenção no que você deseja fazer e escolha a ferramenta que achar mais adequada, tendo em mente que embora seja relativamente simples criar um módulo e botar no CPAN, há várias etapas envolvidas, que na maioria das vezes já são até instintivas, mas que se você misturar as coisas, pode dar a maior confusão. []'s 2014-05-20 16:12 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build e Module::Make. Posso estar enganado, mas esses 'eram' os mais recomendados. O Dist::Zilla é mais recente porem creio que seja o melhor e atualmente o 'mais recomendado'. Date: Tue, 20 May 2014 11:52:43 -0700 From: samircu...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Release de modulo Beta no CPAN Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build e Module::Make. Lendo melhor, parece que rola uma discussao entre usar as flags oficiais do CPAN ou _ na versao. Hum. Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ na versao. Mas o argumento da confusao no metacpan faz sentido. De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm Entao de repente o melhor e fazer como o ingy e colocar uma nota no POD. Abs 2014-05-20 11:39 GMT-07:00 Renato Santos renato.c...@gmail.com: * http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html #fastreply 2014-05-20 15:35 GMT-03:00 Samir Cury samircu...@gmail.com: Pessoal, Outro dia na lista, li alguem dizendo : manda pro CPAN logo como beta Como estou no passo intermediario para o meu primeiro modulo decente, com testes e tudo mais, talvez nao tenha visto essa opcao ainda. Pesquisando um pouco esbarrei com todas essas definicoes : http://search.cpan.org/dlsip?bpmOp Ja que o modulo funciona, esta documentado e passa no prove, achei interessante subir como beta, e lancar novas releases quando fizer mais refatoracoes. Enfim. Queria confirmar com a galera que ja trilhou este caminho, que quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. Pra quem estiver curioso este e o modulo : https://github.com/samircury/HTCondor--Queue--Parser Abs, 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 ___ 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
Re: [Rio-pm] Release de modulo Beta no CPAN
Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build e Module::Make. Posso estar enganado, mas esses 'eram' os mais recomendados. O Dist::Zilla é mais recente porem creio que seja o melhor e atualmente o 'mais recomendado'. Date: Tue, 20 May 2014 11:52:43 -0700 From: samircu...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Release de modulo Beta no CPAN Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build e Module::Make. Lendo melhor, parece que rola uma discussao entre usar as flags oficiais do CPAN ou _ na versao. Hum. Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ na versao. Mas o argumento da confusao no metacpan faz sentido. De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm Entao de repente o melhor e fazer como o ingy e colocar uma nota no POD. Abs 2014-05-20 11:39 GMT-07:00 Renato Santos renato.c...@gmail.com: * http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html #fastreply 2014-05-20 15:35 GMT-03:00 Samir Cury samircu...@gmail.com: Pessoal, Outro dia na lista, li alguem dizendo : manda pro CPAN logo como beta Como estou no passo intermediario para o meu primeiro modulo decente, com testes e tudo mais, talvez nao tenha visto essa opcao ainda. Pesquisando um pouco esbarrei com todas essas definicoes : http://search.cpan.org/dlsip?bpmOp Ja que o modulo funciona, esta documentado e passa no prove, achei interessante subir como beta, e lancar novas releases quando fizer mais refatoracoes. Enfim. Queria confirmar com a galera que ja trilhou este caminho, que quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. Pra quem estiver curioso este e o modulo : https://github.com/samircury/HTCondor--Queue--Parser Abs,Samir ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Saravá, Renato CRONhttp://www.renatocron.com/blog/ @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
Re: [Rio-pm] nota de falecimento
-- Daniel Vinciguerra dan.vincigue...@gmail.com escreveu: :-( *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and co-founder at *Bivee* bivee.com.br - github.com/Bivee 2014-05-10 21:25 GMT-03:00 Blabos de Blebe bla...@gmail.com: :( 2014-05-10 21:07 GMT-03:00 Renato Santos renato.c...@gmail.com: 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 ___ 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] empregos perl no rio (ou brasil)
Breno, por curiosidade. O que define um desenvolvedor Perl5 junior, pleno ou sênior? breno br...@rio.pm.org escreveu: Falando em vagas no Rio de Janeiro, pra quem não sabe, a Estante Virtual está contratando desenvolvedores Perl 5 de todos os níveis (júnior/pleno/sênior) pra trabalhar com desenvolvimento Web! A Estante é um e-commerce consagrado de livros novos, seminovos e usados que agrega o acervo de sebos de todo o país. O sistema é todo em Perl 5 e usa módulos como Moo/Moose, Template Toolkit, DBIx::Connector, CHI, JSON, Try::Tiny, entre tantos outros (não temos medo de usar o CPAN, nosso cpanfile tem mais de 90 módulos!). O banco é em MySQL (com full-text em Sphinx e interface memcached), trabalhamos com git, testes e code reviews. O requisito principal das nossas vagas realmente não é Perl; é saber trabalhar bem em equipe (somos 9 devs Perl e contando!), analisar problemas e ser proativo nas soluções ;-) Enviem currículos pra r...@estantevirtual.com.br []s -b 2014-05-05 16:24 GMT-03:00 Andre Carneiro andregarciacarne...@gmail.com: O que mais eu vejo é vaga para suporte de infra/rede e sys admin(por aqui, sinônimo para 'faz-tudo'). Quando não é isso, é para cuidar de código legado e/ou novo de back-end, o que eu considero bem divertido. Mas a principal observação é que, normalmente, o requisito principal para as vagas não é Perl, mas shellscript, Java, PHP(argh!) e coisas assim. Perl aparece quase sempre como requisito 'desejável', ao invés de 'básico' ou imprescindível. E isso é um tanto perturbador pra mim, pelo menos. Quanto a salário não sei dizer ao certo. Normalmente vale a pena investir em certificação LPI, no caso de trabalhos com suporte/infra. Os certificados ajudam você a ganhar um pouco mais. Mestrado, doutorado e afins parecem ter mais importância para cargos de liderança/executivos. Mas nada supera o networking... ;-) Tudo isso que eu falei é baseado no que tenho observado do mercado através de anúncios, e de colegas. Como eu não confio em pesquisas publicadas por consultorias de RH, prefiro acreditar no que vejo, do escuto de colegas, de quem me procura oferecendo emprego, e informações das listas de discussão. Espero ter ajudado Atenciosamente 2014-05-05 15:38 GMT-03:00 Diego Tostes dtos...@gmail.com: Pessoal, Como andam as vagas de perl no rio ou no brasil? Quais empresas ou nichos que mais contratam? Abs Diego ___ 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 ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] Bio::Filter
Ola monges, Quero convidar todos nossos amigos que trabalham com bioinformática aderentes da filosofia open source a se juntar a mim para o desenvolvimento de um conjunto de módulos direcionados para filtra as longas listas de informações que temos que lidar na bioinformática. A ideia é ter fácil acesso por meio de pesquisa simples e direcionada a ferramentas para filtrar dados na bioinformática. Iniciei o projeto, e já tenho algumas ferramentas que vou revisar e fazer testes para incluir no projeto para enviar em breve para nosso querido CPAN. Quem quiser e puder colaborar, ficarei grato. GitHub: https://github.com/acpguedes/Bio--Filter.gitcontato: guedes.aureli...@gmail.com Estou aberto a critica, sugestões, colaborações, etc. Abraços, Aureliano Guedes ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Bio::Filter
O projeto nao e paralelo ao BioPerl, e dentro do BioPerl. Eu observei que ele e muito rico em ferramentas complexas para diversas áreas da bioinfo mas carece um pouco de ferramentas para filtrar os dados obtidos. Ou quando se tem um ferramenta para isso pesquisar ela e difícil também. Então eu vou montar um grupo de ferramentas para filtrar dados. Já eu subo pro CPAN um primeiro para tirar como exemplo. Andre Carneiro andregarciacarne...@gmail.com escreveu: Não sei exatamente o que você quer fazer. Só queria dizer que existe o Bioperl. Não sei se você conhece. http://www.bioperl.org/wiki/Main_Page 2014-05-06 16:22 GMT-03:00 Felipe da Veiga Leprevost fel...@leprevost.com.br: Olá Aureliano, Desculpa mas eu não entendi a proposta do seu módulo, pode explicar um pouco melhor dando exemplos? abraços 2014-05-06 15:25 GMT-03:00 Tiago Peczenyj tiago.pecze...@gmail.com: Bota logo no cpan. Como versão beta Em 06/05/2014 15:20, Aureliano Guedes guedes_1...@hotmail.com escreveu: Ola monges, Quero convidar todos nossos amigos que trabalham com bioinformática aderentes da filosofia open source a se juntar a mim para o desenvolvimento de um conjunto de módulos direcionados para filtra as longas listas de informações que temos que lidar na bioinformática. A ideia é ter fácil acesso por meio de pesquisa simples e direcionada a ferramentas para filtrar dados na bioinformática. Iniciei o projeto, e já tenho algumas ferramentas que vou revisar e fazer testes para incluir no projeto para enviar em breve para nosso querido CPAN. Quem quiser e puder colaborar, ficarei grato. GitHub: https://github.com/acpguedes/Bio--Filter.git contato: guedes.aureli...@gmail.com Estou aberto a critica, sugestões, colaborações, etc. Abraços, Aureliano Guedes ___ 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 -- Felipe da Veiga Leprevost, PhD www.leprevost.com.br Laboratory for Proteomics and Protein Engineering. Fiocruz, Brazil. ___ 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
Re: [Rio-pm] Número no final do package
'Warning! The consumption of alcohol may cause you to think you have mystical kung-fu powers.' Date: Sun, 4 May 2014 20:08:49 +0200 From: creakt...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Número no final do package (0x2B or not 0x2B) воскресенье, 4 мая 2014 г. пользователь Adriano Ferreira написал: 2014-05-04 12:12 GMT-03:00 breno br...@rio.pm.org: Só de curiosidade: http://returnvalues.useperl.at (especificamente, http://returnvalues.useperl.at/values.html) Eu costumo botar 1 em trabalhos profissionais, e 42 em projetos open-source. Em alguns módulos do SDL a gente botou all your base are belong to us, e o Dancer exporta a DSL true e recomenda seu uso nas apps feitas com ele. Qual o seu valor de retorno favorito? :D 0 but true =) []s -b 2014-05-03 18:30 GMT-03:00 Bruno Buss bruno.b...@gmail.com: Os dois 1os resultados do Google... http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module 2014-05-03 18:03 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, tenho uma dúvida meio idiota: O que é aquele número no final do módulo?? exemplo: package Meu::Modulo; ... 1; No módulo do Garu mesmo: package Acme::BOPE; . 42; Eu sempre coloquei de forma automática o '1;', mas não faço ideia do que é, alguns módulos tem números diferentes. Mas o que é esse numero? Pra que serve? Como seu qual número devo colocar? Abraços, ___ 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 ___ 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] [GOLF] Descanso de Pascoa: Maior palindromo
Acabei de subir para o CPAN a versão 0.02 daquele módulo.https://metacpan.org/pod/Math::Palindrome Mas agora que acabei de ver seu e-mail. Algumas modificações já irei fazer para subir a versão 0.03. Se você tentar instalar depois me fala se deu certo? From: bruno.b...@gmail.com Date: Sat, 3 May 2014 18:57:58 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Sobre o lance do next_palindrome antes do loop: Mas com isso você quebrou o caso onde o valor inicial já é um palindromo primo... ou seja, não ta certo :P Você não consegue fazer uma condição do loop melhor, tal que ela verifique as duas condições e só pare quando o número for um primo palindromo sempre, desde a 1a verificação? ;) Sobre a explicação do modulo: Opa, muito bom! Seems good to me :-)Só acho que você precisa tratar todos os casos onde $n =~ m/^9+$/, porque só o 99 e 999 não bastam (mas foi legal que você já tinha percebido o problema deles :-) Tratar eles é bem fácil eu acho:if($n =~ m/^9+$/){ $r = '1' . (0 x ((length $n) - 1)) . '1';} Seems legit? Por fim, seria legal voce escrever tudo isso na documentação do seu módulo, pois provavelmente vai ajudar quem estiver escolhendo um para usar :-) Acho que já estou convencido que sua next_palindrome está ok (tirando esse problema aí de cima dos números com todos os dígitos 9). Agora só precisamos melhorar o loop principal do seu programa. Lembre-se do que você quer (um primo palindromo) e do que você realmente precisa dentro desse seu loop. Tente construir uma invariante das iterações do loop, o que você pode garantir a cada passada do loop? 2014-05-03 11:27 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Então, esse problema já é do loop principal e não do módulo. Porque eu faço: $time = next_palindrome($time); Antes do loop principal.acho que pode ser corrigido fazendo: $time = next_palindrome($time) if (!is_palindrome($time)); Fiz isso para evitar que um time() primo finalize o loop mesmo sem ele começar, já que o loop inicia assim:while(!is_prime($time)) Agora quanto ao módulo em sí, a logica usada é a seguinte:- Um número palíndromo é obrigatoriamente igual a ele mesmo se lido de traz para frente, então- Se dividirmos pela metade os dígitos de um numero palíndromo de número de dígitos maior ou igual a 2 então a primeira metade é obrigatoriamente igual a segunda lida de traz para frente. Isso me leva as seguintes conclusões: 1- Se o reverso da segunda parte é menor que a primeira parte # 8652 - 86 25logo o próximo palíndromo é obrigatoriamente a primeira parte concatenada com o reverso dela mesma # 86 . (reverse 86)Isso se torna verdadeiro porque no caso usado para exemplo '8668' a segunda parte é o '68' que tem seu reverso '86' que é igual a primeira parte. 2- Se se o reverso da segunda parte é maior ou igual a primeira parte# 8668 - 86 == 86 # ou # 8669 - 86 96logo o próximo palíndromo é obrigatoriamente a primeira parte incrementada concatenada com seu reverso # 8668 - 86 +1 - 87 . 78 - 8778 Então minha heurística foi aplicada em cima de uma lógica matemática, o que apesar do módulo não vir com os testes, em meus testes ao final do desenvolvimento ele fez corretamente todas as respostas. Inclusive estou fazendo algumas correções para subir estas correções.Eu não sei fazer direito aqueles testes, mas enviarei com os testes na próxima. Quanto ao Math::NumSeq::Palindromes, acho que poderia ser melhor de usar, mais direto, no meu você pode imprimir o próximo palindromo fazendo apenas 'say next_palindrome($n);'. From: bruno.b...@gmail.com Date: Sat, 3 May 2014 10:01:11 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que ele esteja correto, principalmente que a função next_palindrome retorne exatamente o próximo palindromo maior ou igual ao número... Para esse seu programa:(1) Entrada: 9. Saída esperada: 9. Saída atual: 11. (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é 191 e fiquei com preguiça de terminar o chinês. (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a iteração do while... o $time foi bumpado para 796 - por causa do if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para ele japa++ pela consideração entre as duas versões do reverse reverse $time. Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de construir uma invariante no algoritmo. 2014-05-01 22:27 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK Engraçado: teve o melhor desempenho. Um simples detalhe reduziu o tempo de execução pela metade. Fazer: $time = reverse $time; $time
Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo
Entao vou colocar no github mesmo porque nao to sabendo fazer os testes. Bruno Buss bruno.b...@gmail.com escreveu: O seu teste 001_load.t ainda falha, basicamente porque ele tenta utilizar seu módulo como se fosse um objeto, tentando fazer um Math::Palindrome-new(). Assim, esse teste é criado automaticamente para você... e se seu módulo não for utilizado como um objeto, você pode remove-lo :-) Yay, moar tests! \o/ Algumas sugestões sobre os testes: * Quebre seus testes em arquivos diferentes, cada um testando uma função ou uma funcionalidade específica do seu módulo. * Talvez seja interessante fazer testes muito grandes, como o que seu que loopa nos 1os 100k palindromos, sejam marcados como testes para rodar somente no seu ambiente (de autor)... pois eles parecem mais smoke tests do que testes unitários de fato. Além disso, sobre esse seu teste do loop... ele está testando que o next_palindrome() de fato gera um palindromo, mas não testa se ele de fato gera o *proximo* palíndromo para todos aqueles casos. Como você faria para testar isso? :-) Mais duas sugestões sobre o processo de desenvolvimento at all: * Considere colocar o seu código num repositório onde outras pessoas podem contribuir, tanto na parte de código quanto de documentação, tipo o Github. * Experimente gerenciar seus modulos/dists com o Dist::Zilla... sua vida provavelmente será bem mais feliz :P https://metacpan.org/pod/Dist::Zilla Nice job! :-) [ ]'s 2014-05-04 21:48 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Acabei de subir para o CPAN a versão 0.02 daquele módulo. https://metacpan.org/pod/Math::Palindrome Mas agora que acabei de ver seu e-mail. Algumas modificações já irei fazer para subir a versão 0.03. Se você tentar instalar depois me fala se deu certo? -- From: bruno.b...@gmail.com Date: Sat, 3 May 2014 18:57:58 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Sobre o lance do next_palindrome antes do loop: Mas com isso você quebrou o caso onde o valor inicial já é um palindromo primo... ou seja, não ta certo :P Você não consegue fazer uma condição do loop melhor, tal que ela verifique as duas condições e só pare quando o número for um primo palindromo sempre, desde a 1a verificação? ;) Sobre a explicação do modulo: Opa, muito bom! Seems good to me :-) Só acho que você precisa tratar todos os casos onde $n =~ m/^9+$/, porque só o 99 e 999 não bastam (mas foi legal que você já tinha percebido o problema deles :-) Tratar eles é bem fácil eu acho: if($n =~ m/^9+$/){ $r = '1' . (0 x ((length $n) - 1)) . '1'; } Seems legit? Por fim, seria legal voce escrever tudo isso na documentação do seu módulo, pois provavelmente vai ajudar quem estiver escolhendo um para usar :-) Acho que já estou convencido que sua next_palindrome está ok (tirando esse problema aí de cima dos números com todos os dígitos 9). Agora só precisamos melhorar o loop principal do seu programa. Lembre-se do que você quer (um primo palindromo) e do que você realmente precisa dentro desse seu loop. Tente construir uma invariante das iterações do loop, o que você pode garantir a cada passada do loop? 2014-05-03 11:27 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Então, esse problema já é do loop principal e não do módulo. Porque eu faço: 1. $time = next_palindrome($time); Antes do loop principal. acho que pode ser corrigido fazendo: 1. $time = next_palindrome($time) if (!is_palindrome($time)); Fiz isso para evitar que um time() primo finalize o loop mesmo sem ele começar, já que o loop inicia assim: while(!is_prime($time)) Agora quanto ao módulo em sí, a logica usada é a seguinte: - Um número palíndromo é obrigatoriamente igual a ele mesmo se lido de traz para frente, então - Se dividirmos pela metade os dígitos de um numero palíndromo de número de dígitos maior ou igual a 2 então a primeira metade é obrigatoriamente igual a segunda lida de traz para frente. Isso me leva as seguintes conclusões: 1- Se o reverso da segunda parte é menor que a primeira parte # 8652 - 86 25 logo o próximo palíndromo é obrigatoriamente a primeira parte concatenada com o reverso dela mesma # 86 . (reverse 86) Isso se torna verdadeiro porque no caso usado para exemplo '8668' a segunda parte é o '68' que tem seu reverso '86' que é igual a primeira parte. 2- Se se o reverso da segunda parte é maior ou igual a primeira parte # 8668 - 86 == 86 # ou # 8669 - 86 96 logo o próximo palíndromo é obrigatoriamente a primeira parte incrementada concatenada com seu reverso # 8668 - 86 +1 - 87 . 78 - 8778 Então minha heurística foi aplicada em cima de uma lógica matemática, o que apesar do módulo não vir com os testes, em meus testes ao final do desenvolvimento ele fez corretamente todas as respostas. Inclusive estou fazendo algumas correções para subir estas correções. Eu não sei fazer direito
[Rio-pm] Número no final do package
Ola monges, tenho uma dúvida meio idiota:O que é aquele número no final do módulo?? exemplo: package Meu::Modulo; ... 1; No módulo do Garu mesmo: package Acme::BOPE; . 42; Eu sempre coloquei de forma automática o '1;', mas não faço ideia do que é, alguns módulos tem números diferentes.Mas o que é esse numero? Pra que serve? Como seu qual número devo colocar? Abraços, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo
Bruno, resolvi o problema e segui a sua dica: http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm O http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era muito incompleto! From: bruno.b...@gmail.com Date: Mon, 28 Apr 2014 21:24:50 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo O problema é que quando time() está entre 89 e 96, next_prime($time) retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a resposta correta. O mesmo problema de antes, sua heurística para tentar pular números na sequencia de primos/palíndromos ainda não está muito boa. Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a metade dos dígitos do numero, porque você não usa a substr()? :-) 2014-04-27 20:49 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Bruno, Tratei a maioria dos erros e ainda ganhei em desempenho.O problema é que tem um bug que não consegui tratar. Quando 89 = time() = 96 sempre retorna 131 e não 101, mas quando 89 ou 96 retorna corretamente 101. http://pastebin.com/3QVnbjbP Date: Sun, 27 Apr 2014 14:00:02 -0300 From: guedes_1...@hotmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Buss, Obrigado por analisar o código. Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou. Essa heurística foi apenas experimental. E ainda pode ser otimizada. Nao sou muito habilidoso quando se trata de achar esses tipos de erros. Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou. Vou ver o que posso fazer para resolver esses bugs. Obrigado pela análise. Bruno Buss bruno.b...@gmail.com escreveu: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia 101 se o time() fosse 102. A resposta correta seria 131. A sua heurística geradora de palindromos andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime 13 se o time() for 13... e 13 nem é palindromo! O resultado correto nesse caso é 101. Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime 1003001 se o time() for 96... o que me parece meio longe do resultado esperado, 101. Nesse caso, emho, o problema é a sua heurística geradora de palindromos. Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Esquece a ultima versão. Divisão é pesado para o processador. Fiz uma versão menor com menos divisões que parece ter uma melhor performance. http://pastebin.com/jrjEv3eh From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sun, 27 Apr 2014 02:44:57 + Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: bla...@gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do primo. 2014-04-25 23:26 GMT-03:00 Junior Moraes juniiior...@gmail.com: Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes guedes_1...@hotmail.com escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1...@hotmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato viniciusmias...@gmail.com escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes guedes_1
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
#!/usr/bin/perl use strict;use warnings;use Math::Prime::Util ':all'; print ok if (is_prime($ARGV[0])); From: tiago.pecze...@gmail.com Date: Tue, 29 Apr 2014 17:36:23 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor de exemplos. 2014-04-29 17:34 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, Tenho uma pequena dúvida.Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria das vezes o seguinte: use Modulo::Modulo; my $p = Modulo::Modulo-new();$p-funcao(); isso porque no modulo tem um contrutor ou foi gerado de presente ao autor quando usado o Moose ou semelhante. A questão é que alguns poucos módulos permitem que seja feito diretamente use Modulo::Modulo; my $p;$p-funcao(); A dúvida é: como o autor do módulo faz para que permita fazer a chamada das funções sem precisar disso:my $p = Modulo::Modulo-new(); ___ 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
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Errei nesse exemplo, seria my $p = algumacoisa(); Mas ok, o Junior falou do 'Exporter', então o que eu to tentando fazer é:package Palindrome;use strict;use Exporter 'import';@EXPORT_OK = qw(is_palindrome);sub is_palindrome {return 1 if ($_[0] == reverse $_[0]);}1; mas quando tento use Palindrome 'all';print ok if (is_palindrome($ARGV[0])); e executo na shell 'perl exemplo.pl 111' ou qualquer outro número palíndromo ou não, não imprime ok, apesar de não gerar nenhuma mensagem de erro. From: tiago.pecze...@gmail.com Date: Tue, 29 Apr 2014 17:43:22 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor isto é uma subrotina exportada onde vc viu my $p; $p-algumacoisa; ? 2014-04-29 17:40 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: #!/usr/bin/perl use strict;use warnings;use Math::Prime::Util ':all'; print ok if (is_prime($ARGV[0])); From: tiago.pecze...@gmail.com Date: Tue, 29 Apr 2014 17:36:23 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor de exemplos. 2014-04-29 17:34 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, Tenho uma pequena dúvida.Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria das vezes o seguinte: use Modulo::Modulo; my $p = Modulo::Modulo-new();$p-funcao(); isso porque no modulo tem um contrutor ou foi gerado de presente ao autor quando usado o Moose ou semelhante. A questão é que alguns poucos módulos permitem que seja feito diretamente use Modulo::Modulo; my $p;$p-funcao(); A dúvida é: como o autor do módulo faz para que permita fazer a chamada das funções sem precisar disso:my $p = Modulo::Modulo-new(); ___ 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 -- 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
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
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 ___ 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
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.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
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Eu sei. Mas fui fazer um programa pra minha empresa em perl, ai minha esposa diz quero interface e pra windows, ai eu usei TK, ai ela disse quero algo bunitinho, ai aprendi delphi, ai começo da bug pra tudo que e lado, ai usei VB.net, ai fico pior, ai disse:vamos comprar um pronto. E viveram infelizes para sempre. Renato Santos renato.c...@gmail.com escreveu: ** 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
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Ainda sim mataria o dragão com perl. http://www.programacaoprogressiva.net/2012/12/Como-programadores-matariam-um-dragao-e-salvariam-a-princesa.html?m=1 Renato Santos renato.c...@gmail.com escreveu: http://i.imgur.com/8iUZEZt.png só pela zuera! 2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra dan.vincigue...@gmail.com: Boas praticas com Delphi é ruim heim hahaha *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and founder at *Bivee* bivee.com.br - github.com/Bivee 2014-04-29 20:11 GMT-03:00 Renato Santos renato.c...@gmail.com: ** 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.comescreveu: Só
Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor
Ainda sim mataria o dragão com perl. http://www.programacaoprogressiva.net/2012/12/Como-programadores-matariam-um-dragao-e-salvariam-a-princesa.html?m=1 Renato Santos renato.c...@gmail.com escreveu: http://i.imgur.com/8iUZEZt.png só pela zuera! 2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra dan.vincigue...@gmail.com: Boas praticas com Delphi é ruim heim hahaha *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and founder at *Bivee* bivee.com.br - github.com/Bivee 2014-04-29 20:11 GMT-03:00 Renato Santos renato.c...@gmail.com: ** 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.comescreveu: Só
Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo
Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: bla...@gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do primo. 2014-04-25 23:26 GMT-03:00 Junior Moraes juniiior...@gmail.com: Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes guedes_1...@hotmail.com escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1...@hotmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato viniciusmias...@gmail.com escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes guedes_1...@hotmail.com escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1...@hotmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe bla...@gmail.com escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Pode ficar menor. say '906609' Tiago Peczenyj tiago.pecze...@gmail.com escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))($_*$i=$_[0]))}}say$_[0] ___ 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 ___ 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 ___ 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
Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo
Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1...@hotmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato viniciusmias...@gmail.com escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes guedes_1...@hotmail.com escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1...@hotmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe bla...@gmail.com escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Pode ficar menor. say '906609' Tiago Peczenyj tiago.pecze...@gmail.com escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))($_*$i=$_[0]))}}say$_[0] ___ 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 ___ 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 ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo
Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato viniciusmias...@gmail.com escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes guedes_1...@hotmail.comescreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) -- Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1...@hotmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe bla...@gmail.com escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Pode ficar menor. say '906609' Tiago Peczenyj tiago.pecze...@gmail.com escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))($_*$i=$_[0]))}}say$_[0] ___ 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 ___ 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
[Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo
Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado.E como estamos em véspera de pascoa.Proponho uma brincadeira.Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))($_*$i=$_[0]))}}say$_[0] ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo
Pode ficar menor. say '906609' Tiago Peczenyj tiago.pecze...@gmail.com escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))($_*$i=$_[0]))}}say$_[0] ___ 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
Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo
Boa ideia. Vou tentar. Blabos de Blebe bla...@gmail.com escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Pode ficar menor. say '906609' Tiago Peczenyj tiago.pecze...@gmail.com escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))($_*$i=$_[0]))}}say$_[0] ___ 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___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] [DUVIDA] Array muito longo
Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999);my $fim = 999;my @memo while ($fim != 100){foreach (@ini){my $m = $_ * $fim; push (@memo, $m);}$fim--;}} Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999.Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj tiago.pecze...@gmail.com escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ 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
Re: [Rio-pm] [DUVIDA] Array muito longo
Entendi. Obrigado. Tiago Peczenyj tiago.pecze...@gmail.com escreveu: Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o IO ao máximo SE vc precisar. Em 15/04/2014 13:59, Aureliano Guedes guedes_1...@hotmail.com escreveu: Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj tiago.pecze...@gmail.com escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ 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___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [DUVIDA] Array muito longo
Tentei. Mas o pc que tava usando era um AMD Athon 1.6GHz 2gb RAM de 2007 forcadamente estrupado por um Windows 8.1 (Deus sabe porque fizeram isso). Depois tentei nesse servidor http://www.compileonline.com/execute_perl_online.php Tiago Peczenyj tiago.pecze...@gmail.com escreveu: vc testou ao menos: https://gist.github.com/peczenyj/10749501 aqui rodou de boa e consumiu quase nada 2014-04-15 14:03 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Entendi. Obrigado. Tiago Peczenyj tiago.pecze...@gmail.com escreveu: Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o IO ao máximo SE vc precisar. Em 15/04/2014 13:59, Aureliano Guedes guedes_1...@hotmail.com escreveu: Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj tiago.pecze...@gmail.com escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, Stanislaw Pusep creakt...@gmail.com escreveu: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com: Ola, monges. Gostaria de saber quais opções eu tenho para gravar um numero muito grande de informações em um array. Exemplo, imagine que eu tenha uma rotina tosca como essa: sub multiplicador{ my @ini = (100..999); my $fim = 999; my @memo while ($fim != 100){ foreach (@ini){ my $m = $_ * $fim; push (@memo, $m); } $fim--; } } Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * 999 ate 999*999. Os resultados de cada multiplicação são jogados para um array. Ou seja, um array grande pra caramba. Como faria para que @memo fosse capaz de guardar todos os valores? Qual é o limite de dados que posso normalmente guardar em um array? Obrigado, ___ 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 -- 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
Re: [Rio-pm] alguma diferença
Estou tentando testar esse módulo.Devo estar cometendo algum erro que eu não esteja vendo From: renato.c...@gmail.com Date: Fri, 11 Apr 2014 17:10:18 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] alguma diferença 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 CRONhttp://www.renatocron.com/blog/ @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
Re: [Rio-pm] alguma diferença
So consegui corrigir o erro fazendo isso: use base 'Class::Accessor'; Class::Accessor-mk_accessors (qw(altura largura)); From: tiago.pecze...@gmail.com Date: Sat, 12 Apr 2014 14:25:14 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] alguma diferença veja este exemplo: my $mp = Foo-new({ name = Marty, role = JAPH }); vc esqueceu os { } -- que são exigidos pelo Class::Accessor 2014-04-12 14:09 GMT-03:00 Aureliano Guedes guedes_1...@hotmail.com: Estou tentando testar esse módulo.Devo estar cometendo algum erro que eu não esteja vendo retangulo.pm teste.pl Erro:Can't use string (altura) as a HASH ref while strict refs in use at C:/Perl6 4/lib/Class/Accessor.pm line 13. From: renato.c...@gmail.com Date: Fri, 11 Apr 2014 17:10:18 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] alguma diferença 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 CRONhttp://www.renatocron.com/blog/ @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 -- 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
[Rio-pm] alguma diferença
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
Re: [Rio-pm] alguma diferença
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
Re: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes
Nunca aconselhei atualizar o Perl do sistema, e para garantir minha integridade, continuo não aconselhando, mas... Minhas aplicações não exigem uma 'versão específica' do Perl para serem executadas, então uma vez por teste, peguei um pc parado aqui e desci um Debian nele, depois atualizei o Perl (do sistema), e 'PA' nada aconteceu (digo nada de ruim).Não sei quanto a módulos usados pelo sistema, posso fazer esse teste depois. Mas não deu problema nenhum. From: bruno.b...@gmail.com Date: Fri, 4 Apr 2014 16:35:39 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes 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::Zillaend-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
[Rio-pm] [Curiosidade] Perl no smartphone
Ola monges, So uma curiosidade. Alguem conhece ou ja viu algum metodo, projeto ou mesmo algum grupo que tenha apenas a vontade de rodar perl em smartphone, seja android windows phone ou iOS? T+ ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Configuração de usuário não root no cpan Perl Roll em Rocks Cluster
Caraca. Complexo. O melhor, foi ver a pela primeira vez uma mulher na bioinformatica. Hello colega bioinformata. Stanislaw Pusep creakt...@gmail.com escreveu: Olá Nicole! Já passei por situação semelhante à sua, quando não podia atualizar o Perl default do sistema e a opção foi instalar um Perl mais atualizado avulso no /usr/local. Para sempre usar o Perl do /usr/local, 3 medidas foram tomadas: 1. export PATH=/usr/local/bin:$PATH 2. Os shebangs de todos os scripts executáveis do projeto foram modificados de: #!/usr/bin/perl para: #!/usr/bin/env perl 3. local::lib foi utilizado para CPAN desovar no $HOME. O local::lib requer uma intervenção do .profile do sistema, para inicializar o environment apropriadamente. Seguem os passos para instalar o local::lib dessa forma. 3.1. Download do local::lib: $ wget http://cpan.metacpan.org/authors/id/H/HA/HAARG/local-lib-2.04.tar.gz $ tar xzvf local-lib-2.04.tar.gz $ cd local-lib-2.04/ 3.2. Instalação do local::lib: $ perl Makefile.PL --bootstrap=$HOME/perl5 $ make $ make test $ make install 3.3. Ativando local::lib na inicialização da shell (Bash): $ cat PROFILE $HOME/.profile eval \$(perl -I\$HOME/perl5/lib/perl5/ -Mlocal::lib) PROFILE $ A idéia aqui é que rodar perl -I$HOME/perl5/lib/perl5/ -Mlocal::lib retorna para STDOUT as tais das variáveis de ambiente que fazem o Perl buscar instalação dos módulos em um lugar específico ($HOME). Pode simplesmente colar essas variáveis direto no .profile, ou (como demonstrado acima) rodar eval do output do Perl. 3.4. Carregar a configuração: . $HOME/.profile 3.5. Prosseguindo com a configuração/teste do CPAN e do cpanm (essa configuração faz as dependências serem instaladas automaticamente): $ cpan cpan[1] o conf prerequisites_policy follow cpan[2] o conf commit cpan[3] install App::cpanminus cpan[4] quit Boa sorte! 2014-01-29 Nicole Scherer bionica2007-p...@yahoo.com Boa tarde, queridos Mongers, eu não queria importuná-los com problemas simples, mas após três dias batendo a cabeça e vasculhando fóruns na internet sem solução para algumas das perguntas, recorro a vocês. Vou tentar explicar a novela. Montamos um cluster HPC para pesquisa usando o Rocks 6.1 ( http://www.rocksclusters.org/) -- um tipo de linux que instala outro linux em todos os nós do cluster e gerencia tudo isso. Novidade pra mim, mas funciona. Esse Rocks instala os chamados Rolls, entre eles o próprio SO (neste caso o RHEL6) e outros Rolls úteis, como SGE, Ganglia, Web-Server, Bio, Perl (4.14.2) entre outros. Estes Rolls são instalados em /opt/ e as vezes coexistem com os binários do SO. Desta forma, tenho duas versões de Perl: - a do sistema (RHEL6): $ /usr/bin/perl -v This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi - e a do Rocks: $ /opt/perl/bin/perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-thread-multi Cada qual com as suas bibliotecas. @INC: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . @INC: /opt/perl/lib/site_perl/5.14.2/x86_64-linux-thread-multi /opt/perl/lib/site_perl/5.14.2 /opt/perl/lib/5.14.2/x86_64-linux-thread-multi /opt/perl/lib/5.14.2 . Agora é que começam meus problemas... Primeiro: Alguém já teve experiência com duas instalações coexistentes de Perl? Posso ter problemas de funcionamento no SO se eu mover o /usr/bin/perl e criar um link do /opt/perl/bin/perl para /usr/bin/perl (uma vez que as shebang dos scripts costuma ter este endereço). Colocar simplesmente /opt/perl/bin no início do $PATH pode não ser a solução. O CPAN só está instalado na versão do Rocks, o que me motiva mais a deixá-lo como default. Como a maioria dos usuários não terão privilégios de root e além disso, qualquer instalação no sistema operacional tem que ser espelhada para todos os nós, a melhor opção para instalar pacotes é na home dos usuários, concordam? Então eu quero deixar tudo o mais fácil possível para que os usuários instalem os pacotes desejados. Como não teremos acesso direto à internet usei o minicpan para criar um mirror em uma pasta compartilhada com minha máquina local. Configurei o urllist do cpan pra ela e ficou tudo ok. Agora esbarrei em um problema que não estou achando resposta fácil. Quando executo o cpan pela primeira vez como usuário comum, da forma mais automática possível, ele cria, como esperado o arquivo MyConfig.pm e toda a estrutura de diretórios no home do usuário. Ele executa quase tudo com perfeição, substituindo o endereço default pelo do usuário em QUASE todos os itens, menos em prefs_dir. [hpcst06@crab ~]$ grep cpan .cpan/CPAN/MyConfig.pm 'build_dir' = q[/home/hpcst06/.cpan/build], 'cpan_home' = q[/home/hpcst06/.cpan], 'histfile' = q[/home/hpcst06/.cpan/histfile], 'keep_source_where' = q[/home/hpcst06/.cpan/sources],
Re: [Rio-pm] Perl e Facebook
Posso ta errado, mas acredito que aquele chat do face usa Perl. Mas que trem e esse de hiphop sei la o que e esse de PHP com performance de C++? Renato Santos renato.c...@gmail.com escreveu: Isso é só um mirror, geralmente de contribuição por utilizar Perl em alguns pedaços (e no começo era um Perl script cgi) aí como pra eles um servidor não é nada, eles fazem o mirror. Assim como globo . com, etc On Jan 10, 2014 9:26 AM, Andre Luis alpbs2...@gmail.com wrote: Bom dia lista, Hoje configurando o CPAN na minha maquina notei uma coisa curiosa (32) http://cpan.mirror.facebook.net/ Alguém sabe se o facebook está trabalhando com perl? Eu achava que o facebook usava PHP Abs ___ 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] Perl e Facebook
Vei... to sem palavras. Bruno Buss bruno.b...@gmail.com escreveu: Sim, inclusive tem pelo menos um vídeo do grupo Facebook Engineering[1] onde eles falam sobre os deploys deles e coisa do tipo e a parada é bem mindfuck para quem não está acostumado com a escala desse tipo ;P [1] https://www.facebook.com/Engineering PS: Vale a pena ler/ver a maioria dos textos/vídeos deste grupo ;) On Fri, Jan 10, 2014 at 3:55 PM, Blabos de Blebe bla...@gmail.com wrote: Hly Shit On Fri, Jan 10, 2014 at 3:33 PM, Tiago Peczenyj tiago.pecze...@gmail.comwrote: http://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/ Because Facebook's entire code base is compiled down to a single binary executable, the company's deployment process is quite different from what you'd normally expect in a PHP environment. Rossi told me that the binary, which represents the entire Facebook application, is approximately 1.5GB in size. When Facebook updates its code and generates a new build, the new binary has to be pushed to all of the company's servers. Moving a 1.5GB binary blob to countless servers is a non-trivial technical challenge. After exploring several solutions, Facebook came up with the idea of using BitTorrent, the popular peer-to-peer filesharing protocol. BitTorrent is very good at propagating large files over a large number of different servers. 2014/1/10 Blabos de Blebe bla...@gmail.com e o facebook todo é um binario com mais de 1 GB o deploy é via bit-torrent. Você, claro, tá tirando um sarro, né!? 2014/1/10 Tiago Peczenyj tiago.pecze...@gmail.com basicamente eles convertem PHP em C++ usando o HipHop e o facebook todo é um binario com mais de 1 GB o deploy é via bit-torrent. 2014/1/10 Aureliano Guedes guedes_1...@hotmail.com Posso ta errado, mas acredito que aquele chat do face usa Perl. Mas que trem e esse de hiphop sei la o que e esse de PHP com performance de C++? Renato Santos renato.c...@gmail.com escreveu: Isso é só um mirror, geralmente de contribuição por utilizar Perl em alguns pedaços (e no começo era um Perl script cgi) aí como pra eles um servidor não é nada, eles fazem o mirror. Assim como globo . com, etc On Jan 10, 2014 9:26 AM, Andre Luis alpbs2...@gmail.com wrote: Bom dia lista, Hoje configurando o CPAN na minha maquina notei uma coisa curiosa (32) http://cpan.mirror.facebook.net/ Alguém sabe se o facebook está trabalhando com perl? Eu achava que o facebook usava PHP Abs ___ 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 ___ 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 -- 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
[Rio-pm] [HELP] Controlando comandos do sistema
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
Re: [Rio-pm] [HELP] Controlando comandos do sistema
André Luiz, vou fazer da sua forma, obrigado.Agora fiquei sem entender porque $SIG{qw (INT TERM HUP)}... Renato, tentei fazer assim:my $c = 0; $SIG{INT} = sub { $c = 2 ? $c++ : die }; while (1) {print TESTE\n;sleep 1;} Deu certo, mas deu errado, por algum motivo tenho que apertar ctrl + c umas 4 vezes ou mais para dar certo From: renato.c...@gmail.com Date: Mon, 25 Nov 2013 16:22:07 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] [HELP] Controlando comandos do sistema SIGINT2 TermInterrupt from keyboard Esse é o CTRL+C, $SIG{INT} = 'IGNORE'; não consegui fazer assim: my $c = 0; $SIG{INT} = sub { return 'IGNORE' if $c++ 3 }; não sei porque, alguem sabe? 2013/11/25 Andre Luis alpbs2...@gmail.com nesse caso só iria ignorar ele nao irira tratar ... pelo que eu entendi ele quer tratar $SIG{KILL} = sub { do_something() }; Em 25 de novembro de 2013 16:06, Renato Santos renato.c...@gmail.com escreveu: 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 CRONhttp://www.renatocron.com/blog/ @renato_cron ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- technology does not drive change - it enables change ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Saravá, Renato CRONhttp://www.renatocron.com/blog/ @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
Re: [Rio-pm] [HELP] Controlando comandos do sistema
André Luiz, vou fazer da sua forma, obrigado.Agora fiquei sem entender porque $SIG{qw (INT TERM HUP)}... Renato, tentei fazer assim:my $c = 0; $SIG{INT} = sub { $c = 2 ? $c++ : die }; while (1) {print TESTE\n;sleep 1;} Deu certo, mas deu errado, por algum motivo tenho que apertar ctrl + c umas 4 vezes ou mais para dar certo From: renato.c...@gmail.com Date: Mon, 25 Nov 2013 16:22:07 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] [HELP] Controlando comandos do sistema SIGINT2 TermInterrupt from keyboard Esse é o CTRL+C, $SIG{INT} = 'IGNORE'; não consegui fazer assim: my $c = 0; $SIG{INT} = sub { return 'IGNORE' if $c++ 3 }; não sei porque, alguem sabe? 2013/11/25 Andre Luis alpbs2...@gmail.com nesse caso só iria ignorar ele nao irira tratar ... pelo que eu entendi ele quer tratar $SIG{KILL} = sub { do_something() }; Em 25 de novembro de 2013 16:06, Renato Santos renato.c...@gmail.com escreveu: 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 CRONhttp://www.renatocron.com/blog/ @renato_cron ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- technology does not drive change - it enables change ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Saravá, Renato CRONhttp://www.renatocron.com/blog/ @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
Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
Bom, fiz as mudanças aconselhadas e mais outras,ainda transformei em uma classe. Vigenere.pm- http://pastebin.com/aL4brPZxScript teste - http://pastebin.com/nbuqPqUr Ou- https://www.dropbox.com/sh/4diypsz4y2puvxq/t0HuRZLvZW/Vigenere_Perl Por algum motivo tem alguma coisa dando errado com o Moose, ainda não identifiquei, alguém ai sabe o que poderia ser?? From: n...@fastmail.fm To: rio-pm@pm.org Date: Sun, 10 Nov 2013 04:16:56 -0200 Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère On Sun, Nov 10, 2013, at 01:13 AM, Tiago Peczenyj wrote: 3- use map :) ao inves de my @b = split (//, $c); for (my $i = 0; $i @b; $i++){ $b[$i] = ord $b[$i]; } podes fazer return map { ord } split //, $c; quer enxugar mais uma gota? faz map ord, split //, $c; :) -- 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
Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère
#!usr/env/bin perl use feature 'say';use common::sense;use Vigenere; my $a = Vigenere-new();$a-key('cinco');$a-word('teste'); say Resultado: . $a-encode(); From: tiago.pecze...@gmail.com Date: Sun, 10 Nov 2013 22:42:46 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère mostra o codigo 2013/11/10 Aureliano Guedes guedes_1...@hotmail.com Certo, mas eu estou preenchendo os atributos, a não ser que eu esteja preenchendo de forma errada. From: tiago.pecze...@gmail.com Date: Sun, 10 Nov 2013 22:22:14 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère sim pq este erro vem do fato que este atributo é requerido se vc quer dar uma mensagem mais bonitinha pro usuario, valide os imputs no seu script antes de instanciar a classe. assim vc separa as coisas :) 2013/11/10 Aureliano Guedes guedes_1...@hotmail.com Bom, usei o Moose como recomendou, mais pratico.Quanto ao if, realmente foi falta de atenção, deveria ser um no lugar da virgula. Mas o erro que retorna é Attribute (key) is required at C:/Perl/site/lib/Moose/Meta/Attribute.pm line 519 Por algum motivo, é como se não fosse atribuido valor algum a key. Quanto ao metodo BUILD é que como ja tinha o codigo quase pronto fiquei com preguissa de usar para validar, mas vou mudar para que word e key tenham o mesmo tamanho sempre. From: tiago.pecze...@gmail.com Date: Sun, 10 Nov 2013 21:00:04 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère Aureliano com Moose vc pode marcar um atributo como required. assim se alguem esquecer ele na hora de inicializar a classe haverá uma mensagem de erro. has 'word' =( is = 'rw',isa = 'Str', required = 1,); melhor do que utilizar 'default' para validação. eu uso MUITO o default mas justamente para inicializar o que eu preciso. alias se vc precisa validar o tamanho da chave e do texto, vc poderia utilizar BUILD para isso. http://search.cpan.org/dist/Moose/lib/Moose/Manual/Construction.pod agora o que vc quer dizer com isso? if (isalpha($word[$a]), isalpha($key[$a])){ o que é um if com virgula? 2013/11/10 Aureliano Guedes guedes_1...@hotmail.com Bom, fiz as mudanças aconselhadas e mais outras,ainda transformei em uma classe. Vigenere.pm- http://pastebin.com/aL4brPZx Script teste - http://pastebin.com/nbuqPqUr Ou- https://www.dropbox.com/sh/4diypsz4y2puvxq/t0HuRZLvZW/Vigenere_Perl Por algum motivo tem alguma coisa dando errado com o Moose, ainda não identifiquei, alguém ai sabe o que poderia ser?? From: n...@fastmail.fm To: rio-pm@pm.org Date: Sun, 10 Nov 2013 04:16:56 -0200 Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère On Sun, Nov 10, 2013, at 01:13 AM, Tiago Peczenyj wrote: 3- use map :) ao inves de my @b = split (//, $c); for (my $i = 0; $i @b; $i++){ $b[$i] = ord $b[$i]; } podes fazer return map { ord } split //, $c; quer enxugar mais uma gota? faz map ord, split //, $c; :) -- 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 -- 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 -- 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 -- 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
Re: [Rio-pm] Emissão de NF-e
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
Re: [Rio-pm] Emissão de NF-e
Eu pensei em fazer direcionado para a nota fiscal eletrônica (Federal).No mínimo iria facilitar a vida de muita gente que passa meses (isso mesmo, meses) para desenvolver um sistema de geração de NF-e. Deixo claro que não tenho intuito de ganhar dinheiro com isso, sou só um bioinformata e dono de confecção,Mas eu lanço aqui a proposta de desenvolver esse sistema, eu mesmo vou começar a estudar o assunto e vou entrar nesse projeto,Quem quiser entrar nesse projeto comigo será bem vindo, podemos discutir sobre como faremos, por onde começar, pensei em ate mesmo criar um site para o projeto. Estou criando um sistema de gerenciamento para minha empresa, mas esta sendo em Delphi (que é um lixo de linguagem por sinal), mas consigo criar tempo ainda para o projeto. Deixo aqui e-mail e skype:guedes.aureliano@gmail.comaureliano.guedes From: renato.c...@gmail.com Date: Mon, 28 Oct 2013 10:47:02 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] Emissão de NF-e 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 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] Emissão de NF-e
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
[Rio-pm] Visual Perl
Ola monges, Andei lendo alguns boatos, mas nenhuma fonte segura e/ou confiável sobre um tal de Visual Perl (parece que assim que chamam). Parece que seria um modo de desenvolver aplicações visuais em Perl dentro do MS Visual Studio. Não sei se seria na plataforma .NET (o que acharia ridículo, já que no final tudo vira MSIL),ou se usaria as ferramentas do VS para desenvolver a interface gráfica. Bom, fiquei muito curioso. Vocês que são muito mais experientes que eu, sabem de alguma coisa do tipo. Seria legal, pois o GTK++ é ridículo, o ruim seria só pode desenvolver para Windows (Ruindows). ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Visual Perl
Iorgute sabor laranja é bom, por sinal. Bom, não consigo enxergar também Perl rodando na plataforma .NET, realmente, Perl não tem as mesmas falhas que o interpretador Ruby ou Python, contudo, se fosse possível desenvolver programas com interface gráfica tão boas quanto a de projetos WPF e ainda com a praticidade do Visual Studio (que diga-se de passagem, entrega quase que o código todo pronto) seria muito interessante, pois possibilitaria desenvolver rapidamente aplicações debilmentaly-frendily-user. Agora se fosse acontecer como acontece com o VB.Net e o C#, onde a única coisa que muda é a sintaxe da linguagem, mas no final tudo vira MSIL, seria ridículo e ainda perderiamos todas as vantagens que Perl nos fornece. Eu mesmo estou desenvolvendo um sistema para uma empresa que abri recentemente.Estou fazendo em VB.Net, pois meus dois sócios precisam saber usar o sistema também, hoje, para aplicações visuais para Windows não vejo nada melhor que .NET, independente de ser C# ou VB. Agora, Daniel Vinciguerra, quanto a parte de emissão de NF-e, você se importaria de me dar umas dicas de como foi feito? Achei interessante, não emito mais que 50 NF-e por mês mas seria interessante se eu aplicar esse método. No final, não há nenhum projeto, seja Perl5 ou Perl6, ativo e promissor, visando desenvolvimento de ferramentas para construção de interface gráfica descente em Perl? From: leonardo.bal...@gmail.com Date: Fri, 25 Oct 2013 16:42:41 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] Visual Perl Só vejo algumas justificativas para a existência de IronPython e IronRuby: - tentativa de resolver problema de performance e escalabilidade de interpretador Python ou Ruby. Não vejo esse problema com Perl, isso parece melhor solucionado. - Política corporativa. Desenvolvedores frustrados com .NET querem a experiência de outra linguagem e partem para essas linguagens que - atualmente - são mainstream entre as dinâmicas. - Java tem isso, .NET tem que ter igual, vide o C#. - Prova conceitual e de mkt para atrair desenvolvedores Python e Ruby para o uso de estrutura .NET. Acho que devs Perl não caem nessa, é muito meh, pois não resolve muita coisa em Perl. Não estou criticando um IronPerl/ Visual Perl que seja, mas pra mim é uma combinação que não faz sentido. Tipo suco de laranja e iogurte. :) Em 25 de outubro de 2013 16:31, Daniel Vinciguerra dan.vincigue...@gmail.com escreveu: Leo, Concordo que essa dobradinha não é algo comum mas temos hoje o IronPython e IronRuby e são implementações em CLI bem competentes mostrando que isso é possível e viável. Temos hoje também um projeto que visa implementar o Perl 6 em uma virtual machine .Net que é o projeto Niecza. https://github.com/sorear/niecza E a alguns anos fiz uma implementação que integrava um serviço escrito em .Net a um modulo Perl para trabalhar com processamento e informações relacionados a notas fiscais eletrônicas de uma grande empresa de logística nacional. O volume de notas processadas por dia era bem impressionante e o projeto foi bem sério e crítico pois essas informações precisavam ser repassadas para os clientes! Não estou defendendo nem criticando nada... estou lhe dando outro ponto de vista e você tira suas conclusões a partir daqui! ;-) Grande abraço, Daniel Vinciguerra Web Solutions Architect and Co-Owner at Bivee http://github.com/dvinciguerra 2013/10/25 Daniel Vinciguerra dan.vincigue...@gmail.com Boa tarde Aureliano, Visual Perl era um projeto da Active State que visava implementar um add-on para o Visual Studio na esperança de possibilitar o desenvolvimento Perl usando o IDE Visual Studio. http://web.archive.org/web/20011107130136/http://www.activestate.com/Products/Visual_Perl/ O projeto foi descontinuado e logo após foi substituído pelo atual ActiveState Komodo IDE¹ que é uma ferramenta multiplataforma baseada na interessante e multiplataforma GUI XUL² da Mozilla. Temos algumas formas de fazer Perl e .Net trabalharem juntas mas não temos um interpretador Perl construído para CLI³. 1 - http://www.activestate.com/komodo-ide 2 - https://developer.mozilla.org/en/docs/XUL 3 - http://en.wikipedia.org/wiki/Common_Language_Infrastructure Abraço, Daniel Vinciguerra Web Solutions Architect and Co-Owner at Bivee http://github.com/dvinciguerra 2013/10/25 Aureliano Guedes guedes_1...@hotmail.com Ola monges, Andei lendo alguns boatos, mas nenhuma fonte segura e/ou confiável sobre um tal de Visual Perl (parece que assim que chamam). Parece que seria um modo de desenvolver aplicações visuais em Perl dentro do MS Visual Studio. Não sei se seria na plataforma .NET (o que acharia ridículo, já que no final tudo vira MSIL),ou se usaria as ferramentas do VS para desenvolver a interface gráfica. Bom, fiquei muito curioso. Vocês que são muito mais experientes que eu, sabem de alguma coisa do tipo. Seria legal, pois o GTK++ é ridículo
Re: [Rio-pm] Visual Perl
Por sinal, sempre me pareceu que a MS nunca deu muita moral para o Perl, fora os roubos de projetos. Parrot se não me engano viria para fazer o que a plataforma .NET hoje faz. Parrot se não estou enganado é mais antigo que o .NET. From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Fri, 25 Oct 2013 23:04:35 + Subject: Re: [Rio-pm] Visual Perl Iorgute sabor laranja é bom, por sinal. Bom, não consigo enxergar também Perl rodando na plataforma .NET, realmente, Perl não tem as mesmas falhas que o interpretador Ruby ou Python, contudo, se fosse possível desenvolver programas com interface gráfica tão boas quanto a de projetos WPF e ainda com a praticidade do Visual Studio (que diga-se de passagem, entrega quase que o código todo pronto) seria muito interessante, pois possibilitaria desenvolver rapidamente aplicações debilmentaly-frendily-user. Agora se fosse acontecer como acontece com o VB.Net e o C#, onde a única coisa que muda é a sintaxe da linguagem, mas no final tudo vira MSIL, seria ridículo e ainda perderiamos todas as vantagens que Perl nos fornece. Eu mesmo estou desenvolvendo um sistema para uma empresa que abri recentemente.Estou fazendo em VB.Net, pois meus dois sócios precisam saber usar o sistema também, hoje, para aplicações visuais para Windows não vejo nada melhor que .NET, independente de ser C# ou VB. Agora, Daniel Vinciguerra, quanto a parte de emissão de NF-e, você se importaria de me dar umas dicas de como foi feito? Achei interessante, não emito mais que 50 NF-e por mês mas seria interessante se eu aplicar esse método. No final, não há nenhum projeto, seja Perl5 ou Perl6, ativo e promissor, visando desenvolvimento de ferramentas para construção de interface gráfica descente em Perl? From: leonardo.bal...@gmail.com Date: Fri, 25 Oct 2013 16:42:41 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] Visual Perl Só vejo algumas justificativas para a existência de IronPython e IronRuby: - tentativa de resolver problema de performance e escalabilidade de interpretador Python ou Ruby. Não vejo esse problema com Perl, isso parece melhor solucionado. - Política corporativa. Desenvolvedores frustrados com .NET querem a experiência de outra linguagem e partem para essas linguagens que - atualmente - são mainstream entre as dinâmicas. - Java tem isso, .NET tem que ter igual, vide o C#. - Prova conceitual e de mkt para atrair desenvolvedores Python e Ruby para o uso de estrutura .NET. Acho que devs Perl não caem nessa, é muito meh, pois não resolve muita coisa em Perl. Não estou criticando um IronPerl/ Visual Perl que seja, mas pra mim é uma combinação que não faz sentido. Tipo suco de laranja e iogurte. :) Em 25 de outubro de 2013 16:31, Daniel Vinciguerra dan.vincigue...@gmail.com escreveu: Leo, Concordo que essa dobradinha não é algo comum mas temos hoje o IronPython e IronRuby e são implementações em CLI bem competentes mostrando que isso é possível e viável. Temos hoje também um projeto que visa implementar o Perl 6 em uma virtual machine .Net que é o projeto Niecza. https://github.com/sorear/niecza E a alguns anos fiz uma implementação que integrava um serviço escrito em .Net a um modulo Perl para trabalhar com processamento e informações relacionados a notas fiscais eletrônicas de uma grande empresa de logística nacional. O volume de notas processadas por dia era bem impressionante e o projeto foi bem sério e crítico pois essas informações precisavam ser repassadas para os clientes! Não estou defendendo nem criticando nada... estou lhe dando outro ponto de vista e você tira suas conclusões a partir daqui! ;-) Grande abraço, Daniel Vinciguerra Web Solutions Architect and Co-Owner at Bivee http://github.com/dvinciguerra 2013/10/25 Daniel Vinciguerra dan.vincigue...@gmail.com Boa tarde Aureliano, Visual Perl era um projeto da Active State que visava implementar um add-on para o Visual Studio na esperança de possibilitar o desenvolvimento Perl usando o IDE Visual Studio. http://web.archive.org/web/20011107130136/http://www.activestate.com/Products/Visual_Perl/ O projeto foi descontinuado e logo após foi substituído pelo atual ActiveState Komodo IDE¹ que é uma ferramenta multiplataforma baseada na interessante e multiplataforma GUI XUL² da Mozilla. Temos algumas formas de fazer Perl e .Net trabalharem juntas mas não temos um interpretador Perl construído para CLI³. 1 - http://www.activestate.com/komodo-ide 2 - https://developer.mozilla.org/en/docs/XUL 3 - http://en.wikipedia.org/wiki/Common_Language_Infrastructure Abraço, Daniel Vinciguerra Web Solutions Architect and Co-Owner at Bivee http://github.com/dvinciguerra 2013/10/25 Aureliano Guedes guedes_1...@hotmail.com Ola monges, Andei lendo alguns boatos, mas nenhuma fonte segura e/ou confiável sobre um tal de Visual Perl (parece que assim que chamam). Parece que seria um modo de desenvolver aplicações
Re: [Rio-pm] [OFF] - Mão de Obra Projetos
Cara, essa discussão parece spam no meu e-mail. Aprendam, o maior derrota dos tolos é o silêncio dos sábios. Quantas vezes já procurei os monges com tolas dúvidas e/ou comentários, quantas vezes o bulling foi pesado comigo, e quantas vezes eu apelei? Não importa se inocente ou maliciosa a brincadeira, comentario, resposta, sempre levo na esportiva ou silencio, pois não vale apena queimar a imagem perante uma sociedade profissional com infantilidades, ainda mais quando se trata de dois grandes profissionais como vocês. Abraços, Aureliano Guedes, bioinformata From: marciodesouzaferre...@gmail.com Date: Thu, 13 Jun 2013 14:41:28 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] [OFF] - Mão de Obra Projetos 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 Ferreiraskype: 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 ___ 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
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
Re: [Rio-pm] Tutorada Hacker
Muito bom mesmo, seria um aplicativo interessante para se ter em smartphone, mas infelizmente não conheço nada sobre perl rodar em android ou iOS. From: n...@fastmail.fm To: rio-pm@pm.org Date: Sun, 5 May 2013 22:08:26 -0300 Subject: Re: [Rio-pm] Tutorada Hacker Muito legal a iniciativa! Parabéns! :) On Sun, May 5, 2013, at 12:42 PM, Marcio Ferreira wrote: Perlssoas, ontem fui tutor num evento aberto, o rodAda Hackerhttps://github.com/marcioferreira/rodAdaHacker O resultado foi bacana, em menos de 4 horas, eu e as meninas da ECO UFRJ que não conheciam nada de perl, programamos um scraper que baixa noticias da g1.globo, analisa o conteúdo e um gráfico(por ferramenta online). A responsável pelo projeto de MediaLab da ECO, gostou do projeto que e quer dar continuidade, atualmente estão com um projeto de analisar o marco civil da internet, se alguém se interessar vamos conversando. []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 -- 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
Re: [Rio-pm] use 5.016 ou use strict/warnings
fato ponto.de.exclamação a bosta do shift do meu teclado não funciona. From: leonardo.bal...@gmail.com Date: Sun, 3 Mar 2013 23:41:29 -0300 To: rio-pm@pm.org Subject: Re: [Rio-pm] use 5.016 ou use strict/warnings Se extrairem as mega respostas do Garu na lista da pra escrever um livro e ganhar uma graninha. Em 3 de março de 2013 07:53, Ole Peter Smith ole@gmail.com escreveu: o 'nosso' breno servindo o gabarito garu++! 0le Send via Android On Mar 3, 2013 2:16 AM, breno br...@rio.pm.org wrote: Mete um common::sense na bagaça toda e seja feliz! use perl5i; strict/warnings mas pela simples força do hábito. perl5i, common::sense, Toolkit, strictures, Real::Handy, Modern::Perl... todo mundo cedo ou tarde percebe um padrão no seu código Perl, um conjunto de módulos e pragmata que sempre gosta de usar em seus projetos. Perl é uma linguagem moldada no formato TIMTOWTDI, então parece injusto com os desenvolvedores que um ou outro conjunto de módulos seja ativado por padrão em qualquer código Perl. Agora, uma vez que você encontrou o *seu* estilo, imagine ter que escrever isso tudo no cabeçalho de cada novo arquivo: ---8--- use 5.16.0; use warnings; no indirect; no autovivification; use true; use autodie qw(:all); use autobox; use utf8; use File::stat; use Time::Piece; use Try::Tiny; use Carp qw(croak); ... ---8--- Complicado, né? Por isso muitos autores acabam criando suas coletâneas e distribuindo no CPAN, como as citadas lá no começo. No entanto, isso também não é de graça: usuários do seu módulo agora tem que baixar uma nova dependência apenas porque você teve preguiça de escrever use $modulo; e você AINDA tem que escrever use COLETANEA no inicio de cada novo arquivo que criar. Independente da coletânea utilizada, o problema não foi resolvido, apenas contornado. Mas nada temam, há uma alternativa: App::MyPerl == Ao instalar o App::MyPerl, você ganha dois programas na linha de comando: myperl e myprove. A partir daí, basta editar o arquivo .myperl/modules dentro da raiz do seu projeto e adicionar a lista de módulos e pragmata que você quer. Por exemplo: ---8--- v5.16 warnings autodie=:all ---8--- Ao rodar seu programa com myperl, todos os módulos desse arquivo já estarão carregados! O mesmo acontece para qualquer biblioteca dentro de lib e t/lib, o que torna tudo muito mais fácil para o seu desenvolvimento dentro de diretórios de projetos (como os criados pelo Module::Starter, shipit ou Dist::Zilla). Tudo isso sem source filters e sem que os erros e avisos sejam colocados em linhas diferentes (como o que acontece quando linhas são adicionadas sem modificar o arquivo original). Para rodar seus testes, é só usar o myprove em vez do prove. Os mais safos podem estar pensando: ok, mas qual a vantagem disso em relação a simplesmente fazer alias myperl='perl -Mv5.16 -M...'? Não é tão difícil assim. Tem razão, não é. Mas o myperl tem duas grandes vantagens. A primeira é que o diretório .myperl é criado por projeto. Assim você pode definir diferentes conjuntos de pragmata dependendo do tipo de projeto que está criando, por exemplo se é um projeto pessoal pequeno, um trabalho profissional ou um com determinadas restrições de ambiente. A segunda vantagem do myperl é que, com ele, você não só tem o perl com as configurações padrão que bem entender, mas garante que essas mesmas configurações serão passadas para todos os usuários do seu módulo automaticamente, sem a inclusão de novas dependências! Como? É só adicionar a seguinte função ao seu Makefile.PL: sub MY::postamble { qq{distdir: myperl_rewrite\nmyperl_rewrite: create_distdir\n\tmyperl-rewrite \$(DISTVNAME)} } Pronto. Agora, quando for fazer o build para o CPAN, o myperl vai adicionar as linhas pertinentes no código dentro da sua distribuição durante o 'make dist' \o/ Enfim, o App::MyPerl é mais uma solução para facilitar a vida de quem quer módulos e pragmas específicos para seus projetos, só que sem ter que carregar mais uma dependência ou adicionar uma linha de código sequer durante o desenvolvimento do seu programa. Adicione alguns atalhos ao seu gerador de módulos favorito (module-starter, dzil, shipit, entre outros) e você terá algo bem bacana na sua caixa de ferramentas! Disclaimer: ainda há algumas pontas soltas, o projeto acabou de nascer e não está particularmente maduro - eu mesmo já mandei alguns pull requests pro Matt - mas vale a pena ficar de olho! []s -b ___ 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] Percorrendo array
Era sim, mas resolvi tomar outro metodo. sub array_find_position{ my $gi = shift; my $position = 0; LINE: foreach (@data){ if ($_ eq $gi){ last LINE; } else{ $position++; } } return $position; } From: bla...@gmail.com Date: Sat, 12 Jan 2013 18:20:16 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] Percorrendo array perl -E '@array=(1..10); for(my $i = 0; $i 10; $i++){ if($array[$i] == 2){ $i = 5} if($array[$i] == 7) {$i = 10} say $array[$i]}' Tipo isso? 2013/1/12 Tiago Peczenyj tiago.pecze...@gmail.com: nao use foreach. use for ou while p indice e altere-o qdo quiser p avancar ou voltar Em 12/01/2013 15:53, Aureliano Guedes guedes_1...@hotmail.com escreveu: Ola Monges, Me surgiu uma duvida nesse momento. Imagine que temos um array de 10 posições: my @a = qw(0 1 2 3 4 5 6 7 8 9); Então este array esta em um loop, no caso um foreach: foreach my $i (@a){ ... } Mas eu quero que se o valor dessa posição seja 6, por exemplo, o array volte para segunda posição. Não sei se minha pergunta ficou estranha ou difícil de entender, mas como eu faria isso?? ___ 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
Re: [Rio-pm] Padrões de Código seguro
Bom material, depois com calma estudarei. From: shono...@gmail.com Date: Fri, 11 Jan 2013 10:26:46 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] Padrões de Código seguro perldoc -f sprintf %nspecial: *stores* the number of characters output so far into the next variable in the parameter list Agora, o que isto significa, não tenho idéia :D !!! Em 11 de janeiro de 2013 10:22, Tiago Peczenyj tiago.pecze...@gmail.com escreveu: Divertido alguem pode me explicar o %n ? https://www.securecoding.cert.org/confluence/display/perl/IDS30-PL.+Exclude+user+input+from+format+strings 2013/1/11 thiagogla...@ticursos.net Caros monges, a Cert (www.cert.org) desenvolve padrões e recomendações de segurança para a área de TI. Achei bem interessante, pois eles têm recomendações para C, C++, Java e Perl. www.securecoding.cert.org Os padrões para Perl e C++ ainda estão em desenvolvimento. Eles aceitam pitacos. regards. ___ 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 -- o animal satisfeito dorme. - Guimarães Rosa ___ 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] BrainFuck Interprer
Mudanças feitas. Mas vejam. Eu tinha tirado o given, mas coloquei de volta. O problema é, com o given, o STDIN não termina, eu digito alguma coisa e aperto enter naturalmente algo deveria acontecer, mas a unica coisa que acontece é uma quebra de linha. Date: Fri, 11 Jan 2013 11:16:26 -0200 From: viniciusmias...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] BrainFuck Interprer não deveria ter um given em algum lugar do código para você utilizar o when ? abs. Em 11 de janeiro de 2013 10:43, Aureliano Guedes guedes_1...@hotmail.com escreveu: Ola mongens, Como alguns sabem eu estava tentando fazer um interpretador para brainfuck em Perl. Portanto segue o que consegui ate agora: http://pastebin.com/gJKizdYS Um script brainfuck para testarem, ele converte letras munusculas para maiusculas: http://pastebin.com/kzMMpUsA Deve ser executado assim: perl mybf.pl bf.b Mas estou com problemas. Toda vez que executo me retorna : Can't use when() outside a topicalizer at mybf.pl line 36, line 1. Alguem sabe o que esta acontecendo, e pode me ajudar. Desde já, grato. Att ___ 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] BrainFuck Interprer
Mas geralmente a indicação pra parar é um enter. my $a = ; print $a; So de dar enter o script continua. Como deveria ser esta indicação no caso então?? Date: Fri, 11 Jan 2013 11:33:05 -0200 From: viniciusmias...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] BrainFuck Interprer bom, ... com o given o seu script executa, mas não termina. sem o given ele não executa ... escolha a melhor opção e continua desenvolvendo =) abs. Em 11 de janeiro de 2013 11:27, Aureliano Guedes guedes_1...@hotmail.com escreveu: Mudanças feitas. Mas vejam. Eu tinha tirado o given, mas coloquei de volta. O problema é, com o given, o STDIN não termina, eu digito alguma coisa e aperto enter naturalmente algo deveria acontecer, mas a unica coisa que acontece é uma quebra de linha. Date: Fri, 11 Jan 2013 11:16:26 -0200 From: viniciusmias...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] BrainFuck Interprer não deveria ter um given em algum lugar do código para você utilizar o when ? abs. Em 11 de janeiro de 2013 10:43, Aureliano Guedes guedes_1...@hotmail.com escreveu: Ola mongens, Como alguns sabem eu estava tentando fazer um interpretador para brainfuck em Perl. Portanto segue o que consegui ate agora: http://pastebin.com/gJKizdYS Um script brainfuck para testarem, ele converte letras munusculas para maiusculas: http://pastebin.com/kzMMpUsA Deve ser executado assim: perl mybf.pl bf.b Mas estou com problemas. Toda vez que executo me retorna : Can't use when() outside a topicalizer at mybf.pl line 36, line 1. Alguem sabe o que esta acontecendo, e pode me ajudar. Desde já, grato. Att ___ 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 ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] BrainFuck Interprer
Ok, agora um mudei outras coisas tambem, a principio tah td ok. http://pastebin.com/w78GfPEv Agora testei com um Hello World : ++[+-]++.+.+++..+++.++.+++..+++.--..+.. Mas ficou meio locão. Date: Fri, 11 Jan 2013 11:47:26 -0200 From: viniciusmias...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] BrainFuck Interprer Aureliano, seu código está bem confuso mesmo. você está realizando o foreach foreach my $i (split (//, $data)) e logo após o inicio do foreach você faz $i = substr($data,$s,2); você sabe explicar pq ? Outra dica: declare sua sub getchar no final do arquivo para deixar o código mais legível. Dica adiantada: antes de você trocar a sub e falar que o script parou de funcionar, na linha em que você realiza a chamada da sub getchar, coloque os () na função. ex.: getchar(); talvez isso ajude você a consertar o script, abs. Em 11 de janeiro de 2013 11:33, Vinícius Miasato viniciusmias...@gmail.com escreveu: bom, ... com o given o seu script executa, mas não termina. sem o given ele não executa ... escolha a melhor opção e continua desenvolvendo =) abs. Em 11 de janeiro de 2013 11:27, Aureliano Guedes guedes_1...@hotmail.com escreveu: Mudanças feitas. Mas vejam. Eu tinha tirado o given, mas coloquei de volta. O problema é, com o given, o STDIN não termina, eu digito alguma coisa e aperto enter naturalmente algo deveria acontecer, mas a unica coisa que acontece é uma quebra de linha. Date: Fri, 11 Jan 2013 11:16:26 -0200 From: viniciusmias...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] BrainFuck Interprer não deveria ter um given em algum lugar do código para você utilizar o when ? abs. Em 11 de janeiro de 2013 10:43, Aureliano Guedes guedes_1...@hotmail.com escreveu: Ola mongens, Como alguns sabem eu estava tentando fazer um interpretador para brainfuck em Perl. Portanto segue o que consegui ate agora: http://pastebin.com/gJKizdYS Um script brainfuck para testarem, ele converte letras munusculas para maiusculas: http://pastebin.com/kzMMpUsA Deve ser executado assim: perl mybf.pl bf.b Mas estou com problemas. Toda vez que executo me retorna : Can't use when() outside a topicalizer at mybf.pl line 36, line 1. Alguem sabe o que esta acontecendo, e pode me ajudar. Desde já, grato. Att ___ 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 ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
[Rio-pm] fazer string ficar undef
Ola monges, Quanto tempo, ne?! A paz reinava aqui sem minha ignorância. hahaha Desejando de cara um ótimo ano a todos venho trazer mais uma simples dúvida. Eu tenho o seguinte: chomp (my $b = ); $b = undef if $b eq ''; my $c = 'c'; my $a = defined($b) ? $b : $c; print $a, \n; Funciona perfeitamente, mas o que não entendo é porque se eu remover a segunda linha ($b = undef if $b eq '';). Ja não funciona. Se eu inserir algum valor em $b $a devera assumir o valor de $b, mas se não inserir devera assumir o valor de $c. Se eu fizer apenas: chomp (my $b = ); my $c = 'c'; my $a = defined($b) ? $b : $c; print $a, \n; Não da certo. Sim, eu sei que as formas abaixo funcionam, mas é apenas uma questão de estudo mesmo. chomp (my $b = ); my $c = 'c'; my $a = $b ? $b : $c; print $a, \n; chomp (my $b = ); my $c = 'c'; my $a = $b || $c; print $a, \n; daria certo, mas minha intenção é estudo apenas ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] fazer string ficar undef
Valeu gente, agora entendi. Mas então a única forma de tornar uma string undef quando não há nada no STDIN é fazendo: $b = undef if $b eq ''; Ou tem outra forma?? my $b = || undef; não funcionaria, certo?? Date: Tue, 8 Jan 2013 14:30:11 -0200 From: jimmy@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] fazer string ficar undef Saudações Aureliano, On Tue, Jan 08, 2013 at 03:43:10PM +, Aureliano Guedes wrote: [...] Eu tenho o seguinte: chomp (my $b = ); $b = undef if $b eq ''; my $c = 'c'; my $a = defined($b) ? $b : $c; print $a, \n; Funciona perfeitamente, mas o que não entendo é porque se eu remover a segunda linha ($b = undef if $b eq '';). Ja não funciona. Assim como o Renato Santos já mencionou, uma string vazia é defined, logo, se fizermos: my $c = 'c'; my $b = ''; my $a = defined $b ? $b : $c; print ''.$a.''; o resultado será Para o problema que você mencionou, o que parece querer testar de fato é se há algum valor na string diferente de undef e de vazio: my $c = 'c'; my $b = ''; my $a = defined $b $b ne '' ? $b : $c; print ''.$a.''; em outras palavras, qualquer coisa diferente de undef e vazio seriam atribuídos a $a. -- Não manejo bem as palavras Mas manipulo bem as strings. -- http://tecnoveneno.blogspot.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
Re: [Rio-pm] fazer string ficar undef
Renato, o motivo tambem não sei, mas varia de plataforma a plataforma, pode ser CR, LF, e CRLF. Thiago, é apenas curiosidade. Mas valeu a todos. From: renato.c...@gmail.com Date: Tue, 8 Jan 2013 15:05:10 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] fazer string ficar undef o faz a leitura e retorna undef apenas se for o final do arquivo, geralmente os arquivos de texto terminam com uma linha só com \n, não sei porque motivo! 2013/1/8 Aureliano Guedes guedes_1...@hotmail.com Valeu gente, agora entendi. Mas então a única forma de tornar uma string undef quando não há nada no STDIN é fazendo: $b = undef if $b eq ''; Ou tem outra forma?? my $b = || undef; não funcionaria, certo?? Date: Tue, 8 Jan 2013 14:30:11 -0200 From: jimmy@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] fazer string ficar undef Saudações Aureliano, On Tue, Jan 08, 2013 at 03:43:10PM +, Aureliano Guedes wrote: [...] Eu tenho o seguinte: chomp (my $b = ); $b = undef if $b eq ''; my $c = 'c'; my $a = defined($b) ? $b : $c; print $a, \n; Funciona perfeitamente, mas o que não entendo é porque se eu remover a segunda linha ($b = undef if $b eq '';). Ja não funciona. Assim como o Renato Santos já mencionou, uma string vazia é defined, logo, se fizermos: my $c = 'c'; my $b = ''; my $a = defined $b ? $b : $c; print ''.$a.''; o resultado será Para o problema que você mencionou, o que parece querer testar de fato é se há algum valor na string diferente de undef e de vazio: my $c = 'c'; my $b = ''; my $a = defined $b $b ne '' ? $b : $c; print ''.$a.''; em outras palavras, qualquer coisa diferente de undef e vazio seriam atribuídos a $a. -- Não manejo bem as palavras Mas manipulo bem as strings. -- http://tecnoveneno.blogspot.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 -- Saravá, Renato CRONhttp://www.renatocron.com/blog/ @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] PerlBrew mudanças no sistema
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? E outra dúvida é: Tem algum metodo para manter todos os módulos que ja tenho instalados? Desde já grato. Att, Aureliano Guedes. ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck
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? $p++ if ($i eq ''); $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 :DBTW, 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 CRONhttp://www.renatocron.com/blog/ @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 CRONhttp://www.renatocron.com/blog/ @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
[Rio-pm] [Passatempo] Interpretador para BrainFuck
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
Re: [Rio-pm] [Passatempo] Interpretador para BrainFuck
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 :DBTW, isso me lembrou de um dialeto do brainfuck, o trollscript: https://github.com/caius/trollscriptIsso é 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
Re: [Rio-pm] Isso não deveria estar certo???
Breno++, eu precisei mover esse e-mail para pasta importantes assim como fiz com aquele ultimo que me ajudou. Dicas assim não se pode deixar perder. Lerei sim os links que me passou. E sim, a duvida foi respondida. E não recebei como bronca, nem fiquei chateado ou algo do tipo. Não sei o que dizer alem de: Obrigado. Date: Sat, 8 Dec 2012 03:40:15 -0200 From: br...@rio.pm.org To: rio-pm@pm.org Subject: Re: [Rio-pm] Isso não deveria estar certo??? Oi Aureliano, cara, antes de tudo, parabéns. O exemplo que vc colou no email mostra que vc está prestando atenção no que é dito aqui na lista. Seus códigos estão agora com strict (faltou só o 'warnings', hein?), usando autodie, open com 3 argumentos, muito bom mesmo! Agora, pra ficar perfeito, falta só uma coisa: por favor, antes de mandar dúvidas, lembre que as pessoas daqui da lista não estão sentadas aí do seu lado olhando o seu problema, nem vivendo o seu dia-a-dia para saber os motivos e objetivos do código, tampouco possuem (eu pelo menos não possuo) poder de ler mente :-) Por exemplo, quando vc pergunta algo do tipo: Monges, cade o erro??? Fica faltando o clássico grupo: o que vc está tentando fazer, de modo geral? No código específico, o que deveria estar acontecendo mas não está? Ainda no código específico, o que está de fato acontecendo em vez do que deveria? Quando, mesmo depois do Junior Moraes matar a charada, vc continua com: Mas me diz uma coisa, como editar um arquivo. A gente tem que se esforçar até pra saber que é uma pergunta, mais ainda qual é a real pergunta por trás da pergunta. Como editar um arquivo é quase tão vago quanto Preciso saber o que estou errando aqui (retirado de outra thread que vc começou). Percebe o padrão? Isso não é uma bronca. Mas, pensa comigo: se der a impressão que vc não está se esforçando nem pra fazer a pergunta, pq alguém se esforçaria pra te dar a resposta? A atividade na lista é voluntária e não remunerada, feita por pessoas com um interesse em comum (Perl) e que se dispõem a ajudar umas às outras em seu tempo livre. Por isso mesmo, se vc quer respostas melhores e mais rápidas, precisa nos ajudar a te ajudar! Por exemplo, experimente ler suas perguntas em voz alta antes de enviar o email, e veja se elas deixam realmente claro o que você está perguntando. Existe um texto muito bom sobre isso chamado Como fazer perguntas inteligentes mas também é grande e tem muitas coisas lugar-comum que você certamente já sabe. Se me permite a sugestão, vá direto nessas aqui, que são onde (eu pelo menos) sinto mais dificuldade: http://www.istf.com.br/perguntas/#writewell http://www.istf.com.br/perguntas/#beprecise http://www.istf.com.br/perguntas/#symptoms http://www.istf.com.br/perguntas/#goal http://www.istf.com.br/perguntas/#examples Não estou falando isso pra vc ficar chateado, pelo contrário! Estou só tentando te ajudar a nos ajudar, e assim tirar maior proveito das listas e melhorar cada vez mais. Os parágrafos acima são uma leitura super rápida, pense como um investimento: vc vai gastar menos de 5 minutos pra ler (e está traduzido em português!) e se prestar atenção nesses pontos, tenho certeza que daqui pra frente você vai conseguir respostas muito mais rapidamente nessa e em qualquer outra lista! Dito isso, deixa eu tentar te ajudar. Eu *acho*, depois de perder um bom tempo olhando pro seu exemplo, que a sua pergunta é: Pessoal, como eu faço pra abrir o mesmo arquivo tanto para leitura quanto para escrita? ou Pessoal, como eu faço para ler e escrever no mesmo arquivo, ao mesmo tempo? Se for isso mesmo, é uma pergunta super comum. E, como a maioria das coisas em Perl, há mais de uma maneira de se fazer :) Digamos, para efeito de exemplo, que você queira passar o nome de um arquivo como parâmetro para o seu programa. O arquivo tem o formato: --8--- blablabla ACTGAACAGTAGCTACTGACTCGTACGCTCGTAGC lalalala CAGCTGATCGATCGTAGCATGCTACG --8--- E o que você quer é transformar esse arquivo em algo como: --8--- contig0 ACTGAACAGTAGCTACTGACTCGTACGCTCGTAGC contig1 CAGCTGATCGATCGTAGCATGCTACG --8--- Claro, não só duas linhas e sim centenas, mas acho que deu pra entender. Solução 1 (one-liner) perl -i -pe 'BEGIN { $i = 0 } $i++ if s{^.+$}{contig$i}' arquivo.txt Essa solução usa perl como ferramenta para transformação de arquivos in place. O -pe executa o código entre aspas para cada linha do arquivo passado, imprimindo o que estiver em $_ no final do processamento de cada linha. O código em si é simples: substitua ^.+$ (início de linha seguido de seguido de qualquer coisa, seguido do fim da linha) pela string contig$i, onde $i é um número que começa com zero (por isso o BEGIN { $i = 0 }, senão $i começa vazio, e a primeira linha vira apenas contig em vez de contig0). Sempre que conseguir fazer essa substituição (ou
Re: [Rio-pm] Isso não deveria estar certo???
Breno, so uma duvida, antigamente eu usava muito arquivos temporario, eu deixei de usar pois achava que perdia muito em performance. Você acha que eu perco muito em performance usando a solução 4 no lugar das outras soluções? From: guedes_1...@hotmail.com To: rio-pm@pm.org Date: Sat, 8 Dec 2012 10:13:53 + Subject: Re: [Rio-pm] Isso não deveria estar certo??? Breno++, eu precisei mover esse e-mail para pasta importantes assim como fiz com aquele ultimo que me ajudou. Dicas assim não se pode deixar perder. Lerei sim os links que me passou. E sim, a duvida foi respondida. E não recebei como bronca, nem fiquei chateado ou algo do tipo. Não sei o que dizer alem de: Obrigado. Date: Sat, 8 Dec 2012 03:40:15 -0200 From: br...@rio.pm.org To: rio-pm@pm.org Subject: Re: [Rio-pm] Isso não deveria estar certo??? Oi Aureliano, cara, antes de tudo, parabéns. O exemplo que vc colou no email mostra que vc está prestando atenção no que é dito aqui na lista. Seus códigos estão agora com strict (faltou só o 'warnings', hein?), usando autodie, open com 3 argumentos, muito bom mesmo! Agora, pra ficar perfeito, falta só uma coisa: por favor, antes de mandar dúvidas, lembre que as pessoas daqui da lista não estão sentadas aí do seu lado olhando o seu problema, nem vivendo o seu dia-a-dia para saber os motivos e objetivos do código, tampouco possuem (eu pelo menos não possuo) poder de ler mente :-) Por exemplo, quando vc pergunta algo do tipo: Monges, cade o erro??? Fica faltando o clássico grupo: o que vc está tentando fazer, de modo geral? No código específico, o que deveria estar acontecendo mas não está? Ainda no código específico, o que está de fato acontecendo em vez do que deveria? Quando, mesmo depois do Junior Moraes matar a charada, vc continua com: Mas me diz uma coisa, como editar um arquivo. A gente tem que se esforçar até pra saber que é uma pergunta, mais ainda qual é a real pergunta por trás da pergunta. Como editar um arquivo é quase tão vago quanto Preciso saber o que estou errando aqui (retirado de outra thread que vc começou). Percebe o padrão? Isso não é uma bronca. Mas, pensa comigo: se der a impressão que vc não está se esforçando nem pra fazer a pergunta, pq alguém se esforçaria pra te dar a resposta? A atividade na lista é voluntária e não remunerada, feita por pessoas com um interesse em comum (Perl) e que se dispõem a ajudar umas às outras em seu tempo livre. Por isso mesmo, se vc quer respostas melhores e mais rápidas, precisa nos ajudar a te ajudar! Por exemplo, experimente ler suas perguntas em voz alta antes de enviar o email, e veja se elas deixam realmente claro o que você está perguntando. Existe um texto muito bom sobre isso chamado Como fazer perguntas inteligentes mas também é grande e tem muitas coisas lugar-comum que você certamente já sabe. Se me permite a sugestão, vá direto nessas aqui, que são onde (eu pelo menos) sinto mais dificuldade: http://www.istf.com.br/perguntas/#writewell http://www.istf.com.br/perguntas/#beprecise http://www.istf.com.br/perguntas/#symptoms http://www.istf.com.br/perguntas/#goal http://www.istf.com.br/perguntas/#examples Não estou falando isso pra vc ficar chateado, pelo contrário! Estou só tentando te ajudar a nos ajudar, e assim tirar maior proveito das listas e melhorar cada vez mais. Os parágrafos acima são uma leitura super rápida, pense como um investimento: vc vai gastar menos de 5 minutos pra ler (e está traduzido em português!) e se prestar atenção nesses pontos, tenho certeza que daqui pra frente você vai conseguir respostas muito mais rapidamente nessa e em qualquer outra lista! Dito isso, deixa eu tentar te ajudar. Eu *acho*, depois de perder um bom tempo olhando pro seu exemplo, que a sua pergunta é: Pessoal, como eu faço pra abrir o mesmo arquivo tanto para leitura quanto para escrita? ou Pessoal, como eu faço para ler e escrever no mesmo arquivo, ao mesmo tempo? Se for isso mesmo, é uma pergunta super comum. E, como a maioria das coisas em Perl, há mais de uma maneira de se fazer :) Digamos, para efeito de exemplo, que você queira passar o nome de um arquivo como parâmetro para o seu programa. O arquivo tem o formato: --8--- blablabla ACTGAACAGTAGCTACTGACTCGTACGCTCGTAGC lalalala CAGCTGATCGATCGTAGCATGCTACG --8--- E o que você quer é transformar esse arquivo em algo como: --8--- contig0 ACTGAACAGTAGCTACTGACTCGTACGCTCGTAGC contig1 CAGCTGATCGATCGTAGCATGCTACG --8--- Claro, não só duas linhas e sim centenas, mas acho que deu pra entender. Solução 1 (one-liner) perl -i -pe 'BEGIN { $i = 0 } $i++ if s{^.+$}{contig$i}' arquivo.txt Essa solução usa perl como ferramenta para transformação de arquivos in place. O -pe executa o código entre aspas para cada linha do arquivo passado, imprimindo o que estiver em $_ no final do
[Rio-pm] Isso não deveria estar certo???
Monges, cade o erro??? #!/usr/bin/env perl use strict; use autodie; open my $in, , $ARGV[0]; my $contig = 0; while (my $line = $in){ my $ctg = contig . $contig; #print $line; if ($line =~ /(.+)/){ print Ok\n; $line = s/$1/$ctg/; print $line; $contig++; } } O arquivo é algo como blablabla ACTGAACAGTAGCTACTGACTCGTACGCTCGTAGC lalalala CAGCTGATCGATCGTAGCATGCTACG ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Isso não deveria estar certo???
Ok, erro idiota no qual fiquei 1h quebrando a cabeça. Ok! Mas me diz uma coisa, como editar um arquivo. Tipo queria que: open my $in, , $ARGV[0]; my $contig = 0; while (my $line = $in){ my $chn = contig . $contig; if ($line =~ /(.+)/){ $line =~ s/$1/$chn/; $contig++; } } Funcionasse sem precisar fazer: open my $in, , $ARGV[0]; my $contig = 0; my $record = ; while (my $line = $in){ my $chn = contig . $contig; if ($line =~ /(.+)/){ $line =~ s/$1/$chn/; $record .= $line; $contig++; } else { $record .= $line; } } open my $out, , $ARGV[0]; print $out $record; From: juniiior...@gmail.com Date: Fri, 7 Dec 2012 22:25:19 -0200 To: rio-pm@pm.org Subject: Re: [Rio-pm] Isso não deveria estar certo??? Hi. Não, ué.A regexp começa com e no arquivo tem lalalala. []'s 2012/12/7 Aureliano Guedes guedes_1...@hotmail.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
Re: [Rio-pm] Chaves de hash
Ok, segundo o perldoc: 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: the right expression is evaluated only if the left expression is true. 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 Date: Tue, 4 Dec 2012 15:23:04 -0200 From: viniciusmias...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Chaves de hash last; Em 4 de dezembro de 2012 14:54, Blabos de Blebe bla...@gmail.com escreveu: (my $d = $a) and $b; Correto, conforme http://perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity A pegadinha (deixada como exercício) é que o operador de atribuição tem maior precedência que o operador 'and'. Por isso os exemplos usando atribuição estão se cagando todos: $c = $a $b é diferente de $c = $a and $b não por causa da diferença mística entre '' e 'and', mas por causa do operador de atribuição ter mais precedência que 'and' e menos precedência que o ''; $c = $a $b == $c = ( $a $b ) $c = $a and $b == ($c = $a) and $b RTFM! []'s 2012/12/4 Junior Moraes juniiior...@gmail.com: Hi. A diferença entre e and não é apenas a questão da precedência dos operadores? Penso eu que essa questão não tenha nada a ver com short-circuiting, já que logicamente falando ambas fazem a mesma operação. Exemplificando, quando temos: use Data::Printer; my $a = 1; my $b = 0; my $c = $a $b; my $d = $a and $b; p $c; p $d; O valor de $c seria FALSE, mas o valor de $d seria TRUE. Isso, porque, pela precedência dos operadores, a última operação é a mesma coisa que: (my $d = $a) and $b; Deste modo, $d sempre resultará em TRUE, ignorando o $b. Isto é, pelo menos é assim em outras linguagens e pelo que me parece, no Perl também. []'s Em 4 de dezembro de 2012 14:00, Blabos de Blebe bla...@gmail.com escreveu: Desculpa, Não entendi a diferença entre: perl -E 'sub a{say 1} sub b{say 2} if (a() b()){}' perl -E 'sub a{say 1} sub b{say 2} if (a() and b()){}' perl -E 'sub a{say 1;return 0} sub b{say 2} if (a() b()){}' perl -E 'sub a{say 1;return 0} sub b{say 2} if (a() and b()){}' Até onde eu sei, não existe operador de short circuit. O short circuit é uma propriedade, uma otimização na avaliação de expressões lógicas. Alguém estamos viajando? []'s 2012/11/30 thiagogla...@ticursos.net: Eu devo ser muito estúpido... mas alguém que está falando isso (ja é o 3o), poderia fazer o favor de me explicar porque ele deve usar no lugar do 'and' e qual diferença isso faz no caso deste if específico? E em quais situações deve-se usar o 'and' no lugar de ? Não é estúpido não. Vamos analisar a tabela da verdade da função and ou : 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 1 Então, no if do código do nosso biólogo não haveria impacto real, sorry eu me deixei levar por outras coisas que estava pensando aqui. Mas voltando ao if: if($keys = $min and $keys = $max) O operador de short circuit só avaliaria a expresssão da direita ($keys = $max) se a primeira expressão for verdadeira. Ou seja, se $keys for menor que $min o Perl nem vai perder tempo checando pois 0 x N = 0. Então aqui eu me enganei, não ia fazer diferença no código do nosso colega. Por outro lado, vamos supor um caso que você queira aproveitar o teste if e executar duas subs na mesma linha de código: if ( foo and bar ){ ...faça alguma coisa } else { ... bar só será executada se foo retornar true } por outro lado: if ( foo bar ){ ...foo e bar foram executadas. faça alguma coisa } else { ... foo e bar foram executadas mesmo com o retornando false. } essa é a diferença. Em 2012-11-29 22:09, Bruno Buss escreveu: 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){ Eu devo ser muito estúpido... mas alguém que está falando isso (ja é o 3o), poderia fazer o favor de
Re: [Rio-pm] Chaves de hash
O exemplo do junio é bacana: use Data::Printer; my $a = 1; my $b = 0; my $c = $a $b; my $d = $a and $b; p $c; p $d; Date: Tue, 4 Dec 2012 15:50:13 -0200 From: a.r.ferre...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Chaves de hash 2012/12/4 Aureliano Guedes guedes_1...@hotmail.com: mas quando trabalhar bit-a-bit acho que o é mais apropiado Para trabalhar bit-a-bit, os operadores bit-a-bit como o provavelmente seriam mais adequados. Bitwise And http://perldoc.perl.org/perlop.html#Bitwise-And Bitwise Or and Exclusive Or http://perldoc.perl.org/perlop.html#Bitwise-Or-and-Exclusive-Or ___ 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
Sua ideia é louvável, mas há um problema. No Arquivo que eu postei, eu compilei de a rotina de um modulo dentro do script. Isso se deve ao fato de eu ter desenvolvido um modulo que parseia todo o documento naquele formato e cria um hash colocando como chave o valor que eu procuro, que pode ser o nome do micro-RNA, a energia de ligação, a posição no gene, ... Criei esse modulo (que futuramente pretendo adicionar no CPAN ou BioPerl) para facilitar minha vida. Por isso eu já não filtro o intervalo na própria regex. Quanto ao and e o , o consome menos memória que o and, por ser short circuits?? Date: Fri, 30 Nov 2012 06:22:03 -0200 From: tiago.pecze...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Chaves de hash Porra o q? To mostrando q eh diferente no contexto q eu conheco... Em 29/11/2012 23:14, Blabos de Blebe bla...@gmail.com escreveu: Porra PAC, não pisa fora da faixa, cara! :) http://perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity É só aplicar as regras de precedência. Parafraseando o perldoc, and é 'equivalent to except for the very low precedence' É óbvio gente. Assim vcs me envergonham! Game over. 2012/11/29 Tiago Peczenyj tiago.pecze...@gmail.com: veja este exemplo: https://gist.github.com/4172935 veja como a execução das subrotinas não é alterada, mas o resultado das variaveis é diferente. my $x = a and b and c and ok or nok; my $y = a b c ok || nok; veja que x recebe o valor que a retorna, enquanto y recebe o valor de nok. isso pq o = esta em termos de precedencia entre o and e o 2012/11/29 Bruno Buss bruno.b...@gmail.com 2012/11/29 Bruno Buss bruno.b...@gmail.com On Thu, Nov 29, 2012 at 10:13 PM, Renato Santos renato.c...@gmail.com wrote: use sempre e seja feliz, só use and quando você souber oque está fazendo. Desculpe mas vou discordar que um bom conselho seja use sempre e seja feliz, ainda mais seguido de só use and quando você souber oque está fazendo. Na melhor da hipóteses são sugestões contraditórias... como alguém deverá saber quando usar o 'and' se apenas usa o cegamente? o 'and' é praticamente o 'e' da nossa lingua, vc diz pro seu codigo 'faça isso, e isso', ele não é de comparação, embora faça ele não é de comparação, embora faça? Poderia desenvolver melhor, pois não fui incapaz de entender o que isso significa para um operador lógico (que a única diferença do outro é a baixa precedência). s/incapaz/capaz/; E vou repetir a pergunta aqui, antes que ela fique soterrada pelas tricks de sleep: Qual diferença isso faz no caso deste if específico do Aureliano? Por que exatamente, no if dele, utilizar o 'and' está incorreto? Porque no if dele, somente o dá certo como 3 pessoas já disseram? -- Bruno C. Buss http://www.brunobuss.net -- Bruno C. Buss http://www.brunobuss.net ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://pacman.blog.br ___ 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
Re: [Rio-pm] Chaves de hash
floating point. Directed roundings Round toward 0 – directed rounding towards zero (also known as truncation). Round toward +∞ – directed rounding towards positive infinity (also known as rounding up or ceiling). Round toward −∞ – directed rounding towards negative infinity (also known as rounding down or floor). Se a comparação for inevitável, converta o seu número para string e compare ou determine um nível de precisão aceitável e faça bit a bit. Em 2012-11-28 21:42, Aureliano Guedes escreveu: 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 ___ 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
Re: [Rio-pm] Chaves de hash
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, nem menor. E mais: garanto que se você quer usar um número real como chave de Hash você tem um problema na análise da lógica do problema que está enfrentando e como solucioná-lo. Em 2012-11-29 10:36, Blabos de Blebe escreveu: Na verdade é o contrário, não? Não se compara reais por igualdade. Se você usa reais como chaves de hash, você tem algum problema... Ao não controlar a representação interna em ponto flutuante, você pode nunca mais alcançar o valor relacionado à chave, se usar um número real como chave, pois qualquer bit diferente, mesmo que arredondando no mesmo número vai resultar num cálculo diferente na
Re: [Rio-pm] Chaves de hash
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. 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
Re: [Rio-pm] Chaves de hash
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 CRONhttp://www.renatocron.com/blog/ @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
[Rio-pm] Chaves de hash
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