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

2016-04-13 Por tôpico Stanislaw Pusep
Aureliano, o Perl não é suficientemente inteligente para interpretar
expressão regular como chave do hash :)
Pelo que entendi, vc quer algo assim:

my %codon = (
(map { "CG".$_ => "A" } qw(A C T G)),
(map { "TT".$_ => "F" } qw(C T)),
(map { "TT".$_ => "L" } qw(A G)),
(map { "CU".$_ => "L" } qw(A C T G)),
);

2016-04-13 2:24 GMT+02:00 Aureliano Guedes :

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

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

2014-05-04 Por tôpico Stanislaw Pusep
(0x2B or not 0x2B)

воскресенье, 4 мая 2014 г. пользователь Adriano Ferreira написал:




 2014-05-04 12:12 GMT-03:00 breno 
 br...@rio.pm.orgjavascript:_e(%7B%7D,'cvml','br...@rio.pm.org');
 :

 Só de curiosidade: http://returnvalues.useperl.at (especificamente,
 http://returnvalues.useperl.at/values.html)

 Eu costumo botar 1 em trabalhos profissionais, e 42 em projetos
 open-source. Em alguns módulos do SDL a gente botou all your base are
 belong to us, e o Dancer exporta a DSL true e recomenda seu uso nas
 apps feitas com ele.

 Qual o seu valor de retorno favorito? :D


 0 but true =)






 []s

 -b

 2014-05-03 18:30 GMT-03:00 Bruno Buss 
 bruno.b...@gmail.comjavascript:_e(%7B%7D,'cvml','bruno.b...@gmail.com');
 :
  Os dois 1os resultados do Google...
 
 
 http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package
 
 http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module
 
  2014-05-03 18:03 GMT-03:00 Aureliano Guedes 
  guedes_1...@hotmail.comjavascript:_e(%7B%7D,'cvml','guedes_1...@hotmail.com');
 :
 
  Ola monges,
 
  tenho uma dúvida meio idiota:
  O que é aquele número no final do módulo??
 
  exemplo:
 
  package Meu::Modulo;
 
  ...
 
  1;
 
  No módulo do Garu mesmo:
 
  package Acme::BOPE;
 
  .
 
  42;
 
  Eu sempre coloquei de forma automática o '1;', mas não faço ideia do
 que
  é, alguns módulos tem números diferentes.
  Mas o que é esse numero? Pra que serve? Como seu qual número devo
 colocar?
 
  Abraços,
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org javascript:_e(%7B%7D,'cvml','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 javascript:_e(%7B%7D,'cvml','Rio-pm@pm.org');
  http://mail.pm.org/mailman/listinfo/rio-pm
 ___
 Rio-pm mailing list
 Rio-pm@pm.org javascript:_e(%7B%7D,'cvml','Rio-pm@pm.org');
 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 Stanislaw Pusep
Memória RAM é o limite.
Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado:
https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays


2014-04-15 18:33 GMT+02:00 Aureliano Guedes guedes_1...@hotmail.com:

 Ola, monges.

 Gostaria de saber quais opções eu tenho para gravar um numero muito grande
 de informações em um array.

 Exemplo, imagine que eu tenha uma rotina tosca como essa:

 sub multiplicador{
 my @ini = (100..999);
 my $fim = 999;
 my @memo
 while ($fim != 100){
 foreach (@ini){
 my $m = $_ * $fim;
 push (@memo, $m);
 }
 $fim--;
 }
 }

 Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 *
 999 ate 999*999.
 Os resultados de cada multiplicação são jogados para um array. Ou seja, um
 array grande pra caramba.

 Como faria para que @memo fosse capaz de guardar todos os valores?

 Qual é o limite de dados que posso normalmente guardar em um array?

 Obrigado,

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

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

Re: [Rio-pm] [Curiosidade] Perl no smartphone

2014-03-02 Por tôpico Stanislaw Pusep
Para iOS, temos o PerlMotion: https://github.com/goccy/perl-motion
Não é exatamente Perl, mas permite escrever apps num subset te Perl.
Por outro lado, instalar Perl normal num iOS c/jailbreak é dois palito:
http://iphonesdkdev.blogspot.nl/2014/01/how-to-install-perl-theos-and-llvm.html


2014-03-03 7:03 GMT+01:00 Renato Santos renato.c...@gmail.com:

 Rodar Perl é relativamente simples, difícil é criar uma app.

 Dado que o Perl tem poucas dependências, você precisa ter um compilar C no
 smartphone e paciência.

 Acho que Tinha um grupo, uns 3 anos atrás, no Android 1.5 (sim, já
 existiu) que rodavam Perl. Mas não sabe mais disso!
 On Mar 3, 2014 12:26 AM, Aureliano Guedes guedes_1...@hotmail.com
 wrote:

 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


 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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] Variavel - caminho padrao para diretorios de testes

2014-02-23 Por tôpico Stanislaw Pusep
Olá Samir!
Não há necessidade de passar o absolute path, os testes são sempre
executados da raiz da sua distribuição:

my @condor_q =  read_file( 't/input.txt' ) ; # isso é suficiente

Uma nota: os testes em Perl tem extensão padrão .t, portanto, o nome do
arquivo de testes ficaria mais consistente se fosse 01_basic.t.
Abs


2014-02-24 7:58 GMT+01:00 Samir Cury samircu...@gmail.com:

 E ai pessoal, faz um tempo que nao passo por aqui, mas felizmente estou
 voltando a usar Perl no cotidiano e me livrando da ferrugem.

 Estava revisando um modulo que falta pouco para subir pro CPAN, e me
 deparei com uma coisa que  nao me pareceu o melhor jeito de se fazer :


 https://github.com/samircury/HTCondor--Queue--Parser/blob/master/t/01_basic.pl#L11

 Penso isso pois uma vez enquanto escrevia testes em Python me falaram de
 uma variavel que referenciava o diretorio de testes. Imaginei que pudesse
 existir um equivalente em Perl mas minhas buscas nao retornaram nada
 especifico.

 Achei interessante perguntar aqui na lista se conhecem algum jeito melhor.
 De repente esta na ponta da lingua de quem escreve modulos direto. Do jeito
 que esta ja passa no prove [1] mas como nao tenho muita pratica com
 modulos e sempre bom perguntar.

 Abracos,
 Samir

 [1] :

   ~/code/Condor--Queue--Parser $ prove -l t/01_basic.pl
 t/01_basic.pl .. ok
 All tests successful.
 Files=1, Tests=9,  2 wallclock secs ( 0.03 usr  0.00 sys +  1.27 cusr
 0.03 csys =  1.33 CPU)
 Result: PASS

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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] Configuração de usuário não root no cpan Perl Roll em Rocks Cluster

2014-01-30 Por tôpico Stanislaw Pusep
Olá Nicole!
Já passei por situação semelhante à sua, quando não podia atualizar o Perl
default do sistema e a opção foi instalar um Perl mais atualizado avulso no
/usr/local. Para sempre usar o Perl do /usr/local, 3 medidas foram tomadas:

1. export PATH=/usr/local/bin:$PATH

2. Os shebangs de todos os scripts executáveis do projeto foram modificados
de:

#!/usr/bin/perl

para:

#!/usr/bin/env perl

3. local::lib foi utilizado para CPAN desovar no $HOME. O local::lib
requer uma intervenção do .profile do sistema, para inicializar o
environment apropriadamente. Seguem os passos para instalar o local::lib
dessa forma.

3.1. Download do local::lib:

$ wget
http://cpan.metacpan.org/authors/id/H/HA/HAARG/local-lib-2.04.tar.gz
$ tar xzvf local-lib-2.04.tar.gz
$ cd local-lib-2.04/

3.2. Instalação do local::lib:

$ perl Makefile.PL --bootstrap=$HOME/perl5
$ make
$ make test
$ make install

3.3. Ativando local::lib na inicialização da shell (Bash):

$ cat  PROFILE  $HOME/.profile
eval \$(perl -I\$HOME/perl5/lib/perl5/ -Mlocal::lib)
PROFILE
$

A idéia aqui é que rodar perl -I$HOME/perl5/lib/perl5/ -Mlocal::lib
retorna para STDOUT as tais das variáveis de ambiente que fazem o Perl
buscar instalação dos módulos em um lugar específico ($HOME). Pode
simplesmente colar essas variáveis direto no .profile, ou (como demonstrado
acima) rodar eval do output do Perl.

3.4. Carregar a configuração:

. $HOME/.profile

3.5. Prosseguindo com a configuração/teste do CPAN e do cpanm (essa
configuração faz as dependências serem instaladas automaticamente):

$ cpan

cpan[1] o conf prerequisites_policy follow
cpan[2] o conf commit
cpan[3] install App::cpanminus
cpan[4] quit

