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

2017-05-25 Por tôpico Aureliano Guedes
Gostei desse Future. Talvez possa usar como alternativa para IPC::ShareTables 
em algumas situações.

Quanto ao Fork, eu passei muito tempo na sombra quanto ao assunto de threads, 
forks, parallel, async, queue, ..., vejo muitas pessoas com posições diferentes 
mas a maioria fala pra evitar threads por exemplo, eu mesmo nunca usava nada 
por causa das diversas opnões (e infelizmente computação não é minha principal 
expertize), mas eu aprendi que tudo depende.

No caso do meu script, eu uso fork pra fazer varios downoads, é uma atividade 
simples na maioria das vezes, e no final se você acompanha os processos (pai e 
filhos), o consumo de memoria e CPU é praticamente 0 cada (juro, mem = 0, cpu 
<= 0.7), então o máximo que pesa nesse caso é o número de PIDs que o sistema 
vai gerenciar. Devo ta falando muita besteira, mas continuando, o problema que 
eu vejo em fork nesse caso é imprimir o download. Nesse caso é um problema de 
pós processamento, que pode ser resolvido linearmente, gerando temp files pra 
cada download depois unindo tudo seria uma solução. Minha pergunta nesses casos 
é: "quanto essa etapa influência no desempenho total do programa?".

Por exemplo, eu tenho uma aplicação que simplismente faz wraper que encapsula 
um outro programa de bioinfo, é um programa que mesmo você pedindo pra usar 8 
cpu demora (dependendo do dataset) 20h pra terminar, eu não me importo em um 
servidor criar 40 maquinas virtuais com 8 cpu cada e paralelizar com fork mesmo 
todos os processos filhos e terminar tudo em 30 minutos mesmo que pese. Claro 
que depende de recursos computacionais tbm.

No final não é so custo, mas benefício tambem.

Especificamente no caso desse downloader não é necessidade, é mais o caso de 
criar opções e explorar possibilidades, pois tenho outros downloaders que 
resolvem meu problema, so que esse é o primeiro que devide e paraleliza os 
processos.


From: Rio-pm  on behalf of 
Renato Santos 
Sent: Wednesday, May 24, 2017 9:57:19 PM
To: Perl Mongers Rio de Janeiro
Subject: Re: [Rio-pm] Metodos de Download em Massa

Recomendo usar qualquer coisa menos forks para fazer downloads.

Forks são pesados, geram muitas trocas de contextos desnecessárias para tarefas 
tão triviais como downloads em paralelo.


Se o yada ta complicado, ainda tem o https://metacpan.org/pod/HTTP::Async que 
com o Future fica uma mão na roda

Algo como:

use Future;
use Future::Utils qw( try_repeat fmap1 );
use IO::Async::Loop;
use Net::Async::HTTP;

my $loop = IO::Async::Loop->new;
my $http = Net::Async::HTTP->new(  # serio, é assim q eu uso em produção, com 
max_connections_per_host=400
max_connections_per_host => 400,
timeout  => 10 * 60
);
$loop->add($http);

sub DO_SOMETHING {
my ( $algum_content, $url, $algum_contexto_talvez ) = @_;

my $what = $http->do_request(
method   => 'GET PORT DELETE...',
uri  => "$url",
content_type => 'text/plain',
headers  => [
'Content-Type' => 'text/plain'
],
content => ( join "\n", @$algum_content )
);

$what = try_repeat { $what } until => sub {
eval { $_[0]->get->code == 200 };
};

return $what;
}
my @futures;
for my $url ( 1 ... 100 ) {
my $future =
  DO_SOMETHING( [...], $url, $algum_contexto_talvez )->on_done(
sub {
my $res = shift;

if ( $res->content =~ /401 Unauthorized/ ) {

# trata como se fosse erro, por exemplo
}
else {
# ...
}

}

  )->on_fail(
sub {
my $failure = shift;
log_error "error: $failure";
}
  );

push @futures, $future;
}

my @results = Future->needs_all(@futures)->get;



2017-05-24 16:53 GMT-03:00 Felipe Leprevost 
mailto:leprevos...@gmail.com>>:
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 
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 
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

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

2017-05-25 Por tôpico Aureliano Guedes
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  on behalf of 
Felipe Leprevost 
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 
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 
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 
mailto:hotmail@pm.org>> on 
behalf of breno 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, 
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<mailto:Rio-

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

2017-05-24 Por tôpico Aureliano Guedes
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  on behalf of breno 

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, 
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

2017-05-23 Por tôpico Aureliano Guedes
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)

2017-03-25 Por tôpico Aureliano Guedes
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  on behalf of Andre 
Carneiro 
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 
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

[Rio-pm] (sem assunto)

2017-03-24 Por tôpico Aureliano Guedes
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
http://mail.pm.org/mailman/listinfo/rio-pm

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

2017-03-06 Por tôpico Aureliano Guedes
Verdade, um simples chomp; antes do código resolve.

To enferrujado



From: Rio-pm  on behalf of 
Nicole Scherer 
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 
 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?

2017-03-06 Por tôpico Aureliano Guedes
Saldações,

Obrigado pela explicação, havia esquecido que o echo gera a quebra de linha.
Abs,



From: Rio-pm  on behalf of 
Ronaldo Ferreira de Lima 
Sent: Monday, March 6, 2017 12:04:44 PM
To: Rio PM
Subject: Re: [Rio-pm] Função uniq com bug ou erro no codigo?

Saudações Aureliano,

On Sun, Mar 05, 2017 at 04:35:49PM +, Aureliano Guedes wrote:
> Ola,
>
> Caros Monges.
>
> Estou com uma pequena dúvida.
> Estou usando a função uniq (List::Util e List::MoreUtils) para reduzir a
> redundância de um array.
>
> echo "SP+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM+TM" | perl -MList::Util='uniq' -MDDP 
> -ne
> '@a = uniq (split (/\+/, $_)); print "\n"; p @a; print "\n"'
>
> Separa os elementos pelo '+' e depois remove a redundância. Acontece que o
> ultimo elemento for redundante ele não é eliminado.
>
> Alguém sabe o porque disso??
O comando 'echo' produziu uma quebra de linha que não foi tratada pelo
código, ou seja, depois do 'split', a sua lista ficou assim:

$VAR1 = [
  "SP",
  "TM",
  "TM",
  "TM",
  "TM",
  "TM",
  "TM",
  "TM",
  "TM",
  "TM",
  "TM",
  "TM\n"
];