Boa sorte!


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

  Boa tarde, queridos Mongers,

 eu não queria importuná-los com problemas simples, mas após três dias
 batendo a cabeça e vasculhando fóruns na internet sem solução para algumas
 das perguntas, recorro a vocês. Vou tentar explicar a novela.

 Montamos um cluster HPC para pesquisa usando o Rocks 6.1 (
 http://www.rocksclusters.org/) -- um tipo de linux que instala outro
 linux em todos os nós do cluster e gerencia tudo isso. Novidade pra mim,
 mas funciona. Esse Rocks instala os chamados Rolls, entre eles o próprio SO
 (neste caso o RHEL6) e outros Rolls úteis, como SGE, Ganglia, Web-Server,
 Bio, Perl (4.14.2) entre outros. Estes Rolls são instalados em /opt/ e as
 vezes coexistem com os binários do SO. Desta forma, tenho duas versões de
 Perl:

 - a do sistema (RHEL6):
 $ /usr/bin/perl -v
 This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi

 - e a do Rocks:
 $ /opt/perl/bin/perl -v
 This is perl 5, version 14, subversion 2 (v5.14.2) built for
 x86_64-linux-thread-multi

 Cada qual com as suas bibliotecas.

   @INC:
 /usr/local/lib64/perl5
 /usr/local/share/perl5
 /usr/lib64/perl5/vendor_perl
 /usr/share/perl5/vendor_perl
 /usr/lib64/perl5
 /usr/share/perl5
 .
   @INC:
 /opt/perl/lib/site_perl/5.14.2/x86_64-linux-thread-multi
 /opt/perl/lib/site_perl/5.14.2
 /opt/perl/lib/5.14.2/x86_64-linux-thread-multi
 /opt/perl/lib/5.14.2
 .


 Agora é que começam meus problemas...

 Primeiro: Alguém já teve experiência com duas instalações coexistentes de
 Perl? Posso ter problemas de funcionamento no SO se eu mover  o
 /usr/bin/perl e criar um link do /opt/perl/bin/perl para /usr/bin/perl
 (uma vez que as shebang dos scripts costuma ter este endereço). Colocar
 simplesmente /opt/perl/bin no início do $PATH pode não ser a solução.


 O CPAN só está instalado na versão do Rocks, o que me motiva mais a
 deixá-lo como default.
 Como a maioria dos usuários não terão privilégios de root e além disso,
 qualquer instalação no sistema operacional tem que ser espelhada para todos
 os nós, a melhor opção para instalar pacotes é na home dos usuários,
 concordam? Então eu quero deixar tudo o mais fácil possível para que os
 usuários instalem os pacotes desejados. Como não teremos acesso direto à
 internet usei o minicpan para criar um mirror em uma pasta compartilhada
 com minha máquina local. Configurei o urllist do cpan pra ela e ficou tudo
 ok.
 Agora esbarrei em um problema que não estou achando resposta fácil.

 Quando executo o cpan pela primeira vez como usuário comum, da forma mais
 automática possível, ele cria, como esperado o arquivo MyConfig.pm e toda a
 estrutura de diretórios no home do usuário. Ele executa quase tudo com
 perfeição, substituindo o endereço default pelo do usuário em QUASE todos
 os itens, menos em prefs_dir.

 [hpcst06@crab ~]$ grep cpan .cpan/CPAN/MyConfig.pm
   'build_dir' = q[/home/hpcst06/.cpan/build],
   'cpan_home' = q[/home/hpcst06/.cpan],
   'histfile' = q[/home/hpcst06/.cpan/histfile],
   'keep_source_where' = q[/home/hpcst06/.cpan/sources],
   'prefs_dir' = q[/export/cpan/cpan/prefs],


 (O default cpan_home é /export/cpan/cpan )
 [hpcst06@crab ~]$ grep cpan /opt/perl/lib/5.14.2/CPAN/Config.pm
   'build_dir' 

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

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


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

 Obrigada, Stanislaw!

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

 Abraços,
 Nicole




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

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

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

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


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

 Obrigada Stanislaw e Aureliano!

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

 Stanislaw,

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

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


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


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


 ---

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

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

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

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

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


 Obrigada pela ajuda!


 Abraços,
 Nicole


   Em Quinta-feira, 30 de Janeiro de 2014 8:38, Aureliano Guedes 
 guedes_1...@hotmail.com escreveu:
   Caraca. Complexo.
 O melhor, foi ver a pela primeira vez uma mulher na bioinformatica.
 Hello colega bioinformata.

 Stanislaw Pusep creakt...@gmail.com escreveu:

   Olá Nicole!
 Já passei por situação semelhante à sua, quando não podia atualizar o Perl
 default do sistema e a opção foi instalar um Perl mais atualizado avulso no
 /usr/local. Para sempre usar o Perl do /usr/local, 3 medidas foram tomadas:

  1. export PATH=/usr/local/bin:$PATH

  2. Os shebangs de todos os scripts executáveis do projeto foram
 modificados de:

  #!/usr/bin/perl

  para:

  #!/usr/bin/env perl

  3. local::lib foi utilizado para CPAN desovar no $HOME. O local::lib
 requer uma intervenção do .profile do

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

2013-11-27 Por tôpico Stanislaw Pusep
Não tem, mas Reini Urban estava trabalhando nisso... Mas acho que acabou
virando outra coisa.

четверг, 28 ноября 2013 г. пользователь Tiago Peczenyj писал:

 Aliás, Perl tem JIT optimization?
 Le 27 nov. 2013 22:43, Tiago Peczenyj 
 tiago.pecze...@gmail.comjavascript:_e({}, 'cvml', 
 'tiago.pecze...@gmail.com');
 a écrit :

 Não é impossível, uma vez que você remova algum overhead por exemplo.
 Entretanto vc vai sacrificar alguma coisa. De repente vc vai ter menos
 features. Vai sacrificar backward compatibility ,etc.

 Depende do seu gargalo. Se for I/O pode não fazer a menor diferença ser
 200x mais rápido.
 Le 27 nov. 2013 15:35, Aureliano Guedes guedes_1...@hotmail.com a
 écrit :

 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 notification+hp11o...@facebookmail.com
 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 
 Mongershttps://www.facebook.com/n/?groups/20431022699/permalink/10152067314167700/aref=91127644medium=emailmid=8ff30f2G3f062f75G56e7f5cG96bcode=1.1385509828.AbmmVNOWK0UiLfcsn_m=jc%40joaocoutinho.com.br
 [image: Will 
 Braswell]https://www.facebook.com/n/?profile.phpid=1828910954aref=91127644medium=emailmid=8ff30f2G3f062f75G56e7f5cG96bcode=1.1385509828.AbmmVNOWK0UiLfcsn_m=jc%40joaocoutinho.com.br
  Will
 Braswellhttps://www.facebook.com/n/?profile.phpid=1828910954aref=91127644medium=emailmid=8ff30f2G3f062f75G56e7f5cG96bcode=1.1385509828.AbmmVNOWK0UiLfcsn_m=jc%40joaocoutinho.com.br
  26
 novembre 21:50
 Hello Perl friends, I'm the President of 
 http://Austin.pm/http://www.facebook.com/l/YAQEvQgEo/Austin.pm/,
 we're working to finish RPerl v1.0, will you please consider making a
 pledge to support the project?
 Thanks so much!

 http://www.facebook.com/l/VAQFFdrWkAQGH65Cehckfv01MH8lAHdb7R5D4QM5MzY1-fA/www.kickstarter.com/projects/wbraswell/perl-5-optimizing-compiler-rperl-v10



-- 
Отправлено с моего iPhone
___
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Re: [Rio-pm] xpath

2013-04-03 Por tôpico Stanislaw Pusep
Matheus, você provavelmente conhece os seletores CSS, esses popularizados
pelo jQuery.
Pois é, não há necessidade de aprender XPath, caso já conheça esses
seletores: https://metacpan.org/module/HTML::Selector::XPath
(seletor CSS pode ser convertido em XPath, porém a recíproca não é válida!)
Aliás, talvez o Web::Query (https://metacpan.org/module/Web::Query) seja
mais familiar/intuitivo para scraping do que Web::Scraper.


ABS()


2013/4/3 Matheus Lucas mal...@yahoo.com.br

 Ola amigos !
 Esbarrei em um problema com algumas regex aqui em arquivos html e me deram
 a ideia de usar xpath para resolver. Eu nunca trabalhei com xpath e achei
 muitos modulos na cpan.
 Gostaria de saber se alguem ja trabalhou com algum modulo de xpath pra
 perl e gostaria de receber opniões que modulo é interessante, mais rapido
 de aprender e tals ? Ja vi que tem varios, mais ainda não sei qual é o
 melhor para o problema e continuo a estudar. Gradeço se alguem puder me
 orientar nisso.
 Agradeço a todos !

 *
 *
 *
 *
 *
 *
 **
 Matheus Lucas
 Tecnologia em Sistemas para Internet
 Viçosa-MG

 *Seja livre, use Linux !*

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

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

Re: [Rio-pm] use 5.016 ou use strict/warnings

2013-03-01 Por tôpico Stanislaw Pusep
use common::sense;


ABS()


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

 Well, o que vocês preferem entre _use 5.016_ e _use strict; use warnings;_
 ?

 Faz tempo que uso o _use 5.016_ e vocês?

 Emendando outra, que versão de perl vocês usam em produção?

 []s,

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

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

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

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

2012-12-13 Por tôpico Stanislaw Pusep
Aureliano, o lexer do brainfuck utilizando given/when ficaria +/- assim:

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

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

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

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

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

ABS()



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

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

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

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

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

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

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

  ABS()



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

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

 Valeu

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

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

 pow,

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

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

  Não so isso, deve ter algo mais.

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

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

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

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

 não são essas linhas aqui?


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


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

  ahsuahuhasuahsuah

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

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


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

 Trooloolooloolooloolooloolooloolollolooloolooloolooloololoolooloolooloolooloolooloololooloololoooloolooloololloololoololooolooloolooloolooloololoolooolooloololooloololloololooloolooloolooloolooloolooloolooloolooloolololooolooloololooollollollollollolllooollollollollollollollollloolololooll
 É sério.

 ABS()



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

  Ola monges,

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

 Futuramente pretendo desenvolver um compilador.

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

 http://pastebin.com/aEppcPKt

 Para testarem um hello wolrd em BF:


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











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

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









 Aqui tambem:

 Basicamente é isso:

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










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



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

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




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


 

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

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

ABS()



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

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

 Valeu

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

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

 pow,

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

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

  Não so isso, deve ter algo mais.

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

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

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

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

 não são essas linhas aqui?


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


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

  ahsuahuhasuahsuah

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

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


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

 Trooloolooloolooloolooloolooloolollolooloolooloolooloololoolooloolooloolooloolooloololooloololoooloolooloololloololoololooolooloolooloolooloololoolooolooloololooloololloololooloolooloolooloolooloolooloolooloolooloolololooolooloololooollollollollollolllooollollollollollollollollloolololooll
 É sério.

 ABS()



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

  Ola monges,

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

 Futuramente pretendo desenvolver um compilador.

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

 http://pastebin.com/aEppcPKt

 Para testarem um hello wolrd em BF:


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









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

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







 Aqui tambem:

 Basicamente é isso:

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








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



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

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




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


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

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




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


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

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

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

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

2012-12-11 Por tôpico Stanislaw Pusep
Dahora, parabéns :D
BTW, isso me lembrou de um dialeto do brainfuck, o trollscript:
https://github.com/caius/trollscript
Isso é um hello world em trollscript:
Trooloolooloolooloolooloolooloolollolooloolooloolooloololoolooloolooloolooloolooloololooloololoooloolooloololloololoololooolooloolooloolooloololoolooolooloololooloololloololooloolooloolooloolooloolooloolooloolooloolololooolooloololooollollollollollolllooollollollollollollollollloolololooll
É sério.

ABS()



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

  Ola monges,

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

 Futuramente pretendo desenvolver um compilador.

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

 http://pastebin.com/aEppcPKt

 Para testarem um hello wolrd em BF:


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



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

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

 Aqui tambem:

 Basicamente é isso:

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



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

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

Re: [Rio-pm] Chaves de hash

2012-11-29 Por tôpico Stanislaw Pusep
Todos sabem que a WWII foi desencadeada por causa da festa de aniversário
de 50 anos de Hitler.

ABS()



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

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

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

 Se eu fosse pesquisar um valor especifico e tivesse duas ou mais chaves
 com o mesmo valor real seria problema
 mas no meu caso umporta que o valor esteja em um determinado intervalo,
 podem ter 20 chaves iguais, estando no intervalo
 eu quero os 20 valores. 49??

 --
 From: leonardo.bal...@gmail.com
 Date: Fri, 30 Nov 2012 00:15:50 -0200

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

 Quero participar dessa discussao antes do 50.

 Por que tanta peculiariade na dicotomia  de popular?

 Na buzilis da cizania ja nao era mais sobre Perl ou foi impressao minha?


 Leo Balter - via mobile

 Em 30/11/2012, às 00:02, Marcio Ferreira marciodesouzaferre...@gmail.com
 escreveu:

 47
 On Nov 29, 2012 11:35 PM, Renato Santos renato.c...@gmail.com wrote:

 #define float_epsilon 0.1;#define float_equal(a,b) (fabs((a) - (b))  
 float_epsilon)

 *BTW*

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

 float_equal




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


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

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


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

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

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

Re: [Rio-pm] Comparação de arquivos

2012-11-26 Por tôpico Stanislaw Pusep
Esta sintaxe de expressão regular é chamada de named capture. Surgiu no
Perl v5.10. Ao invés de $1, $2, $3, ..., você dá um nome legível à captura.
Por si só, já é bastante útil, mas a utilidade maior aparece na
possibilidade da construção de grammars, similares a BNF (
https://pt.wikipedia.org/wiki/Formalismo_de_Backus-Naur#Exemplo).
Recomendo esse artigo para aprender a usar estes recursos:
http://www.effectiveperlprogramming.com/blog/1479

ABS()



2012/11/26 Nicole bionica2007-p...@yahoo.com

 Oi a todos,

 aproveitando a paciência infinita do Breno...

 Poderias esclarecer como funciona isto:
 (?tag...)

 e o que acontece então aqui:
 valores agrupados na regex por nome dentro do hash %+. No caso,
 acessei o grupo (?mirna) fazendo $+{mirna};

 Criaste um hash de nome %+ 
 É uma variável reservada?
 Qual o valor que assume $mirna aqui?
 Na primeira vez que entra no if, $mirna está vazio, não? Como pode ser key
 do hash %dados assim?

 []'s
 Nicole Scherer


   --
 *De:* breno br...@rio.pm.org
 *Para:* Perl Mongers Rio de Janeiro rio-pm@pm.org
 *Enviadas:* Sábado, 24 de Novembro de 2012 9:45
 *Assunto:* Re: [Rio-pm] Comparação de arquivos

 2012/11/24 Aureliano Guedes guedes_1...@hotmail.com:
 
  Se não for ser muito chato, como faço para seguir a forma abaixo:
 
 
  2) trocar de abordagem, fazendo seu parser ler linha a linha (sem
  modificar $/) e ir acumulando as linhas até encontrar um símbolo que
  indique nova entrada.
 
  seria algo do tipo:
 
  while ($fh){
  if(/primeira linha/){
  print $_;
  }
  elsif (/ultima linha/){
  #sair do loop
  }
  else {
  print $_
  }
  }
 

 Algo como (atenção, código não testado):

 ---8---
 my %dados = ();
 my $mirna;
 my $acumulador;

 while (my $linha = $fh) {
   if ( $linha =~ m{tag magica (?mirna\S+)} ) {
   $dados{$mirna} = $acumulador if $mirna;
   $mirna = $+{mirna};
   $acumulador = q();
   }
   else {
   $acumulador .= $linha;
   }
 }

 use DDP; p %dados;

 ---8---

 O que isso faz (ou deveria fazer: já mencionei que não testei?
 Programar a essa hora da manhã não é meu forte, então favor
 desconsiderar qualquer besteira):

 1) le o arquivo linha por linha, atribuindo o valor de cada linha a
 $linha (sem usar $_)
 2) sempre que encontrar a tag mágica que separa entradas (estou
 assumindo que a tag indica um novo registro que pode ser chave do seu
 hash de dados:
 2.1) se já estiver com um registro em memória ($mirna), bota os dados
 acumulados ($acumulador) dentro do hash;
 2.2) atribui à $mirna o novo registro encontrado. Note que estou
 usando grupos nomeados na regex, fazendo (?tag...) em vez de apenas
 (...). Isso funciona a partir do 5.10.0 e me permite acessar os
 valores agrupados na regex por nome dentro do hash %+. No caso,
 acessei o grupo (?mirna) fazendo $+{mirna};
 2.2) zera o acumulador.
 3) se não encontrar a tag mágica, vai acumulando os dados. Dentro
 desse 'else' vc pode fazer coisas como next if $linha =~ /.../ caso
 não queira guardar alguma linha, por exemplo.
 4) Depois do while vc pode inspecionar %dados para saber se está tudo ok.


 Entendeu?

 []s

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



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

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

Re: [Rio-pm] HTML::Parse

2012-10-25 Por tôpico Stanislaw Pusep
++breno!

ABS()



2012/10/25 breno br...@rio.pm.org

 2012/10/25 Aureliano Guedes guedes_1...@hotmail.com:
  Eu fiz de uma forma que deu certo, mas ficou feio e cheio de más
 praticas,
  mandando reguex em xml e tals.
 
  Quero fazer de forma bonita com XPath e tals. Mas ainda estou em
 processo de
  entendet tudo isso.
 
  Estou tentando pegar o primeiro link da lista de videos de um resultado
 de
  pesquisa do YouTube.
  Para isso estou ultilizando uma API do YouTube:
 
 https://developers.google.com/youtube/2.0/developers_guide_protocol_api_query_parameters#Searching_for_Videos
 
  Onde estão os erros fora tudo?? - http://pastebin.com/T06Mi1Nx
 

 Olha, fora tudo, posso te garantir que não há erros :)

 Pergunta: vc tá fazendo isso só por diversão, né? Isso porque uma
 busca rápida no CPAN me levou ao WebService::GData::YouTube, que faz
 buscas e muito mais.

 https://metacpan.org/module/WebService::GData::YouTube#search_video

 O one-liner abaixo, por exemplo, exibe o título do primeiro
 resultado para uma busca no YouTube por perl:

 perl -MWebService::Gdata::YouTube -E 'my $yt =
 WebService::GData::YouTube-new; $yt-query-q( q[perl] )-limit(1,0);
 say $_-title foreach @{ $yt-search_video() }'


 []s

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

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

Re: [Rio-pm] print() on closed filehandle

2012-10-21 Por tôpico Stanislaw Pusep
Você usa Windows, não?
Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou
então abrir o handle como open($fh, ':raw', 'nome.mp3').
O erro acontece por que o Perl do Windows substitui byte \x0A pela
sequencia \x0D\x0A em arquivos texto.
Em arquivo não-texto, isso não é nada bom.

ABS()