>
> Alguma sujestão de como reverter sem q eu tenha que criar um script pra isso 
> ou
> minha propria rotina uniq??
Como já sugerido, remova a quebra de linha com o chomp ou similar que
estará resolvido.

> Desde já grato.
[]'s
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
--
https://perspicazsite.wordpress.com
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

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

2017-03-05 Por tôpico Aureliano Guedes
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  on behalf of 
Fernando Oliveira 
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 
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 
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 
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?

2017-03-05 Por tôpico Aureliano Guedes
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)

2016-11-10 Por tôpico Aureliano Guedes
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

2016-09-08 Por tôpico Aureliano Guedes
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)

2016-04-30 Por tôpico Aureliano Guedes
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

2016-04-12 Por tôpico Aureliano Guedes
Ola monges,
Eu tenho uma dúvida, caso possam me ajudar.Eu tenho varias códigos que acessam 
o mesmo valor (no caso que uso são vários códons que traduzem o mesmo 
aminoácido).

Exemplo:
Aminoacido -> Códons
Sendo os aminoácidos representados por 20 letras diferentes mais o X (stop 
códon).
E os codons, combinações de 3 nucleotídeos, sendo um total de 4 nucleotídeos 
(A, T, C e G),  logo temos 64 combinações de 3 nucleotídeos (64 codons 
possíveis).Por isso um mesmo aminoácido pode ser codificado por mais de um 
códon.
No caso do aminoácido Alanina (Ala || A) é códificado pelos códons GCA, GCC, 
GCT ou GCU.  Observe que os dois primeiros nucleotídeos são C e G, 
respectivamente, e o terceiro pode ser ocupado por qualquer um dos 4 
nucleotídeo possíveis. 
Dessa forma:A -> CGA ou CGC ou CGT ou 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

Re: [Rio-pm] Dúvida com split

2014-11-07 Por tôpico Aureliano Guedes
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  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 :

> Saudações Aureliano,
>
> On Fri, Nov 07, 2014 at 02:03:08PM +0000, 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

Re: [Rio-pm] Dúvida com split

2014-11-07 Por tôpico Aureliano Guedes
Obrigado. Ajudou muito mesmo.
Vou salvar aqui pois depois posso precisar dessas dicas.

Enrique Pessoa  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=gkxxbshF4Ic&feature=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 :
>
> 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

2014-11-07 Por tôpico Aureliano Guedes
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 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  
  ___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [HELP] Download

2014-11-07 Por tôpico Aureliano Guedes
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=fasta&log$=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

[Rio-pm] Dúvida com split

2014-11-07 Por tôpico Aureliano Guedes
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

[Rio-pm] [HELP] Download

2014-11-05 Por tôpico Aureliano Guedes
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=fasta&log$=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

Re: [Rio-pm] Modulos Publicados no CPAN e Lattes

2014-10-25 Por tôpico Aureliano Guedes
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  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 :

>  Certo. Obrigado mesmo.
>
> Felipe da Veiga Leprevost  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] Modulos Publicados no CPAN e Lattes

2014-10-25 Por tôpico Aureliano Guedes
Certo. Obrigado mesmo.

Felipe da Veiga Leprevost  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] Modulos Publicados no CPAN e Lattes

2014-10-25 Por tôpico Aureliano Guedes
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] Problema com o PhantomJS

2014-10-23 Por tôpico Aureliano Guedes
Bruno, talvez seu roteador (o firewall dele) ou o próprio firewall que você usa 
na sua maquina esteja bloqueando a conexão.

Configure o firewall para liberar tanto da maquina quanto do roteador e refaça 
os testes.
Minhas hipóteses já acabaram, qualquer coisa além disso já não tenho 
conhecimento. Se mais algum monge tiver uma ideia...

Date: Thu, 23 Oct 2014 00:36:34 -0300
From: bruno.macab...@gmail.com
To: rio-pm@pm.org
Subject: Re: [Rio-pm] Problema com o PhantomJS

Algumas novidades:Um colega meu testou no Windows 8 da casa dele e não 
funcionou. Acontece o mesmo erro.
No meu notebook que funciona, testei no Linux e que consegui fazer funcionar o 
PhantomJS. Apenas precisei instalar o PhantomJS pelo "apt-get" e o módulo no 
Perl (WWW::Mechanize::PhantomJS).
Tanto a versão 0.10 como a 0.11 do módulo Perl do PhantomJS funcionam 
perfeitamente.No meu notebook que não funcionou estava com a versão 0.10 do 
módulo, quando fui atualizar para a 0.11 deu erro nos testes que são feitos 
durante a instalação:t/00-load.t ... okt/49-mech-get-file.t 
.. # Testing with C:\bin\phantomjs\phantomjs.exeSelenium server did not 
return proper status at (eval 58) line 61.# Looks like your test exited with 9 
before it could output anything.t/49-mech-get-file.t .. Dubious, test 
returned 9 (wstat 2304, 0x900)Failed 12/12 subtestst/49-mech-nav.t 
... # Testing with C:\bin\phantomjs\phantomjs.exeSelenium server 
did not return proper status at (eval 59) line 61.
É o mesmo erro que acontece ao executar aquele código que citei no meu primeiro 
e-mail:
#!usr/bin/env perl
use common::sense;use WWW::Mechanize::PhantomJS;
my $phantom = WWW::Mechanize::PhantomJS->new();
__END__

Quando fui instalar o módulo pela primeira vez, havia usado "fforce 
notest".Ambos notebooks (o que funciona o código e o que não funciona) estão 
conectados ao mesmo roteador.

___
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

2014-10-20 Por tôpico Aureliano Guedes
Bom, acho estranho, nao vejo porque estar relacionado ao SO ou a arquitetura do 
sistema.
Deixo pros mais experientes da lista.

Bruno Macabeus  escreveu:

Aureliano, não estou com acesso agora nos outros computadores que testei.
Tenho certeza que eram Windows 7, e, se não me engano, eram 32b. Sim, neles
retornavam o mesmo erro.

Deixando o PhantomJS na mesma pasta do PL faz aparecer novamente a mensagem
do firewall do Windows, perguntando se desejo permitir que o PhantomJS
possa acessar a rede. Porém, após isso, continua igual: aparece novamente a
mensagem de erro.

Em 20 de outubro de 2014 12:45, Aureliano Guedes 
escreveu:

> 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 
> 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
> <https://metacpan.org/pod/WWW::Mechanize::PhantomJS>.
> Considere o seguinte código (uma versão bem resumida do que estou de fato
> desenvolvendo <http://pastebin.com/DNVZswQ3>):
> #!usr/bin/env perl use common::sense; use WWW::Mechanize::PhantomJS; my
> $phantom = WWW::Mechanize::PhantomJS->new(); __END__
>
> Baixando o PhantomJS <http://phantomjs.org/download.html> 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
> <http://perlmonks.org/index.pl?node_id=1104241>.
>
> ___ 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] Problema com o PhantomJS

2014-10-20 Por tôpico Aureliano Guedes
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  
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 com o PhantomJS

2014-10-20 Por tôpico Aureliano Guedes
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 entre versões

2014-10-17 Por tôpico Aureliano Guedes
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  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 :

> https://metacpan.org/pod/Carton
>
> 2014-10-16 23:10 GMT-03:00 Enrique Pessoa :
>
> 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=gkxxbshF4Ic&feature=youtu.be>*
>>
>>
>> Em 16 de outubro de 2014 23:10, Enrique Pessoa 
>> 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=gkxxbshF4Ic&feature=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" 
>>>> 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.1

Re: [Rio-pm] Problema entre versões

2014-10-16 Por tôpico Aureliano Guedes
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"  escreveu:



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 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] Problema entre versões

2014-10-16 Por tôpico Aureliano Guedes
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

2014-10-06 Por tôpico Aureliano Guedes
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

2014-09-30 Por tôpico Aureliano Guedes
Cara. Sempre tive problema com o PP.

Manoel Domingues Junior  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"  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

2014-07-09 Por tôpico Aureliano Guedes
Já tentei
Mas acho que devo esta preenchendo o JSON errado:
sub envio_facil{my ($o, $d, $c, $a, $l) = @_;   my $url = new 
WWW::Mechanize;   
$url->get('https://pagseguro.uol.com.br/para_seu_negocio/envio-facil.jhtml');   
$url->post( 
'http://www.pagseguro.uol.com.br/para_seu_negocio/howItWorksCalculator.jhtml',  
{   originCep   => $c,  destinyCep  => $d,  
Largura => $l,  Altura  => $a,  
Comprimento => $c   }); my $preco = 
$url->decoded_content;  return $preco;}
Deveria preencher seguindo isso??
//VALIDAÇÕES DOS CAMPOS DA SIMULAÇÃO {  cepOrigem: {
name: "originCep",  selector: $("#cepOrigem"),  
required: true, requiredMessage: ["O campo CEP de 
origem deve ser preenchido."] },  cepDestino: { 
  name: "destinyCep", selector: $("#cepDestino"),   
  required: true, requiredMessage: ["O campo CEP de 
destino deve ser preenchido."]},  largura: {
  name: "Largura",selector: $("#largura"),  
  required: true, requiredMessage : "A 
largura deve ser preenchida.", validations: [   
   function (f) { return PagSeguro.Helper.isInteger(f.selector.val())}, 
   function (f) { if (parseInt(f.selector.val()) < 11) {return 
false;} else {return true}},function (f) { if 
(parseInt(f.selector.val()) > 105) {return false;} else {return true}}  
  ],  messages: ["Largura inválida","A largura 
mínima é de 11cm.","A largura máxima é de 105cm."] },  
altura: {   name: "Altura", selector: 
$("#altura"), required: true, requiredMessage : 
"A altura deve ser preenchida.",  validations: [
  function (f) { return 
PagSeguro.Helper.isInteger(f.selector.val())},function (f) 
{ if (parseInt(f.selector.val()) < 2) {return false;} else {return true}},  
   function (f) { if (parseInt(f.selector.val()) > 105) {return false;} 
else {return true}}],  messages: 
["Altura inválida","A altura mínima é de 2cm.","A altura máxima é de 105cm."]   
  },  comprimento: {  name: "Comprimento",  
  selector: $("#comprimento"),required: true,   
  requiredMessage : "O comprimento deve ser preenchido.",   
  validations: [  function (f) { return 
PagSeguro.Helper.isInteger(f.selector.val())},function (f) 
{ if (parseInt(f.selector.val()) < 16) {return false;} else {return true}}, 
   function (f) { if (parseInt(f.selector.val()) > 105) {return 
false;} else {return true}}],  
messages: ["Comprimento inválido","O comprimento mínimo é de 16cm.","O 
comprimento máximo é de 105cm."] }   }
From: gabriel.vie...@gmail.com
Date: Wed, 9 Jul 2014 17:28:03 -0300
To: rio-pm@pm.org
Subject: Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa

Faça um POST para /para_seu_negocio/howItWorksCalculator.jhtml

2014-07-09 16:45 GMT-03:00 Aureliano Guedes :





Não sei, acho que estou meio inferrujado, mas tentei fazer pelo metodo post, 
mas não deu certo.
a rotina ficou assim: sub envio_facil{  my ($o, $d, $c, $a, $l) = @_;

my $url = WWW::Mechanize->new();#$url->use_plugin('Ajax');  

$url->post( 
'http://www.pagseguro.uol.com.br/para_seu_negocio/envio-facil.jhtml',

{   originCep   => $c,  
destinyCep  => $d,

Largura => $l,  Altura  
=> $a,

Comprimento => $c,  },  );


my $preco = $url->decoded_content;  return 
$preco;

}
Ainda estou tentando outras formas, mas não faço ideia do que eu to tentando 
fazer pra dar certo.
From: guedes_1...@hotmail.com


To: rio-pm@pm.org
Date: Wed, 9 Jul 2014 17:47:15 +
Subject: Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa




Paciência... Quando acho que to no caminho certo, descubro que estou navegand

Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa

2014-07-09 Por tôpico Aureliano Guedes
Não sei, acho que estou meio inferrujado, mas tentei fazer pelo metodo post, 
mas não deu certo.
a rotina ficou assim: sub envio_facil{  my ($o, $d, $c, $a, $l) = @_;   my $url 
= WWW::Mechanize->new();#$url->use_plugin('Ajax');  
$url->post( 
'http://www.pagseguro.uol.com.br/para_seu_negocio/envio-facil.jhtml',   
{   originCep   => $c,  destinyCep  
=> $d,  Largura => $l,  Altura  
=> $a,  Comprimento => $c,  },  );
my $preco = $url->decoded_content;  return 
$preco;}
Ainda estou tentando outras formas, mas não faço ideia do que eu to tentando 
fazer pra dar certo.
From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Wed, 9 Jul 2014 17:47:15 +
Subject: 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 :





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=74491626&destinyCep=36072130&width=30&height=6&length=40&weight=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  
  ___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] [DUVIDA] Obter resultado de pesquisa

2014-07-09 Por tôpico Aureliano Guedes
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 :





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=74491626&destinyCep=36072130&width=30&height=6&length=40&weight=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

[Rio-pm] [DUVIDA] Obter resultado de pesquisa

2014-07-09 Por tôpico Aureliano Guedes
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=74491626&destinyCep=36072130&width=30&height=6&length=40&weight=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

Re: [Rio-pm] Release de modulo Beta no CPAN

2014-05-23 Por tôpico Aureliano Guedes
t; >> https://metacpan.org/pod/ExtUtils::MakeMaker
> >> https://metacpan.org/pod/Module::Build
> >> https://metacpan.org/pod/Module::Install
> >>
> >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc)
> >> para a partir de apontamentos que você faz, verificar as dependências,
> criar
> >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias
> para
> >> tornar o seu módulo instalável.
> >>
> >> Quando vc instala um módulo manualmente, normalmente o processo é:
> >>
> >> a) Baixar e descompactar o .tar.gz
> >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo
> Makefile
> >> adaptado pra sua máquina.
> >> c) make. Isso vai fazer o build do seu módulo, eventualmente compilando
> >> XS, se for o caso, etc
> >> d) 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 :
> >>
> >>> >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 mel