2012/10/21 Aureliano Guedes guedes_1...@hotmail.com

  Não ainda, vou experimentar e volto com os resultados.

 --
 From: tiago.pecze...@gmail.com
 Date: Sun, 21 Oct 2012 17:54:30 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] print() on closed filehandle

 então alguma coisa acontece durante o transporte ou o protocolo de
 transmissão. estou sem tempo de analisar mas vc experimento usar o
 wireshark?

 2012/10/21 Aureliano Guedes guedes_1...@hotmail.com

  MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original
 pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB.
 Em contrapartida o arquivo obtido pelo script fica com 6,19MB.

 Ja tentei baixar denovo, continua o mesmo problema.
 --
 From: tiago.pecze...@gmail.com
 Date: Sun, 21 Oct 2012 17:25:59 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] print() on closed filehandle

 analise o arquivo original e o que vc esta salvando, vc pode ter
 corrompido algum byte. se o md5 dos dois for igual o problema é outro, se
 for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o
 cabeçalho do mp3).

 2012/10/21 Aureliano Guedes guedes_1...@hotmail.com

  Realmente, um erro por falta de atenção. Agora deu certo.

 Contudo, os arquivos chegam com algum problema que não sei o que é.

 As musicas não tocam normalmente, elas ficam com um barulho estranho e
 quase não da para reconhecer a musica, é como se estivesse acelerado.

 Será que é problemas calsado devido a forma que estou manipulando esse
 tipo de arquivo?

 --
 From: tiago.pecze...@gmail.com
 Date: Sun, 21 Oct 2012 16:57:12 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] print() on closed filehandle


 sem falar que esta usando open com 2 argumentos. tente usar com 3
 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao
 inves de um ponto para concatenar. alias vc pode interpolar assim

 open my $fh,,$nome.mp3;

 ou

 open my $fh,,${nome}.mp3;

 On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith ole@gmail.comwrote:

 espacos no nome do arquivo? (sempre, como letras acentuadas, abominavel...)
 0le
 Send via Android
 On Oct 21, 2012 3:38 PM, Aureliano Guedes guedes_1...@hotmail.com
 wrote:

  Ola monges.

 Estou com problema para salvar arquivos *.mp3 recebidos via download.

 Ao salvar a mensagem retornada é 'print () on closed filehandle FH at
 C:\User\AG\Desktop\mes.pl  line 31.'.

 O sistema so retorna 'Invalid argument' quando uso o $!.

 Então usei o autodie para ver o que me retornava:
 Can't open 'Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid
 argument' C:\User\AG\Desktop\mes.pl  line 19.

 Enfim, não estou entendendo o erro retornado.

 http://pastebin.com/qxCMLv1V

 #!/usr/bin/env perl

 use common::sense;
 use WWW::Mechanize;
 use autodie;


 sub parse {
 my ($self) = shift;
 $self =~ s/\s+/\+/g;
 chomp $self;
 print Now --  . $self . \n\n;
 return (http://www.buscamp3.org/busca/; . $self);
 }

 sub gd {
 my ($self, $name) = @_;
 print $self .  ==  . $name . \n\n;
 open my $fh,. $name . .mp3;
 my $m = WWW::Mechanize-new();
 my $p = $m-get($self);
 $p = $p-decoded_content;
 $m-max_redirect(1);
 my @Links = $m-links();
 my $w = 0;
 SWU: foreach my $link(@Links){
 my @a = split (/, $link-url());
 if ($a[1] =~ m/dl/gi){
 print OK!\n;
 my $c = $m-get(http://www.buscamp3.org; . $link-url());
 print $fh $c-decoded_content;
 close $fh;
 $w = 1;
 }
 last SWU if ($w == 1);
 }
 undef $m;
 }


 open IN, $ARGV[0] or die;

 foreach (IN){
 print Search for:  . $_ . \n;
 my $a = parse($_);
 gd($a, $_);
 print \n\n;
 }

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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://pacman.blog.br

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

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




 --
 Tiago B. Peczenyj
 Linux User #405772

 http://pacman.blog.br

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

 ___
 Rio-pm mailing list
 

Re: [Rio-pm] print() on closed filehandle

2012-10-21 Por tôpico Stanislaw Pusep
Assumindo que o MP3 tenha uma entropia próxima de 8 bits por byte (algo que
definitivamente não vale para um arquivo .pl, por mais que nos caçoem), um
arquivo de 6,16MB poderá ter cerca de 25 mil ocorrências de \x0A. Mapeando
CR = CRLF, pode crescer em cerca de 50KB. Acho que 6,19MB está dentro da
faixa :)

ABS()



2012/10/21 Tiago Peczenyj tiago.pecze...@gmail.com

 mas isso nao explica o tamanho do video ser tão diferente...


 2012/10/21 Stanislaw Pusep creakt...@gmail.com

 Você usa Windows, não?
 Neste caso, precisa dar um binmode($fh) logo após o open($fh, ...). Ou
 então abrir o handle como open($fh, ':raw', 'nome.mp3').
 O erro acontece por que o Perl do Windows substitui byte \x0A pela
 sequencia \x0D\x0A em arquivos texto.
 Em arquivo não-texto, isso não é nada bom.

 ABS()




 2012/10/21 Aureliano Guedes guedes_1...@hotmail.com

  Não ainda, vou experimentar e volto com os resultados.

 --
 From: tiago.pecze...@gmail.com
 Date: Sun, 21 Oct 2012 17:54:30 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] print() on closed filehandle

 então alguma coisa acontece durante o transporte ou o protocolo de
 transmissão. estou sem tempo de analisar mas vc experimento usar o
 wireshark?

 2012/10/21 Aureliano Guedes guedes_1...@hotmail.com

  MD5 diferente, ate o tamanho do arquivo é diferente, baixei o original
 pelo FF e a musica esta normal, alem, de que tem o tamanho de 6,16MB.
 Em contrapartida o arquivo obtido pelo script fica com 6,19MB.

 Ja tentei baixar denovo, continua o mesmo problema.
 --
 From: tiago.pecze...@gmail.com
 Date: Sun, 21 Oct 2012 17:25:59 -0200

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] print() on closed filehandle

 analise o arquivo original e o que vc esta salvando, vc pode ter
 corrompido algum byte. se o md5 dos dois for igual o problema é outro, se
 for diferente analise o que o ffmpeg -i diz do arquivo (ele vai analisar o
 cabeçalho do mp3).

 2012/10/21 Aureliano Guedes guedes_1...@hotmail.com

  Realmente, um erro por falta de atenção. Agora deu certo.

 Contudo, os arquivos chegam com algum problema que não sei o que é.

 As musicas não tocam normalmente, elas ficam com um barulho estranho e
 quase não da para reconhecer a musica, é como se estivesse acelerado.

 Será que é problemas calsado devido a forma que estou manipulando esse
 tipo de arquivo?

 --
 From: tiago.pecze...@gmail.com
 Date: Sun, 21 Oct 2012 16:57:12 -0200
 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] print() on closed filehandle


 sem falar que esta usando open com 2 argumentos. tente usar com 3
 argumentos separando o modo de abrir do nome do arquivo com uma virgula ao
 inves de um ponto para concatenar. alias vc pode interpolar assim

 open my $fh,,$nome.mp3;

 ou

 open my $fh,,${nome}.mp3;

 On Sun, Oct 21, 2012 at 4:54 PM, Ole Peter Smith ole@gmail.comwrote:

 espacos no nome do arquivo? (sempre, como letras acentuadas,
 abominavel...)
 0le
 Send via Android
 On Oct 21, 2012 3:38 PM, Aureliano Guedes guedes_1...@hotmail.com
 wrote:

  Ola monges.

 Estou com problema para salvar arquivos *.mp3 recebidos via download.

 Ao salvar a mensagem retornada é 'print () on closed filehandle FH at
 C:\User\AG\Desktop\mes.pl  line 31.'.

 O sistema so retorna 'Invalid argument' quando uso o $!.

 Então usei o autodie para ver o que me retornava:
 Can't open 'Thaeme e Thiago - Ai que do.mp3' for writing: at 'Invalid
 argument' C:\User\AG\Desktop\mes.pl  line 19.

 Enfim, não estou entendendo o erro retornado.

 http://pastebin.com/qxCMLv1V

 #!/usr/bin/env perl

 use common::sense;
 use WWW::Mechanize;
 use autodie;


 sub parse {
 my ($self) = shift;
 $self =~ s/\s+/\+/g;
 chomp $self;
 print Now --  . $self . \n\n;
 return (http://www.buscamp3.org/busca/; . $self);
 }

 sub gd {
 my ($self, $name) = @_;
 print $self .  ==  . $name . \n\n;
 open my $fh,. $name . .mp3;
 my $m = WWW::Mechanize-new();
 my $p = $m-get($self);
 $p = $p-decoded_content;
 $m-max_redirect(1);
 my @Links = $m-links();
 my $w = 0;
 SWU: foreach my $link(@Links){
 my @a = split (/, $link-url());
 if ($a[1] =~ m/dl/gi){
 print OK!\n;
 my $c = $m-get(http://www.buscamp3.org; . $link-url());
 print $fh $c-decoded_content;
 close $fh;
 $w = 1;
 }
 last SWU if ($w == 1);
 }
 undef $m;
 }


 open IN, $ARGV[0] or die;

 foreach (IN){
 print Search for:  . $_ . \n;
 my $a = parse($_);
 gd($a, $_);
 print \n\n;
 }

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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://pacman.blog.br

Re: [Rio-pm] HTML::Parse

2012-10-19 Por tôpico Stanislaw Pusep
Web::Scraper requer conhecimento de XPath e/ou seletores CSS.
No caso do link que você passou, URL do primeiro MP3 pode ser obtida via
XPath:

//table[@class='linhas_lista'][1]//tr/td[2]/a/@href

De onde tirei isso? De uma extensão pro Chrome, chamada XPath Helper:
https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl
Firefox tem (tinha?) um tal do XPather:
https://addons.mozilla.org/en-US/firefox/addon/xpather/

Provando o que o Marcio disse:

stas@Stanislaws-MacBook-Pro:~$ perl -CADS -MDDP -MURI -MWeb::Scraper -e 'p
scraper{process q(//h1/strong),title=q(text);process
q(//a[@href=~/\.mp3$/]),q(url[])=q(@href)}-scrape((URI-new(q(
http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/))) x 2)'
Printing in line 1 of -e:
\ {
title   Baixar Thaeme e Thiago - Ai que do/ grátis,
url [
[0]
http://www.buscamp3.org/dl/3473494b6c3636334d55/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
,
[1]
http://www.buscamp3.org/dl/3473674c78687936326f/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
,
[2]
http://www.buscamp3.org/dl/34736943505352494374/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
,
[3]
http://www.buscamp3.org/dl/34734c6f727448494d71/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
,
[4]
http://www.buscamp3.org/dl/3473644e636d6f345245/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
]
}

Sem ser one-liner maldito:

#!/usr/bin/env perl
use common::sense;
use Data::Printer;
use URI;
use Web::Scraper;

my $url = URI-new('
http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/');

p scraper {
process q(//h1/strong),
title = 'text';
process q(//a[@href=~/\\.mp3$/]),
'url[]' = '@href';
}-scrape($url, $url);

ABS()



2012/10/19 Aureliano Guedes guedes_1...@hotmail.com

  Parece interessante mesmo, mas dificil de entender, principalmente quando
 é alguem que como eu não sabe nada de HTML.
 Realmente não entendi como faria tudo isso com o Web::Scraper.

 --
 From: marciodesouzaferre...@gmail.com
 Date: Fri, 19 Oct 2012 21:14:53 -0300

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 estou cansado pra implementar, mas o Web::Scraper é tipo um néctar dos
 deuses, vc faz um crawler em 5' com ele, bem estilo Perl(que sai da frente
 e deixa você focar na solução) isso se o HTML não for um monstrengo =)

 []s,

 Marcio Ferreira
 @_marcioferreira
 (11) 8567-1482   skype: marcio.ferreir4
 marciodesouzaferreira.blogspot.com



 2012/10/19 Rafael Prenzier rafaelprenz...@gmail.com

 WWW::Mechanize ++


 2012/10/19 Ricardo Filipo ricardo_fil...@yahoo.com.br

 Eu gosto do HTML::TreeBuilder pois dá uma visão mais organizada do DOM.

 Veja um exemplo de uso:

 https://github.com/rfilipo/WebService-EBC/blob/master/lib/WebService/EBC/News.pm

--
 *De:* Aureliano Guedes guedes_1...@hotmail.com
 *Para:* Rio PM rio-pm@pm.org
 *Enviadas:* Sexta-feira, 19 de Outubro de 2012 13:22
 *Assunto:* [Rio-pm] HTML::Parse

  Ola monges,
 tudo bem?

 Qual um bom modulo para buscar string em um HTML?
 Vocês aconselham o HTML::Parse?

 Eu não entendo muito de html, mas estou tentando pegar um link dentro de
 uma pagina.

 Um exemplo é esse:
 http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/

 Os Links estão nesse formato:

 a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
 title=Thaeme E Thiago - Ai Que Do


 O Problema é que no caso dessa pagina tem 4 links desse modelo e eu queria
 pegar apenas o primeiro.
 Poderia usar regexp mas anteriormente me disseram que não é muito elegante
 parsear HTML na unha.

 Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.

 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




 --
 Rafael Prenzier dos Santos | Engenheiro e Perl Monger

  (11) 5209-0847

 www.prenzier.com

 http://gplus.to/prenzier  http://www.facebook.com/rafaelprenzier 
 http://twitter.com/prenzier/
   http://www.orkut.com.br/Main#Profile?uid=13496291347057199080 
 http://cid-eacb613d80ce8dba.profile.live.com/
   http://www.delicious.com/rafaelprenzier/ 
 http://www.google.com/profiles/rafaelprenzier
   http://br.linkedin.com/pub/rafael-prenzier-dos-santos/29/6a2/478 
 http://www.youtube.com/prenzier
   http://www.diigo.com/user/prenzier 
 http://www.shelfari.com/rprenzier/shelf
   http://flavors.me/prenzier
  http://www.diigo.com/user/prenzier



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



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

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

Re: [Rio-pm] HTML::Parse

2012-10-19 Por tôpico Stanislaw Pusep
É a inspiração trazida pelo YAPC::Brasil, transbordando ;)

ABS()



2012/10/20 marcio souza ferreira marciodesouzaferre...@gmail.com

 admiro alguns da lista, meia-noite de uma sexta-feira e a nerdaiada
 postando código e outros lendo K

 forever alone level master!

 Em 20 de outubro de 2012 00:13, Stanislaw Pusep creakt...@gmail.comescreveu:

 Web::Scraper requer conhecimento de XPath e/ou seletores CSS.
 No caso do link que você passou, URL do primeiro MP3 pode ser obtida via
 XPath:

 //table[@class='linhas_lista'][1]//tr/td[2]/a/@href

 De onde tirei isso? De uma extensão pro Chrome, chamada XPath Helper:
 https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl
 Firefox tem (tinha?) um tal do XPather:
 https://addons.mozilla.org/en-US/firefox/addon/xpather/

 Provando o que o Marcio disse:

 stas@Stanislaws-MacBook-Pro:~$ perl -CADS -MDDP -MURI -MWeb::Scraper -e
 'p scraper{process q(//h1/strong),title=q(text);process
 q(//a[@href=~/\.mp3$/]),q(url[])=q(@href)}-scrape((URI-new(q(
 http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/))) x 2)'
 Printing in line 1 of -e:
 \ {
 title   Baixar Thaeme e Thiago - Ai que do/ grátis,
 url [
 [0]
 http://www.buscamp3.org/dl/3473494b6c3636334d55/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
 ,
 [1]
 http://www.buscamp3.org/dl/3473674c78687936326f/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
 ,
 [2]
 http://www.buscamp3.org/dl/34736943505352494374/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
 ,
 [3]
 http://www.buscamp3.org/dl/34734c6f727448494d71/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
 ,
 [4]
 http://www.buscamp3.org/dl/3473644e636d6f345245/554545485125135/Thaeme+E+Thiago+-+Ai+Que+Do.mp3
 ]
 }

 Sem ser one-liner maldito:

 #!/usr/bin/env perl
 use common::sense;
 use Data::Printer;
 use URI;
 use Web::Scraper;

 my $url = URI-new('
 http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/');

 p scraper {
 process q(//h1/strong),
 title = 'text';
 process q(//a[@href=~/\\.mp3$/]),
 'url[]' = '@href';
 }-scrape($url, $url);

 ABS()




 2012/10/19 Aureliano Guedes guedes_1...@hotmail.com

  Parece interessante mesmo, mas dificil de entender, principalmente
 quando é alguem que como eu não sabe nada de HTML.
 Realmente não entendi como faria tudo isso com o Web::Scraper.

 --
 From: marciodesouzaferre...@gmail.com
 Date: Fri, 19 Oct 2012 21:14:53 -0300

 To: rio-pm@pm.org
 Subject: Re: [Rio-pm] HTML::Parse

 estou cansado pra implementar, mas o Web::Scraper é tipo um néctar dos
 deuses, vc faz um crawler em 5' com ele, bem estilo Perl(que sai da frente
 e deixa você focar na solução) isso se o HTML não for um monstrengo =)

 []s,

 Marcio Ferreira
 @_marcioferreira
 (11) 8567-1482   skype: marcio.ferreir4
 marciodesouzaferreira.blogspot.com



 2012/10/19 Rafael Prenzier rafaelprenz...@gmail.com

 WWW::Mechanize ++


 2012/10/19 Ricardo Filipo ricardo_fil...@yahoo.com.br

 Eu gosto do HTML::TreeBuilder pois dá uma visão mais organizada do DOM.

 Veja um exemplo de uso:

 https://github.com/rfilipo/WebService-EBC/blob/master/lib/WebService/EBC/News.pm

--
 *De:* Aureliano Guedes guedes_1...@hotmail.com
 *Para:* Rio PM rio-pm@pm.org
 *Enviadas:* Sexta-feira, 19 de Outubro de 2012 13:22
 *Assunto:* [Rio-pm] HTML::Parse

  Ola monges,
 tudo bem?

 Qual um bom modulo para buscar string em um HTML?
 Vocês aconselham o HTML::Parse?

 Eu não entendo muito de html, mas estou tentando pegar um link dentro de
 uma pagina.

 Um exemplo é esse:
 http://www.buscamp3.org/busca/Thaeme+e+Thiago+-+Ai+que+do/

 Os Links estão nesse formato:

 a href=/download/thaeme+e+thiago+ai+que+do_3473494b6c3636334d55.html 
 title=Thaeme E Thiago - Ai Que Do


 O Problema é que no caso dessa pagina tem 4 links desse modelo e eu
 queria pegar apenas o primeiro.
 Poderia usar regexp mas anteriormente me disseram que não é muito
 elegante parsear HTML na unha.

 Sei que a duvida é banal, mas se puderem me dar uma dica agradeço.

 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




 --
 Rafael Prenzier dos Santos | Engenheiro e Perl Monger

  (11) 5209-0847

 www.prenzier.com

 http://gplus.to/prenzier  http://www.facebook.com/rafaelprenzier 
 http://twitter.com/prenzier/
   http://www.orkut.com.br/Main#Profile?uid=13496291347057199080 
 http://cid-eacb613d80ce8dba.profile.live.com/
   http://www.delicious.com/rafaelprenzier/ 
 http://www.google.com/profiles/rafaelprenzier
   http://br.linkedin.com/pub/rafael-prenzier-dos-santos/29/6a2/478 
 http://www.youtube.com/prenzier
   http://www.diigo.com/user/prenzier 
 http://www.shelfari.com/rprenzier/shelf
   http

[Rio-pm] Fwd: Senior Perl and Sysop opportunity with Betonmarkets.com

2012-10-08 Por tôpico Stanislaw Pusep
FWIW

ABS()



-- Forwarded message --
From: Jean-Yves Sireau j...@regent-markets.com
Date: Mon, Oct 8, 2012 at 4:00 AM
Subject: Senior Perl and Sysop opportunity with Betonmarkets.com
To: s...@sysd.org


 Dear Stanislaw,

Betonmarkets.com is currently recruiting for a Senior Perl Developer and
a Senior Systems Engineer. Your email address is in our database of
experienced Perl and Linux developers. Would you potentially have an
interest in either position?

This is a unique opportunity to join a multi-national team of talented
developers, whilst gaining international experience in Malaysia's
e-commerce hub of Cyberjaya.

Our Group was founded in 1999, we have been operating in Malaysia since
2004. We have a technical team of diverse nationalities, including people
working in Malaysia as well as commuters in different parts of the world.

Our company provides IT and quant (financial mathematics) services to the
betonmarkets.com financial platform. We use Perl and lots of Perl-related
technologies extensively. We use other technologies too such as Apache,
nginx, mod_perl, PostgreSQL, Javascript, Git, Puppet, Selenium, Jenkins,
OpenVZ and AWS. We use Linux for all our infrastructure and desktops.
Our daily routine involves maintaining the business operations as well as
developing and deploying new solutions to make life easier for ourselves
and our customers.

We have a very casual work environment and culture, from dress code to
the way we communicate and work. Our technical teams are people who are
deeply concerned about the quality of their work and have a passion for
it. We try to improve the way things are done constantly. We don't have
a very big team so our staff have to deal with a variety of interesting
tasks on a daily basis.

Right now due to recent business expansion we have a vacancy for a
Senior Perl Developer and a Senior Systems Engineer. As a part of our
technical team, the successful candidates will be involved in our daily
operations to make our infrastructure and products closer to what our
customers need. Development is ongoing and we deploy regularly. We
really care about testing and fault-proofing our code before it goes
live so there’s a great deal of QA involved. We use virtualization
extensively and rely on third party cloud services for parts of our
operation. We are always on the lookout for new technologies that can
add value to our portfolio of tools and services.

You might be a good match for our company if:

- You are knowledgeable and passionate about Linux and its nuts and
  bolts;
- You are experienced with Perl. Take our word - there’s no escape
  from Perl here;
- You are familiar with technologies such as Apache, nginx, Git, Debian
  packaging, monitoring solutions and are comfortable learning new ones
  when needed;
- You can work as a part of a team of people as good as or better than
  you.
- You can take and provide criticism and build on the experience to
  build better solutions in the future;
- You are an independent thinker and can surprise yourself and the
  others with the new stuff you come up with;
- As a developer, you are familiar with the concepts of software
  quality assurance and can test your own and other’s code against
  best-practice standards.

So after what we expect from you, here's a list of the things you can
expect from us:

- You can expect a competitive compensation package, including health
  and other benefits;
- A multi-national team of talented and passionate engineers;
- Friendly and casual working environment;
- Flexible working hours;
- Canteen with refreshments for those times when you really need some;
- Working from home option on certain occasions;
- The opportunity to explore Malaysia, an exciting destination.
- Work permit and relocation assistance.

Please visit 
http://www.regentmarkets.com/careershttp://api.elasticemail.com/tracking/click?msgid=llhl4s-dupal422target=http%3a%2f%2fwww.regentmarkets.com%2fcareersfor
further
information about the company and the job opportunities.

If you think you can be a good match for our company, drop us a line
along with your resume. While not mandatory here's a list of the things
we might be really interested in:

- Projects you have been involved in;
- If you have any public repositories on places such as github, please
  provide a link to them;
- Contributions you might have made to open-source projects such as
  providing patches, new features,...
- Anything that gives us a better picture of who you are and what you
  do.

Please feel free to forward this email to any person who you think
might fit the profile we are looking for.

Many thanks and best regards,

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

Re: [Rio-pm] Coro

2012-08-15 Por tôpico Stanislaw Pusep
Acho que não...
Tinha o teor desse artigo:
http://blog.64p.org/entry/20090630/1246324092 (repare
na frase Coro is black magic.) :/
Mas creio que achei outro tipo de resposta para o que estava procurando,
time-sliced multitasking using interval timers:

# timeslice the given block
sub timeslice() {
   use Time::HiRes ();

   Coro::on_enter {
  # on entering the thread, we set an VTALRM handler to cede
  $SIG{VTALRM} = sub { cede };
  # and then start the interval timer
  Time::HiRes::setitimer Time::HiRes::ITIMER_VIRTUAL, 0.01, 0.01;
   };
   Coro::on_leave {
  # on leaving the thread, we stop the interval timer again
  Time::HiRes::setitimer Time::HiRes::ITIMER_VIRTUAL, 0, 0;
   };

   {+shift};
}

# use like this:
timeslice {
   # The following is an endless loop that would normally
   # monopolise the process. Since it runs in a timesliced
   # environment, it will regularly cede to other threads.
   while () { }
};

ABS()



2012/8/15 breno br...@rio.pm.org

 Vc se refere a isso?

 https://metacpan.org/module/Coro::State#MODEL

 []s

 -b

 2012/8/14 Stanislaw Pusep creakt...@gmail.com:
  Pessoas, eu lembro como se fosse ontem que em algum lugar da documentação
  (https://metacpan.org/module/Coro) havia uma referência descrevendo
 como o
  Coro foi implementado... Não estou conseguindo mais achar :(
  Alguém lembra/sabe?
 
  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] :engine::TRE

2012-07-02 Por tôpico Stanislaw Pusep
Só um parênteses: eu usaria o String::Approx[1] ou o re::engine::TRE[2] no
lugar do String::Trigram[3], que é extremamente veloz porém voraz no
quesito de RAM. Esses 3 módulos seriam apropriados para fuzzy match de uma
string em lista de strings.
Já o String::Similarity[4] é muito bom para comparar 2 strings, mas não é a
coisa mais eficiente para aplicar a listas.
Frequentemente uso o Text::Fingerprint[5] como versão light do
Text::Soundex[6] (com elementos de String::Trigram :P).
Recomendo o artigo do Blabos[7] e de um computeiro russo[8] (outro russo) a
todos que trabalharem com strings imprecisas :)

[1] https://metacpan.org/module/String::Approx
[2] https://github.com/avar/re-engine-tre
[3] https://metacpan.org/module/String::Trigram
[4] https://metacpan.org/module/String::Similarity
[5] https://metacpan.org/module/Text::Fingerprint
[6] https://metacpan.org/module/Text::Soundex
[7] http://blog.blabos.org/2008/12/faxina-depois-da-festa/
[8] http://ntz-develop.blogspot.com.br/2011/03/fuzzy-string-search.html

ABS()



2012/7/2 ulis...@ibiz.com.br

   usamos por aqui

 use Text::DoubleMetaphone qw( double_metaphone ); # casamento fonetico

 use String::Approx 'adist';

  *From:* Stanislaw Pusep creakt...@gmail.com
 *Sent:* Monday, July 02, 2012 9:24 AM
 *To:* Perl Mongers Rio de Janeiro rio-pm@pm.org
 *Cc:* saopaulo...@mail.pm.org
 *Subject:* Re: [Rio-pm] :engine::TRE

 Bom dia Thiago!
 Obrigado pela dica, não conhecia o String::Approx. Pelo meu rápido RTFS,
 usa o mesmo algoritmo que o re::engine::TRE (
 https://en.wikipedia.org/wiki/Bitap).
 Também fiz a coisa mais óbvia, que devia ter feito antes de mandar o email
 para a lista: olhei no CPAN Testers, e percebi que o módulo em questão só
 funcionava até Perl v5.10. Entrei em contato com o autor, e ele confirmou
 que as entranhas do Perl tornaram-se incompatíveis a partir do v5.12.
 Verei o que faço a respeito; o módulo me pareceu deveras útil.

 ABS()



 2012/6/29 Thiago Glauco thiagogla...@ticursos.net

 Eu uso
   use String::Approx 'amatch';

   print if amatch(foobar);

   my @matches = amatch(xyzzy, @inputs);

   my @catches = amatch(plugh, ['2'], @inputs);


 Em Qui, 2012-06-28 às 18:20 -0300, Stanislaw Pusep escreveu:
 
  Um dos exemplos de aplicação prática dela é o utilitário
  'agrep' (approximate grep).

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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] :engine::TRE

2012-06-28 Por tôpico Stanislaw Pusep
Perlssoal, esses dias me deparei com a biblioteca TRE (
http://laurikari.net/tre/about/):

TRE is a lightweight, robust, and efficient POSIX compliant regexp matching
 library with some exciting features such as approximate (fuzzy) matching.


Um dos exemplos de aplicação prática dela é o utilitário 'agrep'
(approximate grep).
Obviamente, tentei compilar a interface para Perl (
https://github.com/avar/re-engine-tre). Porém esse módulo não está no CPAN,
e me parece bastante desatualizado.
De fato, não compila. retorna erros como:

cc -c  -Itre -fno-strict-aliasing -pipe -fstack-protector
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2
-DVERSION=\0.04\ -DXS_VERSION=\0.04\ -fPIC
-I/home/stas/perl5/perlbrew/perls/perl-5.14.2/lib/5.14.2/x86_64-linux/CORE
  TRE.c
In file included from TRE.xs:7:0:
TRE.h:22:5: warning: initialization from incompatible pointer type [enabled
by default]
TRE.h:22:5: warning: (near initialization for ‘engine_tre.comp’) [enabled
by default]
TRE.xs: In function ‘TRE_comp’:
TRE.xs:42:7: error: ‘REGEXP’ has no member named ‘refcnt’
TRE.xs:43:7: error: ‘REGEXP’ has no member named ‘extflags’
TRE.xs:44:7: error: ‘REGEXP’ has no member named ‘engine’
TRE.xs:47:7: error: ‘REGEXP’ has no member named ‘prelen’
...

Analisando outros módulos do namespace re::engine::* (RE2, PCRE, Plan9),
percebi que a struct REGEXP em questão é recorrente. Aliás,
re::engine::Plan9 não compila por causa do mesmo erro.
E, infelizmente, o nome REGEXP é ambíguo demais para googlar :(
Alguém faz alguma ideia do que esteja acontecendo?

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

Re: [Rio-pm] MakeFile

2012-06-03 Por tôpico Stanislaw Pusep
 módulos (como our $VERSION) e da
 documentação - então não esqueça de incluir os campos pertinentes na
 documentação (sempre uma boa prática!) ou terá que inclui-los
 explicitamente no Makefile.PL.

 Digamos que os módulos da sua distribuição dependam dos seguintes
 módulos EXTERNOS: File::Spec e Carp. Digamos ainda que, embora não
 seja uma dependência direta, se o usuário tiver instalado o módulo
 Data::Printer o seu programa consegue fazer alguma outra coisa bacana,
 então embora não seja obrigatório vc gostaria de recomendar o
 Data::Printer. Adicionar essas dependências no Makefile.PL é simples,
 ele fica assim:

 ---8---
 use inc::Module::Install;

 name'Minha-Dist';
 all_from  'lib/MeuModulo.pm';

 requires 'File::Spec' = 0;
 requires 'Carp' = 0;

 recommends 'Data::Printer' = 0.3;

 WriteAll;
 ---8---

 O número depois da = indica a versão mínima do módulo, usamos zero
 (0) para indicar que qualquer versão serve.

 Com isso acho que vc já tem o suficiente. Não esqueça de criar um
 diretório t na raiz da sua distribuição para colocar os testes de
 seus módulos!! Mais sobre o M:I vc encontra na documentação
 (https://metacpan.org/module/Module::Install)

 Obs: quando criamos um novo módulo, há alguns boilerplates que criam
 as estruturas e documentações básicas para vc. Eu particularmente
 gosto do Module::Starter, com o plugin Module::Starter::PBP (mas eu
 modifico os templates em ~/.module-starter/PBP para conter o esqueleto
 que uso). Assim, basta escrever na linha de comando:

 $ module-starter --module=Meu::Novo::Modulo

 e ele cria tudo para mim.

 Quando vc estiver acostumado a criar suas distribuições e entender o
 processo, vai começar a ficar preguiçoso. Aí sim, dê uma olhada no
 Dist::Zilla e veja se ele é para vc =)


 []s

 -b

 2012/6/2 Stanislaw Pusep creakt...@gmail.com:
  A resposta é: Dist::Zilla.
  Pode parecer chatinho de aprender, mas, uma vez sabendo o básico, criar
  módulo com Makefile.PL completo e suíte de testes é dois palitos!
  Recomendo:
 
  http://sao-paulo.pm.org/artigo/2011/OhnoItsDistZilla
  http://sao-paulo.pm.org/equinocio/2011/set/2
 
  ABS()
 
 
 
  2012/6/2 Aureliano Guedes guedes_1...@hotmail.com
 
  Ola,
  Monges.
 
  Eu estou tentando gerar um MakeFile.PL mas estou com um problema.
  Eu andei lendo, inclusive alguns materiais do Hernan Lopes mas ficou
 uma
  pergunta.
 
  Quando eu tenho varios modulos que na verdade sao dependencia de outro
  modulo.
  exemplo:
  MeuModulo.pm,
  MeuModulo/Modulo1.pm,
  MeuModulo/Modulo2.pm.
 
  Como faco?
 
  Nao achei nenhuma opcao no ExtUtils::MakeMaker.
 
  Desde ja, obrigado.
  Att,
 
  Aureliano Guedes
 
  PS: Desculpem a falta de acentos, o teclado esta desconfigurado.
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  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




 --
 Alexei RUSSOZ Znamensky | russoz EM gmail com | http://russoz.org
 GPG fingerprint = 42AB E78C B83A AE31 7D27  1CF3 C66F B5C7 71CA 9F3C
 http://www.flickr.com/photos/alexeiz | http://github.com/russoz
 I don't know... fly casual! -- Han Solo

 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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] Tratamento de dados para CSV

2012-06-01 Por tôpico Stanislaw Pusep
Vários :)
http://sao-paulo.pm.org/artigo/2011/CSVENTREPIPEEDBMS

ABS()



2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com

 Olá pessoal,

 Estou com um dificuldade em encontrar um módulo no cpan que me ajude a
 fazer a geração de uma matriz...

 Eu obtenho os dados de um software no seguinte formato:
 Manoel;Pedro
 João;Pedro
 Pedro;Manoel
 

 Esses dados eu gostaria de colocar em uma matriz do tipo:
 X; Pedro;Manoel;
 Manoel; 1;;
 João;1;;
 Pedro;;1;

 Alguém conhece algum módulo que me permita fazer isso?

 Abraços

 --
 --
 Manoel Domingues Junior
 Coletar dados é o primeiro passo para a sabedoria, mas compartilhar
 dados é o primeiro passo para a comunidade.
 IBM - Prodigy Linux
 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 http://mail.pm.org/mailman/listinfo/rio-pm

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

Re: [Rio-pm] Tratamento de dados para CSV

2012-06-01 Por tôpico Stanislaw Pusep
perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say
join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt

ABS()



2012/6/1 Fernando Oliveira fernandocor...@gmail.com

 Menor:

 perl
 -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,sort{$l{$a}=$l{$b}}keys%l;say$_,@{$c{$_}}[0..keys%l]for
 keys%c' tabela.txt




 Just another Perl Hacker,
 Fernando (SmokeMachine)


 Em 1 de junho de 2012 12:34, Fernando Oliveira 
 fernandocor...@gmail.comescreveu:

 s/exita/exista/




 Just another Perl Hacker,
 Fernando (SmokeMachine)


 Em 1 de junho de 2012 12:32, Fernando Oliveira 
 fernandocor...@gmail.comescreveu:

 Assumindo q exita o arquivo: tabela.txt
 contendo:

 Manoel;Pedro
 Joao;Pedro
 Pedro;Manoel

 GOLF?!
 minha 1a tacada:

 perl
 -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say;,join(;,sort{$l{$a}=$l{$b}}keys%l);say
 join;,$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt


 Just another Perl Hacker,
 Fernando (SmokeMachine)


 Em 1 de junho de 2012 12:00, Stanislaw Pusep creakt...@gmail.comescreveu:

 @breno, infelizmente, se for um CSV gerado por algumas ferramentas de
 escritório cujo nome não quero citar nessa lista, expressão regular não
 basta, já dizia o brian d foy:
 http://www.effectiveperlprogramming.com/blog/1386
 @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface
 user-friendly para o Text::CSV que, apesar de funcionar muito bem, é
 bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV,
 porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV).

 ABS()




 2012/6/1 breno br...@rio.pm.org

 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com:
  Olá pessoal,
 
  Estou com um dificuldade em encontrar um módulo no cpan que me ajude
 a
  fazer a geração de uma matriz...
 
  Eu obtenho os dados de um software no seguinte formato:
  Manoel;Pedro
  João;Pedro
  Pedro;Manoel
  
 
  Esses dados eu gostaria de colocar em uma matriz do tipo:
  X; Pedro;Manoel;
  Manoel; 1;;
  João;1;;
  Pedro;;1;
 
  Alguém conhece algum módulo que me permita fazer isso?
 

 Manoel,

 desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei
 direito, mas não entendi o que vc está fazendo...

 Supondo que vc tem uma lista na forma:

 my @linhas = (
'Manoel;Pedro',
'João;Pedro',
'Pedro;Manoel',
 );

 você pode gerar uma nova lista fazendo algo como:

 my @nova = ();

 foreach my $linha (@linhas) {
my @campos = split /\s*;\s*/ = $linha;

# modifique @campos como bem entender...

push @nova, join ';' = @campos;
 }

 é isso?


 []s

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



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





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

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