Re: [Rio-pm] Release de modulo Beta no CPAN

2014-05-20 Por tôpico Aureliano Guedes
>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 :

* 
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 :



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

2014-05-11 Por tôpico Aureliano Guedes
--

Daniel Vinciguerra  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 :

> :(
>
>
> 2014-05-10 21:07 GMT-03:00 Renato Santos :
>
> Vish vei, que bad
>>
>> :-\
>>
>> Pã
>> On May 10, 2014 8:32 PM, "Thiago Rondon"  wrote:
>>
>>> Tristeza... Como pode
>>> Em 10/05/2014 19:18, "breno"  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] Bio::Filter

2014-05-06 Por tôpico Aureliano Guedes
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  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 :
>
> Bota logo no cpan. Como versão beta
>> Em 06/05/2014 15:20, "Aureliano Guedes" 
>> 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

[Rio-pm] Bio::Filter

2014-05-06 Por tôpico Aureliano Guedes
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] empregos perl no rio (ou brasil)

2014-05-06 Por tôpico Aureliano Guedes
Leo++;

Que pena, eu nao seria capaz de me classificar nem mesmo como estagiário nem na 
minha área que e bioinformática.
Mas tenho muita vontade de pegar experiencia trabalhando com dev Perl5.

Leo Balter  escreveu:

Junior: aquele que tem o mesmo nome do pai
Pleno: aquele que não é gordo
Sênior: maiores de 65 anos

Brincadeiras a parte, as três são categorias de profissionais que não estão
mais em nível estagiário e as três representam etapas de experiência
profissional de cada. Do Junior que tem menos experiência ao sênior com
mais. O pleno seria uma etapa intermediária.

Isso é bem comum em várias empresas.
Em 06/05/2014 11:54, "Aureliano Guedes"  escreveu:

> Breno, por curiosidade. O que define um desenvolvedor Perl5 junior, pleno
> ou sênior?
>
> breno  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 :
> > 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 :
> >>
> >> 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 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)

2014-05-06 Por tôpico Aureliano Guedes
Breno, por curiosidade. O que define um desenvolvedor Perl5 junior, pleno ou 
sênior?

breno  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 :
> 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 :
>>
>> 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


Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-05-04 Por tôpico Aureliano Guedes
Entao vou colocar no github mesmo porque nao to sabendo fazer os testes.

Bruno Buss  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 :

> 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 :
>
> 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 incre

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-05-04 Por tôpico Aureliano Guedes
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 :





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 :





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:  $ti

Re: [Rio-pm] Número no final do package

2014-05-04 Por tôpico Aureliano Guedes
'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 :


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 :

> 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 :

>>

>> 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

[Rio-pm] Número no final do package

2014-05-03 Por tôpico Aureliano Guedes
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

2014-05-03 Por tôpico Aureliano Guedes
Bom, so completando. Quando a entrada é 9 a saída esperada e 11, por que 9 nao 
e primo, e no programa ele verifica se é primo antes de imprimir. Agora se 
fizer um is_palindrome(9); vai retornar true.

Bruno Buss  escreveu:

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 :

> 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++;
>  $time = reverse $time;
>
> gera um desempenho melhor que fazer:
>
> $time = reverse (reverse $time++);
> --
> From: guedes_1...@hotmail.com
> To: rio-pm@pm.org
> Date: Fri, 2 May 2014 00:04:04 +
>
> Subject: 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 :
>
> 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  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
> ge

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-05-03 Por tôpico Aureliano Guedes
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 :





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++;

$time = reverse $time;
gera um desempenho melhor que fazer:
$time = reverse (reverse $time++);

From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Fri, 2 May 2014 00:04:04 +


Subject: 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 :







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








B

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-05-01 Por tôpico Aureliano Guedes
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++;
$time = reverse $time;
gera um desempenho melhor que fazer:
$time = reverse (reverse $time++);From: 
guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Fri, 2 May 2014 00:04:04 +
Subject: 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 :





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  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 
:



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 :


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  
escreveu:





Não fiz em poucas linhas, mas fis em po

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-05-01 Por tôpico Aureliano Guedes
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 :





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  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 
:



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 :


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  
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  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, Aureli

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

2014-04-29 Por tôpico Aureliano Guedes
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  escreveu:

http://i.imgur.com/8iUZEZt.png
só pela zuera!


2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra :

> 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 :
>
> ** 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 :
>>
>>  >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  escreveu:
>>>
>>>  Mas ok, não é uma boa prática...
>>>
>>>
>>> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe :
>>>
>>> > café deve ser 'duro'
>>>
>>>  TimToady!!!
>>>
>>>
>>> 2014-04-29 19:12 GMT-03:00 Renato Santos :
>>>
>>>  Cara, café não se pode ferver! seu café deve ser 'duro'
>>>
>>>
>>> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe :
>>>
>>>  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 :
>>>
>>>  Pacman, copião :)
>>>
>>>
>>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe :
>>>
>>>  > 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
>>> 

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