Re: [Rio-pm] Tratamento de dados para CSV

2012-06-01 Por tôpico Stanislaw Pusep
Mas é claro!

perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say X=keys%m;say
$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt

ABS()



On Fri, Jun 1, 2012 at 1:03 PM, Fernando Oliveira
fernandocor...@gmail.comwrote:

 perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say
 join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt




 Just another Perl Hacker,
 Fernando (SmokeMachine)


 Em 1 de junho de 2012 13:00, Stanislaw Pusep creakt...@gmail.comescreveu:

  perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{say join;,X=keys%m;say
 join;,$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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] Tratamento de dados para CSV

2012-06-01 Por tôpico Stanislaw Pusep
menor ainda ;)

perl -F\; -anE'chomp$F[1];++$m{$F[0]}{$F[1]}}{$,=;;say X=keys%m;say
$_,@{$m{$_}}{keys%m}for keys%m' tabela.txt

ABS()



2012/6/1 Fernando Oliveira fernandocor...@gmail.com

 menor:

 perl
 -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,keys%l;say$_,@{$c{$_}}[values%l]for
 keys%c' tabela.txt


 Just another Perl Hacker,
 Fernando (SmokeMachine)


 Em 1 de junho de 2012 12:56, Fernando Oliveira 
 fernandocor...@gmail.comescreveu:

 Menor:

 perl
 -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{$,=;;say,sort{$l{$a}=$l{$b}}keys%l;say$_,@{$c{$_}}[0..keys%l]for
 keys%c' tabela.txt




 Just another Perl Hacker,
 Fernando (SmokeMachine)


 Em 1 de junho de 2012 12:34, Fernando Oliveira 
 fernandocor...@gmail.comescreveu:

 s/exita/exista/




 Just another Perl Hacker,
 Fernando (SmokeMachine)


 Em 1 de junho de 2012 12:32, Fernando Oliveira fernandocor...@gmail.com
  escreveu:

 Assumindo q exita o arquivo: tabela.txt
 contendo:

 Manoel;Pedro
 Joao;Pedro
 Pedro;Manoel

 GOLF?!
 minha 1a tacada:

 perl
 -lnE'/;/;$l{$'}//=$i++;$c{$`}=[];$c{$`}[$l{$'}]=1}{say;,join(;,sort{$l{$a}=$l{$b}}keys%l);say
 join;,$_,@{$c{$_}}[0..keys%l]for keys%c' tabela.txt


 Just another Perl Hacker,
 Fernando (SmokeMachine)


 Em 1 de junho de 2012 12:00, Stanislaw Pusep creakt...@gmail.comescreveu:

 @breno, infelizmente, se for um CSV gerado por algumas ferramentas de
 escritório cujo nome não quero citar nessa lista, expressão regular não
 basta, já dizia o brian d foy:
 http://www.effectiveperlprogramming.com/blog/1386
 @cleysinho, bacana o Class:CSV, pelo que entendi, é uma interface
 user-friendly para o Text::CSV que, apesar de funcionar muito bem, é
 bastante prolixo. Um módulo que tentei usar recentemente é o Parse::CSV,
 porém ele, como já diz o nome, apenas lê o CSV (também via Text::CSV).

 ABS()




 2012/6/1 breno br...@rio.pm.org

 2012/6/1 Manoel Domingues Junior manoel.domingues.jun...@gmail.com:
  Olá pessoal,
 
  Estou com um dificuldade em encontrar um módulo no cpan que me
 ajude a
  fazer a geração de uma matriz...
 
  Eu obtenho os dados de um software no seguinte formato:
  Manoel;Pedro
  João;Pedro
  Pedro;Manoel
  
 
  Esses dados eu gostaria de colocar em uma matriz do tipo:
  X; Pedro;Manoel;
  Manoel; 1;;
  João;1;;
  Pedro;;1;
 
  Alguém conhece algum módulo que me permita fazer isso?
 

 Manoel,

 desculpa a pergunta, mas isso o quê? Pode ser pq ainda não acordei
 direito, mas não entendi o que vc está fazendo...

 Supondo que vc tem uma lista na forma:

 my @linhas = (
'Manoel;Pedro',
'João;Pedro',
'Pedro;Manoel',
 );

 você pode gerar uma nova lista fazendo algo como:

 my @nova = ();

 foreach my $linha (@linhas) {
my @campos = split /\s*;\s*/ = $linha;

# modifique @campos como bem entender...

push @nova, join ';' = @campos;
 }

 é isso?


 []s

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



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






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

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

Re: [Rio-pm] Tratamento de dados para CSV

2012-06-01 Por tôpico Stanislaw Pusep
C:\ :(

ABS()



On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira
fernandocor...@gmail.comwrote:

 C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say
 X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt
 X;Joao;Pedro;Manoel
 Joao;;1;
 Pedro;;;1
 Manoel;;1;



 Just another Perl Hacker,
 Fernando (SmokeMachine)


 2012/6/1 breno br...@rio.pm.org

 perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say

 X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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] Tratamento de dados para CSV

2012-06-01 Por tôpico Stanislaw Pusep
Em bash, pelo menos, teria que rodar como:

perl -MEnglish -lnE'$m{$`}{$POSTMATCH}=/;/;$,=$}{say
X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt

ABS()



On Fri, Jun 1, 2012 at 1:31 PM, Fernando Oliveira
fernandocor...@gmail.comwrote:

 C:\perl -lnE$m{$`}{$'}=/;/;$,=$}{say
 X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt



 Just another Perl Hacker,
 Fernando (SmokeMachine)


 2012/6/1 Fernando Oliveira fernandocor...@gmail.com

 bom... aqui no windows funfa... :P
 no windows eu to usando o  no -e...



 Just another Perl Hacker,
 Fernando (SmokeMachine)


 2012/6/1 breno br...@rio.pm.org

 Ha! Alguém consegue usar $' na shell sem escapar?



 On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep creakt...@gmail.comwrote:

 C:\ :(

 ABS()



 On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira 
 fernandocor...@gmail.com wrote:

 C:\perl -lnE/;/;$,=$;++$m{$`}{$'}}{say
 X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a tabela.txt
 X;Joao;Pedro;Manoel
 Joao;;1;
 Pedro;;;1
 Manoel;;1;



 Just another Perl Hacker,
 Fernando (SmokeMachine)


 2012/6/1 breno br...@rio.pm.org

 perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=;;say

 X=@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt



 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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] problemas com modulo

2012-05-31 Por tôpico Stanislaw Pusep
use Moose;

ABS()


2012/5/31 Bruno Buss bruno.b...@gmail.com:
 @Aureliano:

 Cara, de boa só vou fazer um comentário em relação ao seu problema...

 Esse problema que você teve no seu código, que o Gabriel apontou
 rapidamente, você já tinha cometido antes em outra thread, eu tinha escrito
 um e-mail relativamente longo explicando porque o erro acontecia, inclusive
 com um código em Perl anexo focando apenas no erro, e dizendo como fazer de
 forma correta... Não sei qual é exatamente a sua metodologia de
 aprendizagem, mas você vai ficar cometendo os mesmos erros de novo e de novo
 e de novo e perguntando a mesma coisa?

 Só para referência, a outra thread é a [Rio-pm] Problemas com rawsocket.

 [ ]'s

 2012/5/31 Gabriel Vieira gabriel.vie...@gmail.com

 Utilize ini() e end() no lugar de ini e end.

 2012/5/31 Aureliano Guedes guedes_1...@hotmail.com:
  Ola monges,
 
  Estou com um problema estranho.
  Estou desenvolvendo um modulo, apenas para estudo de desenvolvimento de
  modulos.
  É um scanner de portas, onde entra com o link ou IP dai você escolhe a
  faixa
  de portas, exemplo de 60 a 100
  caso contrario, por default ele scaneia de 1 a 5.
 
  Ai que mora o problema, por algum motivo mesmo eu configurando para
  scanear
  de 60 a 100 ele continua
  scaneando pelas opções de defaut.
 
  Eu não consegui achar onde errei, por isso venho pedir que alguem de uma
  olhadinha e me indique o erro.
 
  Eis aqui o codigo - http://pastebin.com/vkqjksvQ
 
  Desde já grato.
 
  Att,
  Aureliano Guedes.
 
  ___
  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




 --
 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] variável $^H no Perl 5.16

2012-05-31 Por tôpico Stanislaw Pusep
Bom dia, senhores.
A referência oficial ao $^H, no perlvar:
WARNING: This variable is strictly for internal use only. Its
availability, behavior, and contents are subject to change without notice.
Mais claro, impossível.
Ainda assim, estou tentando entender o que mudou de lá pra cá:

$ perl -e 'BEGIN { $^H{feature_say} = 1; }; say $^V'
v5.14.2

 $ perl -e 'BEGIN { $^H{feature_say} = 1; }; say $^V'
Can't locate object method say via package version at -e line 1.

Aparentemente, não funciona mais... Mas não é bem assim.
Fuçando um pouco, descobri que precisa do tal de HINT_FEATURE_MASK,
introduzido em 5.15.7 (
https://metacpan.org/diff/file/?target=BINGOS/perl-5.15.7/lib/feature.pmsource=FLORA/perl-5.14.2/lib/feature.pm
)

perldelta refere à definição do valor de HINT_FEATURE_MASK em perl.h:
#define HINT_FEATURE_MASK   0x1c00 /* 3 bits for feature bundles */

Então, para consertar o código, basta fazer:

$ perl -e 'BEGIN { $^H |= 0x1c00; $^H{feature_say} = 1; }; say $^V'
v5.16.0

Infelizmente, para mim isso é black magic. O que exatamente esse valor
faz? Por que não precisava dele antes e agora precisa?

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

Re: [Rio-pm] variável $^H no Perl 5.16

2012-05-31 Por tôpico Stanislaw Pusep
É exatamente isso que eu queria saber!!! Valeu!

++breno :D

ABS()



2012/5/31 breno br...@rio.pm.org

 2012/5/31 Aureliano Guedes guedes_1...@hotmail.com:
  Infelizmente isso foi como andar pra traz, na minha opinião. Eu não sabia
  disso, alias ainda estou preso no perl 5.14.
 

 Por quê? Como o Stan claramente apontou, é uma variável SOMENTE para
 uso interno. No código demonstrado ele quebrou encapsulamento 2 vezes
 (uma ao mexer no $^H e outra ao futucar no namespace dos outros no %^H
 - e escrevendo, ainda?! Stan malvado! Stan malvado!). A verdade é que
 ele sabia disso e por isso deixou claro que só queria entender o que
 estava acontecendo, e não reclamando da mudança. Se você não modifica
 o fonte do perl ou depura internas do feature.pm, não deveria estar
 usando nada disso. Se, pelo contrário, você está usando a API pública
 (que por sinal não só é mais clara como tem menos caracteres
 envolvidos):

   use feature 'say';

 ou

   use feature ':5.10';

 ou ainda:

   use v5.14;

 tudo continua funcionando normalmente.

  Caso haja algum motivo para essa mudança, quando alguem descobrir me
  explique.
 

 O Fernando tem razão e isso está relacionado com a nova feature (essa
 sim pública) do 5.16, que ativa somente as features de uma determinada
 versão. Mais especificamente, ao fato de que agora escrever use
 VERSAO carrega as features daquela versão sem precisar carregar o
 feature.pm (ou o strict.pm, no caso de = 5.14)

 Aos mais curiosos que quiserem continuar lendo, cuidado: algumas
 entranhas serão expostas :)

 Antes de começar vale lembrar que estamos falando de duas variáveis
 diferentes, $^H (que contém dicas para o interpretador na forma de
 flags) e %^H (para implementação de pragmas em escopo léxico,
 armazenando valores de estado na optree).

 A mudança aconteceu no final do ano passado. A idéia, até onde
 entendi, é que o compilador agora reserva 3 bits no $^H para definição
 dos chamados feature bundles. Ou seja, se eu tenho use v5.16 ele
 vai passar a dica que, dentro daquele escopo léxico, somente
 determinadas features estarão ativas. Quais são ativadas e quais não
 são é o que fica nas chaves (privadas) 'feature_X' dentro do %^H.
 Agora, portanto, o $^H precisa indicar ao interpretador se ele deve
 usar as features definidas no %^H ou não. Se você não define, ele
 entende como se não estivesse ativando feature alguma, independente do
 que está no %^H. O valor é 0x1c00 pq ativa 3 bits sequenciais em
 binário (11100), usados para definir a máscara
 padrão. Note, por exemplo, que se você colocar em $^H um outro valor
 que também ative a flag de features, elas funcionarão normalmente via
 %^H:

 perl -e 'BEGIN { $^H |= 0x1e2aff0d; $^H{feature_say} = 1; }; say $^V'
 v5.16.0

 Mais especificamente, se você definir um bundle padrão diferente da
 máscara, ele vai escolher o bundle conforme o valor posicional do
 número deslocado 26 bits para a direita (o tamanho da máscara) em
 @feature::hint_bundles, que hoje vale qw( default 5.10 5.11 5.15 ). Ou
 seja, podemos fazer:

 perl -e 'BEGIN { $^H |= 0x0800; $^H{feature_say} = 1; }; say $^V'
 v5.16.0

 Já que 0x0800 (hexa) é 1000 (binário) e
 isso  26 vale 10 (2, em decimal), indicando que vai usar as features
 do $hint_bundles[2], ou seja, 5.11. Analogamente, não ter a flag
 definida é o mesmo que definir $^H{feature_say} com a máscara
 'default' (000) ativa.

 Na prática, o feature.h (também gerado pelo regen/feature.pl) usa
 essas flags para definir quais features estão ativas em um determinado
 momento (macros FEATURE_BUNDLE_CUSTOM e CURRENT_FEATURE_BUNDLE). Se
 você não usar um feature bundle, ele assume o default, que no momento
 é ativar apenas a feature 'array_base' (independente do que esteja no
 %^H). Outra interessante consequência dessas modificações é permitir
 que uma nova versão do perl desative determinada feature. Por exemplo,
 escrever use v5.16 desativa a variável $[ (disponível em versões
 anteriores). Caso realmente precise usá-la, basta fazer use v5.16;
 use feature qw(array_base);

 Quem quiser ver as modificações, estão em torno do commit 23a52d6b1d1.
 Os arquivos pertinentes - lib/feature.pm e feature.h - são gerados
 pelo regen/feature.pl, chamado via regen.pl.

 Espero ter ajudado :)

 []s

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

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