2014-04-29 Por tôpico Aureliano Guedes
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  escreveu:

http://i.imgur.com/8iUZEZt.png
só pela zuera!


2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra :

> 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 :
>
> ** 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 :
>>
>>  >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  escreveu:
>>>
>>>  Mas ok, não é uma boa prática...
>>>
>>>
>>> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe :
>>>
>>> > café deve ser 'duro'
>>>
>>>  TimToady!!!
>>>
>>>
>>> 2014-04-29 19:12 GMT-03:00 Renato Santos :
>>>
>>>  Cara, café não se pode ferver! seu café deve ser 'duro'
>>>
>>>
>>> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe :
>>>
>>>  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 :
>>>
>>>  Pacman, copião :)
>>>
>>>
>>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe :
>>>
>>>  > 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
>>> 

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

2014-04-29 Por tôpico Aureliano Guedes
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  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 :

>  >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  escreveu:
>
>  Mas ok, não é uma boa prática...
>
>
> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe :
>
> > café deve ser 'duro'
>
>  TimToady!!!
>
>
> 2014-04-29 19:12 GMT-03:00 Renato Santos :
>
>  Cara, café não se pode ferver! seu café deve ser 'duro'
>
>
> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe :
>
>  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 :
>
>  Pacman, copião :)
>
>
> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe :
>
>  > 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 :
>
>  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.
>
>  ---

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

2014-04-29 Por tôpico Aureliano Guedes
>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  escreveu:

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


2014-04-29 19:15 GMT-03:00 Blabos de Blebe :

> > café deve ser 'duro'
>
> TimToady!!!
>
>
> 2014-04-29 19:12 GMT-03:00 Renato Santos :
>
> Cara, café não se pode ferver! seu café deve ser 'duro'
>>
>>
>> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe :
>>
>> 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 :
>>>
>>> Pacman, copião :)
>>>>
>>>>
>>>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe :
>>>>
>>>> > 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
>>>&

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

2014-04-29 Por tôpico Aureliano Guedes
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  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

2014-04-29 Por tôpico Aureliano Guedes
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 :





#!/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 :







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

2014-04-29 Por tôpico Aureliano Guedes
#!/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 :





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

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

2014-04-29 Por tôpico Aureliano Guedes
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

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-04-27 Por tôpico Aureliano Guedes
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  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 
:



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 :


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  
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  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  
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  escreveu:





Que tal o menor palíndromo primo maior que time()?




2014-04-17 22:02 GMT-03:00 Aureliano Guedes :



Pode ficar menor.

say '906609'



Tiago Peczenyj  escreveu:







sub palindromo { 906609 }




2014-04-17 21:45 GMT-03:00 Aureliano Guedes :



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ígit

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-04-27 Por tôpico Aureliano Guedes
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  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 :

> 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 :
>
> 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 
> 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  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 
> 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  escreveu:
>
>  Que tal o menor palíndromo primo maior que time()?
>
>
> 2014-04-17 22:02 GMT-03:00 Aureliano Guedes :
>
>  Pode ficar menor.
> say '906609'
>
> Tiago Peczenyj  escreveu:
>
>   sub palindromo { 906609 }
>
>
> 2014-04-17 21:45 GMT-03:00 Aureliano Guedes :
>
>  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 resul

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-04-26 Por tôpico Aureliano Guedes
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 :


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  
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  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 
 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  escreveu:





Que tal o menor palíndromo primo maior que time()?




2014-04-17 22:02 GMT-03:00 Aureliano Guedes :



Pode ficar menor.

say '906609'



Tiago Peczenyj  escreveu:







sub palindromo { 906609 }




2014-04-17 21:45 GMT-03:00 Aureliano Guedes :



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;$i<1000;$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  
  ___
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

2014-04-26 Por tôpico Aureliano Guedes
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 :


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  
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  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 
 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  escreveu:





Que tal o menor palíndromo primo maior que time()?




2014-04-17 22:02 GMT-03:00 Aureliano Guedes :



Pode ficar menor.

say '906609'



Tiago Peczenyj  escreveu:







sub palindromo { 906609 }




2014-04-17 21:45 GMT-03:00 Aureliano Guedes :



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;$i<1000;$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

2014-04-25 Por tôpico Aureliano Guedes
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  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 
 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  escreveu:





Que tal o menor palíndromo primo maior que time()?




2014-04-17 22:02 GMT-03:00 Aureliano Guedes :



Pode ficar menor.

say '906609'



Tiago Peczenyj  escreveu:







sub palindromo { 906609 }




2014-04-17 21:45 GMT-03:00 Aureliano Guedes :



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;$i<1000;$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

2014-04-22 Por tôpico Aureliano Guedes
Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma 
única linha.

Vinícius Miasato  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
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  escreveu:
>
>  Que tal o menor palíndromo primo maior que time()?
>
>
> 2014-04-17 22:02 GMT-03:00 Aureliano Guedes :
>
>  Pode ficar menor.
> say '906609'
>
> Tiago Peczenyj  escreveu:
>
>   sub palindromo { 906609 }
>
>
> 2014-04-17 21:45 GMT-03:00 Aureliano Guedes :
>
>  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;$i<1000;$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

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-04-22 Por tôpico Aureliano Guedes
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  escreveu:





Que tal o menor palíndromo primo maior que time()?




2014-04-17 22:02 GMT-03:00 Aureliano Guedes 
:



Pode ficar menor.

say '906609'



Tiago Peczenyj  escreveu:







sub palindromo { 906609 }




2014-04-17 21:45 GMT-03:00 Aureliano Guedes :



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;$i<1000;$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

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-04-17 Por tôpico Aureliano Guedes
Boa ideia. Vou tentar.

Blabos de Blebe  escreveu:

Que tal o menor palíndromo primo maior que time()?


2014-04-17 22:02 GMT-03:00 Aureliano Guedes :

>  Pode ficar menor.
> say '906609'
>
> Tiago Peczenyj  escreveu:
>
>  sub palindromo { 906609 }
>
>
> 2014-04-17 21:45 GMT-03:00 Aureliano Guedes :
>
>  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;$i<1000;$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

Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo

2014-04-17 Por tôpico Aureliano Guedes
Pode ficar menor.
say '906609'

Tiago Peczenyj  escreveu:

sub palindromo { 906609 }


2014-04-17 21:45 GMT-03:00 Aureliano Guedes :

> 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;$i<1000;$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] [GOLF] Descanso de Pascoa: Maior palindromo

2014-04-17 Por tôpico Aureliano Guedes
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;$i<1000;$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] [DUVIDA] Array muito longo

2014-04-15 Por tôpico Aureliano Guedes
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  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 :

>  Entendi. Obrigado.
>
> Tiago Peczenyj  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" 
> 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  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"  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 :
>
>  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] [DUVIDA] Array muito longo

2014-04-15 Por tôpico Aureliano Guedes
Entendi. Obrigado.

Tiago Peczenyj  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"  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  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"  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 :
>
>  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

2014-04-15 Por tôpico Aureliano Guedes
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  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"  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 :
>
>> 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] [DUVIDA] Array muito longo

2014-04-15 Por tôpico Aureliano Guedes
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] alguma diferença

2014-04-12 Por tôpico Aureliano Guedes
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 :





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 :







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 :





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

Re: [Rio-pm] alguma diferença

2014-04-12 Por tôpico Aureliano Guedes
Estou tentando testar esse módulo.Devo estar cometendo algum erro que eu não 
esteja vendo
retangulo.pmteste.pl
Erro:Can't use string ("altura") as a HASH ref while "strict refs" in use at 
C:/Perl64/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 :





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 :





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

Re: [Rio-pm] alguma diferença

2014-04-12 Por tôpico Aureliano Guedes
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 :





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 :





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

2014-04-11 Por tôpico Aureliano Guedes
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 :





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

[Rio-pm] alguma diferença

2014-04-11 Por tôpico Aureliano Guedes
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] CPAN x Pacotes Ou CPAN + Pacotes

2014-04-04 Por tôpico Aureliano Guedes
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 :


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 :



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 :





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






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






Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de 
modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao gos

[Rio-pm] [Curiosidade] Perl no smartphone

2014-03-02 Por tôpico Aureliano Guedes
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

2014-01-30 Por tôpico Aureliano Guedes
Caraca. Complexo.
O melhor, foi ver a pela primeira vez uma mulher na bioinformatica.
Hello colega bioinformata.

Stanislaw Pusep  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 

>  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' =

Re: [Rio-pm] Perl e Facebook

2014-01-10 Por tôpico Aureliano Guedes
Vei... to sem palavras.

Bruno Buss  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  wrote:

> Hly Shit
>
>
> On Fri, Jan 10, 2014 at 3:33 PM, Tiago Peczenyj 
> wrote:
>
>>
>> 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 
>>
>>> > 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 
>>>
>>>> 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 
>>>>
>>>>>  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  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"  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

Re: [Rio-pm] Perl e Facebook

2014-01-10 Por tôpico Aureliano Guedes
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  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"  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] [DUVIDA-DISCUSSÃO] Perl6: o que há de novo?

2013-12-03 Por tôpico Aureliano Guedes
Serio mesmo??Perl6 vai virar Java??Pelo menos esse formato de declarar classes 
é identico. 

From: leprevos...@gmail.com
To: rio-pm@pm.org
Date: Mon, 2 Dec 2013 13:47:02 -0200
Subject: Re: [Rio-pm] [DUVIDA-DISCUSSÃO] Perl6: o que há de novo?






Você pode acompanhar o Advent Calendar do Perl 6 para ver as novidades, 
aproveita que começou ontem com um post sobre o estado da linguagem.

http://perl6advent.wordpress.com/

 
 
 
On Mon, Dec 2, 2013, at 12:44 PM, Aureliano Guedes wrote:

Após 10 anos da proposta, se não me engano, o que há de novo quanto ao seu 
lançamento??É uma versão desenvolvida pela comunidade, certo? Então será que 
não falta pulso firme e/ou uma empresa que invista nisso?

Será que vai ficar só na ideia, e se tornar um mito da programação ou virá ser 
real?

O que sabem sobre?

 
Valeu!


___

Rio-pm mailing list

Rio-pm@pm.org

http://mail.pm.org/mailman/listinfo/rio-pm

 
-- 

Felipe da Veiga Leprevost

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] [DUVIDA-DISCUSSÃO] Perl6: o que há de novo?

2013-12-02 Por tôpico Aureliano Guedes
Após 10 anos da proposta, se não me engano, o que há de novo quanto ao seu 
lançamento??É uma versão desenvolvida pela comunidade, certo? Então será que 
não falta pulso firme e/ou uma empresa que invista nisso?Será que vai ficar só 
na ideia, e se tornar um mito da programação ou virá ser real?O que sabem sobre?
Valeu!___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] RPerl - Austin.pm

2013-11-27 Por tôpico Aureliano Guedes
200 vezes mais rapido que Puro Perl???Parece ilusão

Date: Wed, 27 Nov 2013 05:39:02 -0200
From: j...@joaocoutinho.com.br
To: rio-pm@pm.org
Subject: [Rio-pm] RPerl - Austin.pm

Repassando, da fan page do FB.

[ ]'s,

João 



-- Forwarded message --
From: "Will Braswell" 
Date: Nov 26, 2013 9:50 PM

Subject: [Rio de Janeiro Perl Mongers] Hello Perl friends, I'm the President 
of...
To: "Rio de Janeiro Perl Mongers" <20431022...@groups.facebook.com>





Will Braswell a publié dans Rio de Janeiro Perl Mongers


Will Braswell
 26 novembre 21:50 
Hello Perl friends, I'm the President of http://Austin.pm/, we're working to 
finish RPerl v1.0, will you please consider making a pledge to support the 
project?

 Thanks so much!
Perl 5 Optimizing Compiler, RPerl v1.0
RPerl can help your low-magic Perl 5 code run up to 200 times faster than pure 
Perl, with full backw...

Voir la publication sur Facebook · Modifier les paramètres de courrier 
électronique · Vous pouvez répondre à ce message pour commenter.






___
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

2013-11-25 Por tôpico Aureliano Guedes
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 



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  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 









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

2013-11-25 Por tôpico Aureliano Guedes
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 



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  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 









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

2013-11-25 Por tôpico Aureliano Guedes
Opa, respostas rápidas, obrigado.Já deu uma luz, vou ver aqui, se eu descobrir 
eu falo aqui.
Date: Mon, 25 Nov 2013 16:07:25 -0200
From: osca...@gmail.com
To: rio-pm@pm.org
Subject: Re: [Rio-pm] [HELP] Controlando comandos do sistema