Re: [Rio-pm] Unzip

2012-05-29 Por tôpico Stanislaw Pusep
++Blabos :D
Mantovani, aquele seu código de desenhar um X usando letras J também
não ficou oitava maravilha, não, r...

ABS()



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

  Você usa Perl como se tivesse usando papel higiênico, e eu preciso
  amadurecer

 Ué cara, cada um tem o direito de passar o que quiser na própria bunda.
 A gente tá aqui é pra dizer que não é pra enfiar na nossa cara depois.

 2012/5/29 Daniel Mantovani daniel.oliveira.mantov...@gmail.com:
  Você usa Perl como se tivesse usando papel higiênico, e eu preciso
  amadurecer. Da para perceber o quão maduro você é.
  Para de se achar, e aprende alguma coisa.
 
  []'s
  --
  Software Engineer
  Just Another Perl Hacker
  Daniel Mantovani +5511 8538-9897
  XOXO
 
  On May 29, 2012, at 11:47 AM, ulis...@ibiz.com.br wrote:
 
  Mantovani, menos.
 
  Amadureça.
 
  From: Daniel Mantovani
  Sent: Tuesday, May 29, 2012 11:04 AM
  To: ulis...@ibiz.com.br ; Perl Mongers Rio de Janeiro
  Subject: Re: [Rio-pm] Unzip
 
  Ulisses,
 
  Se for para fazer porcaria, use Shell Script.
 
  --
  Software Engineer
  Just Another Perl Hacker
  Daniel Mantovani +5511 8538-9897
  XOXO
 
  On May 29, 2012, at 10:14 AM, ulis...@ibiz.com.br wrote:
 
  jeito ‘dirty’ que funciona em Linux e MS$ |(se vc baixar o unzip for
 windows
  na máquina).
 
  se vc puder dar um exec no comando unzip, sugiro
 
  $cmd = unzip -o \$in\ -d $path_temp_zip; # unzipa $in no subdir
  temporario, adicao de -o para overwrite sem perguntar nada para usuario
 
  vc pode colocar opções para extrair apenas os arquivos que vc deseja
  extrair: opções –x -C
 
  $cmd_msg = qx/$cmd 21/; # captura STDOUT e STDERR
  $cmd_status = $?; # memoriza status de retorno do unzip
 
  if ($cmd_status) {
  ($ok, $sev, $msg) = (0,1,Erro ao executar '$cmd': $cmd_status:
  $cmd_msg);
  
  } else {
 navegue por   $path_temp_zip para tratar os arquivos do seu
 interesse, ja
  filtrados pelas opções que vc deve adicionar no $cmd unzip acima
  }
 
  From: Aureliano Guedes
  Sent: Tuesday, May 29, 2012 8:19 AM
  To: Rio PM
  Subject: Re: [Rio-pm] Unzip
 
  O que tentei fazer foi isso:
 
  http://pastebin.com/45tHKZur
 
  Mas ainda não deu certo.
 
 
  
  Date: Mon, 28 May 2012 23:08:44 -0300
  From: ole@gmail.com
  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] Unzip
 
  Walking through a zipfile, com certeza te providencia o nomes dos
 arquivos.
  Afinal,.a extensão não importante, faz parte do nome...
  0le
  Send via Android
  Em 28/05/2012 22:48, Aureliano Guedes guedes_1...@hotmail.com
 escreveu:
 
  Ok. Entendo ja li a documentação, inclusive ja pesquisei codigo pronto ja
  internet. Mas ainda sim não consegui usa-lo, pois especificando a
 extenção
  do arquivo fica facil, o output saira com a extenção desejada, mesmo que
  você coloque *.cmj (casa da mãe joana).
  Minha duvida é, descompactar 800 arquivos *.zip onde o conteudo pode ser
  arquivos das mais diversas extenções, as vezes mais de um arquivo, as
 vezes
  uma pasta contendo outros arquivos, acontece que sempre sai um arquivo
 vazio
  como ja falei.
 
  Então, como fazer?
 
 
 
  From: gabi...@gmail.com
  Date: Mon, 28 May 2012 22:33:55 -0300
  To: rio-pm@pm.org
  Subject: Re: [Rio-pm] Unzip
 
 
  On May 28, 2012, at 10:18 PM, Aureliano Guedes wrote:
 
  
   Qual seria minh alternativa??
 
  Ao invés do IO::Uncompress::Unzip? Hmmm.. que tal o
 IO::Uncompress::Unzip?
 
 
 https://metacpan.org/module/IO::Uncompress::Unzip#Walking-through-a-zip-file
 
  :D
 
 
 
 
  ___
  Rio-pm mailing list
  Rio-pm@pm.org
  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] Ajuda com configuração do CPAN

2012-05-10 Por tôpico Stanislaw Pusep
Seria o que o local::lib faz?

http://sysd.org/perl-e-modulos-na-home/

ABS()



2012/5/10 Guilherme Alves guilhermeareal+ri...@gmail.com

 Prezados,

 A minha dúvida é básica, mas não estou achando uma boa solução..

 Gostaria de configurar o cpan em uma linha.. passando todas as opçoes como
 se estivesse configurando aquele passo a passo inicial que todos conhecem.
 Gostaria de setar umas preferências e um local para ele puxar os módulos..
 tipo um mirror local.

 A minha idéia é automatizar para várias máquinas e evitar aquelas
 perguntas de mirror, onde está tal binário, se deseja isso ou aquilo.

 Desde já agradeço a ajuda,

 Att,

 --
 Guilherme Alves

 Redes, Sites e Sistemas(RSS) - GRIS-DCC-UFRJ
 Grupo de Resposta a Incidentes de Segurança
 Conheça o GRIS em www.gris.dcc.ufrj.br


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

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

Re: [Rio-pm] Ajuda com configuração do CPAN

2012-05-10 Por tôpico Stanislaw Pusep
Ou talvez o CPANPLUS: https://metacpan.org/module/CPANPLUS :)

ABS()



2012/5/10 Gabriel Vieira gabriel.vie...@gmail.com

 Dá uma olhada no App::cpanminus pode ser que você mude a sua estratégia.

 2012/5/10 Guilherme Alves guilhermeareal+ri...@gmail.com

 Prezados,

 A minha dúvida é básica, mas não estou achando uma boa solução..

 Gostaria de configurar o cpan em uma linha.. passando todas as opçoes
 como se estivesse configurando aquele passo a passo inicial que todos
 conhecem. Gostaria de setar umas preferências e um local para ele puxar os
 módulos.. tipo um mirror local.

 A minha idéia é automatizar para várias máquinas e evitar aquelas
 perguntas de mirror, onde está tal binário, se deseja isso ou aquilo.

 Desde já agradeço a ajuda,

 Att,

 --
 Guilherme Alves

 Redes, Sites e Sistemas(RSS) - GRIS-DCC-UFRJ
 Grupo de Resposta a Incidentes de Segurança
 Conheça o GRIS em www.gris.dcc.ufrj.br


 ___
 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

Re: [Rio-pm] Fwd: Booking.com is hiring

2012-04-25 Por tôpico Stanislaw Pusep
Com vocês, o relato de alguém que tentou sorte na Booking.com:
http://blogs.perl.org/users/bookingemployee/2012/03/truth-about-bookingcom.html
Resumo, no final:

Why to work here?
If you want to move to Europe, they will pay. Amsterdam is very nice.
You might get a change to train for management. People are very nice
and I like my colleagues.

Why not to work here?
If you care about technology and doing a good job, do not work here.
If you like to write tests, do not work here. If you try to change
things, they will talk to you about your attitude. If you do not stop,
you will not have a job.

ABS()


On Wed, Apr 25, 2012 at 16:06, Thiago Rondon thi...@aware.com.br wrote:
 -- Forwarded message --
 From: Jonas Alves jonas.al...@gmail.com
 Date: Wed, Apr 25, 2012 at 3:30 PM
 Subject: Booking.com is hiring
 To: Lisbon Perl Mongers p...@lisbon.pm.org


 A booking.com quer contratar 30 a 40 programadores de Perl este ano.
 Há interessados por aqui? :)

 http://www.booking.com/jobs.html?st=jobscategory=IT%20Design%20%26%20Development

 --
 Jonas
 ___
 Rio-pm mailing list
 Rio-pm@pm.org
 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 em desuso??

2012-04-23 Por tôpico Stanislaw Pusep
Eu entendo perfeitamente que somos seres sociais e o controle de raiva é
necessário...
Mas puxa: os programadores Ruby de agências de publicidade estão fazendo
com o mercado de TI o mesmo que os sobrinhos dos diretores fizeram do
mercado de uébidizáine (tradução: estão nivelando por baixo).
Não que não existam bons programadores Ruby. Não que não existam sobrinhos
talentosos.
Todavia, quem sempre vai elogiar os seus projetinhos e ser tolerante é a
mamãe e a titia. Eu prefiro falar o que penso na caruda do que torcer para
que saia uma borboleta dessa larva.
(in)felizmente, não sou o único:
http://developers.slashdot.org/comments.pl?sid=2787049cid=39687659

ABS()