Boa pergunta, no perl eu nao sei.No shell é  ~ $ traptrap -- '' SIGTSTPtrap -- 
'' SIGTTINtrap -- '' SIGTTOUAcho que já um caminho pra voce pesquisar.


Em 25 de novembro de 2013 16:04, Aureliano Guedes  
escreveu:




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


-- 
Oscar Marques
osca...@gmail.com

http://www.dunkelheit.com.br
@f117usbr
+55 21 9293-9343



___
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

2013-11-25 Por tôpico Aureliano Guedes
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] [Fun - passa tempo] Cifra de Vigenère

2013-11-11 Por tôpico Aureliano Guedes
Tava tentando achar um jeito de remover esse laço 'for'.E talvez reduzir para 1 
linha de código.se ja reduziu de 30 linhas para 5, talvez seja possível.

From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 20:10:26 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

my @word = $ARGV[0]->uc->split('')->map( sub{ $_->ord} );



ou
my @word map { ord $_ } split '', uc $ARGV[0];


vc decide :)




2013/11/11 Aureliano Guedes 





Tiago, o máximo que consegui ate agora usando o autobox::Core foi
#!usr/bin/env perluse common::sense;use autobox::Core;
my @word;

my @key;@word->push($_->ord) foreach 
$ARGV[0]->uc->split('');@key->push($_->ord) foreach $ARGV[1]->uc->split('');for 
(my $a = 0; $a <= $#key; $a++){

((($word[$_] + $key[$_])%26)+65)->chr->print if ($ARGV[2] eq 'e');  
((($word[$_] - $key[$_])%26)+65)->chr->print if ($ARGV[2] eq 'd');}


From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 17:49:23 +


Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère




Achei esse módulo muito interessante mesmo, mas ainda estou conhecendo o 
território. Vou tentar aplicar ele.

From: tiago.pecze...@gmail.com


Date: Mon, 11 Nov 2013 15:32:21 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

só falta vc usar o autobox::Core



2013/11/11 Aureliano Guedes 





Corrigi, mudando o código todohttp://pastebin.com/dqzZXXzM
Agora vou tentar em só uma linha. LOL



From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 14:01:16 +




Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère




Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma




sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);



@k = split (//, $self->key);croak "'key' and 'word' are diferent 
lenght\n"  if($#w != $#k);



foreach (@w and @k){croak "'key' and 'word' need to be 
letter\n"unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ 
/[a-zA-Z]/);



}   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),



aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram letras 
e coloquei para conferir isso no BUILD também (não sei se é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22



Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).




sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.




Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",



não sei se estou falando besteira, mas como o script teste.pl herda a classe, 
parece que a rotina tenta receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com




Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos




anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.






AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));













tente fazer












my @key  = tochar($self->key);





my @word = tochar($self->word);








2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro





Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj






Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??







From: bruno.b...@gma

Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-11 Por tôpico Aureliano Guedes
Tiago, o máximo que consegui ate agora usando o autobox::Core foi
#!usr/bin/env perluse common::sense;use autobox::Core;
my @word;my @key;@word->push($_->ord) foreach 
$ARGV[0]->uc->split('');@key->push($_->ord) foreach $ARGV[1]->uc->split('');for 
(my $a = 0; $a <= $#key; $a++){   ((($word[$_] + $key[$_])%26)+65)->chr->print 
if ($ARGV[2] eq 'e');  ((($word[$_] - $key[$_])%26)+65)->chr->print if 
($ARGV[2] eq 'd');}
From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 17:49:23 +
Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère




Achei esse módulo muito interessante mesmo, mas ainda estou conhecendo o 
território. Vou tentar aplicar ele.

From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 15:32:21 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

só falta vc usar o autobox::Core

2013/11/11 Aureliano Guedes 





Corrigi, mudando o código todohttp://pastebin.com/dqzZXXzM
Agora vou tentar em só uma linha. LOL



From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 14:01:16 +


Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère




Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma


sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);

@k = split (//, $self->key);croak "'key' and 'word' are diferent 
lenght\n"  if($#w != $#k);

foreach (@w and @k){croak "'key' and 'word' need to be 
letter\n"unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ 
/[a-zA-Z]/);

}   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),

aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram letras 
e coloquei para conferir isso no BUILD também (não sei se é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22

Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).


sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.


Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",

não sei se estou falando besteira, mas como o script teste.pl herda a classe, 
parece que a rotina tenta receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com


Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos


anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.




AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));









tente fazer








my @key  = tochar($self->key);



my @word = tochar($self->word);






2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro



Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj




Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??





From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org




Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

Oi Aureliano,
Quando você define um atributo como required no Moose, você precisa passa-lo 
pelo construtor do seu objeto (new()).




No caso, seu código ficaria assim:


[...]my $a = Vigenere->new( key => 'cinco', word => 'teste' );say "Resultado: " 
. $a->encode();




2013/11/10 Aureliano Guedes 









#!usr/env/bin perl
use feature 'say';use common::sense;use Vigenere;
my $a = V

Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-11 Por tôpico Aureliano Guedes
Achei esse módulo muito interessante mesmo, mas ainda estou conhecendo o 
território. Vou tentar aplicar ele.

From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 15:32:21 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

só falta vc usar o autobox::Core

2013/11/11 Aureliano Guedes 





Corrigi, mudando o código todohttp://pastebin.com/dqzZXXzM
Agora vou tentar em só uma linha. LOL



From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 14:01:16 +


Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère




Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma


sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);

@k = split (//, $self->key);croak "'key' and 'word' are diferent 
lenght\n"  if($#w != $#k);

foreach (@w and @k){croak "'key' and 'word' need to be 
letter\n"unless($w[$_] =~ /[a-zA-Z]/ || $k[$_] =~ 
/[a-zA-Z]/);

}   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),

aproveitei e retirei a rotina 'isalpha' que conferia se o caractere eram letras 
e coloquei para conferir isso no BUILD também (não sei se é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22

Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).


sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.


Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",

não sei se estou falando besteira, mas como o script teste.pl herda a classe, 
parece que a rotina tenta receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com


Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos


anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.




AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));









tente fazer








my @key  = tochar($self->key);



my @word = tochar($self->word);






2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro



Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj




Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??





From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org




Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

Oi Aureliano,
Quando você define um atributo como required no Moose, você precisa passa-lo 
pelo construtor do seu objeto (new()).




No caso, seu código ficaria assim:


[...]my $a = Vigenere->new( key => 'cinco', word => 'teste' );say "Resultado: " 
. $a->encode();




2013/11/10 Aureliano Guedes 









#!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 





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 é

Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-11 Por tôpico Aureliano Guedes
Corrigi, mudando o código todohttp://pastebin.com/dqzZXXzM
Agora vou tentar em só uma linha. LOL

From: guedes_1...@hotmail.com
To: rio-pm@pm.org
Date: Mon, 11 Nov 2013 14:01:16 +
Subject: Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère




Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma
sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);   @k = split (//, $self->key);croak "'key' and 'word' are 
diferent lenght\n"  if($#w != $#k); foreach (@w and @k){
croak "'key' and 'word' need to be letter\n"unless($w[$_] 
=~ /[a-zA-Z]/ || $k[$_] =~ /[a-zA-Z]/);   }   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),aproveitei e retirei a rotina 'isalpha' que conferia se o 
caractere eram letras e coloquei para conferir isso no BUILD também (não sei se 
é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22Use of uninitialized value 
$_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).
sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.
Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",não sei se estou falando 
besteira, mas como o script teste.pl herda a classe, parece que a rotina tenta 
receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos
anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.


AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));





tente fazer




my @key  = tochar($self->key);

my @word = tochar($self->word);




2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro

Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj


Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??



From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org


Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

Oi Aureliano,
Quando você define um atributo como required no Moose, você precisa passa-lo 
pelo construtor do seu objeto (new()).


No caso, seu código ficaria assim:


[...]my $a = Vigenere->new( key => 'cinco', word => 'teste' );say "Resultado: " 
. $a->encode();




2013/11/10 Aureliano Guedes 







#!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 





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 











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 requ

Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-11 Por tôpico Aureliano Guedes
Eu não entendi quanto a ler o parâmetro a partir do atributo e receber dois 
parâmetros,
mas eu fiz um teste.
Eu criei um método BUILD da seguinte forma
sub BUILD{  my $self = shift;   my (@w, @k);@w = split (//, 
$self->word);   @k = split (//, $self->key);croak "'key' and 'word' are 
diferent lenght\n"  if($#w != $#k); foreach (@w and @k){
croak "'key' and 'word' need to be letter\n"unless($w[$_] 
=~ /[a-zA-Z]/ || $k[$_] =~ /[a-zA-Z]/);   }   }
Então é conferido se 'word' e 'key' tem o mesmo tamanho (você me aconselhou 
fazer isso no BUILD),aproveitei e retirei a rotina 'isalpha' que conferia se o 
caractere eram letras e coloquei para conferir isso no BUILD também (não sei se 
é muita POG).
sub isalpha{(chr shift) =~ /[a-zA-Z]/}   #<-line 22Use of uninitialized value 
$_[0] in chr at Vigenere.pm line 22.
Antes de fazer isso o erro que retornava apontava para a linha do 'isalpha', 
agora está apontando para a linha do 'toupper', que é uma função que traduz o 
hex ASCII para caracter, passa para upcase e retorna como hex denovo (logo 97 
vira 65, assim por diante).
sub toupper{ord(uc chr $_[0])}  #<- line 25Use of uninitialized value $_[0] in 
chr at Vigenere.pm line 25.
Tentei debugar mas não entendi nada, mas de qualquer forma eu acho que o 
problema é eu tentar tratar usando essa string "$_[0]",não sei se estou falando 
besteira, mas como o script teste.pl herda a classe, parece que a rotina tenta 
receber a string do script e não do módulo.
From: tiago.pecze...@gmail.com
Date: Mon, 11 Nov 2013 09:57:14 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

vejamos
anteriormente as suas funcoes recebiam 2 parametros
agora elas leem os parametros a partir dos atributos e eu acho isso... 
esquisito.


veja só, não ha muita razão para armazenar estes dois atributos nessa classe. 
vc tem que pensar em termos de Objetos.
vc tem um objeto que SABE fazer encode / decode. no maximo vc poderia armazenar 
a chave como atributo e assim reusar o objeto para encodar um texto a ser 
recebido.


AGORA, vc tem o erro por que deve estar fazendo algo de muito creativo aqui (ai 
envolve explicação sobre list context e atribuição):
my (@word, @key) = (tochar($self->word), tochar($self->key));





tente fazer




my @key  = tochar($self->key);

my @word = tochar($self->word);




2013/11/11 Aureliano Guedes 





Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte erro

Use of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj


Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??



From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org


Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

Oi Aureliano,
Quando você define um atributo como required no Moose, você precisa passa-lo 
pelo construtor do seu objeto (new()).


No caso, seu código ficaria assim:


[...]my $a = Vigenere->new( key => 'cinco', word => 'teste' );say "Resultado: " 
. $a->encode();




2013/11/10 Aureliano Guedes 







#!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 





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 











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 pa

Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-10 Por tôpico Aureliano Guedes
Bom, parece que to enferrujado mesmo, fazia um tempinho que não programava em 
Perl.
Tem um outro probleminha ocorrendo.
Aqui -> http://pastebin.com/XJ512YYx na classe, esta retornando o seguinte 
erroUse of uninitialized value $_[0] in chr at Vigenere.pm line 22.
A linha 22 ésub isalpha{chr ($_[0]) =~ /[a-zA-Z]/} 
Mas, eu criei esse package a partir desse script aqui -> 
http://pastebin.com/svEkjFJj
Que tem a mesma rotina escrita da mesma forma.
Por algum motivo funciona em um e em outro não.
Por que será??
É o $_[0]??

From: bruno.b...@gmail.com
Date: Sun, 10 Nov 2013 23:39:42 -0200
To: rio-pm@pm.org
Subject: Re: [Rio-pm]   [Fun - passa tempo] Cifra de Vigenère

Oi Aureliano,
Quando você define um atributo como required no Moose, você precisa passa-lo 
pelo construtor do seu objeto (new()).
No caso, seu código ficaria assim:


[...]my $a = Vigenere->new( key => 'cinco', word => 'teste' );say "Resultado: " 
. $a->encode();




2013/11/10 Aureliano Guedes 





#!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 





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 









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 











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  
  

__

Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-10 Por tôpico Aureliano Guedes
#!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 





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 







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 









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] [Fun - passa tempo] Cifra de Vigenère

2013-11-10 Por tôpico Aureliano Guedes
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 





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 







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

Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-10 Por tôpico Aureliano Guedes
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 





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

Re: [Rio-pm] [Fun - passa tempo] Cifra de Vigenère

2013-11-10 Por tôpico Aureliano Guedes
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

  1   2   3   >