On Mon, Apr 23, 2012 at 14:35, breno br...@rio.pm.org wrote:

 Eu ia comentar, mas o Bruno falou absolutamente tudo que eu tinha pra
 dizer.

 bbuss++

 Aureliano, leia com muita calma e atenção a resposta dele. Depois,
 leia de novo, vai te fazer bem. Acho bacana que vc esteja tão feliz
 com Perl (a maioria de nós está!) mas linguagens são ferramentas e
 devemos usar a que melhor se adeque ao seu problema e sua forma de
 pensar.

 Perl não está em desuso, apenas passou a dividir o mercado de
 linguagens dinâmicas com alternativas que não existiam quando a
 linguagem foi criada. Se você quiser algo mais específico, como
 sites/sistemas/empresas que usam Perl, ou sobre o crescimento da
 comunidade, sinta-se à vontade para perguntar, mas note que é uma
 pergunta diferente.

 Se você quer defender Perl, evite menosprezar outras linguagens.
 Fanatismo não se sustenta e o seu argumento de que Ruby é uma
 linguagenzinha, na minha opinião, criado para viciados em RPG
 geralmente virgens., se é que posso chamar de argumento, foi pobre,
 infeliz, ofensivo, desnecessário e errado. Novamente, como o Bruno
 disse: Para defender Perl não é preciso menosprezar outras linguagens
 e seus usuários... deixe isso para as pessoas e comunidades sem
 recursos ;)

 []s

 -b

 On Mon, Apr 23, 2012 at 12:40 PM, Bruno Buss bruno.b...@gmail.com wrote:
  2012/4/23 Aureliano Guedes guedes_1...@hotmail.com
 
  Monges,
  Bom dia.
 
  Gostaria de levantar uma questão para discutirmos e vermos a opinião de
  cada um...
 
  Perl esta em desuso??
 
 
  Não. Podem encerrar a thread?
 
 
 
  Ouvi esse comentário (infeliz, na minha opinião) e ainda tive que ouvir
  mais (Ruby e Python estão tomando lugar). Afff...
 
 
  Mas Ruby e Python estão tomando lugar, estão tomando uma fatia do que
 antes
  era apenas Perl.
  São ferramentas alternativas ao Perl e cada um escolhe a ferramente que
  melhor lhe agrada e que torna seu trabalho mais agradável e eficiente.
 
 
 
  O fato é, quem gosta de POO realmente vai preferir Python, pois poucos
  sabem que Perl tem suporte a OO, inclusive eu criei vario objetos para
  mostrar como
  podemos usar Perl como se fosse POO. Mas, o serio problema que os
 códigos
  Python tem com indentação é triste, alem de que tratar tudo como objeto
 é um
  saco.
 
 
  Indentação do Python é triste?
  Apesar de algo que restringe um pouco - quase nada emho - como o
 programador
  utiliza a linguagem... eu acho uma coisa legal.
  Sério mesmo, é muito mais fácil alguém que ta aprendendo a programar
 fazer
  algo muito mais macarrônico em Perl ou C do que em Python.
 
  Agora, se isso define se uma linguagem é melhor que a outra? Não
 acredito...
 
 
 
  Ruby é uma linguagenzinha, na minha opinião, criado para viciados em RPG
  geralmente virgens.
 
 
  De fato, com argumentos fortes e contundentes desse tipo, você está
 fazendo
  um bem enorme a comunidade Perl.
  Fica uma dica: Para defender Perl não é preciso menosprezar outras
  linguagens e seus usuários... deixe isso para as pessoas e comunidades
 sem
  recursos ;)
 
 
 
  Fiz o seguinte script abaixo
  http://pastebin.com/eJEC0Kvt
 
  para testar os dois seguintes
  http://pastebin.com/ytUiweKe
  http://pastebin.com/0BfyiZgh
 
  gerando o resultado:
 
  Perl
  real 0m24.136s
  user 0m23.985s
  sys 0m0.028s
 
  Ruby
  real 0m50.882s
  user 0m50.563s
  sys 0m0.040s
 
  Num AMD Athlon 64 com o Ubuntu 11.10 64x 2GB de Ram,
  Perl sendo mais que 2x mais rápido.
 
 
  De fato, a velocidade que uma linguagem faz uma loop que soma de todos os
  inteiros de 1 a 1M é o que define se uma linguagem é realmente boa...
  Mais uma dica: Utilize a formula de soma de PA e você conseguirá o mesmo
  resultado em uma fração muito menor de tempo, em qualquer linguagem, do
 que
  isso que você conseguiu em Perl. Uma solução ruim, continua sendo uma
  solução ruim independente da linguagem com a que você a implementa ;)
 
 
 
  Alem de que o Gems é uma porcaria.
 
 
  Seus argumentos aqui também não sensacionais.
  De qualquer forma, acho que você deveria levar esse seu questionamento
 para
  listas de Ruby... la eles podem te ajudar a entender melhor o Gems ou
 então
  trabalhar contigo para melhora-lo, se este for o caso.
 
 
 
  Não sei, talvez seja apenas modinha, mas se a comunidade Ruby não se
  empenhar a modinha passa e 

Re: [Rio-pm] Perl em desuso??

2012-04-23 Por tôpico Stanislaw Pusep
Claro que vi, Nuba. Mas vi muito menos. Aliás, até hoje, não vi nenhum
programador Assembly ruim :)
Como diz Sturgeon's Law, ninety percent of everything is crap.
Agora, acessamos http://modulecounts.com/
Para 2012-04-23, temos, portanto, ~22K módulos ruins no CPAN, contra ~34K
módulos ruins no Rubygems. A velocidade média de produção é de 41.4
porcarias em Ruby por dia, contra apenas 5.4 porcarias em Perl por dia :)
Enfim, presumo que exista uma massa crítica para que algum produto
informacional passe a se comportar como um câncer, corrompendo as mentes
menos disciplinadas. Windows no geral, Internet Explorer em especial e,
agora, Ruby, cruzaram essa fronteira :P
É preciso manter a cabeça aberta, mas não a ponto do cérebro cair para
fora

ABS()



On Mon, Apr 23, 2012 at 16:03, Nuba Princigalli n...@fastmail.fm wrote:

   Olá Stanislaw,

  Então você nunca viu programador Perl nivelando a comunidade por baixo?
 Que sorte a sua! Eu já encontrei alguns ao longo dos anos, gente que produz
 gambiarras terríveis, write-only, que não têm o menor interesse em se
 atualizar sobre a linguagem, mas, que em seus departamentos são o cara do
 Perl, e com isso até afastam as pessoas da linguagem.

  Ao invés de ficar escolhendo alguém para demonizar (Ruby hoje, Node
 amanhã, PHP ontem, ASP anteontem, SSI antes de anteontem -- nota: acho que
 Python só escapou porque, como foi a aposta do Google, o povo respeita
 mais...) eu sugiro fazer algo mais produtivo, como trabalhar para facilitar
 a atualização e o crescimento dentro da nossa própria comunidade.

  Estamos com uma discussão em andamento para o que todo novo Perl Hacker
 precisa saber, quem se interessar, veja
 http://mail.pm.org/pipermail/rio-pm/2012q2/008829.html

  Abraço,

  Nuba Princigalli


  On Mon, Apr 23, 2012, at 02:51 PM, Stanislaw Pusep wrote:

 Eu entendo perfeitamente que somos seres sociais e o controle de raiva é
 necessário...
 Mas puxa: os programadores Ruby de agências de publicidade estão fazendo
 com o mercado de TI o mesmo que os sobrinhos dos diretores fizeram do
 mercado de uébidizáine (tradução: estão nivelando por baixo).
  Não que não existam bons programadores Ruby. Não que não existam
 sobrinhos talentosos.
  Todavia, quem sempre vai elogiar os seus projetinhos e ser tolerante é a
 mamãe e a titia. Eu prefiro falar o que penso na caruda do que torcer para
 que saia uma borboleta dessa larva.
  (in)felizmente, não sou o único:
 http://developers.slashdot.org/comments.pl?sid=2787049cid=39687659

 ABS()



  On Mon, Apr 23, 2012 at 14:35, breno br...@rio.pm.org wrote:

 Eu ia comentar, mas o Bruno falou absolutamente tudo que eu tinha pra
 dizer.

 bbuss++

 Aureliano, leia com muita calma e atenção a resposta dele. Depois,
 leia de novo, vai te fazer bem. Acho bacana que vc esteja tão feliz
 com Perl (a maioria de nós está!) mas linguagens são ferramentas e
 devemos usar a que melhor se adeque ao seu problema e sua forma de
 pensar.

 Perl não está em desuso, apenas passou a dividir o mercado de
 linguagens dinâmicas com alternativas que não existiam quando a
 linguagem foi criada. Se você quiser algo mais específico, como
 sites/sistemas/empresas que usam Perl, ou sobre o crescimento da
 comunidade, sinta-se à vontade para perguntar, mas note que é uma
 pergunta diferente.

 Se você quer defender Perl, evite menosprezar outras linguagens.
 Fanatismo não se sustenta e o seu argumento de que Ruby é uma
  linguagenzinha, na minha opinião, criado para viciados em RPG
 geralmente virgens., se é que posso chamar de argumento, foi pobre,
 infeliz, ofensivo, desnecessário e errado. Novamente, como o Bruno
 disse: Para defender Perl não é preciso menosprezar outras linguagens
  e seus usuários... deixe isso para as pessoas e comunidades sem
 recursos ;)

 []s

 -b

 On Mon, Apr 23, 2012 at 12:40 PM, Bruno Buss bruno.b...@gmail.com wrote:
  2012/4/23 Aureliano Guedes guedes_1...@hotmail.com
 
  Monges,
  Bom dia.
 
  Gostaria de levantar uma questão para discutirmos e vermos a opinião de
  cada um...
 
  Perl esta em desuso??
 
 
  Não. Podem encerrar a thread?
 
 
 
  Ouvi esse comentário (infeliz, na minha opinião) e ainda tive que ouvir
  mais (Ruby e Python estão tomando lugar). Afff...
 
 
  Mas Ruby e Python estão tomando lugar, estão tomando uma fatia do que
 antes
  era apenas Perl.
  São ferramentas alternativas ao Perl e cada um escolhe a ferramente que
  melhor lhe agrada e que torna seu trabalho mais agradável e eficiente.
 
 
 
  O fato é, quem gosta de POO realmente vai preferir Python, pois poucos
  sabem que Perl tem suporte a OO, inclusive eu criei vario objetos para
  mostrar como
  podemos usar Perl como se fosse POO. Mas, o serio problema que os
 códigos
  Python tem com indentação é triste, alem de que tratar tudo como objeto
 é um
  saco.
 
 
  Indentação do Python é triste?
  Apesar de algo que restringe um pouco - quase nada emho - como o
 programador
  utiliza a linguagem... eu acho uma coisa legal.
  Sério mesmo, é

Re: [Rio-pm] Perl em desuso??

2012-04-23 Por tôpico Stanislaw Pusep
for(;;$bruno_buss++){}

ABS()



On Mon, Apr 23, 2012 at 18:09, Bruno Buss bruno.b...@gmail.com wrote:

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

  Vou defender um pouco Python. Apesar de achar chato tudo ter que ser
 objeto e achar frescura o esse negocio de identação,
 é uma linguagem com grande desempenho quando falamos de calculos, por
 isso muito ultilizada na bioinformatica,


 Não, ela é utilizada na bioinformática por ser fácil e ter um desempenho
 razoável.
 Se somente um grande desempenho com cálculos fosse necessário, todos em
 bioinformática programariam em assembly.


 o fato do google
 ter apostado nessa linguagem coopera muito com o crescimento dela, e a
 comunidade python é empenhada, mas isso não tira o fato de eu
 achar modinha, quando falo que caiu na modinha não quero desmerecer a
 lingugagem e sim a massificação de programadores.


 Essa é a mesma massificação que permite que *você* consiga programar. Sim
 *você*.
 *Você* que nunca estudou formalmente computação, que não tem conhecimentos
 básicos sólidos de arquitetura, algoritmos, linguagens de programação,
 join(',', @outras_materias_de_computacao).
 *Você* que é formado em outra área, mas é capaz de aprender a programar
 para adiantar sua vida, já que temos a disposição máquinas com muitos
 recursos totalmente sub-utilizadas.
 *Você* que pega um livro qualquer sobre uma linguagem qualquer e depois de
 alguns poucos dias se diz programador (mesmo iniciante). Estou pra ver o
 dia que eu sair com uma faca, rasgando pessoas pela rua se elas vão me
 chamar de médico ou cirurgião.

 *Você* é o fruto dessa massificação de programadores. *Você* faz parte
 integral dela.
 A menos que você esteja utilizando um dos argumentos mais sem sentido (ou
 com uma lógica tão bonita e delicada que eu não consigo notar), não fale
 contra o seu próprio grupo ;)

 Desculpe pelo reality check ;)

 Graças a massificação dos programadores, acabamos por ver códigos
 macarrônicos, sem sentido, etc. Mas ao mesmo tempo, la no fundo, nos
 sentimos felizes que outras pessoas estão descobrindo essa atividade que
 nos da tanto prazer ;)



 Talvez esteja relacionado
 a: tem emprego. Mas um programador no Brasil deve escolher a linguagem
 de acordo com a disponibilidade de emprego, assim como o vestibulando
 escolhe de acordo
 com o curso que da mais dinheiro (medicina, direito, engenharia civil),


 Quem escolhe curso superior porque da mais dinheiro não tem o mínimo
 conceito da minha parte.

 Como o Breno disse... programador *bom* em [qualquer linguagem], tem
 emprego garantido. Até porque programador bom, dificilmente fica preso em
 alguma linguagem...



  eu mesmo nunca vi oferta de emprego para programador em C, uma vez na
 minha vida vi ofertar para C++.


 Você está olhando nos lugares errados, como já disseram ;)


 Agora a massificação do programador (vou programar na mesma linguagem da
 galera) não deve ser descartado, pois é igual ver Big Brother, isso atinge
 não programadores experientes,
 mas sim novatos (assim como eu, mas eu vim de outro ambiente, vim das
 biologicas).


 Viu como você faz parte desse movimento todo que você se diz contra? :)



 Quanto a Ruby, continuo achando que e uma linguagem criada de certa forma
 para competir com Perl, as caracteristicas da linguagem remetem a isso,
 desde a sintaxe,
 so que uma tentativa frustada, desculpem-me mas o programador Ruby
 programa em Perl 2.0 e não sabe, quando descobre migra para Python (mas
 aprende whitespace primeiro).


 1) Python, PHP e Ruby são filhotes de Perl. Até onde sei, isso nunca foi
 escondido.
 2) Se Ruby é o Perl 2.0, então deve ser ruim mesmo porque o Perl já está
 no 5.14 =P

 [ ]'s
 --
 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