From samircurys em gmail.com Fri Apr 4 11:24:00 2014 From: samircurys em gmail.com (Samir Cury) Date: Fri, 4 Apr 2014 11:24:00 -0700 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes Message-ID: E ai pessoal, Acabei de passar por um pequeno problema com o CPAN e achei uma solucao interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e bom/ruim para o ecossistema. Entao, o problema foi quando tentei cpan install CouchDB::Client. Que funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou em algum modulo referente a testes, que dependia do Module::Build que tambem falhou. Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas acabei de achar um macete : yum install 'perl(Module::Build)' O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em consertar testes :-). Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das principais desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba "nao sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito colateral grave conhecido? Abracos, Samir -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Fri Apr 4 11:46:14 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Fri, 4 Apr 2014 15:46:14 -0300 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes In-Reply-To: References: Message-ID: Se você estiver usando CPAN as in instalando os pacotes como root no sistema... isso e' de fato muito ruim, pois o código baixado pelo CPAN pode sobrescrever os arquivos do pacote do seu sistema ou vice versa. Se voce estiver usando local::lib ou perlbrew, e instalando via cpan nesses locais e usando as libs do sistema somente como fallback... não vejo problema em instalar coisas pelo sistema de pacotes da sua distro, ainda mais para coisas mais chatas que dependem de libs externas (que precisam ser compiladas e etc). [ ]'s Buss 2014-04-04 15:24 GMT-03:00 Samir Cury : > E ai pessoal, > > Acabei de passar por um pequeno problema com o CPAN e achei uma solucao > interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do > CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e > bom/ruim para o ecossistema. > > Entao, o problema foi quando tentei cpan install CouchDB::Client. Que > funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou > em algum modulo referente a testes, que dependia do Module::Build que > tambem falhou. > > Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de > modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao > gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas > acabei de achar um macete : > > yum install 'perl(Module::Build)' > > O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi > instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. > Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi > tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em > consertar testes :-). > > Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das principais > desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba "nao > sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito colateral > grave conhecido? > > Abracos, > Samir > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Fri Apr 4 11:48:49 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Fri, 4 Apr 2014 15:48:49 -0300 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes In-Reply-To: References: Message-ID: Olá, Normalmente eu evito mexer no Perl do sistema. O fedora, inclusive, é historicamente bastante hostil ao lidar com o Perl, diga-se de passagem. Nos meus projetos, eu procedo da seguinte forma: 1) Instalar perlbrew* 2) Instalar a versão do Perl que eu vou usar** 3) Instalar o cpanm (App::cpanminus) 4) se máquina de desenvolvimento então instalar Carton e Dist::Zilla end-se Daí, para os meus módulos ou aplicações, faço o gerenciamento de pacotes com Carton, que me deixa travar a versão exata*** de cada módulo. Para os módulos não é necessário, mas para as aplicações, o carton permite que você empacote todas as dependências em um diretório vendor/, que você pode fazer um tar e subir para aquele servidor de produção que não sai pra internet, e então instalar normalmente, de forma que mesmo pacotes com XS funcionem. O carton se empacotes junto, inclusive, para o caso da máquina destino não ter carton instalado. Assim eu tenho o controle exato de cada versão de cada pacote. O CPAN é fantástico, sempre foi, mas eu diria que dá pra dividi-lo em duas eras: antes e depois do Carton. * Curiosamente hoje, a instalação do Perlbrew falhou num debian 6 que eu to configurando e eu precisei instalar o pacote Devel::PatchPerl diretamente no sistema com o cpan tradicional (root). ** O drawback é que eu preciso de acesso ao compilador. *** Sim, raramente acontece, mas eu já precisei achar uma combinação X de versões pra funcionar redondo, mas nada além de editar o cpanfile e rodar carton install denovo. []'s 2014-04-04 15:24 GMT-03:00 Samir Cury : > E ai pessoal, > > Acabei de passar por um pequeno problema com o CPAN e achei uma solucao > interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do > CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e > bom/ruim para o ecossistema. > > Entao, o problema foi quando tentei cpan install CouchDB::Client. Que > funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou > em algum modulo referente a testes, que dependia do Module::Build que > tambem falhou. > > Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de > modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao > gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas > acabei de achar um macete : > > yum install 'perl(Module::Build)' > > O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi > instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. > Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi > tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em > consertar testes :-). > > Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das principais > desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba "nao > sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito colateral > grave conhecido? > > Abracos, > Samir > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From samircurys em gmail.com Fri Apr 4 12:14:57 2014 From: samircurys em gmail.com (Samir Cury) Date: Fri, 4 Apr 2014 12:14:57 -0700 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes In-Reply-To: References: Message-ID: Interessante. Agora, se olharmos de um ponto de vista "mais sysadmin" -- voce *quer* que os modulos estejam disponiveis system-wide (todos usuarios/ambientes) e nao se importa tanto com as versoes especificas dos modulos -- porque a principio a maioria das aplicacoes serao compativeis com uma faixa grande de versoes de cada modulo. (acredito que da menos trabalho pensar assim e consertar individualmente o que quebrar, do que fazer um bootstrap pra cada aplicacao pra ter certeza que "funcionou, nao respira") Seria o CPAN puro como root ainda sim a melhor opcao neste caso? Valeu pela dica dos modulos dos pacotes sobre-escritos. Realmente e para se considerar. No entanto, nao vejo tanto mal de ter o mesmo modulo presente, outra versao. Concordo que e tosco ter "rpm -qa | grep Modulo" dizendo uma coisa e quando voce carrega o modulo ser outra. Quando o RPM for desisntalado deve remover o arquivo, dai o CPAN provavelmente vai se perder. Mas enquanto nao remover nada deve ser ~tranquilo. O que estou tentando entender e - qual a melhor maneira de configurar um sistema padrao com ferramentas padrao (cpan, rpm, apt). Pelo visto o preco de eventuais gambiarras como a que descrevi nao causaria mais problemas do que o tempo gasto debugando o teste que nao passou no CPAN. Indesejavel, mas nao fatal. Pelo que entendi no melhor dos mundos -- da instalacao padrao, voce escolhe entre 2 caminhos : * usa CPAN como root - se um teste quebrar, vai perder um tempo * usa RPMs para tudo - se nao existir um pacote para o modulo, vai ter que comecar a "sujar" o sistema com modulos instalados pelo CPAN E tenta nao misturar. Abs 2014-04-04 11:48 GMT-07:00 Blabos de Blebe : > Olá, > > Normalmente eu evito mexer no Perl do sistema. O fedora, inclusive, é > historicamente bastante hostil ao lidar com o Perl, diga-se de passagem. > > Nos meus projetos, eu procedo da seguinte forma: > > 1) Instalar perlbrew* > 2) Instalar a versão do Perl que eu vou usar** > 3) Instalar o cpanm (App::cpanminus) > 4) se máquina de desenvolvimento então > instalar Carton e Dist::Zilla > end-se > > Daí, para os meus módulos ou aplicações, faço o gerenciamento de pacotes > com Carton, que me deixa travar a versão exata*** de cada módulo. > > Para os módulos não é necessário, mas para as aplicações, o carton permite > que você empacote todas as dependências em um diretório vendor/, que você > pode fazer um tar e subir para aquele servidor de produção que não sai pra > internet, e então instalar normalmente, de forma que mesmo pacotes com XS > funcionem. O carton se empacotes junto, inclusive, para o caso da máquina > destino não ter carton instalado. > > Assim eu tenho o controle exato de cada versão de cada pacote. > > O CPAN é fantástico, sempre foi, mas eu diria que dá pra dividi-lo em duas > eras: antes e depois do Carton. > > > > * Curiosamente hoje, a instalação do Perlbrew falhou num debian 6 que eu > to configurando e eu precisei instalar o pacote Devel::PatchPerl > diretamente no sistema com o cpan tradicional (root). > > ** O drawback é que eu preciso de acesso ao compilador. > > *** Sim, raramente acontece, mas eu já precisei achar uma combinação X de > versões pra funcionar redondo, mas nada além de editar o cpanfile e rodar > carton install denovo. > > []'s > > > 2014-04-04 15:24 GMT-03:00 Samir Cury : > >> E ai pessoal, >> >> Acabei de passar por um pequeno problema com o CPAN e achei uma solucao >> interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do >> CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e >> bom/ruim para o ecossistema. >> >> Entao, o problema foi quando tentei cpan install CouchDB::Client. Que >> funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou >> em algum modulo referente a testes, que dependia do Module::Build que >> tambem falhou. >> >> Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de >> modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao >> gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas >> acabei de achar um macete : >> >> yum install 'perl(Module::Build)' >> >> O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi >> instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. >> Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi >> tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em >> consertar testes :-). >> >> Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das >> principais desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba >> "nao sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito >> colateral grave conhecido? >> >> Abracos, >> Samir >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Fri Apr 4 12:26:56 2014 From: renato.cron em gmail.com (Renato Santos) Date: Fri, 4 Apr 2014 16:26:56 -0300 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes In-Reply-To: References: Message-ID: Não sei quanto ao Fedora em especifico, mas geralmente, se você não esta instalando os pacotes usando local::lib ou perlbrew, você pode, sem querer, acabar instalando módulos novos em cima dos módulos do sistema, o que poderia, teoricamente, quebrar o sistema, é um pouco mais grave quando o sistema alterou o fonte de alguns módulos do perl-core, pois ai quando você atualiza, você remove essa alteração e ai começa as loucuras. Você pode dar uma olhada no https://metacpan.org/pod/local::lib pois ele cria um ambiente, que quando você rodar o programa cpan, ele vai instalar na pasta ~/perl5 evitando conflitos com o sistema. Com ele, você continua usando o mesmo binário do perl do sistema, porém, com as libs apontando para carregar antes em ~/perl5. Já com perlbrew (http://sao-paulo.pm.org/equinocio/2011/set/3) você compila uma versão do perl para um determinado usuário (ou vários) totalmente independente do perl do SO. Ai você pode instalar os módulos em cada versão do perl separadamente. Todos os módulos feitos puramente em perl, teoricamente, funcionam em "todas" plataformas que o perl é possivelmente compilado. Porém, uma boa parte dos módulos fazem uso de XS e link externo com outras libs. Esse não parece ser o caso do CouchDB::Client, pois olhando o código por cima, ele se comunica com o CouchDB via HTTP. Mas é o caso do SDL, por exemplo, ou DBD::Pg (que precisa saber onde ta a lib do postgres) Ai criaram os pacotes que começam com Alien:: que prepara o ambiente, compila e linka os modulos, ex: Alien::SDL 2014-04-04 15:24 GMT-03:00 Samir Cury : > E ai pessoal, > > Acabei de passar por um pequeno problema com o CPAN e achei uma solucao > interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do > CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e > bom/ruim para o ecossistema. > > Entao, o problema foi quando tentei cpan install CouchDB::Client. Que > funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou > em algum modulo referente a testes, que dependia do Module::Build que > tambem falhou. > > Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de > modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao > gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas > acabei de achar um macete : > > yum install 'perl(Module::Build)' > > O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi > instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. > Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi > tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em > consertar testes :-). > > Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das principais > desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba "nao > sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito colateral > grave conhecido? > > Abracos, > Samir > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Fri Apr 4 12:35:39 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Fri, 4 Apr 2014 16:35:39 -0300 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes In-Reply-To: References: Message-ID: Você poderia manter um setup do local::lib/perlbrew que fosse compartilhado pelos usuários do seu servidor... não e' porque estamos usado algum desses, que precisa ser per-user a instalação de cada um :-) Talvez seja necessário configurar algumas variáveis de ambiente pros usuários, mas isso não me parece ser um problema muito difícil, certo? ;) [ ]'s Buss 2014-04-04 16:14 GMT-03:00 Samir Cury : > Interessante. > > Agora, se olharmos de um ponto de vista "mais sysadmin" -- voce *quer* que > os modulos estejam disponiveis system-wide (todos usuarios/ambientes) e nao > se importa tanto com as versoes especificas dos modulos -- porque a > principio a maioria das aplicacoes serao compativeis com uma faixa grande > de versoes de cada modulo. > > (acredito que da menos trabalho pensar assim e consertar individualmente o > que quebrar, do que fazer um bootstrap pra cada aplicacao pra ter certeza > que "funcionou, nao respira") > > Seria o CPAN puro como root ainda sim a melhor opcao neste caso? > > Valeu pela dica dos modulos dos pacotes sobre-escritos. Realmente e para > se considerar. No entanto, nao vejo tanto mal de ter o mesmo modulo > presente, outra versao. Concordo que e tosco ter "rpm -qa | grep Modulo" > dizendo uma coisa e quando voce carrega o modulo ser outra. > > Quando o RPM for desisntalado deve remover o arquivo, dai o CPAN > provavelmente vai se perder. Mas enquanto nao remover nada deve ser > ~tranquilo. > > O que estou tentando entender e - qual a melhor maneira de configurar um > sistema padrao com ferramentas padrao (cpan, rpm, apt). Pelo visto o preco > de eventuais gambiarras como a que descrevi nao causaria mais problemas do > que o tempo gasto debugando o teste que nao passou no CPAN. Indesejavel, > mas nao fatal. > > Pelo que entendi no melhor dos mundos -- da instalacao padrao, voce > escolhe entre 2 caminhos : > > * usa CPAN como root - se um teste quebrar, vai perder um tempo > * usa RPMs para tudo - se nao existir um pacote para o modulo, vai ter > que comecar a "sujar" o sistema com modulos instalados pelo CPAN > > E tenta nao misturar. > > Abs > > > 2014-04-04 11:48 GMT-07:00 Blabos de Blebe : > > Olá, >> >> Normalmente eu evito mexer no Perl do sistema. O fedora, inclusive, é >> historicamente bastante hostil ao lidar com o Perl, diga-se de passagem. >> >> Nos meus projetos, eu procedo da seguinte forma: >> >> 1) Instalar perlbrew* >> 2) Instalar a versão do Perl que eu vou usar** >> 3) Instalar o cpanm (App::cpanminus) >> 4) se máquina de desenvolvimento então >> instalar Carton e Dist::Zilla >> end-se >> >> Daí, para os meus módulos ou aplicações, faço o gerenciamento de pacotes >> com Carton, que me deixa travar a versão exata*** de cada módulo. >> >> Para os módulos não é necessário, mas para as aplicações, o carton >> permite que você empacote todas as dependências em um diretório vendor/, >> que você pode fazer um tar e subir para aquele servidor de produção que não >> sai pra internet, e então instalar normalmente, de forma que mesmo pacotes >> com XS funcionem. O carton se empacotes junto, inclusive, para o caso da >> máquina destino não ter carton instalado. >> >> Assim eu tenho o controle exato de cada versão de cada pacote. >> >> O CPAN é fantástico, sempre foi, mas eu diria que dá pra dividi-lo em >> duas eras: antes e depois do Carton. >> >> >> >> * Curiosamente hoje, a instalação do Perlbrew falhou num debian 6 que eu >> to configurando e eu precisei instalar o pacote Devel::PatchPerl >> diretamente no sistema com o cpan tradicional (root). >> >> ** O drawback é que eu preciso de acesso ao compilador. >> >> *** Sim, raramente acontece, mas eu já precisei achar uma combinação X de >> versões pra funcionar redondo, mas nada além de editar o cpanfile e rodar >> carton install denovo. >> >> []'s >> >> >> 2014-04-04 15:24 GMT-03:00 Samir Cury : >> >>> E ai pessoal, >>> >>> Acabei de passar por um pequeno problema com o CPAN e achei uma solucao >>> interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do >>> CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e >>> bom/ruim para o ecossistema. >>> >>> Entao, o problema foi quando tentei cpan install CouchDB::Client. Que >>> funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou >>> em algum modulo referente a testes, que dependia do Module::Build que >>> tambem falhou. >>> >>> Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes >>> de modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao >>> gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas >>> acabei de achar um macete : >>> >>> yum install 'perl(Module::Build)' >>> >>> O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi >>> instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. >>> Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi >>> tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em >>> consertar testes :-). >>> >>> Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das >>> principais desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba >>> "nao sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito >>> colateral grave conhecido? >>> >>> Abracos, >>> Samir >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Fri Apr 4 12:45:06 2014 From: renato.cron em gmail.com (Renato Santos) Date: Fri, 4 Apr 2014 16:45:06 -0300 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes In-Reply-To: References: Message-ID: Samir, o problema não é um teste seu quebrar, isso seria bom! Ruim é quando algo do sistema feito em perl quebra, e você só vai saber disso quando o SO bootar pela metade, num caso ruim. 2014-04-04 16:35 GMT-03:00 Bruno Buss : > Você poderia manter um setup do local::lib/perlbrew que fosse > compartilhado pelos usuários do seu servidor... não e' porque estamos usado > algum desses, que precisa ser per-user a instalação de cada um :-) > Talvez seja necessário configurar algumas variáveis de ambiente pros > usuários, mas isso não me parece ser um problema muito difícil, certo? ;) > > [ ]'s > Buss > > 2014-04-04 16:14 GMT-03:00 Samir Cury : > >> Interessante. >> >> Agora, se olharmos de um ponto de vista "mais sysadmin" -- voce *quer* >> que os modulos estejam disponiveis system-wide (todos usuarios/ambientes) e >> nao se importa tanto com as versoes especificas dos modulos -- porque a >> principio a maioria das aplicacoes serao compativeis com uma faixa grande >> de versoes de cada modulo. >> >> (acredito que da menos trabalho pensar assim e consertar individualmente >> o que quebrar, do que fazer um bootstrap pra cada aplicacao pra ter certeza >> que "funcionou, nao respira") >> >> Seria o CPAN puro como root ainda sim a melhor opcao neste caso? >> >> Valeu pela dica dos modulos dos pacotes sobre-escritos. Realmente e para >> se considerar. No entanto, nao vejo tanto mal de ter o mesmo modulo >> presente, outra versao. Concordo que e tosco ter "rpm -qa | grep Modulo" >> dizendo uma coisa e quando voce carrega o modulo ser outra. >> >> Quando o RPM for desisntalado deve remover o arquivo, dai o CPAN >> provavelmente vai se perder. Mas enquanto nao remover nada deve ser >> ~tranquilo. >> >> O que estou tentando entender e - qual a melhor maneira de configurar um >> sistema padrao com ferramentas padrao (cpan, rpm, apt). Pelo visto o preco >> de eventuais gambiarras como a que descrevi nao causaria mais problemas do >> que o tempo gasto debugando o teste que nao passou no CPAN. Indesejavel, >> mas nao fatal. >> >> Pelo que entendi no melhor dos mundos -- da instalacao padrao, voce >> escolhe entre 2 caminhos : >> >> * usa CPAN como root - se um teste quebrar, vai perder um tempo >> * usa RPMs para tudo - se nao existir um pacote para o modulo, vai ter >> que comecar a "sujar" o sistema com modulos instalados pelo CPAN >> >> E tenta nao misturar. >> >> Abs >> >> >> 2014-04-04 11:48 GMT-07:00 Blabos de Blebe : >> >> Olá, >>> >>> Normalmente eu evito mexer no Perl do sistema. O fedora, inclusive, é >>> historicamente bastante hostil ao lidar com o Perl, diga-se de passagem. >>> >>> Nos meus projetos, eu procedo da seguinte forma: >>> >>> 1) Instalar perlbrew* >>> 2) Instalar a versão do Perl que eu vou usar** >>> 3) Instalar o cpanm (App::cpanminus) >>> 4) se máquina de desenvolvimento então >>> instalar Carton e Dist::Zilla >>> end-se >>> >>> Daí, para os meus módulos ou aplicações, faço o gerenciamento de pacotes >>> com Carton, que me deixa travar a versão exata*** de cada módulo. >>> >>> Para os módulos não é necessário, mas para as aplicações, o carton >>> permite que você empacote todas as dependências em um diretório vendor/, >>> que você pode fazer um tar e subir para aquele servidor de produção que não >>> sai pra internet, e então instalar normalmente, de forma que mesmo pacotes >>> com XS funcionem. O carton se empacotes junto, inclusive, para o caso da >>> máquina destino não ter carton instalado. >>> >>> Assim eu tenho o controle exato de cada versão de cada pacote. >>> >>> O CPAN é fantástico, sempre foi, mas eu diria que dá pra dividi-lo em >>> duas eras: antes e depois do Carton. >>> >>> >>> >>> * Curiosamente hoje, a instalação do Perlbrew falhou num debian 6 que eu >>> to configurando e eu precisei instalar o pacote Devel::PatchPerl >>> diretamente no sistema com o cpan tradicional (root). >>> >>> ** O drawback é que eu preciso de acesso ao compilador. >>> >>> *** Sim, raramente acontece, mas eu já precisei achar uma combinação X >>> de versões pra funcionar redondo, mas nada além de editar o cpanfile e >>> rodar carton install denovo. >>> >>> []'s >>> >>> >>> 2014-04-04 15:24 GMT-03:00 Samir Cury : >>> >>>> E ai pessoal, >>>> >>>> Acabei de passar por um pequeno problema com o CPAN e achei uma solucao >>>> interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do >>>> CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e >>>> bom/ruim para o ecossistema. >>>> >>>> Entao, o problema foi quando tentei cpan install CouchDB::Client. Que >>>> funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou >>>> em algum modulo referente a testes, que dependia do Module::Build que >>>> tambem falhou. >>>> >>>> Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes >>>> de modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao >>>> gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas >>>> acabei de achar um macete : >>>> >>>> yum install 'perl(Module::Build)' >>>> >>>> O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi >>>> instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. >>>> Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi >>>> tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em >>>> consertar testes :-). >>>> >>>> Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das >>>> principais desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba >>>> "nao sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito >>>> colateral grave conhecido? >>>> >>>> Abracos, >>>> Samir >>>> >>>> _______________________________________________ >>>> Rio-pm mailing list >>>> Rio-pm em pm.org >>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>> >>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Fri Apr 4 12:51:28 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Fri, 4 Apr 2014 19:51:28 +0000 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes In-Reply-To: References: , , , Message-ID: Nunca aconselhei atualizar o Perl do sistema, e para garantir minha integridade, continuo não aconselhando, mas... Minhas aplicações não exigem uma 'versão específica' do Perl para serem executadas, então uma vez por teste, peguei um pc parado aqui e desci um Debian nele, depois atualizei o Perl (do sistema), e 'PA' nada aconteceu (digo nada de ruim).Não sei quanto a módulos usados pelo sistema, posso fazer esse teste depois. Mas não deu problema nenhum. From: bruno.buss em gmail.com Date: Fri, 4 Apr 2014 16:35:39 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes Você poderia manter um setup do local::lib/perlbrew que fosse compartilhado pelos usuários do seu servidor... não e' porque estamos usado algum desses, que precisa ser per-user a instalação de cada um :-) Talvez seja necessário configurar algumas variáveis de ambiente pros usuários, mas isso não me parece ser um problema muito difícil, certo? ;) [ ]'s Buss 2014-04-04 16:14 GMT-03:00 Samir Cury : Interessante. Agora, se olharmos de um ponto de vista "mais sysadmin" -- voce *quer* que os modulos estejam disponiveis system-wide (todos usuarios/ambientes) e nao se importa tanto com as versoes especificas dos modulos -- porque a principio a maioria das aplicacoes serao compativeis com uma faixa grande de versoes de cada modulo. (acredito que da menos trabalho pensar assim e consertar individualmente o que quebrar, do que fazer um bootstrap pra cada aplicacao pra ter certeza que "funcionou, nao respira") Seria o CPAN puro como root ainda sim a melhor opcao neste caso? Valeu pela dica dos modulos dos pacotes sobre-escritos. Realmente e para se considerar. No entanto, nao vejo tanto mal de ter o mesmo modulo presente, outra versao. Concordo que e tosco ter "rpm -qa | grep Modulo" dizendo uma coisa e quando voce carrega o modulo ser outra. Quando o RPM for desisntalado deve remover o arquivo, dai o CPAN provavelmente vai se perder. Mas enquanto nao remover nada deve ser ~tranquilo. O que estou tentando entender e - qual a melhor maneira de configurar um sistema padrao com ferramentas padrao (cpan, rpm, apt). Pelo visto o preco de eventuais gambiarras como a que descrevi nao causaria mais problemas do que o tempo gasto debugando o teste que nao passou no CPAN. Indesejavel, mas nao fatal. Pelo que entendi no melhor dos mundos -- da instalacao padrao, voce escolhe entre 2 caminhos : * usa CPAN como root - se um teste quebrar, vai perder um tempo * usa RPMs para tudo - se nao existir um pacote para o modulo, vai ter que comecar a "sujar" o sistema com modulos instalados pelo CPAN E tenta nao misturar. Abs 2014-04-04 11:48 GMT-07:00 Blabos de Blebe : Olá, Normalmente eu evito mexer no Perl do sistema. O fedora, inclusive, é historicamente bastante hostil ao lidar com o Perl, diga-se de passagem. Nos meus projetos, eu procedo da seguinte forma: 1) Instalar perlbrew*2) Instalar a versão do Perl que eu vou usar**3) Instalar o cpanm (App::cpanminus)4) se máquina de desenvolvimento então instalar Carton e Dist::Zilla end-se Daí, para os meus módulos ou aplicações, faço o gerenciamento de pacotes com Carton, que me deixa travar a versão exata*** de cada módulo. Para os módulos não é necessário, mas para as aplicações, o carton permite que você empacote todas as dependências em um diretório vendor/, que você pode fazer um tar e subir para aquele servidor de produção que não sai pra internet, e então instalar normalmente, de forma que mesmo pacotes com XS funcionem. O carton se empacotes junto, inclusive, para o caso da máquina destino não ter carton instalado. Assim eu tenho o controle exato de cada versão de cada pacote. O CPAN é fantástico, sempre foi, mas eu diria que dá pra dividi-lo em duas eras: antes e depois do Carton. * Curiosamente hoje, a instalação do Perlbrew falhou num debian 6 que eu to configurando e eu precisei instalar o pacote Devel::PatchPerl diretamente no sistema com o cpan tradicional (root). ** O drawback é que eu preciso de acesso ao compilador. *** Sim, raramente acontece, mas eu já precisei achar uma combinação X de versões pra funcionar redondo, mas nada além de editar o cpanfile e rodar carton install denovo. []'s 2014-04-04 15:24 GMT-03:00 Samir Cury : E ai pessoal, Acabei de passar por um pequeno problema com o CPAN e achei uma solucao interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e bom/ruim para o ecossistema. Entao, o problema foi quando tentei cpan install CouchDB::Client. Que funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou em algum modulo referente a testes, que dependia do Module::Build que tambem falhou. Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas acabei de achar um macete : yum install 'perl(Module::Build)' O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em consertar testes :-). Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das principais desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba "nao sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito colateral grave conhecido? Abracos, Samir _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Fri Apr 4 13:16:12 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Fri, 4 Apr 2014 17:16:12 -0300 Subject: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes In-Reply-To: References: Message-ID: > desci um Debian nele, Isso. Não Fedora* :) > depois atualizei o Perl (do sistema), e 'PA' nada aconteceu Parabéns :) === Vejam, não sou sysadmin, então tomem algumas coisas como licença poética: Eu ia sugerir isso, mas chegou o email do Buss, entao basicamente, por que não criar um user "Perl", instalar o Perlbrew nele e botar as variáveis de ambiente no .profile dos usuários? Aí vc ganha o melhor dos dois mundos. O seu Perl do sistema fica quietinho sendo administrado pelo yum/apt-get enquanto que o Perl dos usuários fica atualizadinho sendo administrado por cpanm ou melhor ainda, por Carton, garantindo que uma vesão nova bugada não vai melar o seu ambiente. === * Nenhuma questão quanto a distro em si, apenas por causa do Perl mal configurado, na época em que eu usava Fedora. Nem sei com está isso hoje em dia, pra ser sincero. 2014-04-04 16:51 GMT-03:00 Aureliano Guedes : > Nunca aconselhei atualizar o Perl do sistema, e para garantir minha > integridade, continuo não aconselhando, mas... > > Minhas aplicações não exigem uma 'versão específica' do Perl para serem > executadas, então uma vez por teste, peguei um pc parado aqui e desci um > Debian nele, depois atualizei o Perl (do sistema), e 'PA' nada aconteceu > (digo nada de ruim). > Não sei quanto a módulos usados pelo sistema, posso fazer esse teste > depois. Mas não deu problema nenhum. > > > ------------------------------ > From: bruno.buss em gmail.com > Date: Fri, 4 Apr 2014 16:35:39 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] CPAN x Pacotes Ou CPAN + Pacotes > > > Você poderia manter um setup do local::lib/perlbrew que fosse > compartilhado pelos usuários do seu servidor... não e' porque estamos usado > algum desses, que precisa ser per-user a instalação de cada um :-) > Talvez seja necessário configurar algumas variáveis de ambiente pros > usuários, mas isso não me parece ser um problema muito difícil, certo? ;) > > [ ]'s > Buss > > 2014-04-04 16:14 GMT-03:00 Samir Cury : > > Interessante. > > Agora, se olharmos de um ponto de vista "mais sysadmin" -- voce *quer* que > os modulos estejam disponiveis system-wide (todos usuarios/ambientes) e nao > se importa tanto com as versoes especificas dos modulos -- porque a > principio a maioria das aplicacoes serao compativeis com uma faixa grande > de versoes de cada modulo. > > (acredito que da menos trabalho pensar assim e consertar individualmente o > que quebrar, do que fazer um bootstrap pra cada aplicacao pra ter certeza > que "funcionou, nao respira") > > Seria o CPAN puro como root ainda sim a melhor opcao neste caso? > > Valeu pela dica dos modulos dos pacotes sobre-escritos. Realmente e para > se considerar. No entanto, nao vejo tanto mal de ter o mesmo modulo > presente, outra versao. Concordo que e tosco ter "rpm -qa | grep Modulo" > dizendo uma coisa e quando voce carrega o modulo ser outra. > > Quando o RPM for desisntalado deve remover o arquivo, dai o CPAN > provavelmente vai se perder. Mas enquanto nao remover nada deve ser > ~tranquilo. > > O que estou tentando entender e - qual a melhor maneira de configurar um > sistema padrao com ferramentas padrao (cpan, rpm, apt). Pelo visto o preco > de eventuais gambiarras como a que descrevi nao causaria mais problemas do > que o tempo gasto debugando o teste que nao passou no CPAN. Indesejavel, > mas nao fatal. > > Pelo que entendi no melhor dos mundos -- da instalacao padrao, voce > escolhe entre 2 caminhos : > > * usa CPAN como root - se um teste quebrar, vai perder um tempo > * usa RPMs para tudo - se nao existir um pacote para o modulo, vai ter > que comecar a "sujar" o sistema com modulos instalados pelo CPAN > > E tenta nao misturar. > > Abs > > > 2014-04-04 11:48 GMT-07:00 Blabos de Blebe : > > Olá, > > Normalmente eu evito mexer no Perl do sistema. O fedora, inclusive, é > historicamente bastante hostil ao lidar com o Perl, diga-se de passagem. > > Nos meus projetos, eu procedo da seguinte forma: > > 1) Instalar perlbrew* > 2) Instalar a versão do Perl que eu vou usar** > 3) Instalar o cpanm (App::cpanminus) > 4) se máquina de desenvolvimento então > instalar Carton e Dist::Zilla > end-se > > Daí, para os meus módulos ou aplicações, faço o gerenciamento de pacotes > com Carton, que me deixa travar a versão exata*** de cada módulo. > > Para os módulos não é necessário, mas para as aplicações, o carton permite > que você empacote todas as dependências em um diretório vendor/, que você > pode fazer um tar e subir para aquele servidor de produção que não sai pra > internet, e então instalar normalmente, de forma que mesmo pacotes com XS > funcionem. O carton se empacotes junto, inclusive, para o caso da máquina > destino não ter carton instalado. > > Assim eu tenho o controle exato de cada versão de cada pacote. > > O CPAN é fantástico, sempre foi, mas eu diria que dá pra dividi-lo em duas > eras: antes e depois do Carton. > > > > * Curiosamente hoje, a instalação do Perlbrew falhou num debian 6 que eu > to configurando e eu precisei instalar o pacote Devel::PatchPerl > diretamente no sistema com o cpan tradicional (root). > > ** O drawback é que eu preciso de acesso ao compilador. > > *** Sim, raramente acontece, mas eu já precisei achar uma combinação X de > versões pra funcionar redondo, mas nada além de editar o cpanfile e rodar > carton install denovo. > > []'s > > > 2014-04-04 15:24 GMT-03:00 Samir Cury : > > E ai pessoal, > > Acabei de passar por um pequeno problema com o CPAN e achei uma solucao > interessante. Tambem gostaria de perguntar ao pessoal que e mais fa do > CPAN, o que acham de modulos que sao distribuidos como pacotes. Se e > bom/ruim para o ecossistema. > > Entao, o problema foi quando tentei cpan install CouchDB::Client. Que > funcionou em outras maquinas mas nao no Fedora 19 que tenho aqui. Quebrou > em algum modulo referente a testes, que dependia do Module::Build que > tambem falhou. > > Nao querendo gastar muito tempo com isso, fui para o plano B : Pacotes de > modulos. O motivo dos pacotes serem meu plano B e que cada distribuicao > gosta de um nome diferente e as vezes e irritante ter que adivinhar, mas > acabei de achar um macete : > > yum install 'perl(Module::Build)' > > O pessoal do YUM mandou muito bem. Uma vez que o Module::Build foi > instalado, procurei pelo pacote do modulo CouchDB::Client. Nao existia. > Porem voltando para o CPAN e tentando de novo o CouchDB::Client foi > tranquilo. Posso voltar a trabalhar no que eu preciso trabalhar, nao em > consertar testes :-). > > Mas acho interessante a discussao sobre CPAN x Pacotes. Uma das principais > desvantagens que ouvi uma vez (nao conferi) e que o CPAN acaba "nao > sabendo" o que o Yum/Apt instalou. Procede? Existe algum efeito colateral > grave conhecido? > > Abracos, > Samir > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Fri Apr 11 12:33:54 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Fri, 11 Apr 2014 19:33:54 +0000 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= Message-ID: Monges, riam o quanto quiserem mas conheci hoje o Class::Accessor.Minha dúvida é: "Qual a diferença dele e do Moose?" Ao primeiro ver me parece a mesma coisa. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Fri Apr 11 12:37:59 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Fri, 11 Apr 2014 16:37:59 -0300 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= In-Reply-To: References: Message-ID: Moose tem muito mais features (lazy, delegators, roles) e plugins ( procure por MooseX:: ) do que o Class::Accessor, fora os hooks after / before / around. Moo é um subset do Moose que também tem muito mais features que o Class::Accessor. 2014-04-11 16:33 GMT-03:00 Aureliano Guedes : > Monges, > > riam o quanto quiserem mas conheci hoje o Class::Accessor. > Minha dúvida é: "Qual a diferença dele e do Moose?" > > Ao primeiro ver me parece a mesma coisa. > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Fri Apr 11 13:00:02 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Fri, 11 Apr 2014 20:00:02 +0000 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= In-Reply-To: References: , Message-ID: De fato, percebi isso. Mas então o Class::Accessor não traz nada de novo?Como já uso o Moose não vi vantagem nenhuma no Class::Accessor. From: tiago.peczenyj em gmail.com Date: Fri, 11 Apr 2014 16:37:59 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] alguma diferença Moose tem muito mais features (lazy, delegators, roles) e plugins ( procure por MooseX:: ) do que o Class::Accessor, fora os hooks after / before / around. Moo é um subset do Moose que também tem muito mais features que o Class::Accessor. 2014-04-11 16:33 GMT-03:00 Aureliano Guedes : Monges, riam o quanto quiserem mas conheci hoje o Class::Accessor.Minha dúvida é: "Qual a diferença dele e do Moose?" Ao primeiro ver me parece a mesma coisa. _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Fri Apr 11 13:03:11 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Fri, 11 Apr 2014 17:03:11 -0300 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= In-Reply-To: References: Message-ID: eu diria que 80% dos casos não vai fazer diferença mas provavelmente o Class::Accessor pode trazer menos overhead e consumir menos recursos que Moose (chute meu). Assim se vc quer algo simples, pequeno e rapido ele é uma boa escolha. Eu uso Moo nesses casos. 2014-04-11 17:00 GMT-03:00 Aureliano Guedes : > De fato, percebi isso. Mas então o Class::Accessor não traz nada de novo? > Como já uso o Moose não vi vantagem nenhuma no Class::Accessor. > > ------------------------------ > From: tiago.peczenyj em gmail.com > Date: Fri, 11 Apr 2014 16:37:59 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] alguma diferença > > > Moose tem muito mais features (lazy, delegators, roles) e plugins ( > procure por MooseX:: ) do que o Class::Accessor, fora os hooks after / > before / around. > > Moo é um subset do Moose que também tem muito mais features que o > Class::Accessor. > > > 2014-04-11 16:33 GMT-03:00 Aureliano Guedes : > > Monges, > > riam o quanto quiserem mas conheci hoje o Class::Accessor. > Minha dúvida é: "Qual a diferença dele e do Moose?" > > Ao primeiro ver me parece a mesma coisa. > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Fri Apr 11 13:10:18 2014 From: renato.cron em gmail.com (Renato Santos) Date: Fri, 11 Apr 2014 17:10:18 -0300 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= In-Reply-To: References: Message-ID: http://blogs.perl.org/users/michael_g_schwern/2011/03/and-the-fastest-oo-accessor-is.html 2014-04-11 17:00 GMT-03:00 Aureliano Guedes : > De fato, percebi isso. Mas então o Class::Accessor não traz nada de novo? > Como já uso o Moose não vi vantagem nenhuma no Class::Accessor. > > ------------------------------ > From: tiago.peczenyj em gmail.com > Date: Fri, 11 Apr 2014 16:37:59 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] alguma diferença > > Moose tem muito mais features (lazy, delegators, roles) e plugins ( > procure por MooseX:: ) do que o Class::Accessor, fora os hooks after / > before / around. > > Moo é um subset do Moose que também tem muito mais features que o > Class::Accessor. > > > 2014-04-11 16:33 GMT-03:00 Aureliano Guedes : > > Monges, > > riam o quanto quiserem mas conheci hoje o Class::Accessor. > Minha dúvida é: "Qual a diferença dele e do Moose?" > > Ao primeiro ver me parece a mesma coisa. > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sat Apr 12 09:59:20 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sat, 12 Apr 2014 16:59:20 +0000 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= In-Reply-To: References: , , , Message-ID: Estou tentando testar esse módulo.Devo estar cometendo algum erro que eu não esteja vendo From: renato.cron em gmail.com Date: Fri, 11 Apr 2014 17:10:18 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] alguma diferença http://blogs.perl.org/users/michael_g_schwern/2011/03/and-the-fastest-oo-accessor-is.html 2014-04-11 17:00 GMT-03:00 Aureliano Guedes : De fato, percebi isso. Mas então o Class::Accessor não traz nada de novo?Como já uso o Moose não vi vantagem nenhuma no Class::Accessor. From: tiago.peczenyj em gmail.com Date: Fri, 11 Apr 2014 16:37:59 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] alguma diferença Moose tem muito mais features (lazy, delegators, roles) e plugins ( procure por MooseX:: ) do que o Class::Accessor, fora os hooks after / before / around. Moo é um subset do Moose que também tem muito mais features que o Class::Accessor. 2014-04-11 16:33 GMT-03:00 Aureliano Guedes : Monges, riam o quanto quiserem mas conheci hoje o Class::Accessor.Minha dúvida é: "Qual a diferença dele e do Moose?" Ao primeiro ver me parece a mesma coisa. _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Saravá, Renato CRONhttp://www.renatocron.com/blog/ @renato_cron _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sat Apr 12 10:09:53 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sat, 12 Apr 2014 17:09:53 +0000 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= In-Reply-To: References: , , , , , , , Message-ID: Estou tentando testar esse módulo.Devo estar cometendo algum erro que eu não esteja vendo retangulo.pmteste.pl Erro:Can't use string ("altura") as a HASH ref while "strict refs" in use at C:/Perl64/lib/Class/Accessor.pm line 13. From: renato.cron em gmail.com Date: Fri, 11 Apr 2014 17:10:18 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] alguma diferença http://blogs.perl.org/users/michael_g_schwern/2011/03/and-the-fastest-oo-accessor-is.html 2014-04-11 17:00 GMT-03:00 Aureliano Guedes : De fato, percebi isso. Mas então o Class::Accessor não traz nada de novo?Como já uso o Moose não vi vantagem nenhuma no Class::Accessor. From: tiago.peczenyj em gmail.com Date: Fri, 11 Apr 2014 16:37:59 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] alguma diferença Moose tem muito mais features (lazy, delegators, roles) e plugins ( procure por MooseX:: ) do que o Class::Accessor, fora os hooks after / before / around. Moo é um subset do Moose que também tem muito mais features que o Class::Accessor. 2014-04-11 16:33 GMT-03:00 Aureliano Guedes : Monges, riam o quanto quiserem mas conheci hoje o Class::Accessor.Minha dúvida é: "Qual a diferença dele e do Moose?" Ao primeiro ver me parece a mesma coisa. _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Saravá, Renato CRONhttp://www.renatocron.com/blog/ @renato_cron _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Sat Apr 12 10:25:14 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Sat, 12 Apr 2014 14:25:14 -0300 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= In-Reply-To: References: Message-ID: veja este exemplo: my $mp = Foo->new({ name => "Marty", role => "JAPH" }); vc esqueceu os { } -- que são exigidos pelo Class::Accessor 2014-04-12 14:09 GMT-03:00 Aureliano Guedes : > Estou tentando testar esse módulo. > Devo estar cometendo algum erro que eu não esteja vendo > > retangulo.pm > teste.pl > > Erro: > Can't use string ("altura") as a HASH ref while "strict refs" in use at > C:/Perl6 > 4/lib/Class/Accessor.pm line 13. > > > > ------------------------------ > From: renato.cron em gmail.com > Date: Fri, 11 Apr 2014 17:10:18 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] alguma diferença > > > http://blogs.perl.org/users/michael_g_schwern/2011/03/and-the-fastest-oo-accessor-is.html > > > 2014-04-11 17:00 GMT-03:00 Aureliano Guedes : > > De fato, percebi isso. Mas então o Class::Accessor não traz nada de novo? > Como já uso o Moose não vi vantagem nenhuma no Class::Accessor. > > ------------------------------ > From: tiago.peczenyj em gmail.com > Date: Fri, 11 Apr 2014 16:37:59 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] alguma diferença > > Moose tem muito mais features (lazy, delegators, roles) e plugins ( > procure por MooseX:: ) do que o Class::Accessor, fora os hooks after / > before / around. > > Moo é um subset do Moose que também tem muito mais features que o > Class::Accessor. > > > 2014-04-11 16:33 GMT-03:00 Aureliano Guedes : > > Monges, > > riam o quanto quiserem mas conheci hoje o Class::Accessor. > Minha dúvida é: "Qual a diferença dele e do Moose?" > > Ao primeiro ver me parece a mesma coisa. > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sat Apr 12 10:47:29 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sat, 12 Apr 2014 17:47:29 +0000 Subject: [Rio-pm] =?iso-8859-1?q?alguma_diferen=E7a?= In-Reply-To: References: , , , , , , Message-ID: So consegui corrigir o erro fazendo isso: use base 'Class::Accessor'; Class::Accessor->mk_accessors (qw(altura largura)); From: tiago.peczenyj em gmail.com Date: Sat, 12 Apr 2014 14:25:14 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] alguma diferença veja este exemplo: my $mp = Foo->new({ name => "Marty", role => "JAPH" }); vc esqueceu os { } -- que são exigidos pelo Class::Accessor 2014-04-12 14:09 GMT-03:00 Aureliano Guedes : Estou tentando testar esse módulo.Devo estar cometendo algum erro que eu não esteja vendo retangulo.pm teste.pl Erro:Can't use string ("altura") as a HASH ref while "strict refs" in use at C:/Perl6 4/lib/Class/Accessor.pm line 13. From: renato.cron em gmail.com Date: Fri, 11 Apr 2014 17:10:18 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] alguma diferença http://blogs.perl.org/users/michael_g_schwern/2011/03/and-the-fastest-oo-accessor-is.html 2014-04-11 17:00 GMT-03:00 Aureliano Guedes : De fato, percebi isso. Mas então o Class::Accessor não traz nada de novo?Como já uso o Moose não vi vantagem nenhuma no Class::Accessor. From: tiago.peczenyj em gmail.com Date: Fri, 11 Apr 2014 16:37:59 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] alguma diferença Moose tem muito mais features (lazy, delegators, roles) e plugins ( procure por MooseX:: ) do que o Class::Accessor, fora os hooks after / before / around. Moo é um subset do Moose que também tem muito mais features que o Class::Accessor. 2014-04-11 16:33 GMT-03:00 Aureliano Guedes : Monges, riam o quanto quiserem mas conheci hoje o Class::Accessor.Minha dúvida é: "Qual a diferença dele e do Moose?" Ao primeiro ver me parece a mesma coisa. _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Saravá, Renato CRONhttp://www.renatocron.com/blog/ @renato_cron _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 15 09:33:16 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 15 Apr 2014 16:33:16 +0000 Subject: [Rio-pm] [DUVIDA] Array muito longo Message-ID: 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, -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Tue Apr 15 09:43:05 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 15 Apr 2014 13:43:05 -0300 Subject: [Rio-pm] [DUVIDA] Array muito longo In-Reply-To: References: Message-ID: Acho que isso depende do sistema operacional. Por exemplo se vc tem overcommit desligado o malloc (usado internamente pelo interpretador) nunca vai dar falta de memória é provavelmente vc vai fazer swap de memória em disco. Se vc tem menos memória que o necessário tens que pensar em alternativas como salvar em disco, banco de dados, etc. Se o resultado é previsível e imutável talvez vc poderia substituir o array por uma função + cache. Mas testa primeiro na sua máquina e vê o que dá. Em 15/04/2014 13:33, "Aureliano Guedes" escreveu: > 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 em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From creaktive em gmail.com Tue Apr 15 09:45:49 2014 From: creaktive em gmail.com (Stanislaw Pusep) Date: Tue, 15 Apr 2014 18:45:49 +0200 Subject: [Rio-pm] [DUVIDA] Array muito longo In-Reply-To: References: Message-ID: Memória RAM é o limite. Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays 2014-04-15 18:33 GMT+02:00 Aureliano Guedes : > Ola, monges. > > Gostaria de saber quais opções eu tenho para gravar um numero muito grande > de informações em um array. > > Exemplo, imagine que eu tenha uma rotina tosca como essa: > > sub multiplicador{ > my @ini = (100..999); > my $fim = 999; > my @memo > while ($fim != 100){ > foreach (@ini){ > my $m = $_ * $fim; > push (@memo, $m); > } > $fim--; > } > } > > Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 * > 999 ate 999*999. > Os resultados de cada multiplicação são jogados para um array. Ou seja, um > array grande pra caramba. > > Como faria para que @memo fosse capaz de guardar todos os valores? > > Qual é o limite de dados que posso normalmente guardar em um array? > > Obrigado, > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Tue Apr 15 09:48:19 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 15 Apr 2014 13:48:19 -0300 Subject: [Rio-pm] [DUVIDA] Array muito longo In-Reply-To: References: Message-ID: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, "Stanislaw Pusep" escreveu: > Memória RAM é o limite. > Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: > https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays > > > 2014-04-15 18:33 GMT+02:00 Aureliano Guedes : > >> Ola, monges. >> >> Gostaria de saber quais opções eu tenho para gravar um numero muito >> grande de informações em um array. >> >> Exemplo, imagine que eu tenha uma rotina tosca como essa: >> >> sub multiplicador{ >> my @ini = (100..999); >> my $fim = 999; >> my @memo >> while ($fim != 100){ >> foreach (@ini){ >> my $m = $_ * $fim; >> push (@memo, $m); >> } >> $fim--; >> } >> } >> >> Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 >> * 999 ate 999*999. >> Os resultados de cada multiplicação são jogados para um array. Ou seja, >> um array grande pra caramba. >> >> Como faria para que @memo fosse capaz de guardar todos os valores? >> >> Qual é o limite de dados que posso normalmente guardar em um array? >> >> Obrigado, >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 15 09:58:49 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 15 Apr 2014 13:58:49 -0300 Subject: [Rio-pm] [DUVIDA] Array muito longo Message-ID: Então. Eu queria evitar IO para nao perder em performance. Se eu usar um banco de dados ou cache nao sera um tipo de IO? Tiago Peczenyj escreveu: RAM não necessariamente é RAM física. Conta SWAP e isso degrada performance pq é IO em disco. Em 15/04/2014 13:46, "Stanislaw Pusep" escreveu: > Memória RAM é o limite. > Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: > https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays > > > 2014-04-15 18:33 GMT+02:00 Aureliano Guedes : > >> Ola, monges. >> >> Gostaria de saber quais opções eu tenho para gravar um numero muito >> grande de informações em um array. >> >> Exemplo, imagine que eu tenha uma rotina tosca como essa: >> >> sub multiplicador{ >> my @ini = (100..999); >> my $fim = 999; >> my @memo >> while ($fim != 100){ >> foreach (@ini){ >> my $m = $_ * $fim; >> push (@memo, $m); >> } >> $fim--; >> } >> } >> >> Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 >> * 999 ate 999*999. >> Os resultados de cada multiplicação são jogados para um array. Ou seja, >> um array grande pra caramba. >> >> Como faria para que @memo fosse capaz de guardar todos os valores? >> >> Qual é o limite de dados que posso normalmente guardar em um array? >> >> Obrigado, >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From tiago.peczenyj em gmail.com Tue Apr 15 10:01:11 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 15 Apr 2014 14:01:11 -0300 Subject: [Rio-pm] [DUVIDA] Array muito longo In-Reply-To: References: Message-ID: Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o IO ao máximo SE vc precisar. Em 15/04/2014 13:59, "Aureliano Guedes" escreveu: > Então. Eu queria evitar IO para nao perder em performance. > Se eu usar um banco de dados ou cache nao sera um tipo de IO? > > Tiago Peczenyj escreveu: > > RAM não necessariamente é RAM física. Conta SWAP e isso degrada > performance pq é IO em disco. > Em 15/04/2014 13:46, "Stanislaw Pusep" escreveu: > > Memória RAM é o limite. > Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: > https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays > > > 2014-04-15 18:33 GMT+02:00 Aureliano Guedes : > > Ola, monges. > > Gostaria de saber quais opções eu tenho para gravar um numero muito > grande de informações em um array. > > Exemplo, imagine que eu tenha uma rotina tosca como essa: > > sub multiplicador{ > my @ini = (100..999); > my $fim = 999; > my @memo > while ($fim != 100){ > foreach (@ini){ > my $m = $_ * $fim; > push (@memo, $m); > } > $fim--; > } > } > > Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 > * 999 ate 999*999. > Os resultados de cada multiplicação são jogados para um array. Ou seja, um > array grande pra caramba. > > Como faria para que @memo fosse capaz de guardar todos os valores? > > Qual é o limite de dados que posso normalmente guardar em um array? > > Obrigado, > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 15 10:03:50 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 15 Apr 2014 14:03:50 -0300 Subject: [Rio-pm] [DUVIDA] Array muito longo Message-ID: Entendi. Obrigado. Tiago Peczenyj escreveu: Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o IO ao máximo SE vc precisar. Em 15/04/2014 13:59, "Aureliano Guedes" escreveu: > Então. Eu queria evitar IO para nao perder em performance. > Se eu usar um banco de dados ou cache nao sera um tipo de IO? > > Tiago Peczenyj escreveu: > > RAM não necessariamente é RAM física. Conta SWAP e isso degrada > performance pq é IO em disco. > Em 15/04/2014 13:46, "Stanislaw Pusep" escreveu: > > Memória RAM é o limite. > Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: > https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays > > > 2014-04-15 18:33 GMT+02:00 Aureliano Guedes : > > Ola, monges. > > Gostaria de saber quais opções eu tenho para gravar um numero muito > grande de informações em um array. > > Exemplo, imagine que eu tenha uma rotina tosca como essa: > > sub multiplicador{ > my @ini = (100..999); > my $fim = 999; > my @memo > while ($fim != 100){ > foreach (@ini){ > my $m = $_ * $fim; > push (@memo, $m); > } > $fim--; > } > } > > Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 > * 999 ate 999*999. > Os resultados de cada multiplicação são jogados para um array. Ou seja, um > array grande pra caramba. > > Como faria para que @memo fosse capaz de guardar todos os valores? > > Qual é o limite de dados que posso normalmente guardar em um array? > > Obrigado, > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From tiago.peczenyj em gmail.com Tue Apr 15 10:21:16 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 15 Apr 2014 14:21:16 -0300 Subject: [Rio-pm] [DUVIDA] Array muito longo In-Reply-To: References: Message-ID: vc testou ao menos: https://gist.github.com/peczenyj/10749501 aqui rodou de boa e consumiu quase nada 2014-04-15 14:03 GMT-03:00 Aureliano Guedes : > Entendi. Obrigado. > > Tiago Peczenyj escreveu: > > Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o > IO ao máximo SE vc precisar. > Em 15/04/2014 13:59, "Aureliano Guedes" > escreveu: > > Então. Eu queria evitar IO para nao perder em performance. > Se eu usar um banco de dados ou cache nao sera um tipo de IO? > > Tiago Peczenyj escreveu: > > RAM não necessariamente é RAM física. Conta SWAP e isso degrada > performance pq é IO em disco. > Em 15/04/2014 13:46, "Stanislaw Pusep" escreveu: > > Memória RAM é o limite. > Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: > https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays > > > 2014-04-15 18:33 GMT+02:00 Aureliano Guedes : > > Ola, monges. > > Gostaria de saber quais opções eu tenho para gravar um numero muito > grande de informações em um array. > > Exemplo, imagine que eu tenha uma rotina tosca como essa: > > sub multiplicador{ > my @ini = (100..999); > my $fim = 999; > my @memo > while ($fim != 100){ > foreach (@ini){ > my $m = $_ * $fim; > push (@memo, $m); > } > $fim--; > } > } > > Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 > * 999 ate 999*999. > Os resultados de cada multiplicação são jogados para um array. Ou seja, um > array grande pra caramba. > > Como faria para que @memo fosse capaz de guardar todos os valores? > > Qual é o limite de dados que posso normalmente guardar em um array? > > Obrigado, > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 15 10:31:18 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 15 Apr 2014 14:31:18 -0300 Subject: [Rio-pm] [DUVIDA] Array muito longo Message-ID: Tentei. Mas o pc que tava usando era um AMD Athon 1.6GHz 2gb RAM de 2007 forcadamente estrupado por um Windows 8.1 (Deus sabe porque fizeram isso). Depois tentei nesse servidor http://www.compileonline.com/execute_perl_online.php Tiago Peczenyj escreveu: vc testou ao menos: https://gist.github.com/peczenyj/10749501 aqui rodou de boa e consumiu quase nada 2014-04-15 14:03 GMT-03:00 Aureliano Guedes : > Entendi. Obrigado. > > Tiago Peczenyj escreveu: > > Sim, mas ai você passa o Devel::NYTProf e estuda os gargalos, reduzido o > IO ao máximo SE vc precisar. > Em 15/04/2014 13:59, "Aureliano Guedes" > escreveu: > > Então. Eu queria evitar IO para nao perder em performance. > Se eu usar um banco de dados ou cache nao sera um tipo de IO? > > Tiago Peczenyj escreveu: > > RAM não necessariamente é RAM física. Conta SWAP e isso degrada > performance pq é IO em disco. > Em 15/04/2014 13:46, "Stanislaw Pusep" escreveu: > > Memória RAM é o limite. > Vc pode usar o DBM::Deep, aí o seu storage será o limite. Mas cuidado: > https://metacpan.org/pod/distribution/DBM-Deep/lib/DBM/Deep.pod#Large-Arrays > > > 2014-04-15 18:33 GMT+02:00 Aureliano Guedes : > > Ola, monges. > > Gostaria de saber quais opções eu tenho para gravar um numero muito > grande de informações em um array. > > Exemplo, imagine que eu tenha uma rotina tosca como essa: > > sub multiplicador{ > my @ini = (100..999); > my $fim = 999; > my @memo > while ($fim != 100){ > foreach (@ini){ > my $m = $_ * $fim; > push (@memo, $m); > } > $fim--; > } > } > > Essa rotina multiplica 100 * 100 ... 100 * 999, depois 101 * 100 ... 101 > * 999 ate 999*999. > Os resultados de cada multiplicação são jogados para um array. Ou seja, um > array grande pra caramba. > > Como faria para que @memo fosse capaz de guardar todos os valores? > > Qual é o limite de dados que posso normalmente guardar em um array? > > Obrigado, > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Thu Apr 17 17:45:30 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Fri, 18 Apr 2014 00:45:30 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Message-ID: Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado.E como estamos em véspera de pascoa.Proponho uma brincadeira.Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Thu Apr 17 17:59:10 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Thu, 17 Apr 2014 21:59:10 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando lido > de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Thu Apr 17 18:02:10 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Thu, 17 Apr 2014 22:02:10 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Message-ID: Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando lido > de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From blabos em gmail.com Thu Apr 17 18:23:59 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Thu, 17 Apr 2014 22:23:59 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Thu Apr 17 18:25:48 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Thu, 17 Apr 2014 22:25:48 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Message-ID: Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Tue Apr 22 09:13:15 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 22 Apr 2014 16:13:15 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From viniciusmiasato em gmail.com Tue Apr 22 11:06:36 2014 From: viniciusmiasato em gmail.com (=?UTF-8?Q?Vin=C3=ADcius_Miasato?=) Date: Tue, 22 Apr 2014 15:06:36 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 22 11:09:22 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 22 Apr 2014 15:09:22 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Message-ID: Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Fri Apr 25 19:21:58 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sat, 26 Apr 2014 02:21:58 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From juniiior182 em gmail.com Fri Apr 25 19:26:06 2014 From: juniiior182 em gmail.com (Junior Moraes) Date: Fri, 25 Apr 2014 23:26:06 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Sat Apr 26 14:39:15 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Sat, 26 Apr 2014 18:39:15 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: >> http://pastebin.com/DLdPwAkp >> >> ------------------------------ >> Date: Tue, 22 Apr 2014 15:09:22 -0300 >> >> From: guedes_1000 em hotmail.com >> To: rio-pm em pm.org >> Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo >> >> Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em >> uma única linha. >> >> Vinícius Miasato escreveu: >> >> Opa, >> >> parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código >> funciona, mas o jogo de GOLF ainda está de pé? >> >> atenciosamente, >> Vinícius Miasato >> >> >> Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: >> >> http://ideone.com/LjvMRz >> >> 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) >> >> ------------------------------ >> Date: Thu, 17 Apr 2014 22:25:48 -0300 >> From: guedes_1000 em hotmail.com >> To: rio-pm em pm.org >> Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo >> >> >> Boa ideia. Vou tentar. >> >> Blabos de Blebe escreveu: >> >> Que tal o menor palíndromo primo maior que time()? >> >> >> 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : >> >> Pode ficar menor. >> say '906609' >> >> Tiago Peczenyj escreveu: >> >> sub palindromo { 906609 } >> >> >> 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : >> >> Ola monges, >> >> Nos últimos meses tenho visto nosso grupo um pouco parado. >> E como estamos em véspera de pascoa. >> Proponho uma brincadeira. >> Jogar golf com o Desafio do Maior Palíndromo. >> >> O desafio é simples, achar o maior número palíndromo (ou seja, quando >> lido de trás pra frente continua o mesmo) que seja resultado de uma >> multiplicação de dois números de 3 dígitos. >> >> O resultado deverá ser: 906609 >> >> Eis a minha tacada: >> >> for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i >> if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> -- >> Tiago B. Peczenyj >> Linux User #405772 >> >> http://about.me/peczenyj >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ Rio-pm mailing list >> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> _______________________________________________ Rio-pm mailing list >> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ Rio-pm mailing list >> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> _______________________________________________ Rio-pm mailing list >> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sat Apr 26 19:44:57 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sun, 27 Apr 2014 02:44:57 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: , , , Message-ID: Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: blabos em gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sat Apr 26 23:06:49 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sun, 27 Apr 2014 06:06:49 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: , , , , , , , Message-ID: Esquece a ultima versão.Divisão é pesado para o processador. Fiz uma versão menor com menos divisões que parece ter uma melhor performance. http://pastebin.com/jrjEv3eh From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Sun, 27 Apr 2014 02:44:57 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: blabos em gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Sun Apr 27 06:15:09 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Sun, 27 Apr 2014 10:15:09 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos". Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sun Apr 27 10:00:02 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sun, 27 Apr 2014 14:00:02 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Message-ID: Buss, Obrigado por analisar o código. Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou. Essa heurística foi apenas experimental. E ainda pode ser otimizada. Nao sou muito habilidoso quando se trata de achar esses tipos de erros. Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou. Vou ver o que posso fazer para resolver esses bugs. Obrigado pela análise. Bruno Buss escreveu: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos". Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Sun Apr 27 16:49:48 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sun, 27 Apr 2014 23:49:48 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Bruno, Tratei a maioria dos erros e ainda ganhei em desempenho.O problema é que tem um bug que não consegui tratar. Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou <96 retorna corretamente 101. http://pastebin.com/3QVnbjbP Date: Sun, 27 Apr 2014 14:00:02 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Buss, Obrigado por analisar o código. Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou. Essa heurística foi apenas experimental. E ainda pode ser otimizada. Nao sou muito habilidoso quando se trata de achar esses tipos de erros. Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou. Vou ver o que posso fazer para resolver esses bugs. Obrigado pela análise. Bruno Buss escreveu: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos". Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : Esquece a ultima versão. Divisão é pesado para o processador. Fiz uma versão menor com menos divisões que parece ter uma melhor performance. http://pastebin.com/jrjEv3eh From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Sun, 27 Apr 2014 02:44:57 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: blabos em gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Mon Apr 28 17:24:50 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Mon, 28 Apr 2014 21:24:50 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: O problema é que quando time() está entre 89 e 96, next_prime($time) retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a resposta correta. O mesmo problema de antes, sua heurística para tentar pular números na sequencia de primos/palíndromos ainda não está muito boa. Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a metade dos dígitos do numero, porque você não usa a substr()? :-) 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 29 13:34:56 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 29 Apr 2014 20:34:56 +0000 Subject: [Rio-pm] =?iso-8859-1?q?=5BDUVIDA=5D_Chamar_fun=E7=E3o_sem_declar?= =?iso-8859-1?q?ar_construtor?= Message-ID: Ola monges, Tenho uma pequena dúvida.Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria das vezes o seguinte: use Modulo::Modulo; my $p = Modulo::Modulo->new();$p->funcao();.... isso porque no modulo tem um contrutor ou foi gerado de presente ao autor quando usado o Moose ou semelhante. A questão é que alguns poucos módulos permitem que seja feito diretamente use Modulo::Modulo; my $p;$p->funcao();.... A dúvida é: como o autor do módulo faz para que permita fazer a chamada das funções sem precisar disso:my $p = Modulo::Modulo->new(); -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Tue Apr 29 13:36:23 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 29 Apr 2014 17:36:23 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: de exemplos. 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > Ola monges, > > Tenho uma pequena dúvida. > Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria > das vezes o seguinte: > > use Modulo::Modulo; > > my $p = Modulo::Modulo->new(); > $p->funcao(); > .... > > isso porque no modulo tem um contrutor ou foi gerado de presente ao autor > quando usado o Moose ou semelhante. > > A questão é que alguns poucos módulos permitem que seja feito diretamente > > use Modulo::Modulo; > > my $p; > $p->funcao(); > .... > > A dúvida é: como o autor do módulo faz para que permita fazer a chamada > das funções sem precisar disso: > my $p = Modulo::Modulo->new(); > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 29 13:40:04 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 29 Apr 2014 20:40:04 +0000 Subject: [Rio-pm] =?iso-8859-1?q?=5BDUVIDA=5D_Chamar_fun=E7=E3o_sem_declar?= =?iso-8859-1?q?ar_construtor?= In-Reply-To: References: , Message-ID: #!/usr/bin/perl use strict;use warnings;use Math::Prime::Util ':all'; print "ok" if (is_prime($ARGV[0])); From: tiago.peczenyj em gmail.com Date: Tue, 29 Apr 2014 17:36:23 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor de exemplos. 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : Ola monges, Tenho uma pequena dúvida.Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria das vezes o seguinte: use Modulo::Modulo; my $p = Modulo::Modulo->new();$p->funcao();.... isso porque no modulo tem um contrutor ou foi gerado de presente ao autor quando usado o Moose ou semelhante. A questão é que alguns poucos módulos permitem que seja feito diretamente use Modulo::Modulo; my $p;$p->funcao();.... A dúvida é: como o autor do módulo faz para que permita fazer a chamada das funções sem precisar disso:my $p = Modulo::Modulo->new(); _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From junior em fvox.com.br Tue Apr 29 13:40:10 2014 From: junior em fvox.com.br (Junior Moraes) Date: Tue, 29 Apr 2014 17:40:10 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Hi. É importante notar que, desta forma, o $self não aparece nos parâmetros recebidos pelo método acp(). https://gist.github.com/fvox/e27792a65b21e763292d []'s Em 29 de abril de 2014 17:36, Tiago Peczenyj escreveu: > de exemplos. > > > > > 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > >> Ola monges, >> >> Tenho uma pequena dúvida. >> Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria >> das vezes o seguinte: >> >> use Modulo::Modulo; >> >> my $p = Modulo::Modulo->new(); >> $p->funcao(); >> .... >> >> isso porque no modulo tem um contrutor ou foi gerado de presente ao autor >> quando usado o Moose ou semelhante. >> >> A questão é que alguns poucos módulos permitem que seja feito diretamente >> >> use Modulo::Modulo; >> >> my $p; >> $p->funcao(); >> .... >> >> A dúvida é: como o autor do módulo faz para que permita fazer a chamada >> das funções sem precisar disso: >> my $p = Modulo::Modulo->new(); >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- ==================================== Junior "fvox" Moraes Perl Programmer Linux Reg. #557527 junior[at]fvox[dot]com[dot]br fb[dot]com/fvox twitter[dot]com/fvox ==================================== -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From junior em fvox.com.br Tue Apr 29 13:40:51 2014 From: junior em fvox.com.br (Junior Moraes) Date: Tue, 29 Apr 2014 17:40:51 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Hi. Ahh, aí vc tem que ler sobre o Exporter! http://perldoc.perl.org/Exporter.html []'s Em 29 de abril de 2014 17:40, Aureliano Guedes escreveu: > #!/usr/bin/perl > > use strict; > use warnings; > use Math::Prime::Util ':all'; > > print "ok" if (is_prime($ARGV[0])); > > ------------------------------ > From: tiago.peczenyj em gmail.com > Date: Tue, 29 Apr 2014 17:36:23 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > > de exemplos. > > > > > 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Tenho uma pequena dúvida. > Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria > das vezes o seguinte: > > use Modulo::Modulo; > > my $p = Modulo::Modulo->new(); > $p->funcao(); > .... > > isso porque no modulo tem um contrutor ou foi gerado de presente ao autor > quando usado o Moose ou semelhante. > > A questão é que alguns poucos módulos permitem que seja feito diretamente > > use Modulo::Modulo; > > my $p; > $p->funcao(); > .... > > A dúvida é: como o autor do módulo faz para que permita fazer a chamada > das funções sem precisar disso: > my $p = Modulo::Modulo->new(); > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- ==================================== Junior "fvox" Moraes Perl Programmer Linux Reg. #557527 junior[at]fvox[dot]com[dot]br fb[dot]com/fvox twitter[dot]com/fvox ==================================== -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Tue Apr 29 13:43:22 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 29 Apr 2014 17:43:22 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: isto é uma subrotina exportada onde vc viu my $p; $p->algumacoisa; ? 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : > #!/usr/bin/perl > > use strict; > use warnings; > use Math::Prime::Util ':all'; > > print "ok" if (is_prime($ARGV[0])); > > ------------------------------ > From: tiago.peczenyj em gmail.com > Date: Tue, 29 Apr 2014 17:36:23 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > > de exemplos. > > > > > 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Tenho uma pequena dúvida. > Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria > das vezes o seguinte: > > use Modulo::Modulo; > > my $p = Modulo::Modulo->new(); > $p->funcao(); > .... > > isso porque no modulo tem um contrutor ou foi gerado de presente ao autor > quando usado o Moose ou semelhante. > > A questão é que alguns poucos módulos permitem que seja feito diretamente > > use Modulo::Modulo; > > my $p; > $p->funcao(); > .... > > A dúvida é: como o autor do módulo faz para que permita fazer a chamada > das funções sem precisar disso: > my $p = Modulo::Modulo->new(); > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 29 13:57:01 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 29 Apr 2014 20:57:01 +0000 Subject: [Rio-pm] =?iso-8859-1?q?=5BDUVIDA=5D_Chamar_fun=E7=E3o_sem_declar?= =?iso-8859-1?q?ar_construtor?= In-Reply-To: References: , , , Message-ID: Errei nesse exemplo, seria my $p = algumacoisa(); Mas ok, o Junior falou do 'Exporter', então o que eu to tentando fazer é:package Palindrome;use strict;use Exporter 'import';@EXPORT_OK = qw(is_palindrome);sub is_palindrome {return 1 if ($_[0] == reverse $_[0]);}1; mas quando tento use Palindrome 'all';print "ok" if (is_palindrome($ARGV[0])); e executo na shell 'perl exemplo.pl 111' ou qualquer outro número palíndromo ou não, não imprime "ok", apesar de não gerar nenhuma mensagem de erro. From: tiago.peczenyj em gmail.com Date: Tue, 29 Apr 2014 17:43:22 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor isto é uma subrotina exportada onde vc viu my $p; $p->algumacoisa; ? 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : #!/usr/bin/perl use strict;use warnings;use Math::Prime::Util ':all'; print "ok" if (is_prime($ARGV[0])); From: tiago.peczenyj em gmail.com Date: Tue, 29 Apr 2014 17:36:23 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor de exemplos. 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : Ola monges, Tenho uma pequena dúvida.Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria das vezes o seguinte: use Modulo::Modulo; my $p = Modulo::Modulo->new();$p->funcao();.... isso porque no modulo tem um contrutor ou foi gerado de presente ao autor quando usado o Moose ou semelhante. A questão é que alguns poucos módulos permitem que seja feito diretamente use Modulo::Modulo; my $p;$p->funcao();.... A dúvida é: como o autor do módulo faz para que permita fazer a chamada das funções sem precisar disso:my $p = Modulo::Modulo->new(); _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Tue Apr 29 14:01:14 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 29 Apr 2014 18:01:14 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: ok tem uma biblioteca chamada 'autobox' que pode fazer umas bruxarias. achei que poderia ser o caso 2014-04-29 17:57 GMT-03:00 Aureliano Guedes : > Errei nesse exemplo, seria my $p = algumacoisa(); > > Mas ok, o Junior falou do 'Exporter', então o que eu to tentando fazer é: > package Palindrome; > use strict; > use Exporter 'import'; > @EXPORT_OK = qw(is_palindrome); > sub is_palindrome { > return 1 if ($_[0] == reverse $_[0]); > } > 1; > > mas quando tento > > use Palindrome 'all'; > print "ok" if (is_palindrome($ARGV[0])); > > e executo na shell 'perl exemplo.pl 111' ou qualquer outro número > palíndromo ou não, não imprime "ok", apesar de não gerar nenhuma mensagem > de erro. > > ------------------------------ > From: tiago.peczenyj em gmail.com > Date: Tue, 29 Apr 2014 17:43:22 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > isto é uma subrotina exportada > > onde vc viu > > my $p; > > $p->algumacoisa; > > ? > > > 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : > > #!/usr/bin/perl > > use strict; > use warnings; > use Math::Prime::Util ':all'; > > print "ok" if (is_prime($ARGV[0])); > > ------------------------------ > From: tiago.peczenyj em gmail.com > Date: Tue, 29 Apr 2014 17:36:23 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > > de exemplos. > > > > > 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Tenho uma pequena dúvida. > Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria > das vezes o seguinte: > > use Modulo::Modulo; > > my $p = Modulo::Modulo->new(); > $p->funcao(); > .... > > isso porque no modulo tem um contrutor ou foi gerado de presente ao autor > quando usado o Moose ou semelhante. > > A questão é que alguns poucos módulos permitem que seja feito diretamente > > use Modulo::Modulo; > > my $p; > $p->funcao(); > .... > > A dúvida é: como o autor do módulo faz para que permita fazer a chamada > das funções sem precisar disso: > my $p = Modulo::Modulo->new(); > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Apr 29 14:06:38 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 29 Apr 2014 18:06:38 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Opa, A expressão: Modulo::funcao( arg1, arg2 ); Significa: Invoque a função 'funcao' do módulo 'Modulo', passando como argumentos 'arg1', 'arg1' *E* especificando o namespace completo. Dentro da sub 'funcao' se você fizer algo como: sub funcao { use Data::Dumper; warn Dumper \@_ } Vai ver que só existem dois argumentos, 'arg1' e 'arg2', respectivamente. O que é ligeiramente diferente de: Modulo->funcao(arg1, arg2); Isso significa, invoque a função 'funcao' do módulo 'Modulo', passando 'arg1' e 'arg2', *MAS*, passe *implicitamente* o nome da "classe" (no caso 'Modulo') como primeiro argumento. Assim, se você observar o resultado do Dumper, no mesmo código vai ver que agora há *TRÊS* argumentos, e não dois. É por isso que existem documentações antigas, onde a invocação do 'construtor' (que convencionamos se chamar new()) pode ser feita assim: my $obj = new Modulo; Vejam, portanto, que são equivalentes sintaticamente: my $obj = new Modulo; my $obj = Modulo->new; Exemplo do caso do Aureliano: https://metacpan.org/pod/File::Spec Exemplo de documentação com a forma menos idiomática: https://metacpan.org/pod/String::Trigram []'s 2014-04-29 17:43 GMT-03:00 Tiago Peczenyj : > isto é uma subrotina exportada > > onde vc viu > > my $p; > > $p->algumacoisa; > > ? > > > 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : > > #!/usr/bin/perl >> >> use strict; >> use warnings; >> use Math::Prime::Util ':all'; >> >> print "ok" if (is_prime($ARGV[0])); >> >> ------------------------------ >> From: tiago.peczenyj em gmail.com >> Date: Tue, 29 Apr 2014 17:36:23 -0300 >> To: rio-pm em pm.org >> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >> >> >> de exemplos. >> >> >> >> >> 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : >> >> Ola monges, >> >> Tenho uma pequena dúvida. >> Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria >> das vezes o seguinte: >> >> use Modulo::Modulo; >> >> my $p = Modulo::Modulo->new(); >> $p->funcao(); >> .... >> >> isso porque no modulo tem um contrutor ou foi gerado de presente ao autor >> quando usado o Moose ou semelhante. >> >> A questão é que alguns poucos módulos permitem que seja feito diretamente >> >> use Modulo::Modulo; >> >> my $p; >> $p->funcao(); >> .... >> >> A dúvida é: como o autor do módulo faz para que permita fazer a chamada >> das funções sem precisar disso: >> my $p = Modulo::Modulo->new(); >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> -- >> Tiago B. Peczenyj >> Linux User #405772 >> >> http://about.me/peczenyj >> >> _______________________________________________ Rio-pm mailing list >> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Apr 29 14:07:24 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 29 Apr 2014 18:07:24 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Só mais uma coisa, Isso não tem nada a ver com Exporter. []'s 2014-04-29 18:06 GMT-03:00 Blabos de Blebe : > Opa, > > A expressão: > > Modulo::funcao( arg1, arg2 ); > > Significa: > > Invoque a função 'funcao' do módulo 'Modulo', passando como argumentos > 'arg1', 'arg1' *E* especificando o namespace completo. > > Dentro da sub 'funcao' se você fizer algo como: > > sub funcao { > use Data::Dumper; > warn Dumper \@_ > } > > Vai ver que só existem dois argumentos, 'arg1' e 'arg2', respectivamente. > > O que é ligeiramente diferente de: > > Modulo->funcao(arg1, arg2); > > Isso significa, invoque a função 'funcao' do módulo 'Modulo', passando > 'arg1' e 'arg2', *MAS*, passe *implicitamente* o nome da "classe" (no caso > 'Modulo') como primeiro argumento. > > Assim, se você observar o resultado do Dumper, no mesmo código vai ver que > agora há *TRÊS* argumentos, e não dois. > > É por isso que existem documentações antigas, onde a invocação do > 'construtor' (que convencionamos se chamar new()) pode ser feita assim: > > my $obj = new Modulo; > > Vejam, portanto, que são equivalentes sintaticamente: > > my $obj = new Modulo; > my $obj = Modulo->new; > > Exemplo do caso do Aureliano: > > https://metacpan.org/pod/File::Spec > > Exemplo de documentação com a forma menos idiomática: > > https://metacpan.org/pod/String::Trigram > > []'s > > > > > 2014-04-29 17:43 GMT-03:00 Tiago Peczenyj : > > isto é uma subrotina exportada >> >> onde vc viu >> >> my $p; >> >> $p->algumacoisa; >> >> ? >> >> >> 2014-04-29 17:40 GMT-03:00 Aureliano Guedes : >> >> #!/usr/bin/perl >>> >>> use strict; >>> use warnings; >>> use Math::Prime::Util ':all'; >>> >>> print "ok" if (is_prime($ARGV[0])); >>> >>> ------------------------------ >>> From: tiago.peczenyj em gmail.com >>> Date: Tue, 29 Apr 2014 17:36:23 -0300 >>> To: rio-pm em pm.org >>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>> >>> >>> de exemplos. >>> >>> >>> >>> >>> 2014-04-29 17:34 GMT-03:00 Aureliano Guedes : >>> >>> Ola monges, >>> >>> Tenho uma pequena dúvida. >>> Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria >>> das vezes o seguinte: >>> >>> use Modulo::Modulo; >>> >>> my $p = Modulo::Modulo->new(); >>> $p->funcao(); >>> .... >>> >>> isso porque no modulo tem um contrutor ou foi gerado de presente ao >>> autor quando usado o Moose ou semelhante. >>> >>> A questão é que alguns poucos módulos permitem que seja feito diretamente >>> >>> use Modulo::Modulo; >>> >>> my $p; >>> $p->funcao(); >>> .... >>> >>> A dúvida é: como o autor do módulo faz para que permita fazer a chamada >>> das funções sem precisar disso: >>> my $p = Modulo::Modulo->new(); >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> -- >>> Tiago B. Peczenyj >>> Linux User #405772 >>> >>> http://about.me/peczenyj >>> >>> _______________________________________________ Rio-pm mailing list >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> >> -- >> Tiago B. Peczenyj >> Linux User #405772 >> >> http://about.me/peczenyj >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From juniiior182 em gmail.com Tue Apr 29 14:15:00 2014 From: juniiior182 em gmail.com (Junior Moraes) Date: Tue, 29 Apr 2014 18:15:00 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Hi. Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: > Só mais uma coisa, > > Isso não tem nada a ver com Exporter. > > []'s > Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la possível ser chamada à partir de outro script bastando dar um use no módulo, e não como invocar um método estaticamente como eu pensei. Creio que o jeito mais roots seria: *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = (qw(Exporter));@EXPORT = qw(acp); sub acp {* *...* *}* 1; Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função acp() estará acessível, assim como no Math::Prime::Util. []'s _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 29 14:32:52 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 29 Apr 2014 21:32:52 +0000 Subject: [Rio-pm] =?iso-8859-1?q?=5BDUVIDA=5D_Chamar_fun=E7=E3o_sem_declar?= =?iso-8859-1?q?ar_construtor?= In-Reply-To: References: , , , , , , Message-ID: Funcionou da forma que o Junior passou. Obrigado. Experimentei fazer o dumper como o Bablos falou. Realmente são formas diferentes, sendo que Modulo::funcao dispensa declarar o construtor. From: juniiior182 em gmail.com Date: Tue, 29 Apr 2014 18:15:00 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor Hi. Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: Só mais uma coisa, Isso não tem nada a ver com Exporter. []'s Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la possível ser chamada à partir de outro script bastando dar um use no módulo, e não como invocar um método estaticamente como eu pensei. Creio que o jeito mais roots seria: package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA = (qw(Exporter)); @EXPORT = qw(acp); sub acp { ... } 1; Deste modo, Aureliano, bastará dar um use em Modulo::Modulo e a função acp() estará acessível, assim como no Math::Prime::Util. []'s _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Apr 29 14:35:35 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 29 Apr 2014 18:35:35 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Opa, Junior, a forma que você sugeriu é um dialeto mais antigo. Hoje em dia (e desde a época do Perl Best Practices, pg 407), o recomendado é herdar do módulo Exporter, e utilizar o @EXPORT_OK ao invés do @EXPORT diretamente. Eu vou ficar devendo todas as referências mas vou deixar a do MPB: http://modernperlbooks.com/books/modern_perl_2014/09-managing-perl-programs.html O mais atual seria algo como: package Foo; use base 'Exporter'; ## Ou use parent, dependendo da versão do Perl our @EXPORT_OK = qw{ func1 func2 }; sub func1 {} ... 1; []'s 2014-04-29 18:15 GMT-03:00 Junior Moraes : > Hi. > > Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: > > Só mais uma coisa, >> >> Isso não tem nada a ver com Exporter. >> >> []'s >> > > Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la > possível ser chamada à partir de outro script bastando dar um use no > módulo, e não como invocar um método estaticamente como eu pensei. > > Creio que o jeito mais roots seria: > > > > > > > > > *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = > (qw(Exporter));@EXPORT = qw(acp); sub acp {* > > *...* > *}* > 1; > > Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função > acp() estará acessível, assim como no Math::Prime::Util. > > []'s > > _______________________________________________ > >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Tue Apr 29 14:42:11 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 29 Apr 2014 18:42:11 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: não é 'dispensa declarar o construtor'. não tem nada haver uma coisa com a outra. Modulo::função, vc esta acessando uma função no 'namespace' ou 'package' Modulo Modulo->funcao vc esta acessando usando um syntax sugar pra emular um 'metodo estático', passando o nome do modulo, por exemplo. $objeto->função vc esta invocando um metodo em uma referencia abençoada ( e a função pode nem existir ). vc pode ter um Modulo::funcao que atue como um construtor! 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : > Funcionou da forma que o Junior passou. > > Obrigado. > > Experimentei fazer o dumper como o Bablos falou. Realmente são formas > diferentes, sendo que Modulo::funcao dispensa declarar o construtor. > > ------------------------------ > From: juniiior182 em gmail.com > Date: Tue, 29 Apr 2014 18:15:00 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > Hi. > > Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: > > Só mais uma coisa, > > Isso não tem nada a ver com Exporter. > > []'s > > > Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la > possível ser chamada à partir de outro script bastando dar um use no > módulo, e não como invocar um método estaticamente como eu pensei. > > Creio que o jeito mais roots seria: > > > > > > > > > *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = > (qw(Exporter));@EXPORT = qw(acp); sub acp {* > > *...* > *}* > 1; > > Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função > acp() estará acessível, assim como no Math::Prime::Util. > > []'s > > _______________________________________________ > > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Apr 29 14:50:04 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 29 Apr 2014 18:50:04 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: > que Modulo::funcao dispensa declarar o construtor. Não dispensa. Não tem nada a ver. Não misture as coisas. Construtor é um conceito associado a um método especial utilizado para inicializar objetos, ou seja, quando você está utilizando uma interface orientada a objetos. Em C++, o Construtor tem que ser um método cujo nome é o nome da classe. Em Python é outro padrão. Em Perl isso é livre, um construtor, ou seja um inicializador de objetos pode ser qualquer método que eventualmente invoque a sub bless(). http://perldoc.perl.org/functions/bless.html Em Perl convencionamos, pra ninguém ficar louco, que o construtor chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. Modulo::funcao() é uma chamada 'procedural' aplicando o namespace completo FQN. Não tem nada a ver com objetos, ou construtores. *** No seu caso, como bem observado pelo Junior, o que você quer é não ter que passar o namespace completo, por isso o uso do Exporter, que nada mais faz do que tornar a sua função conhecida no namespace atual. Exporter também não tem nada a ver com objetos. A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por default. Nesse caso, ao usar o seu módulo você precisa fazer: use Modulo qw{ funcao }; Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de exportar apenas o necessário pra não correr risco de dar conflito com outra função de mesmo nome de outro módulo". Mas é só uma politica de boa vizinhança, não quer dizer, necessariamente, errado. Depende do seu contexto. *** Como em Perl as coisas são mais livres, você vai ver casos de um package que tem construtor, métodos *E* funções comuns, ou seja, tanto uma interface OO quanto procedural. Exemplo: https://metacpan.org/pod/String::Trigram Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma interface OO *E* uma interface procedural, pra ficar ao gosto do cliente escolher. Outro exemplo: https://metacpan.org/pod/CGI Por essas e outras, *EU*, acho meio confuso ter Perl como primeira linguagem, pois ela te dar liberdades que em não tendo todos os conceitos bem sedimentados, *pode* confundir. O importante é, em estar estudando, não parar no estágio "ah consegui fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". []'s 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : > Funcionou da forma que o Junior passou. > > Obrigado. > > Experimentei fazer o dumper como o Bablos falou. Realmente são formas > diferentes, sendo que Modulo::funcao dispensa declarar o construtor. > > ------------------------------ > From: juniiior182 em gmail.com > Date: Tue, 29 Apr 2014 18:15:00 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > Hi. > > Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: > > Só mais uma coisa, > > Isso não tem nada a ver com Exporter. > > []'s > > > Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la > possível ser chamada à partir de outro script bastando dar um use no > módulo, e não como invocar um método estaticamente como eu pensei. > > Creio que o jeito mais roots seria: > > > > > > > > > *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = > (qw(Exporter));@EXPORT = qw(acp); sub acp {* > > *...* > *}* > 1; > > Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função > acp() estará acessível, assim como no Math::Prime::Util. > > []'s > > _______________________________________________ > > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Apr 29 14:52:17 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 29 Apr 2014 18:52:17 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Pacman, copião :) 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : > > que Modulo::funcao dispensa declarar o construtor. > > Não dispensa. Não tem nada a ver. Não misture as coisas. > > Construtor é um conceito associado a um método especial utilizado para > inicializar objetos, ou seja, quando você está utilizando uma interface > orientada a objetos. > > Em C++, o Construtor tem que ser um método cujo nome é o nome da classe. > > Em Python é outro padrão. > > Em Perl isso é livre, um construtor, ou seja um inicializador de objetos > pode ser qualquer método que eventualmente invoque a sub bless(). > > http://perldoc.perl.org/functions/bless.html > > Em Perl convencionamos, pra ninguém ficar louco, que o construtor chama-se > new. Mas não existe palavra reservada ou obrigatoriedade nisso. > > Modulo::funcao() é uma chamada 'procedural' aplicando o namespace completo > FQN. Não tem nada a ver com objetos, ou construtores. > > *** > > No seu caso, como bem observado pelo Junior, o que você quer é não ter que > passar o namespace completo, por isso o uso do Exporter, que nada mais faz > do que tornar a sua função conhecida no namespace atual. > > Exporter também não tem nada a ver com objetos. > > A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por > default. Nesse caso, ao usar o seu módulo você precisa fazer: > > use Modulo qw{ funcao }; > > Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de > exportar apenas o necessário pra não correr risco de dar conflito com outra > função de mesmo nome de outro módulo". > > Mas é só uma politica de boa vizinhança, não quer dizer, necessariamente, > errado. Depende do seu contexto. > > *** > > Como em Perl as coisas são mais livres, você vai ver casos de um package > que tem construtor, métodos *E* funções comuns, ou seja, tanto uma > interface OO quanto procedural. Exemplo: > https://metacpan.org/pod/String::Trigram > > Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma > interface OO *E* uma interface procedural, pra ficar ao gosto do cliente > escolher. Outro exemplo: https://metacpan.org/pod/CGI > > Por essas e outras, *EU*, acho meio confuso ter Perl como primeira > linguagem, pois ela te dar liberdades que em não tendo todos os conceitos > bem sedimentados, *pode* confundir. > > O importante é, em estar estudando, não parar no estágio "ah consegui > fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". > > []'s > > > > > 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : > > Funcionou da forma que o Junior passou. >> >> Obrigado. >> >> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >> >> ------------------------------ >> From: juniiior182 em gmail.com >> Date: Tue, 29 Apr 2014 18:15:00 -0300 >> >> To: rio-pm em pm.org >> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >> >> Hi. >> >> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >> >> Só mais uma coisa, >> >> Isso não tem nada a ver com Exporter. >> >> []'s >> >> >> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >> possível ser chamada à partir de outro script bastando dar um use no >> módulo, e não como invocar um método estaticamente como eu pensei. >> >> Creio que o jeito mais roots seria: >> >> >> >> >> >> >> >> >> *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = >> (qw(Exporter));@EXPORT = qw(acp); sub acp {* >> >> *...* >> *}* >> 1; >> >> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função >> acp() estará acessível, assim como no Math::Prime::Util. >> >> []'s >> >> _______________________________________________ >> >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ Rio-pm mailing list >> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Apr 29 15:01:56 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 29 Apr 2014 19:01:56 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Enquanto meu café ferve, aqui vale uma reflexão: "Boas práticas" é um conceito flutuante. Perl é uma linguagem extremamente rica e se desenvolvimento bastante dinâmico. O que era boa prática quando eu aprendi, já não é boa prática hoje. As coisas mudam. http://perldoc.perl.org/perlhist.html Embora muita gente fale que Perl é pré-histórico, a versão mais atual foi lançada em janeiro. Se você bobear, você que fica pré-histórico. []'s 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : > Pacman, copião :) > > > 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : > > > que Modulo::funcao dispensa declarar o construtor. >> >> Não dispensa. Não tem nada a ver. Não misture as coisas. >> >> Construtor é um conceito associado a um método especial utilizado para >> inicializar objetos, ou seja, quando você está utilizando uma interface >> orientada a objetos. >> >> Em C++, o Construtor tem que ser um método cujo nome é o nome da classe. >> >> Em Python é outro padrão. >> >> Em Perl isso é livre, um construtor, ou seja um inicializador de objetos >> pode ser qualquer método que eventualmente invoque a sub bless(). >> >> http://perldoc.perl.org/functions/bless.html >> >> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >> >> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >> completo FQN. Não tem nada a ver com objetos, ou construtores. >> >> *** >> >> No seu caso, como bem observado pelo Junior, o que você quer é não ter >> que passar o namespace completo, por isso o uso do Exporter, que nada mais >> faz do que tornar a sua função conhecida no namespace atual. >> >> Exporter também não tem nada a ver com objetos. >> >> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >> default. Nesse caso, ao usar o seu módulo você precisa fazer: >> >> use Modulo qw{ funcao }; >> >> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >> exportar apenas o necessário pra não correr risco de dar conflito com outra >> função de mesmo nome de outro módulo". >> >> Mas é só uma politica de boa vizinhança, não quer dizer, necessariamente, >> errado. Depende do seu contexto. >> >> *** >> >> Como em Perl as coisas são mais livres, você vai ver casos de um package >> que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >> interface OO quanto procedural. Exemplo: >> https://metacpan.org/pod/String::Trigram >> >> Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma >> interface OO *E* uma interface procedural, pra ficar ao gosto do cliente >> escolher. Outro exemplo: https://metacpan.org/pod/CGI >> >> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >> bem sedimentados, *pode* confundir. >> >> O importante é, em estar estudando, não parar no estágio "ah consegui >> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >> >> []'s >> >> >> >> >> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >> >> Funcionou da forma que o Junior passou. >>> >>> Obrigado. >>> >>> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >>> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >>> >>> ------------------------------ >>> From: juniiior182 em gmail.com >>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>> >>> To: rio-pm em pm.org >>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>> >>> Hi. >>> >>> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >>> >>> Só mais uma coisa, >>> >>> Isso não tem nada a ver com Exporter. >>> >>> []'s >>> >>> >>> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >>> possível ser chamada à partir de outro script bastando dar um use no >>> módulo, e não como invocar um método estaticamente como eu pensei. >>> >>> Creio que o jeito mais roots seria: >>> >>> >>> >>> >>> >>> >>> >>> >>> *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = >>> (qw(Exporter));@EXPORT = qw(acp); sub acp {* >>> >>> *...* >>> *}* >>> 1; >>> >>> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >>> função acp() estará acessível, assim como no Math::Prime::Util. >>> >>> []'s >>> >>> _______________________________________________ >>> >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> _______________________________________________ Rio-pm mailing list >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Tue Apr 29 15:12:30 2014 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 29 Apr 2014 19:12:30 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Cara, café não se pode ferver! seu café deve ser 'duro' 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : > Enquanto meu café ferve, aqui vale uma reflexão: > > "Boas práticas" é um conceito flutuante. > > Perl é uma linguagem extremamente rica e se desenvolvimento bastante > dinâmico. O que era boa prática quando eu aprendi, já não é boa prática > hoje. As coisas mudam. > > http://perldoc.perl.org/perlhist.html > > Embora muita gente fale que Perl é pré-histórico, a versão mais atual foi > lançada em janeiro. Se você bobear, você que fica pré-histórico. > > []'s > > > > > 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : > > Pacman, copião :) >> >> >> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >> >> > que Modulo::funcao dispensa declarar o construtor. >>> >>> Não dispensa. Não tem nada a ver. Não misture as coisas. >>> >>> Construtor é um conceito associado a um método especial utilizado para >>> inicializar objetos, ou seja, quando você está utilizando uma interface >>> orientada a objetos. >>> >>> Em C++, o Construtor tem que ser um método cujo nome é o nome da classe. >>> >>> Em Python é outro padrão. >>> >>> Em Perl isso é livre, um construtor, ou seja um inicializador de objetos >>> pode ser qualquer método que eventualmente invoque a sub bless(). >>> >>> http://perldoc.perl.org/functions/bless.html >>> >>> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >>> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >>> >>> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >>> completo FQN. Não tem nada a ver com objetos, ou construtores. >>> >>> *** >>> >>> No seu caso, como bem observado pelo Junior, o que você quer é não ter >>> que passar o namespace completo, por isso o uso do Exporter, que nada mais >>> faz do que tornar a sua função conhecida no namespace atual. >>> >>> Exporter também não tem nada a ver com objetos. >>> >>> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >>> default. Nesse caso, ao usar o seu módulo você precisa fazer: >>> >>> use Modulo qw{ funcao }; >>> >>> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >>> exportar apenas o necessário pra não correr risco de dar conflito com outra >>> função de mesmo nome de outro módulo". >>> >>> Mas é só uma politica de boa vizinhança, não quer dizer, >>> necessariamente, errado. Depende do seu contexto. >>> >>> *** >>> >>> Como em Perl as coisas são mais livres, você vai ver casos de um package >>> que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >>> interface OO quanto procedural. Exemplo: >>> https://metacpan.org/pod/String::Trigram >>> >>> Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma >>> interface OO *E* uma interface procedural, pra ficar ao gosto do cliente >>> escolher. Outro exemplo: https://metacpan.org/pod/CGI >>> >>> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >>> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >>> bem sedimentados, *pode* confundir. >>> >>> O importante é, em estar estudando, não parar no estágio "ah consegui >>> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >>> >>> Funcionou da forma que o Junior passou. >>>> >>>> Obrigado. >>>> >>>> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >>>> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >>>> >>>> ------------------------------ >>>> From: juniiior182 em gmail.com >>>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>>> >>>> To: rio-pm em pm.org >>>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>>> >>>> Hi. >>>> >>>> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >>>> >>>> Só mais uma coisa, >>>> >>>> Isso não tem nada a ver com Exporter. >>>> >>>> []'s >>>> >>>> >>>> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >>>> possível ser chamada à partir de outro script bastando dar um use no >>>> módulo, e não como invocar um método estaticamente como eu pensei. >>>> >>>> Creio que o jeito mais roots seria: >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = >>>> (qw(Exporter));@EXPORT = qw(acp); sub acp {* >>>> >>>> *...* >>>> *}* >>>> 1; >>>> >>>> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >>>> função acp() estará acessível, assim como no Math::Prime::Util. >>>> >>>> []'s >>>> >>>> _______________________________________________ >>>> >>>> Rio-pm mailing list >>>> Rio-pm em pm.org >>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>> >>>> >>>> >>>> _______________________________________________ Rio-pm mailing list >>>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>>> >>>> _______________________________________________ >>>> Rio-pm mailing list >>>> Rio-pm em pm.org >>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>> >>> >>> >> > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Apr 29 15:15:25 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 29 Apr 2014 19:15:25 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: > café deve ser 'duro' TimToady!!! 2014-04-29 19:12 GMT-03:00 Renato Santos : > Cara, café não se pode ferver! seu café deve ser 'duro' > > > 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : > > Enquanto meu café ferve, aqui vale uma reflexão: >> >> "Boas práticas" é um conceito flutuante. >> >> Perl é uma linguagem extremamente rica e se desenvolvimento bastante >> dinâmico. O que era boa prática quando eu aprendi, já não é boa prática >> hoje. As coisas mudam. >> >> http://perldoc.perl.org/perlhist.html >> >> Embora muita gente fale que Perl é pré-histórico, a versão mais atual foi >> lançada em janeiro. Se você bobear, você que fica pré-histórico. >> >> []'s >> >> >> >> >> 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : >> >> Pacman, copião :) >>> >>> >>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>> >>> > que Modulo::funcao dispensa declarar o construtor. >>>> >>>> Não dispensa. Não tem nada a ver. Não misture as coisas. >>>> >>>> Construtor é um conceito associado a um método especial utilizado para >>>> inicializar objetos, ou seja, quando você está utilizando uma interface >>>> orientada a objetos. >>>> >>>> Em C++, o Construtor tem que ser um método cujo nome é o nome da classe. >>>> >>>> Em Python é outro padrão. >>>> >>>> Em Perl isso é livre, um construtor, ou seja um inicializador de >>>> objetos pode ser qualquer método que eventualmente invoque a sub bless(). >>>> >>>> http://perldoc.perl.org/functions/bless.html >>>> >>>> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >>>> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >>>> >>>> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >>>> completo FQN. Não tem nada a ver com objetos, ou construtores. >>>> >>>> *** >>>> >>>> No seu caso, como bem observado pelo Junior, o que você quer é não ter >>>> que passar o namespace completo, por isso o uso do Exporter, que nada mais >>>> faz do que tornar a sua função conhecida no namespace atual. >>>> >>>> Exporter também não tem nada a ver com objetos. >>>> >>>> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >>>> default. Nesse caso, ao usar o seu módulo você precisa fazer: >>>> >>>> use Modulo qw{ funcao }; >>>> >>>> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >>>> exportar apenas o necessário pra não correr risco de dar conflito com outra >>>> função de mesmo nome de outro módulo". >>>> >>>> Mas é só uma politica de boa vizinhança, não quer dizer, >>>> necessariamente, errado. Depende do seu contexto. >>>> >>>> *** >>>> >>>> Como em Perl as coisas são mais livres, você vai ver casos de um >>>> package que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >>>> interface OO quanto procedural. Exemplo: >>>> https://metacpan.org/pod/String::Trigram >>>> >>>> Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma >>>> interface OO *E* uma interface procedural, pra ficar ao gosto do cliente >>>> escolher. Outro exemplo: https://metacpan.org/pod/CGI >>>> >>>> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >>>> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >>>> bem sedimentados, *pode* confundir. >>>> >>>> O importante é, em estar estudando, não parar no estágio "ah consegui >>>> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >>>> >>>> []'s >>>> >>>> >>>> >>>> >>>> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >>>> >>>> Funcionou da forma que o Junior passou. >>>>> >>>>> Obrigado. >>>>> >>>>> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >>>>> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >>>>> >>>>> ------------------------------ >>>>> From: juniiior182 em gmail.com >>>>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>>>> >>>>> To: rio-pm em pm.org >>>>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>>>> >>>>> Hi. >>>>> >>>>> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >>>>> >>>>> Só mais uma coisa, >>>>> >>>>> Isso não tem nada a ver com Exporter. >>>>> >>>>> []'s >>>>> >>>>> >>>>> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >>>>> possível ser chamada à partir de outro script bastando dar um use no >>>>> módulo, e não como invocar um método estaticamente como eu pensei. >>>>> >>>>> Creio que o jeito mais roots seria: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = >>>>> (qw(Exporter));@EXPORT = qw(acp); sub acp {* >>>>> >>>>> *...* >>>>> *}* >>>>> 1; >>>>> >>>>> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >>>>> função acp() estará acessível, assim como no Math::Prime::Util. >>>>> >>>>> []'s >>>>> >>>>> _______________________________________________ >>>>> >>>>> Rio-pm mailing list >>>>> Rio-pm em pm.org >>>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>>> >>>>> >>>>> >>>>> _______________________________________________ Rio-pm mailing list >>>>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>>>> >>>>> _______________________________________________ >>>>> Rio-pm mailing list >>>>> Rio-pm em pm.org >>>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>>> >>>> >>>> >>> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue Apr 29 15:16:33 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Tue, 29 Apr 2014 19:16:33 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Mas ok, não é uma boa prática... 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > café deve ser 'duro' > > TimToady!!! > > > 2014-04-29 19:12 GMT-03:00 Renato Santos : > > Cara, café não se pode ferver! seu café deve ser 'duro' >> >> >> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >> >> Enquanto meu café ferve, aqui vale uma reflexão: >>> >>> "Boas práticas" é um conceito flutuante. >>> >>> Perl é uma linguagem extremamente rica e se desenvolvimento bastante >>> dinâmico. O que era boa prática quando eu aprendi, já não é boa prática >>> hoje. As coisas mudam. >>> >>> http://perldoc.perl.org/perlhist.html >>> >>> Embora muita gente fale que Perl é pré-histórico, a versão mais atual >>> foi lançada em janeiro. Se você bobear, você que fica pré-histórico. >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : >>> >>> Pacman, copião :) >>>> >>>> >>>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>>> >>>> > que Modulo::funcao dispensa declarar o construtor. >>>>> >>>>> Não dispensa. Não tem nada a ver. Não misture as coisas. >>>>> >>>>> Construtor é um conceito associado a um método especial utilizado para >>>>> inicializar objetos, ou seja, quando você está utilizando uma interface >>>>> orientada a objetos. >>>>> >>>>> Em C++, o Construtor tem que ser um método cujo nome é o nome da >>>>> classe. >>>>> >>>>> Em Python é outro padrão. >>>>> >>>>> Em Perl isso é livre, um construtor, ou seja um inicializador de >>>>> objetos pode ser qualquer método que eventualmente invoque a sub bless(). >>>>> >>>>> http://perldoc.perl.org/functions/bless.html >>>>> >>>>> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >>>>> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >>>>> >>>>> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >>>>> completo FQN. Não tem nada a ver com objetos, ou construtores. >>>>> >>>>> *** >>>>> >>>>> No seu caso, como bem observado pelo Junior, o que você quer é não ter >>>>> que passar o namespace completo, por isso o uso do Exporter, que nada mais >>>>> faz do que tornar a sua função conhecida no namespace atual. >>>>> >>>>> Exporter também não tem nada a ver com objetos. >>>>> >>>>> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >>>>> default. Nesse caso, ao usar o seu módulo você precisa fazer: >>>>> >>>>> use Modulo qw{ funcao }; >>>>> >>>>> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >>>>> exportar apenas o necessário pra não correr risco de dar conflito com outra >>>>> função de mesmo nome de outro módulo". >>>>> >>>>> Mas é só uma politica de boa vizinhança, não quer dizer, >>>>> necessariamente, errado. Depende do seu contexto. >>>>> >>>>> *** >>>>> >>>>> Como em Perl as coisas são mais livres, você vai ver casos de um >>>>> package que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >>>>> interface OO quanto procedural. Exemplo: >>>>> https://metacpan.org/pod/String::Trigram >>>>> >>>>> Antigamente, quando OO era 'novidade', o pessoal costumava publicar >>>>> uma interface OO *E* uma interface procedural, pra ficar ao gosto do >>>>> cliente escolher. Outro exemplo: https://metacpan.org/pod/CGI >>>>> >>>>> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >>>>> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >>>>> bem sedimentados, *pode* confundir. >>>>> >>>>> O importante é, em estar estudando, não parar no estágio "ah consegui >>>>> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >>>>> >>>>> []'s >>>>> >>>>> >>>>> >>>>> >>>>> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >>>>> >>>>> Funcionou da forma que o Junior passou. >>>>>> >>>>>> Obrigado. >>>>>> >>>>>> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >>>>>> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >>>>>> >>>>>> ------------------------------ >>>>>> From: juniiior182 em gmail.com >>>>>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>>>>> >>>>>> To: rio-pm em pm.org >>>>>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>>>>> >>>>>> Hi. >>>>>> >>>>>> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >>>>>> >>>>>> Só mais uma coisa, >>>>>> >>>>>> Isso não tem nada a ver com Exporter. >>>>>> >>>>>> []'s >>>>>> >>>>>> >>>>>> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >>>>>> possível ser chamada à partir de outro script bastando dar um use no >>>>>> módulo, e não como invocar um método estaticamente como eu pensei. >>>>>> >>>>>> Creio que o jeito mais roots seria: >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = >>>>>> (qw(Exporter));@EXPORT = qw(acp); sub acp {* >>>>>> >>>>>> *...* >>>>>> *}* >>>>>> 1; >>>>>> >>>>>> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >>>>>> função acp() estará acessível, assim como no Math::Prime::Util. >>>>>> >>>>>> []'s >>>>>> >>>>>> _______________________________________________ >>>>>> >>>>>> Rio-pm mailing list >>>>>> Rio-pm em pm.org >>>>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ Rio-pm mailing list >>>>>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>>>>> >>>>>> _______________________________________________ >>>>>> Rio-pm mailing list >>>>>> Rio-pm em pm.org >>>>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>>>> >>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> >> -- >> Saravá, >> Renato CRON >> http://www.renatocron.com/blog/ >> @renato_cron >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 29 16:02:27 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 29 Apr 2014 20:02:27 -0300 Subject: [Rio-pm] =?iso-8859-1?q?=5BDUVIDA=5D_Chamar_fun=E7=E3o_sem_declar?= =?iso-8859-1?q?ar_construtor?= Message-ID: >ter Perl como primeira linguagem Esse foi meu feliz erro. Sofro com alguns problemas de boas praticas mas em questão de logica pura eu m dou bem. Eu diria que quem quer aprender logica deveria aprender Perl. Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar aprender boas praticas. Blabos de Blebe escreveu: Mas ok, não é uma boa prática... 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > café deve ser 'duro' > > TimToady!!! > > > 2014-04-29 19:12 GMT-03:00 Renato Santos : > > Cara, café não se pode ferver! seu café deve ser 'duro' >> >> >> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >> >> Enquanto meu café ferve, aqui vale uma reflexão: >>> >>> "Boas práticas" é um conceito flutuante. >>> >>> Perl é uma linguagem extremamente rica e se desenvolvimento bastante >>> dinâmico. O que era boa prática quando eu aprendi, já não é boa prática >>> hoje. As coisas mudam. >>> >>> http://perldoc.perl.org/perlhist.html >>> >>> Embora muita gente fale que Perl é pré-histórico, a versão mais atual >>> foi lançada em janeiro. Se você bobear, você que fica pré-histórico. >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : >>> >>> Pacman, copião :) >>>> >>>> >>>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>>> >>>> > que Modulo::funcao dispensa declarar o construtor. >>>>> >>>>> Não dispensa. Não tem nada a ver. Não misture as coisas. >>>>> >>>>> Construtor é um conceito associado a um método especial utilizado para >>>>> inicializar objetos, ou seja, quando você está utilizando uma interface >>>>> orientada a objetos. >>>>> >>>>> Em C++, o Construtor tem que ser um método cujo nome é o nome da >>>>> classe. >>>>> >>>>> Em Python é outro padrão. >>>>> >>>>> Em Perl isso é livre, um construtor, ou seja um inicializador de >>>>> objetos pode ser qualquer método que eventualmente invoque a sub bless(). >>>>> >>>>> http://perldoc.perl.org/functions/bless.html >>>>> >>>>> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >>>>> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >>>>> >>>>> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >>>>> completo FQN. Não tem nada a ver com objetos, ou construtores. >>>>> >>>>> *** >>>>> >>>>> No seu caso, como bem observado pelo Junior, o que você quer é não ter >>>>> que passar o namespace completo, por isso o uso do Exporter, que nada mais >>>>> faz do que tornar a sua função conhecida no namespace atual. >>>>> >>>>> Exporter também não tem nada a ver com objetos. >>>>> >>>>> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >>>>> default. Nesse caso, ao usar o seu módulo você precisa fazer: >>>>> >>>>> use Modulo qw{ funcao }; >>>>> >>>>> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >>>>> exportar apenas o necessário pra não correr risco de dar conflito com outra >>>>> função de mesmo nome de outro módulo". >>>>> >>>>> Mas é só uma politica de boa vizinhança, não quer dizer, >>>>> necessariamente, errado. Depende do seu contexto. >>>>> >>>>> *** >>>>> >>>>> Como em Perl as coisas são mais livres, você vai ver casos de um >>>>> package que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >>>>> interface OO quanto procedural. Exemplo: >>>>> https://metacpan.org/pod/String::Trigram >>>>> >>>>> Antigamente, quando OO era 'novidade', o pessoal costumava publicar >>>>> uma interface OO *E* uma interface procedural, pra ficar ao gosto do >>>>> cliente escolher. Outro exemplo: https://metacpan.org/pod/CGI >>>>> >>>>> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >>>>> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >>>>> bem sedimentados, *pode* confundir. >>>>> >>>>> O importante é, em estar estudando, não parar no estágio "ah consegui >>>>> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >>>>> >>>>> []'s >>>>> >>>>> >>>>> >>>>> >>>>> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >>>>> >>>>> Funcionou da forma que o Junior passou. >>>>>> >>>>>> Obrigado. >>>>>> >>>>>> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >>>>>> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >>>>>> >>>>>> ------------------------------ >>>>>> From: juniiior182 em gmail.com >>>>>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>>>>> >>>>>> To: rio-pm em pm.org >>>>>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>>>>> >>>>>> Hi. >>>>>> >>>>>> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >>>>>> >>>>>> Só mais uma coisa, >>>>>> >>>>>> Isso não tem nada a ver com Exporter. >>>>>> >>>>>> []'s >>>>>> >>>>>> >>>>>> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >>>>>> possível ser chamada à partir de outro script bastando dar um use no >>>>>> módulo, e não como invocar um método estaticamente como eu pensei. >>>>>> >>>>>> Creio que o jeito mais roots seria: >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> *package Modulo::Modulo;use vars qw(@ISA @EXPORT);@ISA = >>>>>> (qw(Exporter));@EXPORT = qw(acp); sub acp {* >>>>>> >>>>>> *...* >>>>>> *}* >>>>>> 1; >>>>>> >>>>>> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >>>>>> função acp() estará acessível, assim como no Math::Prime::Util. >>>>>> >>>>>> []'s >>>>>> >>>>>> _______________________________________________ >>>>>> >>>>>> Rio-pm mailing list >>>>>> Rio-pm em pm.org >>>>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ Rio-pm mailing list >>>>>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>>>>> >>>>>> _______________________________________________ >>>>>> Rio-pm mailing list >>>>>> Rio-pm em pm.org >>>>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>>>> >>>>> >>>>> >>>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> >> -- >> Saravá, >> Renato CRON >> http://www.renatocron.com/blog/ >> @renato_cron >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From juniiior182 em gmail.com Tue Apr 29 16:10:34 2014 From: juniiior182 em gmail.com (Junior Moraes) Date: Tue, 29 Apr 2014 20:10:34 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Hi. Em 29 de abril de 2014 18:35, Blabos de Blebe escreveu: > > > Junior, a forma que você sugeriu é um dialeto mais antigo. Hoje em dia (e > desde a época do Perl Best Practices, pg 407), o recomendado é herdar do > módulo Exporter, e utilizar o @EXPORT_OK ao invés do @EXPORT diretamente. > Yep, eu estava ciente! Por isso me referi ao *use vars* como a maneira mais 'roots'. Era a única que eu sabia que não daria problema de compatibilidade com nenhuma versão do Perl. :P []'s -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Tue Apr 29 16:11:08 2014 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 29 Apr 2014 20:11:08 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: ** FLAME WARRRRRR*** C++ e Delphi ? linus torvalds discorda disso! http://article.gmane.org/gmane.comp.version-control.git/57918 2014-04-29 20:02 GMT-03:00 Aureliano Guedes : > >ter Perl como primeira linguagem > Esse foi meu feliz erro. > Sofro com alguns problemas de boas praticas mas em questão de logica pura > eu m dou bem. > Eu diria que quem quer aprender logica deveria aprender Perl. > Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar > aprender boas praticas. > > > > Blabos de Blebe escreveu: > > Mas ok, não é uma boa prática... > > > 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > > café deve ser 'duro' > > TimToady!!! > > > 2014-04-29 19:12 GMT-03:00 Renato Santos : > > Cara, café não se pode ferver! seu café deve ser 'duro' > > > 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : > > Enquanto meu café ferve, aqui vale uma reflexão: > > "Boas práticas" é um conceito flutuante. > > Perl é uma linguagem extremamente rica e se desenvolvimento bastante > dinâmico. O que era boa prática quando eu aprendi, já não é boa prática > hoje. As coisas mudam. > > http://perldoc.perl.org/perlhist.html > > Embora muita gente fale que Perl é pré-histórico, a versão mais atual > foi lançada em janeiro. Se você bobear, você que fica pré-histórico. > > []'s > > > > > 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : > > Pacman, copião :) > > > 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : > > > que Modulo::funcao dispensa declarar o construtor. > > Não dispensa. Não tem nada a ver. Não misture as coisas. > > Construtor é um conceito associado a um método especial utilizado para > inicializar objetos, ou seja, quando você está utilizando uma interface > orientada a objetos. > > Em C++, o Construtor tem que ser um método cujo nome é o nome da classe. > > Em Python é outro padrão. > > Em Perl isso é livre, um construtor, ou seja um inicializador de objetos > pode ser qualquer método que eventualmente invoque a sub bless(). > > http://perldoc.perl.org/functions/bless.html > > Em Perl convencionamos, pra ninguém ficar louco, que o construtor > chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. > > Modulo::funcao() é uma chamada 'procedural' aplicando o namespace > completo FQN. Não tem nada a ver com objetos, ou construtores. > > *** > > No seu caso, como bem observado pelo Junior, o que você quer é não ter > que passar o namespace completo, por isso o uso do Exporter, que nada mais > faz do que tornar a sua função conhecida no namespace atual. > > Exporter também não tem nada a ver com objetos. > > A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por > default. Nesse caso, ao usar o seu módulo você precisa fazer: > > use Modulo qw{ funcao }; > > Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de > exportar apenas o necessário pra não correr risco de dar conflito com outra > função de mesmo nome de outro módulo". > > Mas é só uma politica de boa vizinhança, não quer dizer, > necessariamente, errado. Depende do seu contexto. > > *** > > Como em Perl as coisas são mais livres, você vai ver casos de um package > que tem construtor, métodos *E* funções comuns, ou seja, tanto uma > interface OO quanto procedural. Exemplo: > https://metacpan.org/pod/String::Trigram > > Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma > interface OO *E* uma interface procedural, pra ficar ao gosto do cliente > escolher. Outro exemplo: https://metacpan.org/pod/CGI > > Por essas e outras, *EU*, acho meio confuso ter Perl como primeira > linguagem, pois ela te dar liberdades que em não tendo todos os conceitos > bem sedimentados, *pode* confundir. > > O importante é, em estar estudando, não parar no estágio "ah consegui > fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". > > []'s > > > > > 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : > > Funcionou da forma que o Junior passou. > > Obrigado. > > Experimentei fazer o dumper como o Bablos falou. Realmente são formas > diferentes, sendo que Modulo::funcao dispensa declarar o construtor. > > ------------------------------ > From: juniiior182 em gmail.com > Date: Tue, 29 Apr 2014 18:15:00 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > Hi. > > Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: > > Só mais uma coisa, > > Isso não tem nada a ver com Exporter. > > []'s > > > Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la > possível ser chamada à partir de outro script bastando dar um use no > módulo, e não como invocar um método estaticamente como eu pensei. > > Creio que o jeito mais roots seria: > > > > > > > > > *package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA = > (qw(Exporter)); @EXPORT = qw(acp); sub acp {* > > *... * > *}* > 1; > > Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função > acp() estará acessível, assim como no Math::Prime::Util. > > []'s > > _______________________________________________ > > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 29 16:23:07 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 29 Apr 2014 20:23:07 -0300 Subject: [Rio-pm] =?iso-8859-1?q?=5BDUVIDA=5D_Chamar_fun=E7=E3o_sem_declar?= =?iso-8859-1?q?ar_construtor?= Message-ID: Eu sei. Mas fui fazer um programa pra minha empresa em perl, ai minha esposa diz quero interface e pra windows, ai eu usei TK, ai ela disse quero algo bunitinho, ai aprendi delphi, ai começo da bug pra tudo que e lado, ai usei VB.net, ai fico pior, ai disse:"vamos comprar um pronto". E viveram infelizes para sempre. Renato Santos escreveu: ** FLAME WARRRRRR*** C++ e Delphi ? linus torvalds discorda disso! http://article.gmane.org/gmane.comp.version-control.git/57918 2014-04-29 20:02 GMT-03:00 Aureliano Guedes : > >ter Perl como primeira linguagem > Esse foi meu feliz erro. > Sofro com alguns problemas de boas praticas mas em questão de logica pura > eu m dou bem. > Eu diria que quem quer aprender logica deveria aprender Perl. > Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar > aprender boas praticas. > > > > Blabos de Blebe escreveu: > > Mas ok, não é uma boa prática... > > > 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > > café deve ser 'duro' > > TimToady!!! > > > 2014-04-29 19:12 GMT-03:00 Renato Santos : > > Cara, café não se pode ferver! seu café deve ser 'duro' > > > 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : > > Enquanto meu café ferve, aqui vale uma reflexão: > > "Boas práticas" é um conceito flutuante. > > Perl é uma linguagem extremamente rica e se desenvolvimento bastante > dinâmico. O que era boa prática quando eu aprendi, já não é boa prática > hoje. As coisas mudam. > > http://perldoc.perl.org/perlhist.html > > Embora muita gente fale que Perl é pré-histórico, a versão mais atual > foi lançada em janeiro. Se você bobear, você que fica pré-histórico. > > []'s > > > > > 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : > > Pacman, copião :) > > > 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : > > > que Modulo::funcao dispensa declarar o construtor. > > Não dispensa. Não tem nada a ver. Não misture as coisas. > > Construtor é um conceito associado a um método especial utilizado para > inicializar objetos, ou seja, quando você está utilizando uma interface > orientada a objetos. > > Em C++, o Construtor tem que ser um método cujo nome é o nome da classe. > > Em Python é outro padrão. > > Em Perl isso é livre, um construtor, ou seja um inicializador de objetos > pode ser qualquer método que eventualmente invoque a sub bless(). > > http://perldoc.perl.org/functions/bless.html > > Em Perl convencionamos, pra ninguém ficar louco, que o construtor > chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. > > Modulo::funcao() é uma chamada 'procedural' aplicando o namespace > completo FQN. Não tem nada a ver com objetos, ou construtores. > > *** > > No seu caso, como bem observado pelo Junior, o que você quer é não ter > que passar o namespace completo, por isso o uso do Exporter, que nada mais > faz do que tornar a sua função conhecida no namespace atual. > > Exporter também não tem nada a ver com objetos. > > A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por > default. Nesse caso, ao usar o seu módulo você precisa fazer: > > use Modulo qw{ funcao }; > > Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de > exportar apenas o necessário pra não correr risco de dar conflito com outra > função de mesmo nome de outro módulo". > > Mas é só uma politica de boa vizinhança, não quer dizer, > necessariamente, errado. Depende do seu contexto. > > *** > > Como em Perl as coisas são mais livres, você vai ver casos de um package > que tem construtor, métodos *E* funções comuns, ou seja, tanto uma > interface OO quanto procedural. Exemplo: > https://metacpan.org/pod/String::Trigram > > Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma > interface OO *E* uma interface procedural, pra ficar ao gosto do cliente > escolher. Outro exemplo: https://metacpan.org/pod/CGI > > Por essas e outras, *EU*, acho meio confuso ter Perl como primeira > linguagem, pois ela te dar liberdades que em não tendo todos os conceitos > bem sedimentados, *pode* confundir. > > O importante é, em estar estudando, não parar no estágio "ah consegui > fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". > > []'s > > > > > 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : > > Funcionou da forma que o Junior passou. > > Obrigado. > > Experimentei fazer o dumper como o Bablos falou. Realmente são formas > diferentes, sendo que Modulo::funcao dispensa declarar o construtor. > > ------------------------------ > From: juniiior182 em gmail.com > Date: Tue, 29 Apr 2014 18:15:00 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor > > Hi. > > Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: > > Só mais uma coisa, > > Isso não tem nada a ver com Exporter. > > []'s > > > Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la > possível ser chamada à partir de outro script bastando dar um use no > módulo, e não como invocar um método estaticamente como eu pensei. > > Creio que o jeito mais roots seria: > > > > > > > > > *package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA = > (qw(Exporter)); @EXPORT = qw(acp); sub acp {* > > *... * > *}* > 1; > > Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a função > acp() estará acessível, assim como no Math::Prime::Util. > > []'s > > _______________________________________________ > > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From dan.vinciguerra em gmail.com Tue Apr 29 16:25:09 2014 From: dan.vinciguerra em gmail.com (Daniel Vinciguerra) Date: Tue, 29 Apr 2014 20:25:09 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Boas praticas com Delphi é ruim heim hahaha *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and founder at *Bivee* bivee.com.br - github.com/Bivee 2014-04-29 20:11 GMT-03:00 Renato Santos : > ** FLAME WARRRRRR*** > C++ e Delphi ? > > linus torvalds discorda disso! > > http://article.gmane.org/gmane.comp.version-control.git/57918 > > > > > 2014-04-29 20:02 GMT-03:00 Aureliano Guedes : > > >ter Perl como primeira linguagem >> Esse foi meu feliz erro. >> Sofro com alguns problemas de boas praticas mas em questão de logica pura >> eu m dou bem. >> Eu diria que quem quer aprender logica deveria aprender Perl. >> Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar >> aprender boas praticas. >> >> >> >> Blabos de Blebe escreveu: >> >> Mas ok, não é uma boa prática... >> >> >> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : >> >> > café deve ser 'duro' >> >> TimToady!!! >> >> >> 2014-04-29 19:12 GMT-03:00 Renato Santos : >> >> Cara, café não se pode ferver! seu café deve ser 'duro' >> >> >> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >> >> Enquanto meu café ferve, aqui vale uma reflexão: >> >> "Boas práticas" é um conceito flutuante. >> >> Perl é uma linguagem extremamente rica e se desenvolvimento bastante >> dinâmico. O que era boa prática quando eu aprendi, já não é boa prática >> hoje. As coisas mudam. >> >> http://perldoc.perl.org/perlhist.html >> >> Embora muita gente fale que Perl é pré-histórico, a versão mais atual >> foi lançada em janeiro. Se você bobear, você que fica pré-histórico. >> >> []'s >> >> >> >> >> 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : >> >> Pacman, copião :) >> >> >> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >> >> > que Modulo::funcao dispensa declarar o construtor. >> >> Não dispensa. Não tem nada a ver. Não misture as coisas. >> >> Construtor é um conceito associado a um método especial utilizado para >> inicializar objetos, ou seja, quando você está utilizando uma interface >> orientada a objetos. >> >> Em C++, o Construtor tem que ser um método cujo nome é o nome da classe. >> >> Em Python é outro padrão. >> >> Em Perl isso é livre, um construtor, ou seja um inicializador de >> objetos pode ser qualquer método que eventualmente invoque a sub bless(). >> >> http://perldoc.perl.org/functions/bless.html >> >> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >> >> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >> completo FQN. Não tem nada a ver com objetos, ou construtores. >> >> *** >> >> No seu caso, como bem observado pelo Junior, o que você quer é não ter >> que passar o namespace completo, por isso o uso do Exporter, que nada mais >> faz do que tornar a sua função conhecida no namespace atual. >> >> Exporter também não tem nada a ver com objetos. >> >> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >> default. Nesse caso, ao usar o seu módulo você precisa fazer: >> >> use Modulo qw{ funcao }; >> >> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >> exportar apenas o necessário pra não correr risco de dar conflito com outra >> função de mesmo nome de outro módulo". >> >> Mas é só uma politica de boa vizinhança, não quer dizer, >> necessariamente, errado. Depende do seu contexto. >> >> *** >> >> Como em Perl as coisas são mais livres, você vai ver casos de um >> package que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >> interface OO quanto procedural. Exemplo: >> https://metacpan.org/pod/String::Trigram >> >> Antigamente, quando OO era 'novidade', o pessoal costumava publicar uma >> interface OO *E* uma interface procedural, pra ficar ao gosto do cliente >> escolher. Outro exemplo: https://metacpan.org/pod/CGI >> >> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >> bem sedimentados, *pode* confundir. >> >> O importante é, em estar estudando, não parar no estágio "ah consegui >> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >> >> []'s >> >> >> >> >> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >> >> Funcionou da forma que o Junior passou. >> >> Obrigado. >> >> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >> >> ------------------------------ >> From: juniiior182 em gmail.com >> Date: Tue, 29 Apr 2014 18:15:00 -0300 >> >> To: rio-pm em pm.org >> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >> >> Hi. >> >> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >> >> Só mais uma coisa, >> >> Isso não tem nada a ver com Exporter. >> >> []'s >> >> >> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >> possível ser chamada à partir de outro script bastando dar um use no >> módulo, e não como invocar um método estaticamente como eu pensei. >> >> Creio que o jeito mais roots seria: >> >> >> >> >> >> >> >> >> *package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA = >> (qw(Exporter)); @EXPORT = qw(acp); sub acp {* >> >> *... * >> *}* >> 1; >> >> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >> função acp() estará acessível, assim como no Math::Prime::Util. >> >> []'s >> >> _______________________________________________ >> >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ Rio-pm mailing list >> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> -- >> Saravá, >> Renato CRON >> http://www.renatocron.com/blog/ >> @renato_cron >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Tue Apr 29 16:38:04 2014 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 29 Apr 2014 20:38:04 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: http://i.imgur.com/8iUZEZt.png só pela zuera! 2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra : > Boas praticas com Delphi é ruim heim hahaha > > > *Daniel Vinciguerra (@dvinciguerra)* > Web solution architect, perl dev, vegetarian, geek and founder at *Bivee* > bivee.com.br - github.com/Bivee > > > 2014-04-29 20:11 GMT-03:00 Renato Santos : > > ** FLAME WARRRRRR*** >> C++ e Delphi ? >> >> linus torvalds discorda disso! >> >> http://article.gmane.org/gmane.comp.version-control.git/57918 >> >> >> >> >> 2014-04-29 20:02 GMT-03:00 Aureliano Guedes : >> >> >ter Perl como primeira linguagem >>> Esse foi meu feliz erro. >>> Sofro com alguns problemas de boas praticas mas em questão de logica >>> pura eu m dou bem. >>> Eu diria que quem quer aprender logica deveria aprender Perl. >>> Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar >>> aprender boas praticas. >>> >>> >>> >>> Blabos de Blebe escreveu: >>> >>> Mas ok, não é uma boa prática... >>> >>> >>> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : >>> >>> > café deve ser 'duro' >>> >>> TimToady!!! >>> >>> >>> 2014-04-29 19:12 GMT-03:00 Renato Santos : >>> >>> Cara, café não se pode ferver! seu café deve ser 'duro' >>> >>> >>> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >>> >>> Enquanto meu café ferve, aqui vale uma reflexão: >>> >>> "Boas práticas" é um conceito flutuante. >>> >>> Perl é uma linguagem extremamente rica e se desenvolvimento bastante >>> dinâmico. O que era boa prática quando eu aprendi, já não é boa prática >>> hoje. As coisas mudam. >>> >>> http://perldoc.perl.org/perlhist.html >>> >>> Embora muita gente fale que Perl é pré-histórico, a versão mais atual >>> foi lançada em janeiro. Se você bobear, você que fica pré-histórico. >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : >>> >>> Pacman, copião :) >>> >>> >>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>> >>> > que Modulo::funcao dispensa declarar o construtor. >>> >>> Não dispensa. Não tem nada a ver. Não misture as coisas. >>> >>> Construtor é um conceito associado a um método especial utilizado para >>> inicializar objetos, ou seja, quando você está utilizando uma interface >>> orientada a objetos. >>> >>> Em C++, o Construtor tem que ser um método cujo nome é o nome da >>> classe. >>> >>> Em Python é outro padrão. >>> >>> Em Perl isso é livre, um construtor, ou seja um inicializador de >>> objetos pode ser qualquer método que eventualmente invoque a sub bless(). >>> >>> http://perldoc.perl.org/functions/bless.html >>> >>> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >>> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >>> >>> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >>> completo FQN. Não tem nada a ver com objetos, ou construtores. >>> >>> *** >>> >>> No seu caso, como bem observado pelo Junior, o que você quer é não ter >>> que passar o namespace completo, por isso o uso do Exporter, que nada mais >>> faz do que tornar a sua função conhecida no namespace atual. >>> >>> Exporter também não tem nada a ver com objetos. >>> >>> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >>> default. Nesse caso, ao usar o seu módulo você precisa fazer: >>> >>> use Modulo qw{ funcao }; >>> >>> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >>> exportar apenas o necessário pra não correr risco de dar conflito com outra >>> função de mesmo nome de outro módulo". >>> >>> Mas é só uma politica de boa vizinhança, não quer dizer, >>> necessariamente, errado. Depende do seu contexto. >>> >>> *** >>> >>> Como em Perl as coisas são mais livres, você vai ver casos de um >>> package que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >>> interface OO quanto procedural. Exemplo: >>> https://metacpan.org/pod/String::Trigram >>> >>> Antigamente, quando OO era 'novidade', o pessoal costumava publicar >>> uma interface OO *E* uma interface procedural, pra ficar ao gosto do >>> cliente escolher. Outro exemplo: https://metacpan.org/pod/CGI >>> >>> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >>> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >>> bem sedimentados, *pode* confundir. >>> >>> O importante é, em estar estudando, não parar no estágio "ah consegui >>> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >>> >>> Funcionou da forma que o Junior passou. >>> >>> Obrigado. >>> >>> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >>> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >>> >>> ------------------------------ >>> From: juniiior182 em gmail.com >>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>> >>> To: rio-pm em pm.org >>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>> >>> Hi. >>> >>> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >>> >>> Só mais uma coisa, >>> >>> Isso não tem nada a ver com Exporter. >>> >>> []'s >>> >>> >>> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >>> possível ser chamada à partir de outro script bastando dar um use no >>> módulo, e não como invocar um método estaticamente como eu pensei. >>> >>> Creio que o jeito mais roots seria: >>> >>> >>> >>> >>> >>> >>> >>> >>> *package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA = >>> (qw(Exporter)); @EXPORT = qw(acp); sub acp {* >>> >>> *... * >>> *}* >>> 1; >>> >>> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >>> função acp() estará acessível, assim como no Math::Prime::Util. >>> >>> []'s >>> >>> _______________________________________________ >>> >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> _______________________________________________ Rio-pm mailing list >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> -- >>> Saravá, >>> Renato CRON >>> http://www.renatocron.com/blog/ >>> @renato_cron >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> >> -- >> Saravá, >> Renato CRON >> http://www.renatocron.com/blog/ >> @renato_cron >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue Apr 29 17:13:52 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 29 Apr 2014 21:13:52 -0300 Subject: [Rio-pm] =?iso-8859-1?q?=5BDUVIDA=5D_Chamar_fun=E7=E3o_sem_declar?= =?iso-8859-1?q?ar_construtor?= Message-ID: Ainda sim mataria o dragão com perl. http://www.programacaoprogressiva.net/2012/12/Como-programadores-matariam-um-dragao-e-salvariam-a-princesa.html?m=1 Renato Santos escreveu: http://i.imgur.com/8iUZEZt.png só pela zuera! 2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra : > Boas praticas com Delphi é ruim heim hahaha > > > *Daniel Vinciguerra (@dvinciguerra)* > Web solution architect, perl dev, vegetarian, geek and founder at *Bivee* > bivee.com.br - github.com/Bivee > > > 2014-04-29 20:11 GMT-03:00 Renato Santos : > > ** FLAME WARRRRRR*** >> C++ e Delphi ? >> >> linus torvalds discorda disso! >> >> http://article.gmane.org/gmane.comp.version-control.git/57918 >> >> >> >> >> 2014-04-29 20:02 GMT-03:00 Aureliano Guedes : >> >> >ter Perl como primeira linguagem >>> Esse foi meu feliz erro. >>> Sofro com alguns problemas de boas praticas mas em questão de logica >>> pura eu m dou bem. >>> Eu diria que quem quer aprender logica deveria aprender Perl. >>> Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar >>> aprender boas praticas. >>> >>> >>> >>> Blabos de Blebe escreveu: >>> >>> Mas ok, não é uma boa prática... >>> >>> >>> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : >>> >>> > café deve ser 'duro' >>> >>> TimToady!!! >>> >>> >>> 2014-04-29 19:12 GMT-03:00 Renato Santos : >>> >>> Cara, café não se pode ferver! seu café deve ser 'duro' >>> >>> >>> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >>> >>> Enquanto meu café ferve, aqui vale uma reflexão: >>> >>> "Boas práticas" é um conceito flutuante. >>> >>> Perl é uma linguagem extremamente rica e se desenvolvimento bastante >>> dinâmico. O que era boa prática quando eu aprendi, já não é boa prática >>> hoje. As coisas mudam. >>> >>> http://perldoc.perl.org/perlhist.html >>> >>> Embora muita gente fale que Perl é pré-histórico, a versão mais atual >>> foi lançada em janeiro. Se você bobear, você que fica pré-histórico. >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : >>> >>> Pacman, copião :) >>> >>> >>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>> >>> > que Modulo::funcao dispensa declarar o construtor. >>> >>> Não dispensa. Não tem nada a ver. Não misture as coisas. >>> >>> Construtor é um conceito associado a um método especial utilizado para >>> inicializar objetos, ou seja, quando você está utilizando uma interface >>> orientada a objetos. >>> >>> Em C++, o Construtor tem que ser um método cujo nome é o nome da >>> classe. >>> >>> Em Python é outro padrão. >>> >>> Em Perl isso é livre, um construtor, ou seja um inicializador de >>> objetos pode ser qualquer método que eventualmente invoque a sub bless(). >>> >>> http://perldoc.perl.org/functions/bless.html >>> >>> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >>> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >>> >>> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >>> completo FQN. Não tem nada a ver com objetos, ou construtores. >>> >>> *** >>> >>> No seu caso, como bem observado pelo Junior, o que você quer é não ter >>> que passar o namespace completo, por isso o uso do Exporter, que nada mais >>> faz do que tornar a sua função conhecida no namespace atual. >>> >>> Exporter também não tem nada a ver com objetos. >>> >>> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >>> default. Nesse caso, ao usar o seu módulo você precisa fazer: >>> >>> use Modulo qw{ funcao }; >>> >>> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >>> exportar apenas o necessário pra não correr risco de dar conflito com outra >>> função de mesmo nome de outro módulo". >>> >>> Mas é só uma politica de boa vizinhança, não quer dizer, >>> necessariamente, errado. Depende do seu contexto. >>> >>> *** >>> >>> Como em Perl as coisas são mais livres, você vai ver casos de um >>> package que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >>> interface OO quanto procedural. Exemplo: >>> https://metacpan.org/pod/String::Trigram >>> >>> Antigamente, quando OO era 'novidade', o pessoal costumava publicar >>> uma interface OO *E* uma interface procedural, pra ficar ao gosto do >>> cliente escolher. Outro exemplo: https://metacpan.org/pod/CGI >>> >>> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >>> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >>> bem sedimentados, *pode* confundir. >>> >>> O importante é, em estar estudando, não parar no estágio "ah consegui >>> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >>> >>> Funcionou da forma que o Junior passou. >>> >>> Obrigado. >>> >>> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >>> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >>> >>> ------------------------------ >>> From: juniiior182 em gmail.com >>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>> >>> To: rio-pm em pm.org >>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>> >>> Hi. >>> >>> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >>> >>> Só mais uma coisa, >>> >>> Isso não tem nada a ver com Exporter. >>> >>> []'s >>> >>> >>> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >>> possível ser chamada à partir de outro script bastando dar um use no >>> módulo, e não como invocar um método estaticamente como eu pensei. >>> >>> Creio que o jeito mais roots seria: >>> >>> >>> >>> >>> >>> >>> >>> >>> *package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA = >>> (qw(Exporter)); @EXPORT = qw(acp); sub acp {* >>> >>> *... * >>> *}* >>> 1; >>> >>> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >>> função acp() estará acessível, assim como no Math::Prime::Util. >>> >>> []'s >>> >>> _______________________________________________ >>> >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> _______________________________________________ Rio-pm mailing list >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> -- >>> Saravá, >>> Renato CRON >>> http://www.renatocron.com/blog/ >>> @renato_cron >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> >> -- >> Saravá, >> Renato CRON >> http://www.renatocron.com/blog/ >> @renato_cron >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Tue Apr 29 17:13:52 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 29 Apr 2014 21:13:52 -0300 Subject: [Rio-pm] =?iso-8859-1?q?=5BDUVIDA=5D_Chamar_fun=E7=E3o_sem_declar?= =?iso-8859-1?q?ar_construtor?= Message-ID: Ainda sim mataria o dragão com perl. http://www.programacaoprogressiva.net/2012/12/Como-programadores-matariam-um-dragao-e-salvariam-a-princesa.html?m=1 Renato Santos escreveu: http://i.imgur.com/8iUZEZt.png só pela zuera! 2014-04-29 20:25 GMT-03:00 Daniel Vinciguerra : > Boas praticas com Delphi é ruim heim hahaha > > > *Daniel Vinciguerra (@dvinciguerra)* > Web solution architect, perl dev, vegetarian, geek and founder at *Bivee* > bivee.com.br - github.com/Bivee > > > 2014-04-29 20:11 GMT-03:00 Renato Santos : > > ** FLAME WARRRRRR*** >> C++ e Delphi ? >> >> linus torvalds discorda disso! >> >> http://article.gmane.org/gmane.comp.version-control.git/57918 >> >> >> >> >> 2014-04-29 20:02 GMT-03:00 Aureliano Guedes : >> >> >ter Perl como primeira linguagem >>> Esse foi meu feliz erro. >>> Sofro com alguns problemas de boas praticas mas em questão de logica >>> pura eu m dou bem. >>> Eu diria que quem quer aprender logica deveria aprender Perl. >>> Agora aprendi C VB.net e mais recentemente C++ e Delphi pra tentar >>> aprender boas praticas. >>> >>> >>> >>> Blabos de Blebe escreveu: >>> >>> Mas ok, não é uma boa prática... >>> >>> >>> 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : >>> >>> > café deve ser 'duro' >>> >>> TimToady!!! >>> >>> >>> 2014-04-29 19:12 GMT-03:00 Renato Santos : >>> >>> Cara, café não se pode ferver! seu café deve ser 'duro' >>> >>> >>> 2014-04-29 19:01 GMT-03:00 Blabos de Blebe : >>> >>> Enquanto meu café ferve, aqui vale uma reflexão: >>> >>> "Boas práticas" é um conceito flutuante. >>> >>> Perl é uma linguagem extremamente rica e se desenvolvimento bastante >>> dinâmico. O que era boa prática quando eu aprendi, já não é boa prática >>> hoje. As coisas mudam. >>> >>> http://perldoc.perl.org/perlhist.html >>> >>> Embora muita gente fale que Perl é pré-histórico, a versão mais atual >>> foi lançada em janeiro. Se você bobear, você que fica pré-histórico. >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:52 GMT-03:00 Blabos de Blebe : >>> >>> Pacman, copião :) >>> >>> >>> 2014-04-29 18:50 GMT-03:00 Blabos de Blebe : >>> >>> > que Modulo::funcao dispensa declarar o construtor. >>> >>> Não dispensa. Não tem nada a ver. Não misture as coisas. >>> >>> Construtor é um conceito associado a um método especial utilizado para >>> inicializar objetos, ou seja, quando você está utilizando uma interface >>> orientada a objetos. >>> >>> Em C++, o Construtor tem que ser um método cujo nome é o nome da >>> classe. >>> >>> Em Python é outro padrão. >>> >>> Em Perl isso é livre, um construtor, ou seja um inicializador de >>> objetos pode ser qualquer método que eventualmente invoque a sub bless(). >>> >>> http://perldoc.perl.org/functions/bless.html >>> >>> Em Perl convencionamos, pra ninguém ficar louco, que o construtor >>> chama-se new. Mas não existe palavra reservada ou obrigatoriedade nisso. >>> >>> Modulo::funcao() é uma chamada 'procedural' aplicando o namespace >>> completo FQN. Não tem nada a ver com objetos, ou construtores. >>> >>> *** >>> >>> No seu caso, como bem observado pelo Junior, o que você quer é não ter >>> que passar o namespace completo, por isso o uso do Exporter, que nada mais >>> faz do que tornar a sua função conhecida no namespace atual. >>> >>> Exporter também não tem nada a ver com objetos. >>> >>> A boa prática é usar @EXPORT_OK pra não exportar todos os símbolos por >>> default. Nesse caso, ao usar o seu módulo você precisa fazer: >>> >>> use Modulo qw{ funcao }; >>> >>> Aqui, "boa prática" significa basicamente, "vou tormar o cuidado de >>> exportar apenas o necessário pra não correr risco de dar conflito com outra >>> função de mesmo nome de outro módulo". >>> >>> Mas é só uma politica de boa vizinhança, não quer dizer, >>> necessariamente, errado. Depende do seu contexto. >>> >>> *** >>> >>> Como em Perl as coisas são mais livres, você vai ver casos de um >>> package que tem construtor, métodos *E* funções comuns, ou seja, tanto uma >>> interface OO quanto procedural. Exemplo: >>> https://metacpan.org/pod/String::Trigram >>> >>> Antigamente, quando OO era 'novidade', o pessoal costumava publicar >>> uma interface OO *E* uma interface procedural, pra ficar ao gosto do >>> cliente escolher. Outro exemplo: https://metacpan.org/pod/CGI >>> >>> Por essas e outras, *EU*, acho meio confuso ter Perl como primeira >>> linguagem, pois ela te dar liberdades que em não tendo todos os conceitos >>> bem sedimentados, *pode* confundir. >>> >>> O importante é, em estar estudando, não parar no estágio "ah consegui >>> fazer" mas sim prosseguir pelo menos até o "ah, entendi como funciona". >>> >>> []'s >>> >>> >>> >>> >>> 2014-04-29 18:32 GMT-03:00 Aureliano Guedes : >>> >>> Funcionou da forma que o Junior passou. >>> >>> Obrigado. >>> >>> Experimentei fazer o dumper como o Bablos falou. Realmente são formas >>> diferentes, sendo que Modulo::funcao dispensa declarar o construtor. >>> >>> ------------------------------ >>> From: juniiior182 em gmail.com >>> Date: Tue, 29 Apr 2014 18:15:00 -0300 >>> >>> To: rio-pm em pm.org >>> Subject: Re: [Rio-pm] [DUVIDA] Chamar função sem declarar construtor >>> >>> Hi. >>> >>> Em 29 de abril de 2014 18:07, Blabos de Blebe escreveu: >>> >>> Só mais uma coisa, >>> >>> Isso não tem nada a ver com Exporter. >>> >>> []'s >>> >>> >>> Eu acho que ele tá perguntando mesmo como exportar uma sub e torná-la >>> possível ser chamada à partir de outro script bastando dar um use no >>> módulo, e não como invocar um método estaticamente como eu pensei. >>> >>> Creio que o jeito mais roots seria: >>> >>> >>> >>> >>> >>> >>> >>> >>> *package Modulo::Modulo; use vars qw(@ISA @EXPORT); @ISA = >>> (qw(Exporter)); @EXPORT = qw(acp); sub acp {* >>> >>> *... * >>> *}* >>> 1; >>> >>> Deste modo, Aureliano, bastará dar um *use* em Modulo::Modulo e a >>> função acp() estará acessível, assim como no Math::Prime::Util. >>> >>> []'s >>> >>> _______________________________________________ >>> >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> _______________________________________________ Rio-pm mailing list >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> -- >>> Saravá, >>> Renato CRON >>> http://www.renatocron.com/blog/ >>> @renato_cron >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> >> >> -- >> Saravá, >> Renato CRON >> http://www.renatocron.com/blog/ >> @renato_cron >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From oainikusama em gmail.com Tue Apr 29 18:06:52 2014 From: oainikusama em gmail.com (breno) Date: Tue, 29 Apr 2014 22:06:52 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : >> café deve ser 'duro' > > TimToady!!! > TimToddy!! \o/ From lorn em lornlab.org Tue Apr 29 19:45:19 2014 From: lorn em lornlab.org (Lindolfo Rodrigues) Date: Tue, 29 Apr 2014 23:45:19 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: <07DB6154F49646ADA764B7D413C194AF@lornlab.org> http://instagram.com/p/a8r4HxhSTl/ -- Lindolfo Rodrigues On Tuesday, April 29, 2014 at 10:06 PM, breno wrote: > 2014-04-29 19:15 GMT-03:00 Blabos de Blebe : > > > café deve ser 'duro' > > > > > > TimToady!!! > > TimToddy!! \o/ > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org (mailto:Rio-pm em pm.org) > http://mail.pm.org/mailman/listinfo/rio-pm > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renan.azevedo.carvalho em gmail.com Wed Apr 30 03:48:55 2014 From: renan.azevedo.carvalho em gmail.com (renan azevedo de carvalho) Date: Wed, 30 Apr 2014 07:48:55 -0300 Subject: [Rio-pm] =?utf-8?q?=5BDUVIDA=5D_Chamar_fun=C3=A7=C3=A3o_sem_decla?= =?utf-8?q?rar_construtor?= In-Reply-To: References: Message-ID: Aureliano, Você pode tornar a função externa dessa forma. use Exporter (qw/ import/ ); our @EXPORTER_OK = qw/ function /; Mais detalhes esse link pode te ajudar. http://perldoc.perl.org/Exporter.html Em 29 de abril de 2014 17:34, Aureliano Guedes escreveu: > Ola monges, > > Tenho uma pequena dúvida. > Quando vamos usar uma função(sub-rotina) de um módulo fazemos na maioria > das vezes o seguinte: > > use Modulo::Modulo; > > my $p = Modulo::Modulo->new(); > $p->funcao(); > .... > > isso porque no modulo tem um contrutor ou foi gerado de presente ao autor > quando usado o Moose ou semelhante. > > A questão é que alguns poucos módulos permitem que seja feito diretamente > > use Modulo::Modulo; > > my $p; > $p->funcao(); > .... > > A dúvida é: como o autor do módulo faz para que permita fazer a chamada > das funções sem precisar disso: > my $p = Modulo::Modulo->new(); > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Thu May 1 17:04:04 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Fri, 2 May 2014 00:04:04 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: , , Message-ID: Bruno, resolvi o problema e segui a sua dica: http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm O http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era muito incompleto! From: bruno.buss em gmail.com Date: Mon, 28 Apr 2014 21:24:50 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo O problema é que quando time() está entre 89 e 96, next_prime($time) retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a resposta correta. O mesmo problema de antes, sua heurística para tentar pular números na sequencia de primos/palíndromos ainda não está muito boa. Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a metade dos dígitos do numero, porque você não usa a substr()? :-) 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : Bruno, Tratei a maioria dos erros e ainda ganhei em desempenho.O problema é que tem um bug que não consegui tratar. Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou <96 retorna corretamente 101. http://pastebin.com/3QVnbjbP Date: Sun, 27 Apr 2014 14:00:02 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Buss, Obrigado por analisar o código. Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou. Essa heurística foi apenas experimental. E ainda pode ser otimizada. Nao sou muito habilidoso quando se trata de achar esses tipos de erros. Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou. Vou ver o que posso fazer para resolver esses bugs. Obrigado pela análise. Bruno Buss escreveu: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos". Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : Esquece a ultima versão. Divisão é pesado para o processador. Fiz uma versão menor com menos divisões que parece ter uma melhor performance. http://pastebin.com/jrjEv3eh From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Sun, 27 Apr 2014 02:44:57 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: blabos em gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Thu May 1 18:27:45 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Fri, 2 May 2014 01:27:45 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: , , , , , Message-ID: E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK Engraçado: teve o melhor desempenho.Um simples detalhe reduziu o tempo de execução pela metade. Fazer: $time = reverse $time; $time++; $time = reverse $time; gera um desempenho melhor que fazer: $time = reverse (reverse $time++);From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Fri, 2 May 2014 00:04:04 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Bruno, resolvi o problema e segui a sua dica: http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm O http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era muito incompleto! From: bruno.buss em gmail.com Date: Mon, 28 Apr 2014 21:24:50 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo O problema é que quando time() está entre 89 e 96, next_prime($time) retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a resposta correta. O mesmo problema de antes, sua heurística para tentar pular números na sequencia de primos/palíndromos ainda não está muito boa. Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a metade dos dígitos do numero, porque você não usa a substr()? :-) 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : Bruno, Tratei a maioria dos erros e ainda ganhei em desempenho.O problema é que tem um bug que não consegui tratar. Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou <96 retorna corretamente 101. http://pastebin.com/3QVnbjbP Date: Sun, 27 Apr 2014 14:00:02 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Buss, Obrigado por analisar o código. Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou. Essa heurística foi apenas experimental. E ainda pode ser otimizada. Nao sou muito habilidoso quando se trata de achar esses tipos de erros. Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou. Vou ver o que posso fazer para resolver esses bugs. Obrigado pela análise. Bruno Buss escreveu: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos". Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : Esquece a ultima versão. Divisão é pesado para o processador. Fiz uma versão menor com menos divisões que parece ter uma melhor performance. http://pastebin.com/jrjEv3eh From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Sun, 27 Apr 2014 02:44:57 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: blabos em gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From viniciusmiasato em gmail.com Thu May 1 18:40:51 2014 From: viniciusmiasato em gmail.com (=?UTF-8?Q?Vin=C3=ADcius_Miasato?=) Date: Thu, 1 May 2014 22:40:51 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Opa Aureliano, eu não olhei seu código, só olhei esse seu trecho: >> Fazer: >> $time = reverse $time; >> $time++; >> $time = reverse $time; >> >> gera um desempenho melhor que fazer: >> >> $time = reverse (reverse $time++); Eu não estou preocupado com a performance aqui. Meu ponto é a corretude disso. Eu posso estar falando besteira, estou com um pouco de sono, mas os trecho fazem coisas diferentes: Ex.: $time_original = time; print qq{TIME:[$time_original]$/$/}; $time1 = $time_original; $time2 = $time_original; { $time1 = reverse $time1; $time1++; $time1 = reverse $time1; print qq{TIME 1: [$time1]$/$/}; } { $time2 = reverse (reverse $time2++); print qq{TIME 2: [$time2]$/$/}; } atenciosamente, Vinícius Miasato Em 1 de maio de 2014 22:27, Aureliano Guedes escreveu: > E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK > > Engraçado: teve o melhor desempenho. > Um simples detalhe reduziu o tempo de execução pela metade. > > Fazer: > $time = reverse $time; > $time++; > $time = reverse $time; > > gera um desempenho melhor que fazer: > > $time = reverse (reverse $time++); > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Fri, 2 May 2014 00:04:04 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Sat May 3 05:36:29 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Sat, 3 May 2014 09:36:29 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Eu não consigo nem instalar esse módulo no meu sistema. Segue o log de erro em anexo. Além disso, você não seguiu as minhas recomendações exatamente... a 1a e mais importante coisa que eu falei era que você precisava de uma boa cobertura de testes e testes bons para seu código. Você fez upload de um módulo pro CPAN (yay! \o/) sem nenhum teste (noooo! :/). Alem disso, você deveria deixar avisado em letras garrafais que o seu módulo emprega uma heurística e não um algoritmo exato. Eu ficaria muito puto de descobrir que meu código está errado por causa de outro módulo que não disse nada. Por fim... só mais uma dica: Não sei porque bananas você adora fazer "scalar split // $numero" para pegar a quantidade de dígitos, quando um simples "length $numero" da o mesmo resultado. 2014-05-01 21:04 GMT-03:00 Aureliano Guedes : > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- Um anexo não-texto foi limpo... Nome: build.log Tipo: application/octet-stream Tamanho: 2244 bytes Descrição: não disponível URL: From bruno.buss em gmail.com Sat May 3 05:42:01 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Sat, 3 May 2014 09:42:01 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Além disso, você poderia dizer porque o Math::NumSeq::Palindrome é "incompleto"? O seu problema é que ele não gera o próximo palindromo a partir de um número qualquer? Se for isso, acho que você deveria ler a documentação toda do módulo (e do módulo pai dele, o Math::NumSeq), pois acho que o seek_to_value faz exatamente isso que você quer... 2014-05-01 21:04 GMT-03:00 Aureliano Guedes : > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Sat May 3 06:01:11 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Sat, 3 May 2014 10:01:11 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que ele esteja correto, principalmente que a função "next_palindrome" retorne exatamente o próximo palindromo maior ou igual ao número... Para esse seu programa: (1) Entrada: 9. Saída esperada: 9. Saída atual: 11. (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é 191 e fiquei com preguiça de terminar o chinês. (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a iteração do while... o $time foi bumpado para 796 - por causa do if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para ele.... japa++ pela consideração entre as duas versões do reverse reverse $time. Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de construir uma invariante no algoritmo. 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : > E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK > > Engraçado: teve o melhor desempenho. > Um simples detalhe reduziu o tempo de execução pela metade. > > Fazer: > $time = reverse $time; > $time++; > $time = reverse $time; > > gera um desempenho melhor que fazer: > > $time = reverse (reverse $time++); > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Fri, 2 May 2014 00:04:04 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sat May 3 07:27:53 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sat, 3 May 2014 14:27:53 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: , , , , , Message-ID: Então, esse problema já é do loop principal e não do módulo. Porque eu faço: $time = next_palindrome($time);Antes do loop principal.acho que pode ser corrigido fazendo:$time = next_palindrome($time) if (!is_palindrome($time)); Fiz isso para evitar que um time() primo finalize o loop mesmo sem ele começar, já que o loop inicia assim: while(!is_prime($time)) Agora quanto ao módulo em sí, a logica usada é a seguinte:- Um número palíndromo é obrigatoriamente igual a ele mesmo se lido de traz para frente, então- Se dividirmos pela metade os dígitos de um numero palíndromo de número de dígitos maior ou igual a 2 então a primeira metade é obrigatoriamente igual a segunda lida de traz para frente. Isso me leva as seguintes conclusões: 1- Se o reverso da segunda parte é menor que a primeira parte # 8652 -> 86 > 25logo o próximo palíndromo é obrigatoriamente a primeira parte concatenada com o reverso dela mesma# 86 . (reverse 86)Isso se torna verdadeiro porque no caso usado para exemplo '8668' a segunda parte é o '68' que tem seu reverso '86' que é igual a primeira parte. 2- Se se o reverso da segunda parte é maior ou igual a primeira parte# 8668 -> 86 == 86 # ou # 8669 -> 86 < 96logo o próximo palíndromo é obrigatoriamente a primeira parte incrementada concatenada com seu reverso# 8668 -> 86 +1 -> 87 . 78 -> 8778 Então minha heurística foi aplicada em cima de uma lógica matemática, o que apesar do módulo não vir com os testes, em meus testes ao final do desenvolvimento ele fez corretamente todas as respostas. Inclusive estou fazendo algumas correções para subir estas correções.Eu não sei fazer direito aqueles testes, mas enviarei com os testes na próxima. Quanto ao Math::NumSeq::Palindromes, acho que poderia ser melhor de usar, mais direto, no meu você pode imprimir o próximo palindromo fazendo apenas 'say next_palindrome($n);'. From: bruno.buss em gmail.com Date: Sat, 3 May 2014 10:01:11 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que ele esteja correto, principalmente que a função "next_palindrome" retorne exatamente o próximo palindromo maior ou igual ao número... Para esse seu programa:(1) Entrada: 9. Saída esperada: 9. Saída atual: 11. (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é 191 e fiquei com preguiça de terminar o chinês. (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a iteração do while... o $time foi bumpado para 796 - por causa do if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para ele.... japa++ pela consideração entre as duas versões do reverse reverse $time. Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de construir uma invariante no algoritmo. 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK Engraçado: teve o melhor desempenho. Um simples detalhe reduziu o tempo de execução pela metade. Fazer: $time = reverse $time; $time++; $time = reverse $time; gera um desempenho melhor que fazer: $time = reverse (reverse $time++); From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Fri, 2 May 2014 00:04:04 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Bruno, resolvi o problema e segui a sua dica: http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm O http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era muito incompleto! From: bruno.buss em gmail.com Date: Mon, 28 Apr 2014 21:24:50 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo O problema é que quando time() está entre 89 e 96, next_prime($time) retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a resposta correta. O mesmo problema de antes, sua heurística para tentar pular números na sequencia de primos/palíndromos ainda não está muito boa. Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a metade dos dígitos do numero, porque você não usa a substr()? :-) 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : Bruno, Tratei a maioria dos erros e ainda ganhei em desempenho.O problema é que tem um bug que não consegui tratar. Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou <96 retorna corretamente 101. http://pastebin.com/3QVnbjbP Date: Sun, 27 Apr 2014 14:00:02 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Buss, Obrigado por analisar o código. Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou. Essa heurística foi apenas experimental. E ainda pode ser otimizada. Nao sou muito habilidoso quando se trata de achar esses tipos de erros. Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou. Vou ver o que posso fazer para resolver esses bugs. Obrigado pela análise. Bruno Buss escreveu: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos". Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : Esquece a ultima versão. Divisão é pesado para o processador. Fiz uma versão menor com menos divisões que parece ter uma melhor performance. http://pastebin.com/jrjEv3eh From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Sun, 27 Apr 2014 02:44:57 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: blabos em gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sat May 3 07:33:01 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sat, 3 May 2014 11:33:01 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Message-ID: Bom, so completando. Quando a entrada é 9 a saída esperada e 11, por que 9 nao e primo, e no programa ele verifica se é primo antes de imprimir. Agora se fizer um is_palindrome(9); vai retornar true. Bruno Buss escreveu: Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que ele esteja correto, principalmente que a função "next_palindrome" retorne exatamente o próximo palindromo maior ou igual ao número... Para esse seu programa: (1) Entrada: 9. Saída esperada: 9. Saída atual: 11. (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é 191 e fiquei com preguiça de terminar o chinês. (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a iteração do while... o $time foi bumpado para 796 - por causa do if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para ele.... japa++ pela consideração entre as duas versões do reverse reverse $time. Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de construir uma invariante no algoritmo. 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : > E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK > > Engraçado: teve o melhor desempenho. > Um simples detalhe reduziu o tempo de execução pela metade. > > Fazer: > $time = reverse $time; > $time++; > $time = reverse $time; > > gera um desempenho melhor que fazer: > > $time = reverse (reverse $time++); > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Fri, 2 May 2014 00:04:04 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Sat May 3 14:03:15 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sat, 3 May 2014 21:03:15 +0000 Subject: [Rio-pm] =?iso-8859-1?q?N=FAmero_no_final_do_package?= Message-ID: 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, -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Sat May 3 14:30:16 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Sat, 3 May 2014 18:30:16 -0300 Subject: [Rio-pm] =?utf-8?q?N=C3=BAmero_no_final_do_package?= In-Reply-To: References: Message-ID: Os dois 1os resultados do Google... http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module 2014-05-03 18:03 GMT-03:00 Aureliano Guedes : > Ola monges, > > tenho uma dúvida meio idiota: > "O que é aquele número no final do módulo??" > > exemplo: > > package Meu::Modulo; > > ... > > 1; > > No módulo do Garu mesmo: > > package Acme::BOPE; > > ..... > > 42; > > Eu sempre coloquei de forma automática o '1;', mas não faço ideia do que > é, alguns módulos tem números diferentes. > Mas o que é esse numero? Pra que serve? Como seu qual número devo colocar? > > Abraços, > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Sat May 3 14:31:25 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Sat, 3 May 2014 18:31:25 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Então, s/9/7/, mas você já tinha entendido o problema do next_palindrome antes do loop então ta beleza :-) 2014-05-03 11:33 GMT-03:00 Aureliano Guedes : > Bom, so completando. Quando a entrada é 9 a saída esperada e 11, por que > 9 nao e primo, e no programa ele verifica se é primo antes de imprimir. > Agora se fizer um is_palindrome(9); vai retornar true. > > Bruno Buss escreveu: > > Então, eu não consigo instalar seu modulo no meu sistema, mas supondo > que ele esteja correto, principalmente que a função "next_palindrome" > retorne exatamente o próximo palindromo maior ou igual ao número... > > Para esse seu programa: > (1) Entrada: 9. Saída esperada: 9. Saída atual: 11. > > (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não > é 191 e fiquei com preguiça de terminar o chinês. > > (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não > é 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a > iteração do while... o $time foi bumpado para 796 - por causa do > if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para > ele.... > > > > japa++ pela consideração entre as duas versões do reverse reverse $time. > Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de > construir uma invariante no algoritmo. > > > 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : > > E pronto minha solução sem os bugs que falou: > http://pastebin.com/PQQyg5BK > > Engraçado: teve o melhor desempenho. > Um simples detalhe reduziu o tempo de execução pela metade. > > Fazer: > $time = reverse $time; > $time++; > $time = reverse $time; > > gera um desempenho melhor que fazer: > > $time = reverse (reverse $time++); > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Fri, 2 May 2014 00:04:04 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 > ou <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Sat May 3 14:57:58 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Sat, 3 May 2014 18:57:58 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Sobre o lance do next_palindrome antes do loop: Mas com isso você quebrou o caso onde o valor inicial já é um palindromo primo... ou seja, não ta certo :P Você não consegue fazer uma condição do loop melhor, tal que ela verifique as duas condições e só pare quando o número for um primo palindromo sempre, desde a 1a verificação? ;) Sobre a explicação do modulo: Opa, muito bom! Seems good to me :-) Só acho que você precisa tratar todos os casos onde $n =~ m/^9+$/, porque só o 99 e 999 não bastam (mas foi legal que você já tinha percebido o problema deles :-) Tratar eles é bem fácil eu acho: if($n =~ m/^9+$/){ $r = '1' . (0 x ((length $n) - 1)) . '1'; } Seems legit? Por fim, seria legal voce escrever tudo isso na documentação do seu módulo, pois provavelmente vai ajudar quem estiver escolhendo um para usar :-) Acho que já estou convencido que sua next_palindrome está ok (tirando esse problema aí de cima dos números com todos os dígitos 9). Agora só precisamos melhorar o loop principal do seu programa. Lembre-se do que você quer (um primo palindromo) e do que você realmente precisa dentro desse seu loop. Tente construir uma invariante das iterações do loop, o que você pode garantir a cada passada do loop? 2014-05-03 11:27 GMT-03:00 Aureliano Guedes : > Então, esse problema já é do loop principal e não do módulo. > Porque eu faço: > > 1. $time = next_palindrome($time); > > Antes do loop principal. > acho que pode ser corrigido fazendo: > > 1. $time = next_palindrome($time) if (!is_palindrome($time)); > > > Fiz isso para evitar que um time() primo finalize o loop mesmo sem ele > começar, já que o loop inicia assim: > while(!is_prime($time)) > > Agora quanto ao módulo em sí, a logica usada é a seguinte: > - Um número palíndromo é obrigatoriamente igual a ele mesmo se lido de > traz para frente, então > - Se dividirmos pela metade os dígitos de um numero palíndromo de número > de dígitos maior ou igual a 2 então a primeira metade é obrigatoriamente > igual a segunda lida de traz para frente. Isso me leva as seguintes > conclusões: > > 1- Se o reverso da segunda parte é menor que a primeira parte > # 8652 -> 86 > 25 > logo o próximo palíndromo é obrigatoriamente a primeira parte concatenada > com o reverso dela mesma > # 86 . (reverse 86) > Isso se torna verdadeiro porque no caso usado para exemplo '8668' a > segunda parte é o '68' que tem seu reverso '86' que é igual a primeira > parte. > > 2- Se se o reverso da segunda parte é maior ou igual a primeira parte > # 8668 -> 86 == 86 # ou # 8669 -> 86 < 96 > logo o próximo palíndromo é obrigatoriamente a primeira parte incrementada > concatenada com seu reverso > # 8668 -> 86 +1 -> 87 . 78 -> 8778 > > Então minha heurística foi aplicada em cima de uma lógica matemática, o > que apesar do módulo não vir com os testes, em meus testes ao final do > desenvolvimento ele fez corretamente todas as respostas. > Inclusive estou fazendo algumas correções para subir estas correções. > Eu não sei fazer direito aqueles testes, mas enviarei com os testes na > próxima. > > Quanto ao Math::NumSeq::Palindromes, acho que poderia ser melhor de usar, > mais direto, no meu você pode imprimir o próximo palindromo fazendo apenas > 'say next_palindrome($n);'. > > ------------------------------ > From: bruno.buss em gmail.com > Date: Sat, 3 May 2014 10:01:11 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que > ele esteja correto, principalmente que a função "next_palindrome" retorne > exatamente o próximo palindromo maior ou igual ao número... > > Para esse seu programa: > (1) Entrada: 9. Saída esperada: 9. Saída atual: 11. > > (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é > 191 e fiquei com preguiça de terminar o chinês. > > (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é > 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a > iteração do while... o $time foi bumpado para 796 - por causa do > if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para > ele.... > > > > japa++ pela consideração entre as duas versões do reverse reverse $time. > Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de > construir uma invariante no algoritmo. > > > 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : > > E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK > > Engraçado: teve o melhor desempenho. > Um simples detalhe reduziu o tempo de execução pela metade. > > Fazer: > $time = reverse $time; > $time++; > $time = reverse $time; > > gera um desempenho melhor que fazer: > > $time = reverse (reverse $time++); > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Fri, 2 May 2014 00:04:04 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From breno em rio.pm.org Sun May 4 08:12:25 2014 From: breno em rio.pm.org (breno) Date: Sun, 4 May 2014 12:12:25 -0300 Subject: [Rio-pm] =?utf-8?q?N=C3=BAmero_no_final_do_package?= In-Reply-To: References: Message-ID: 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 []s -b 2014-05-03 18:30 GMT-03:00 Bruno Buss : > Os dois 1os resultados do Google... > > http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package > http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module > > 2014-05-03 18:03 GMT-03:00 Aureliano Guedes : >> >> Ola monges, >> >> tenho uma dúvida meio idiota: >> "O que é aquele número no final do módulo??" >> >> exemplo: >> >> package Meu::Modulo; >> >> ... >> >> 1; >> >> No módulo do Garu mesmo: >> >> package Acme::BOPE; >> >> ..... >> >> 42; >> >> Eu sempre coloquei de forma automática o '1;', mas não faço ideia do que >> é, alguns módulos tem números diferentes. >> Mas o que é esse numero? Pra que serve? Como seu qual número devo colocar? >> >> Abraços, >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm From a.r.ferreira em gmail.com Sun May 4 09:41:24 2014 From: a.r.ferreira em gmail.com (Adriano Ferreira) Date: Sun, 4 May 2014 13:41:24 -0300 Subject: [Rio-pm] =?utf-8?q?N=C3=BAmero_no_final_do_package?= In-Reply-To: References: Message-ID: 2014-05-04 12:12 GMT-03:00 breno : > Só de curiosidade: http://returnvalues.useperl.at (especificamente, > http://returnvalues.useperl.at/values.html) > > Eu costumo botar "1" em trabalhos profissionais, e "42" em projetos > open-source. Em alguns módulos do SDL a gente botou "all your base are > belong to us", e o Dancer exporta a DSL "true" e recomenda seu uso nas > apps feitas com ele. > > Qual o seu valor de retorno favorito? :D "0 but true" =) > > > []s > > -b > > 2014-05-03 18:30 GMT-03:00 Bruno Buss : > > Os dois 1os resultados do Google... > > > > > http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package > > > http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module > > > > 2014-05-03 18:03 GMT-03:00 Aureliano Guedes : > >> > >> Ola monges, > >> > >> tenho uma dúvida meio idiota: > >> "O que é aquele número no final do módulo??" > >> > >> exemplo: > >> > >> package Meu::Modulo; > >> > >> ... > >> > >> 1; > >> > >> No módulo do Garu mesmo: > >> > >> package Acme::BOPE; > >> > >> ..... > >> > >> 42; > >> > >> Eu sempre coloquei de forma automática o '1;', mas não faço ideia do que > >> é, alguns módulos tem números diferentes. > >> Mas o que é esse numero? Pra que serve? Como seu qual número devo > colocar? > >> > >> Abraços, > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > > > -- > > Bruno C. Buss > > http://www.brunobuss.net > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- next part -------------- An HTML attachment was scrubbed... URL: From creaktive em gmail.com Sun May 4 11:08:49 2014 From: creaktive em gmail.com (Stanislaw Pusep) Date: Sun, 4 May 2014 20:08:49 +0200 Subject: [Rio-pm] =?utf-8?q?N=C3=BAmero_no_final_do_package?= In-Reply-To: References: Message-ID: (0x2B or not 0x2B) ???????????, 4 ??? 2014 ?. ???????????? Adriano Ferreira ???????: > > > > 2014-05-04 12:12 GMT-03:00 breno > >: > >> Só de curiosidade: http://returnvalues.useperl.at (especificamente, >> http://returnvalues.useperl.at/values.html) >> >> Eu costumo botar "1" em trabalhos profissionais, e "42" em projetos >> open-source. Em alguns módulos do SDL a gente botou "all your base are >> belong to us", e o Dancer exporta a DSL "true" e recomenda seu uso nas >> apps feitas com ele. >> >> Qual o seu valor de retorno favorito? :D > > > "0 but true" =) > > >> > > >> >> []s >> >> -b >> >> 2014-05-03 18:30 GMT-03:00 Bruno Buss >> >: >> > Os dois 1os resultados do Google... >> > >> > >> http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package >> > >> http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module >> > >> > 2014-05-03 18:03 GMT-03:00 Aureliano Guedes >> >: >> >> >> >> Ola monges, >> >> >> >> tenho uma dúvida meio idiota: >> >> "O que é aquele número no final do módulo??" >> >> >> >> exemplo: >> >> >> >> package Meu::Modulo; >> >> >> >> ... >> >> >> >> 1; >> >> >> >> No módulo do Garu mesmo: >> >> >> >> package Acme::BOPE; >> >> >> >> ..... >> >> >> >> 42; >> >> >> >> Eu sempre coloquei de forma automática o '1;', mas não faço ideia do >> que >> >> é, alguns módulos tem números diferentes. >> >> Mas o que é esse numero? Pra que serve? Como seu qual número devo >> colocar? >> >> >> >> Abraços, >> >> >> >> _______________________________________________ >> >> Rio-pm mailing list >> >> Rio-pm em pm.org >> >> http://mail.pm.org/mailman/listinfo/rio-pm >> > >> > >> > >> > >> > -- >> > Bruno C. Buss >> > http://www.brunobuss.net >> > >> > _______________________________________________ >> > Rio-pm mailing list >> > Rio-pm em pm.org >> > http://mail.pm.org/mailman/listinfo/rio-pm >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sun May 4 12:21:02 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sun, 4 May 2014 19:21:02 +0000 Subject: [Rio-pm] =?utf-8?q?N=C3=BAmero_no_final_do_package?= In-Reply-To: References: , , , , Message-ID: 'Warning! The consumption of alcohol may cause you to think you have mystical kung-fu powers.' Date: Sun, 4 May 2014 20:08:49 +0200 From: creaktive em gmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] Número no final do package (0x2B or not 0x2B) ???????????, 4 ??? 2014 ?. ???????????? Adriano Ferreira ???????: 2014-05-04 12:12 GMT-03:00 breno : Só de curiosidade: http://returnvalues.useperl.at (especificamente, http://returnvalues.useperl.at/values.html) Eu costumo botar "1" em trabalhos profissionais, e "42" em projetos open-source. Em alguns módulos do SDL a gente botou "all your base are belong to us", e o Dancer exporta a DSL "true" e recomenda seu uso nas apps feitas com ele. Qual o seu valor de retorno favorito? :D "0 but true" =) []s -b 2014-05-03 18:30 GMT-03:00 Bruno Buss : > Os dois 1os resultados do Google... > > http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package > http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module > > 2014-05-03 18:03 GMT-03:00 Aureliano Guedes : >> >> Ola monges, >> >> tenho uma dúvida meio idiota: >> "O que é aquele número no final do módulo??" >> >> exemplo: >> >> package Meu::Modulo; >> >> ... >> >> 1; >> >> No módulo do Garu mesmo: >> >> package Acme::BOPE; >> >> ..... >> >> 42; >> >> Eu sempre coloquei de forma automática o '1;', mas não faço ideia do que >> é, alguns módulos tem números diferentes. >> Mas o que é esse numero? Pra que serve? Como seu qual número devo colocar? >> >> Abraços, >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From ole.ufg em gmail.com Sun May 4 15:27:42 2014 From: ole.ufg em gmail.com (Ole Peter Smith) Date: Sun, 4 May 2014 19:27:42 -0300 Subject: [Rio-pm] =?utf-8?q?N=C3=BAmero_no_final_do_package?= In-Reply-To: References: Message-ID: eu! huahuxiao! kuakua 0le 2014-05-04 16:21 GMT-03:00 Aureliano Guedes : > 'Warning! The consumption of alcohol may cause you to think you have > mystical kung-fu powers.' > > ------------------------------ > Date: Sun, 4 May 2014 20:08:49 +0200 > From: creaktive em gmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] Número no final do package > > > (0x2B or not 0x2B) > > ???????????, 4 ??? 2014 ?. ???????????? Adriano Ferreira ???????: > > > > > 2014-05-04 12:12 GMT-03:00 breno : > > Só de curiosidade: http://returnvalues.useperl.at (especificamente, > http://returnvalues.useperl.at/values.html) > > Eu costumo botar "1" em trabalhos profissionais, e "42" em projetos > open-source. Em alguns módulos do SDL a gente botou "all your base are > belong to us", e o Dancer exporta a DSL "true" e recomenda seu uso nas > apps feitas com ele. > > Qual o seu valor de retorno favorito? :D > > > "0 but true" =) > > > > > > > []s > > -b > > 2014-05-03 18:30 GMT-03:00 Bruno Buss : > > Os dois 1os resultados do Google... > > > > > http://stackoverflow.com/questions/5293246/why-the-1-at-the-end-of-each-perl-package > > > http://stackoverflow.com/questions/3606528/why-do-you-have-to-put-a-1-at-the-end-of-a-perl-5-module > > > > 2014-05-03 18:03 GMT-03:00 Aureliano Guedes : > >> > >> Ola monges, > >> > >> tenho uma dúvida meio idiota: > >> "O que é aquele número no final do módulo??" > >> > >> exemplo: > >> > >> package Meu::Modulo; > >> > >> ... > >> > >> 1; > >> > >> No módulo do Garu mesmo: > >> > >> package Acme::BOPE; > >> > >> ..... > >> > >> 42; > >> > >> Eu sempre coloquei de forma automática o '1;', mas não faço ideia do que > >> é, alguns módulos tem números diferentes. > >> Mas o que é esse numero? Pra que serve? Como seu qual número devo > colocar? > >> > >> Abraços, > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > > > -- > > Bruno C. Buss > > http://www.brunobuss.net > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- ///// ( O O ) =================oOO==(_)==OOo================= Every day and every hour, I'm Learning more The more I Learn, the less I Know about before The Less I know, the more I want to Look around Diggin' deeper into Higher Ground... UB40 .oooO Oooo. ==================( )=( )===================== \ ( ) / \_) (_/ =============================================== Ole Peter Smith, IME, UFG http://olepeter.mat.ufg.br - ole at ufg.br =============================================== Life sure is a Mystery to be Lived Not a Problem to be Solved =============================================== -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sun May 4 17:48:00 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Mon, 5 May 2014 00:48:00 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: , , , , , , , Message-ID: Acabei de subir para o CPAN a versão 0.02 daquele módulo.https://metacpan.org/pod/Math::Palindrome Mas agora que acabei de ver seu e-mail. Algumas modificações já irei fazer para subir a versão 0.03. Se você tentar instalar depois me fala se deu certo? From: bruno.buss em gmail.com Date: Sat, 3 May 2014 18:57:58 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Sobre o lance do next_palindrome antes do loop: Mas com isso você quebrou o caso onde o valor inicial já é um palindromo primo... ou seja, não ta certo :P Você não consegue fazer uma condição do loop melhor, tal que ela verifique as duas condições e só pare quando o número for um primo palindromo sempre, desde a 1a verificação? ;) Sobre a explicação do modulo: Opa, muito bom! Seems good to me :-)Só acho que você precisa tratar todos os casos onde $n =~ m/^9+$/, porque só o 99 e 999 não bastam (mas foi legal que você já tinha percebido o problema deles :-) Tratar eles é bem fácil eu acho:if($n =~ m/^9+$/){ $r = '1' . (0 x ((length $n) - 1)) . '1';} Seems legit? Por fim, seria legal voce escrever tudo isso na documentação do seu módulo, pois provavelmente vai ajudar quem estiver escolhendo um para usar :-) Acho que já estou convencido que sua next_palindrome está ok (tirando esse problema aí de cima dos números com todos os dígitos 9). Agora só precisamos melhorar o loop principal do seu programa. Lembre-se do que você quer (um primo palindromo) e do que você realmente precisa dentro desse seu loop. Tente construir uma invariante das iterações do loop, o que você pode garantir a cada passada do loop? 2014-05-03 11:27 GMT-03:00 Aureliano Guedes : Então, esse problema já é do loop principal e não do módulo. Porque eu faço: $time = next_palindrome($time); Antes do loop principal.acho que pode ser corrigido fazendo: $time = next_palindrome($time) if (!is_palindrome($time)); Fiz isso para evitar que um time() primo finalize o loop mesmo sem ele começar, já que o loop inicia assim: while(!is_prime($time)) Agora quanto ao módulo em sí, a logica usada é a seguinte:- Um número palíndromo é obrigatoriamente igual a ele mesmo se lido de traz para frente, então- Se dividirmos pela metade os dígitos de um numero palíndromo de número de dígitos maior ou igual a 2 então a primeira metade é obrigatoriamente igual a segunda lida de traz para frente. Isso me leva as seguintes conclusões: 1- Se o reverso da segunda parte é menor que a primeira parte # 8652 -> 86 > 25logo o próximo palíndromo é obrigatoriamente a primeira parte concatenada com o reverso dela mesma # 86 . (reverse 86)Isso se torna verdadeiro porque no caso usado para exemplo '8668' a segunda parte é o '68' que tem seu reverso '86' que é igual a primeira parte. 2- Se se o reverso da segunda parte é maior ou igual a primeira parte# 8668 -> 86 == 86 # ou # 8669 -> 86 < 96logo o próximo palíndromo é obrigatoriamente a primeira parte incrementada concatenada com seu reverso # 8668 -> 86 +1 -> 87 . 78 -> 8778 Então minha heurística foi aplicada em cima de uma lógica matemática, o que apesar do módulo não vir com os testes, em meus testes ao final do desenvolvimento ele fez corretamente todas as respostas. Inclusive estou fazendo algumas correções para subir estas correções.Eu não sei fazer direito aqueles testes, mas enviarei com os testes na próxima. Quanto ao Math::NumSeq::Palindromes, acho que poderia ser melhor de usar, mais direto, no meu você pode imprimir o próximo palindromo fazendo apenas 'say next_palindrome($n);'. From: bruno.buss em gmail.com Date: Sat, 3 May 2014 10:01:11 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que ele esteja correto, principalmente que a função "next_palindrome" retorne exatamente o próximo palindromo maior ou igual ao número... Para esse seu programa:(1) Entrada: 9. Saída esperada: 9. Saída atual: 11. (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é 191 e fiquei com preguiça de terminar o chinês. (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a iteração do while... o $time foi bumpado para 796 - por causa do if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para ele.... japa++ pela consideração entre as duas versões do reverse reverse $time. Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de construir uma invariante no algoritmo. 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK Engraçado: teve o melhor desempenho. Um simples detalhe reduziu o tempo de execução pela metade. Fazer: $time = reverse $time; $time++; $time = reverse $time; gera um desempenho melhor que fazer: $time = reverse (reverse $time++); From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Fri, 2 May 2014 00:04:04 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Bruno, resolvi o problema e segui a sua dica: http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm O http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era muito incompleto! From: bruno.buss em gmail.com Date: Mon, 28 Apr 2014 21:24:50 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo O problema é que quando time() está entre 89 e 96, next_prime($time) retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a resposta correta. O mesmo problema de antes, sua heurística para tentar pular números na sequencia de primos/palíndromos ainda não está muito boa. Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a metade dos dígitos do numero, porque você não usa a substr()? :-) 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : Bruno, Tratei a maioria dos erros e ainda ganhei em desempenho.O problema é que tem um bug que não consegui tratar. Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou <96 retorna corretamente 101. http://pastebin.com/3QVnbjbP Date: Sun, 27 Apr 2014 14:00:02 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Buss, Obrigado por analisar o código. Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou. Essa heurística foi apenas experimental. E ainda pode ser otimizada. Nao sou muito habilidoso quando se trata de achar esses tipos de erros. Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou. Vou ver o que posso fazer para resolver esses bugs. Obrigado pela análise. Bruno Buss escreveu: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos". Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : Esquece a ultima versão. Divisão é pesado para o processador. Fiz uma versão menor com menos divisões que parece ter uma melhor performance. http://pastebin.com/jrjEv3eh From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Sun, 27 Apr 2014 02:44:57 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: blabos em gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bruno.buss em gmail.com Sun May 4 18:26:37 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Sun, 4 May 2014 22:26:37 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: O seu teste 001_load.t ainda falha, basicamente porque ele tenta utilizar seu módulo como se fosse um objeto, tentando fazer um Math::Palindrome->new(). Assim, esse teste é criado automaticamente para você... e se seu módulo não for utilizado como um objeto, você pode remove-lo :-) Yay, moar tests! \o/ Algumas sugestões sobre os testes: * Quebre seus testes em arquivos diferentes, cada um testando uma função ou uma funcionalidade específica do seu módulo. * Talvez seja interessante fazer testes muito grandes, como o que seu que loopa nos 1os 100k palindromos, sejam marcados como testes para rodar somente no seu ambiente (de autor)... pois eles parecem mais smoke tests do que testes unitários de fato. Além disso, sobre esse seu teste do loop... ele está testando que o next_palindrome() de fato gera um palindromo, mas não testa se ele de fato gera o *proximo* palíndromo para todos aqueles casos. Como você faria para testar isso? :-) Mais duas sugestões sobre o processo de desenvolvimento at all: * Considere colocar o seu código num repositório onde outras pessoas podem contribuir, tanto na parte de código quanto de documentação, tipo o Github. * Experimente gerenciar seus modulos/dists com o Dist::Zilla... sua vida provavelmente será bem mais feliz :P https://metacpan.org/pod/Dist::Zilla Nice job! :-) [ ]'s 2014-05-04 21:48 GMT-03:00 Aureliano Guedes : > Acabei de subir para o CPAN a versão 0.02 daquele módulo. > https://metacpan.org/pod/Math::Palindrome > > Mas agora que acabei de ver seu e-mail. > > Algumas modificações já irei fazer para subir a versão 0.03. > > Se você tentar instalar depois me fala se deu certo? > > > ------------------------------ > From: bruno.buss em gmail.com > Date: Sat, 3 May 2014 18:57:58 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Sobre o lance do next_palindrome antes do loop: > > Mas com isso você quebrou o caso onde o valor inicial já é um palindromo > primo... ou seja, não ta certo :P > > Você não consegue fazer uma condição do loop melhor, tal que ela verifique > as duas condições e só pare quando o número for um primo palindromo sempre, > desde a 1a verificação? ;) > > Sobre a explicação do modulo: > > Opa, muito bom! Seems good to me :-) > Só acho que você precisa tratar todos os casos onde $n =~ m/^9+$/, porque > só o 99 e 999 não bastam (mas foi legal que você já tinha percebido o > problema deles :-) > > Tratar eles é bem fácil eu acho: > if($n =~ m/^9+$/){ > $r = '1' . (0 x ((length $n) - 1)) . '1'; > } > > Seems legit? > > Por fim, seria legal voce escrever tudo isso na documentação do seu > módulo, pois provavelmente vai ajudar quem estiver escolhendo um para usar > :-) > > Acho que já estou convencido que sua next_palindrome está ok (tirando esse > problema aí de cima dos números com todos os dígitos 9). Agora só > precisamos melhorar o loop principal do seu programa. Lembre-se do que você > quer (um primo palindromo) e do que você realmente precisa dentro desse seu > loop. Tente construir uma invariante das iterações do loop, o que você pode > garantir a cada passada do loop? > > > > 2014-05-03 11:27 GMT-03:00 Aureliano Guedes : > > Então, esse problema já é do loop principal e não do módulo. > Porque eu faço: > > 1. $time = next_palindrome($time); > > Antes do loop principal. > acho que pode ser corrigido fazendo: > > 1. $time = next_palindrome($time) if (!is_palindrome($time)); > > > Fiz isso para evitar que um time() primo finalize o loop mesmo sem ele > começar, já que o loop inicia assim: > while(!is_prime($time)) > > Agora quanto ao módulo em sí, a logica usada é a seguinte: > - Um número palíndromo é obrigatoriamente igual a ele mesmo se lido de > traz para frente, então > - Se dividirmos pela metade os dígitos de um numero palíndromo de número > de dígitos maior ou igual a 2 então a primeira metade é obrigatoriamente > igual a segunda lida de traz para frente. Isso me leva as seguintes > conclusões: > > 1- Se o reverso da segunda parte é menor que a primeira parte > # 8652 -> 86 > 25 > logo o próximo palíndromo é obrigatoriamente a primeira parte concatenada > com o reverso dela mesma > # 86 . (reverse 86) > Isso se torna verdadeiro porque no caso usado para exemplo '8668' a > segunda parte é o '68' que tem seu reverso '86' que é igual a primeira > parte. > > 2- Se se o reverso da segunda parte é maior ou igual a primeira parte > # 8668 -> 86 == 86 # ou # 8669 -> 86 < 96 > logo o próximo palíndromo é obrigatoriamente a primeira parte incrementada > concatenada com seu reverso > # 8668 -> 86 +1 -> 87 . 78 -> 8778 > > Então minha heurística foi aplicada em cima de uma lógica matemática, o > que apesar do módulo não vir com os testes, em meus testes ao final do > desenvolvimento ele fez corretamente todas as respostas. > Inclusive estou fazendo algumas correções para subir estas correções. > Eu não sei fazer direito aqueles testes, mas enviarei com os testes na > próxima. > > Quanto ao Math::NumSeq::Palindromes, acho que poderia ser melhor de usar, > mais direto, no meu você pode imprimir o próximo palindromo fazendo apenas > 'say next_palindrome($n);'. > > ------------------------------ > From: bruno.buss em gmail.com > Date: Sat, 3 May 2014 10:01:11 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que > ele esteja correto, principalmente que a função "next_palindrome" retorne > exatamente o próximo palindromo maior ou igual ao número... > > Para esse seu programa: > (1) Entrada: 9. Saída esperada: 9. Saída atual: 11. > > (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é > 191 e fiquei com preguiça de terminar o chinês. > > (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é > 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a > iteração do while... o $time foi bumpado para 796 - por causa do > if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para > ele.... > > > > japa++ pela consideração entre as duas versões do reverse reverse $time. > Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de > construir uma invariante no algoritmo. > > > 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : > > E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK > > Engraçado: teve o melhor desempenho. > Um simples detalhe reduziu o tempo de execução pela metade. > > Fazer: > $time = reverse $time; > $time++; > $time = reverse $time; > > gera um desempenho melhor que fazer: > > $time = reverse (reverse $time++); > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Fri, 2 May 2014 00:04:04 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sun May 4 18:39:36 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sun, 4 May 2014 22:39:36 -0300 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Message-ID: Entao vou colocar no github mesmo porque nao to sabendo fazer os testes. Bruno Buss escreveu: O seu teste 001_load.t ainda falha, basicamente porque ele tenta utilizar seu módulo como se fosse um objeto, tentando fazer um Math::Palindrome->new(). Assim, esse teste é criado automaticamente para você... e se seu módulo não for utilizado como um objeto, você pode remove-lo :-) Yay, moar tests! \o/ Algumas sugestões sobre os testes: * Quebre seus testes em arquivos diferentes, cada um testando uma função ou uma funcionalidade específica do seu módulo. * Talvez seja interessante fazer testes muito grandes, como o que seu que loopa nos 1os 100k palindromos, sejam marcados como testes para rodar somente no seu ambiente (de autor)... pois eles parecem mais smoke tests do que testes unitários de fato. Além disso, sobre esse seu teste do loop... ele está testando que o next_palindrome() de fato gera um palindromo, mas não testa se ele de fato gera o *proximo* palíndromo para todos aqueles casos. Como você faria para testar isso? :-) Mais duas sugestões sobre o processo de desenvolvimento at all: * Considere colocar o seu código num repositório onde outras pessoas podem contribuir, tanto na parte de código quanto de documentação, tipo o Github. * Experimente gerenciar seus modulos/dists com o Dist::Zilla... sua vida provavelmente será bem mais feliz :P https://metacpan.org/pod/Dist::Zilla Nice job! :-) [ ]'s 2014-05-04 21:48 GMT-03:00 Aureliano Guedes : > Acabei de subir para o CPAN a versão 0.02 daquele módulo. > https://metacpan.org/pod/Math::Palindrome > > Mas agora que acabei de ver seu e-mail. > > Algumas modificações já irei fazer para subir a versão 0.03. > > Se você tentar instalar depois me fala se deu certo? > > > ------------------------------ > From: bruno.buss em gmail.com > Date: Sat, 3 May 2014 18:57:58 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Sobre o lance do next_palindrome antes do loop: > > Mas com isso você quebrou o caso onde o valor inicial já é um palindromo > primo... ou seja, não ta certo :P > > Você não consegue fazer uma condição do loop melhor, tal que ela verifique > as duas condições e só pare quando o número for um primo palindromo sempre, > desde a 1a verificação? ;) > > Sobre a explicação do modulo: > > Opa, muito bom! Seems good to me :-) > Só acho que você precisa tratar todos os casos onde $n =~ m/^9+$/, porque > só o 99 e 999 não bastam (mas foi legal que você já tinha percebido o > problema deles :-) > > Tratar eles é bem fácil eu acho: > if($n =~ m/^9+$/){ > $r = '1' . (0 x ((length $n) - 1)) . '1'; > } > > Seems legit? > > Por fim, seria legal voce escrever tudo isso na documentação do seu > módulo, pois provavelmente vai ajudar quem estiver escolhendo um para usar > :-) > > Acho que já estou convencido que sua next_palindrome está ok (tirando esse > problema aí de cima dos números com todos os dígitos 9). Agora só > precisamos melhorar o loop principal do seu programa. Lembre-se do que você > quer (um primo palindromo) e do que você realmente precisa dentro desse seu > loop. Tente construir uma invariante das iterações do loop, o que você pode > garantir a cada passada do loop? > > > > 2014-05-03 11:27 GMT-03:00 Aureliano Guedes : > > Então, esse problema já é do loop principal e não do módulo. > Porque eu faço: > > 1. $time = next_palindrome($time); > > Antes do loop principal. > acho que pode ser corrigido fazendo: > > 1. $time = next_palindrome($time) if (!is_palindrome($time)); > > > Fiz isso para evitar que um time() primo finalize o loop mesmo sem ele > começar, já que o loop inicia assim: > while(!is_prime($time)) > > Agora quanto ao módulo em sí, a logica usada é a seguinte: > - Um número palíndromo é obrigatoriamente igual a ele mesmo se lido de > traz para frente, então > - Se dividirmos pela metade os dígitos de um numero palíndromo de número > de dígitos maior ou igual a 2 então a primeira metade é obrigatoriamente > igual a segunda lida de traz para frente. Isso me leva as seguintes > conclusões: > > 1- Se o reverso da segunda parte é menor que a primeira parte > # 8652 -> 86 > 25 > logo o próximo palíndromo é obrigatoriamente a primeira parte concatenada > com o reverso dela mesma > # 86 . (reverse 86) > Isso se torna verdadeiro porque no caso usado para exemplo '8668' a > segunda parte é o '68' que tem seu reverso '86' que é igual a primeira > parte. > > 2- Se se o reverso da segunda parte é maior ou igual a primeira parte > # 8668 -> 86 == 86 # ou # 8669 -> 86 < 96 > logo o próximo palíndromo é obrigatoriamente a primeira parte incrementada > concatenada com seu reverso > # 8668 -> 86 +1 -> 87 . 78 -> 8778 > > Então minha heurística foi aplicada em cima de uma lógica matemática, o > que apesar do módulo não vir com os testes, em meus testes ao final do > desenvolvimento ele fez corretamente todas as respostas. > Inclusive estou fazendo algumas correções para subir estas correções. > Eu não sei fazer direito aqueles testes, mas enviarei com os testes na > próxima. > > Quanto ao Math::NumSeq::Palindromes, acho que poderia ser melhor de usar, > mais direto, no meu você pode imprimir o próximo palindromo fazendo apenas > 'say next_palindrome($n);'. > > ------------------------------ > From: bruno.buss em gmail.com > Date: Sat, 3 May 2014 10:01:11 -0300 > > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que > ele esteja correto, principalmente que a função "next_palindrome" retorne > exatamente o próximo palindromo maior ou igual ao número... > > Para esse seu programa: > (1) Entrada: 9. Saída esperada: 9. Saída atual: 11. > > (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é > 191 e fiquei com preguiça de terminar o chinês. > > (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é > 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a > iteração do while... o $time foi bumpado para 796 - por causa do > if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para > ele.... > > > > japa++ pela consideração entre as duas versões do reverse reverse $time. > Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de > construir uma invariante no algoritmo. > > > 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : > > E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK > > Engraçado: teve o melhor desempenho. > Um simples detalhe reduziu o tempo de execução pela metade. > > Fazer: > $time = reverse $time; > $time++; > $time = reverse $time; > > gera um desempenho melhor que fazer: > > $time = reverse (reverse $time++); > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Fri, 2 May 2014 00:04:04 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Bruno, resolvi o problema e segui a sua dica: > http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm > > O > http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era > muito incompleto! > > ------------------------------ > From: bruno.buss em gmail.com > Date: Mon, 28 Apr 2014 21:24:50 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > O problema é que quando time() está entre 89 e 96, next_prime($time) > retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental > que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a > resposta correta. O mesmo problema de antes, sua heurística para tentar > pular números na sequencia de primos/palíndromos ainda não está muito boa. > > Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a > metade dos dígitos do numero, porque você não usa a substr()? :-) > > > 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : > > Bruno, > > Tratei a maioria dos erros e ainda ganhei em desempenho. > O problema é que tem um bug que não consegui tratar. > > Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou > <96 retorna corretamente 101. > > http://pastebin.com/3QVnbjbP > > ------------------------------ > Date: Sun, 27 Apr 2014 14:00:02 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Buss, > Obrigado por analisar o código. > Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber > esses bugs que me falou. > Essa heurística foi apenas experimental. > E ainda pode ser otimizada. > Nao sou muito habilidoso quando se trata de achar esses tipos de erros. > Por exemplo, se na rotina de geração de palíndromo eu verificasse se o > palíndromo gerado e par já ganharia no desempenho mas nao resolveria os > problemas que citou. > Vou ver o que posso fazer para resolver esses bugs. > Obrigado pela análise. > > > Bruno Buss escreveu: > > Olá Aureliano, > > Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar > alguns testes unitários para o seu código. :-) > > > Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia > "101" se o time() fosse "102". A resposta correta seria "131". A sua > "heurística geradora de palindromos" andou para trás nesse caso... me > parece um erro de design do algoritmo. > > > Essa sua nova versão: > * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado > correto nesse caso é "101". Mas isso é só um erro no seu loop principal, > que se for primo direto no começo ele nem verifica se é palindromo mas já > imprime direto. > > * Imprime "1003001" se o time() for 96... o que me parece meio longe do > resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística > geradora de palindromos". > > > > Ou seja, a eficiência do algoritmo é muito importante... mas sua > corretude deve vir antes. (A menos é claro que estejamos falando de > algoritmos aproximativos ou heurísticas para problemas intratáveis :-) > > Nesse caso em específico, parece que essa sua função geradora de > palindromos é de fato uma heurística para dar bumps na sequência e > economizar verificações... mas como observado você corre o risco de pular > algo que não deveria. > > Só como dúvida, essa sua heurística é fundamentada em algum resultado > matemático de fato ou apenas experimental? > > > [ ]'s > Buss > > > > 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : > > Esquece a ultima versão. > Divisão é pesado para o processador. > > Fiz uma versão menor com menos divisões que parece ter uma melhor > performance. > > http://pastebin.com/jrjEv3eh > > ------------------------------ > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Date: Sun, 27 Apr 2014 02:44:57 +0000 > > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Então tenho essa versão que executou em 1s. > > http://pastebin.com/DLdPwAkp > > ------------------------------ > From: blabos em gmail.com > Date: Sat, 26 Apr 2014 18:39:15 -0300 > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Vamos dar um desconto por causa do "primo". > > > 2014-04-25 23:26 GMT-03:00 Junior Moraes : > > Hi. > > Se for válido usar módulos externos, dá pra implementar com o > Math::Prime::XS para ficar mais performático. :-) > > []'s > > > Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: > > Não fiz em poucas linhas, mas fis em poucos segundos: > http://pastebin.com/DLdPwAkp > > ------------------------------ > Date: Tue, 22 Apr 2014 15:09:22 -0300 > > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma > única linha. > > Vinícius Miasato escreveu: > > Opa, > > parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código > funciona, mas o jogo de GOLF ainda está de pé? > > atenciosamente, > Vinícius Miasato > > > Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: > > http://ideone.com/LjvMRz > > 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) > > ------------------------------ > Date: Thu, 17 Apr 2014 22:25:48 -0300 > From: guedes_1000 em hotmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo > > > Boa ideia. Vou tentar. > > Blabos de Blebe escreveu: > > Que tal o menor palíndromo primo maior que time()? > > > 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : > > Pode ficar menor. > say '906609' > > Tiago Peczenyj escreveu: > > sub palindromo { 906609 } > > > 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : > > Ola monges, > > Nos últimos meses tenho visto nosso grupo um pouco parado. > E como estamos em véspera de pascoa. > Proponho uma brincadeira. > Jogar golf com o Desafio do Maior Palíndromo. > > O desafio é simples, achar o maior número palíndromo (ou seja, quando > lido de trás pra frente continua o mesmo) que seja resultado de uma > multiplicação de dois números de 3 dígitos. > > O resultado deverá ser: 906609 > > Eis a minha tacada: > > for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i > if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Sun May 4 19:12:03 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Mon, 5 May 2014 02:12:03 +0000 Subject: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo In-Reply-To: References: Message-ID: Link para o github para quem quiser e puder colaborarhttps://github.com/acpguedes/Math--Palindrome.git Date: Sun, 4 May 2014 22:39:36 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Entao vou colocar no github mesmo porque nao to sabendo fazer os testes. Bruno Buss escreveu: O seu teste 001_load.t ainda falha, basicamente porque ele tenta utilizar seu módulo como se fosse um objeto, tentando fazer um Math::Palindrome->new(). Assim, esse teste é criado automaticamente para você... e se seu módulo não for utilizado como um objeto, você pode remove-lo :-) Yay, moar tests! \o/ Algumas sugestões sobre os testes: * Quebre seus testes em arquivos diferentes, cada um testando uma função ou uma funcionalidade específica do seu módulo. * Talvez seja interessante fazer testes muito grandes, como o que seu que loopa nos 1os 100k palindromos, sejam marcados como testes para rodar somente no seu ambiente (de autor)... pois eles parecem mais smoke tests do que testes unitários de fato. Além disso, sobre esse seu teste do loop... ele está testando que o next_palindrome() de fato gera um palindromo, mas não testa se ele de fato gera o *proximo* palíndromo para todos aqueles casos. Como você faria para testar isso? :-) Mais duas sugestões sobre o processo de desenvolvimento at all: * Considere colocar o seu código num repositório onde outras pessoas podem contribuir, tanto na parte de código quanto de documentação, tipo o Github. * Experimente gerenciar seus modulos/dists com o Dist::Zilla... sua vida provavelmente será bem mais feliz :P https://metacpan.org/pod/Dist::Zilla Nice job! :-) [ ]'s 2014-05-04 21:48 GMT-03:00 Aureliano Guedes : Acabei de subir para o CPAN a versão 0.02 daquele módulo. https://metacpan.org/pod/Math::Palindrome Mas agora que acabei de ver seu e-mail. Algumas modificações já irei fazer para subir a versão 0.03. Se você tentar instalar depois me fala se deu certo? From: bruno.buss em gmail.com Date: Sat, 3 May 2014 18:57:58 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Sobre o lance do next_palindrome antes do loop: Mas com isso você quebrou o caso onde o valor inicial já é um palindromo primo... ou seja, não ta certo :P Você não consegue fazer uma condição do loop melhor, tal que ela verifique as duas condições e só pare quando o número for um primo palindromo sempre, desde a 1a verificação? ;) Sobre a explicação do modulo: Opa, muito bom! Seems good to me :-) Só acho que você precisa tratar todos os casos onde $n =~ m/^9+$/, porque só o 99 e 999 não bastam (mas foi legal que você já tinha percebido o problema deles :-) Tratar eles é bem fácil eu acho: if($n =~ m/^9+$/){ $r = '1' . (0 x ((length $n) - 1)) . '1'; } Seems legit? Por fim, seria legal voce escrever tudo isso na documentação do seu módulo, pois provavelmente vai ajudar quem estiver escolhendo um para usar :-) Acho que já estou convencido que sua next_palindrome está ok (tirando esse problema aí de cima dos números com todos os dígitos 9). Agora só precisamos melhorar o loop principal do seu programa. Lembre-se do que você quer (um primo palindromo) e do que você realmente precisa dentro desse seu loop. Tente construir uma invariante das iterações do loop, o que você pode garantir a cada passada do loop? 2014-05-03 11:27 GMT-03:00 Aureliano Guedes : Então, esse problema já é do loop principal e não do módulo. Porque eu faço: $time = next_palindrome($time); Antes do loop principal. acho que pode ser corrigido fazendo: $time = next_palindrome($time) if (!is_palindrome($time)); Fiz isso para evitar que um time() primo finalize o loop mesmo sem ele começar, já que o loop inicia assim: while(!is_prime($time)) Agora quanto ao módulo em sí, a logica usada é a seguinte: - Um número palíndromo é obrigatoriamente igual a ele mesmo se lido de traz para frente, então - Se dividirmos pela metade os dígitos de um numero palíndromo de número de dígitos maior ou igual a 2 então a primeira metade é obrigatoriamente igual a segunda lida de traz para frente. Isso me leva as seguintes conclusões: 1- Se o reverso da segunda parte é menor que a primeira parte # 8652 -> 86 > 25 logo o próximo palíndromo é obrigatoriamente a primeira parte concatenada com o reverso dela mesma # 86 . (reverse 86) Isso se torna verdadeiro porque no caso usado para exemplo '8668' a segunda parte é o '68' que tem seu reverso '86' que é igual a primeira parte. 2- Se se o reverso da segunda parte é maior ou igual a primeira parte # 8668 -> 86 == 86 # ou # 8669 -> 86 < 96 logo o próximo palíndromo é obrigatoriamente a primeira parte incrementada concatenada com seu reverso # 8668 -> 86 +1 -> 87 . 78 -> 8778 Então minha heurística foi aplicada em cima de uma lógica matemática, o que apesar do módulo não vir com os testes, em meus testes ao final do desenvolvimento ele fez corretamente todas as respostas. Inclusive estou fazendo algumas correções para subir estas correções. Eu não sei fazer direito aqueles testes, mas enviarei com os testes na próxima. Quanto ao Math::NumSeq::Palindromes, acho que poderia ser melhor de usar, mais direto, no meu você pode imprimir o próximo palindromo fazendo apenas 'say next_palindrome($n);'. From: bruno.buss em gmail.com Date: Sat, 3 May 2014 10:01:11 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então, eu não consigo instalar seu modulo no meu sistema, mas supondo que ele esteja correto, principalmente que a função "next_palindrome" retorne exatamente o próximo palindromo maior ou igual ao número... Para esse seu programa: (1) Entrada: 9. Saída esperada: 9. Saída atual: 11. (2) Entrada: 191. Saída esperada: 191. Saída atual: Alguma coisa que não é 191 e fiquei com preguiça de terminar o chinês. (3) Entrada: 666. Saída esperada: 727. Saída atual: Alguma coisa que não é 727 e fiquei com preguiça de terminar o chinês. Mas logo depois da 1a iteração do while... o $time foi bumpado para 796 - por causa do if((reverse $time) % 2 == 0) - e já passou do 727 e nunca vai voltar para ele.... japa++ pela consideração entre as duas versões do reverse reverse $time. Eu ainda acho que esse trecho ta errado destrói qualquer tentativa de construir uma invariante no algoritmo. 2014-05-01 22:27 GMT-03:00 Aureliano Guedes : E pronto minha solução sem os bugs que falou: http://pastebin.com/PQQyg5BK Engraçado: teve o melhor desempenho. Um simples detalhe reduziu o tempo de execução pela metade. Fazer: $time = reverse $time; $time++; $time = reverse $time; gera um desempenho melhor que fazer: $time = reverse (reverse $time++); From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Fri, 2 May 2014 00:04:04 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Bruno, resolvi o problema e segui a sua dica: http://cpansearch.perl.org/src/ACPGUEDES/Math-Palindrome-undef/lib/Math/Palindrome.pm O http://search.cpan.org/~kryde/Math-NumSeq-70/lib/Math/NumSeq/Palindromes.pm era muito incompleto! From: bruno.buss em gmail.com Date: Mon, 28 Apr 2014 21:24:50 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo O problema é que quando time() está entre 89 e 96, next_prime($time) retorna 97... e a palindrome(97) retorna 107 - se não errei o chines mental que acabei de fazer - ou seja, pulando um palíndromo primo, que seria a resposta correta. O mesmo problema de antes, sua heurística para tentar pular números na sequencia de primos/palíndromos ainda não está muito boa. Mais uma dica: Ao invés de usar aquela formula toda para pegar a 1a/2a metade dos dígitos do numero, porque você não usa a substr()? :-) 2014-04-27 20:49 GMT-03:00 Aureliano Guedes : Bruno, Tratei a maioria dos erros e ainda ganhei em desempenho. O problema é que tem um bug que não consegui tratar. Quando 89 <= time() <= 96 sempre retorna 131 e não 101, mas quando >89 ou <96 retorna corretamente 101. http://pastebin.com/3QVnbjbP Date: Sun, 27 Apr 2014 14:00:02 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Buss, Obrigado por analisar o código. Realmente eu fiz apenas alguns teste mas nao o suficiente para perceber esses bugs que me falou. Essa heurística foi apenas experimental. E ainda pode ser otimizada. Nao sou muito habilidoso quando se trata de achar esses tipos de erros. Por exemplo, se na rotina de geração de palíndromo eu verificasse se o palíndromo gerado e par já ganharia no desempenho mas nao resolveria os problemas que citou. Vou ver o que posso fazer para resolver esses bugs. Obrigado pela análise. Bruno Buss escreveu: Olá Aureliano, Muito bom seu esforço... mas eu acho que você deveria elaborar e rodar alguns testes unitários para o seu código. :-) Por exemplo, o seu código anterior (com as subs _par e _impar), imprimia "101" se o time() fosse "102". A resposta correta seria "131". A sua "heurística geradora de palindromos" andou para trás nesse caso... me parece um erro de design do algoritmo. Essa sua nova versão: * Imprime "13" se o time() for "13"... e 13 nem é palindromo! O resultado correto nesse caso é "101". Mas isso é só um erro no seu loop principal, que se for primo direto no começo ele nem verifica se é palindromo mas já imprime direto. * Imprime "1003001" se o time() for 96... o que me parece meio longe do resultado esperado, "101". Nesse caso, emho, o problema é a sua "heurística geradora de palindromos". Ou seja, a eficiência do algoritmo é muito importante... mas sua corretude deve vir antes. (A menos é claro que estejamos falando de algoritmos aproximativos ou heurísticas para problemas intratáveis :-) Nesse caso em específico, parece que essa sua função geradora de palindromos é de fato uma heurística para dar bumps na sequência e economizar verificações... mas como observado você corre o risco de pular algo que não deveria. Só como dúvida, essa sua heurística é fundamentada em algum resultado matemático de fato ou apenas experimental? [ ]'s Buss 2014-04-27 3:06 GMT-03:00 Aureliano Guedes : Esquece a ultima versão. Divisão é pesado para o processador. Fiz uma versão menor com menos divisões que parece ter uma melhor performance. http://pastebin.com/jrjEv3eh From: guedes_1000 em hotmail.com To: rio-pm em pm.org Date: Sun, 27 Apr 2014 02:44:57 +0000 Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Então tenho essa versão que executou em 1s. http://pastebin.com/DLdPwAkp From: blabos em gmail.com Date: Sat, 26 Apr 2014 18:39:15 -0300 To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Vamos dar um desconto por causa do "primo". 2014-04-25 23:26 GMT-03:00 Junior Moraes : Hi. Se for válido usar módulos externos, dá pra implementar com o Math::Prime::XS para ficar mais performático. :-) []'s Em 25 de abril de 2014 23:21, Aureliano Guedes escreveu: Não fiz em poucas linhas, mas fis em poucos segundos: http://pastebin.com/DLdPwAkp Date: Tue, 22 Apr 2014 15:09:22 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Claro que esta. Mas nao consegui fazer o que o que o Bablos sugeriu em uma única linha. Vinícius Miasato escreveu: Opa, parabéns por aceitar o desafio e levá-lo até o fim! Não sei se o código funciona, mas o jogo de GOLF ainda está de pé? atenciosamente, Vinícius Miasato Em 22 de abril de 2014 13:13, Aureliano Guedes escreveu: http://ideone.com/LjvMRz 4:30 rodando no dinossauro (AMD Athlon 1.6GHz, 2GB Ram) Date: Thu, 17 Apr 2014 22:25:48 -0300 From: guedes_1000 em hotmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] [GOLF] Descanso de Pascoa: Maior palindromo Boa ideia. Vou tentar. Blabos de Blebe escreveu: Que tal o menor palíndromo primo maior que time()? 2014-04-17 22:02 GMT-03:00 Aureliano Guedes : Pode ficar menor. say '906609' Tiago Peczenyj escreveu: sub palindromo { 906609 } 2014-04-17 21:45 GMT-03:00 Aureliano Guedes : Ola monges, Nos últimos meses tenho visto nosso grupo um pouco parado. E como estamos em véspera de pascoa. Proponho uma brincadeira. Jogar golf com o Desafio do Maior Palíndromo. O desafio é simples, achar o maior número palíndromo (ou seja, quando lido de trás pra frente continua o mesmo) que seja resultado de uma multiplicação de dois números de 3 dígitos. O resultado deverá ser: 906609 Eis a minha tacada: for(my$i=100;$i<1000;$i++){for(100..999){$_[0]=$_*$i if(($_*$i==reverse($_*$i))&&($_*$i>=$_[0]))}}say$_[0] _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Tiago B. Peczenyj Linux User #405772 http://about.me/peczenyj _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Bruno C. Buss http://www.brunobuss.net _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From dtostes em gmail.com Mon May 5 11:38:43 2014 From: dtostes em gmail.com (Diego Tostes) Date: Mon, 5 May 2014 15:38:43 -0300 Subject: [Rio-pm] empregos perl no rio (ou brasil) Message-ID: Pessoal, Como andam as vagas de perl no rio ou no brasil? Quais empresas ou nichos que mais contratam? Abs Diego -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From andregarciacarneiro em gmail.com Mon May 5 12:24:15 2014 From: andregarciacarneiro em gmail.com (Andre Carneiro) Date: Mon, 5 May 2014 16:24:15 -0300 Subject: [Rio-pm] empregos perl no rio (ou brasil) In-Reply-To: References: Message-ID: O que mais eu vejo é vaga para suporte de infra/rede e sys admin(por aqui, sinônimo para 'faz-tudo'). Quando não é isso, é para cuidar de código legado e/ou novo de back-end, o que eu considero bem divertido. Mas a principal observação é que, normalmente, o requisito principal para as vagas não é Perl, mas shellscript, Java, PHP(argh!) e coisas assim. Perl aparece quase sempre como requisito 'desejável', ao invés de 'básico' ou imprescindível. E isso é um tanto perturbador pra mim, pelo menos. Quanto a salário não sei dizer ao certo. Normalmente vale a pena investir em certificação LPI, no caso de trabalhos com suporte/infra. Os certificados ajudam você a ganhar um pouco mais. Mestrado, doutorado e afins parecem ter mais importância para cargos de liderança/executivos. Mas nada supera o networking... ;-) Tudo isso que eu falei é baseado no que tenho observado do mercado através de anúncios, e de colegas. Como eu não confio em pesquisas publicadas por consultorias de RH, prefiro acreditar no que vejo, do escuto de colegas, de quem me procura oferecendo emprego, e informações das listas de discussão. Espero ter ajudado Atenciosamente 2014-05-05 15:38 GMT-03:00 Diego Tostes : > Pessoal, > > Como andam as vagas de perl no rio ou no brasil? > > Quais empresas ou nichos que mais contratam? > > Abs > > Diego > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- André Garcia Carneiro Software Engineer (11)982907780 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From breno em rio.pm.org Tue May 6 07:00:27 2014 From: breno em rio.pm.org (breno) Date: Tue, 6 May 2014 11:00:27 -0300 Subject: [Rio-pm] empregos perl no rio (ou brasil) In-Reply-To: References: Message-ID: Falando em vagas no Rio de Janeiro, pra quem não sabe, a Estante Virtual está contratando desenvolvedores Perl 5 de todos os níveis (júnior/pleno/sênior) pra trabalhar com desenvolvimento Web! A Estante é um e-commerce consagrado de livros novos, seminovos e usados que agrega o acervo de sebos de todo o país. O sistema é todo em Perl 5 e usa módulos como Moo/Moose, Template Toolkit, DBIx::Connector, CHI, JSON, Try::Tiny, entre tantos outros (não temos medo de usar o CPAN, nosso cpanfile tem mais de 90 módulos!). O banco é em MySQL (com full-text em Sphinx e interface memcached), trabalhamos com git, testes e code reviews. O requisito principal das nossas vagas realmente não é Perl; é saber trabalhar bem em equipe (somos 9 devs Perl e contando!), analisar problemas e ser proativo nas soluções ;-) Enviem currículos pra rh em estantevirtual.com.br []s -b 2014-05-05 16:24 GMT-03:00 Andre Carneiro : > O que mais eu vejo é vaga para suporte de infra/rede e sys admin(por aqui, > sinônimo para 'faz-tudo'). Quando não é isso, é para cuidar de código legado > e/ou novo de back-end, o que eu considero bem divertido. Mas a principal > observação é que, normalmente, o requisito principal para as vagas não é > Perl, mas shellscript, Java, PHP(argh!) e coisas assim. Perl aparece quase > sempre como requisito 'desejável', ao invés de 'básico' ou imprescindível. E > isso é um tanto perturbador pra mim, pelo menos. > > Quanto a salário não sei dizer ao certo. Normalmente vale a pena investir em > certificação LPI, no caso de trabalhos com suporte/infra. Os certificados > ajudam você a ganhar um pouco mais. Mestrado, doutorado e afins parecem ter > mais importância para cargos de liderança/executivos. Mas nada supera o > networking... ;-) > > Tudo isso que eu falei é baseado no que tenho observado do mercado através > de anúncios, e de colegas. Como eu não confio em pesquisas publicadas por > consultorias de RH, prefiro acreditar no que vejo, do escuto de colegas, de > quem me procura oferecendo emprego, e informações das listas de discussão. > > > Espero ter ajudado > > > Atenciosamente > > > > 2014-05-05 15:38 GMT-03:00 Diego Tostes : >> >> Pessoal, >> >> Como andam as vagas de perl no rio ou no brasil? >> >> Quais empresas ou nichos que mais contratam? >> >> Abs >> >> Diego >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > André Garcia Carneiro > Software Engineer > (11)982907780 > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Tue May 6 07:53:50 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 6 May 2014 11:53:50 -0300 Subject: [Rio-pm] empregos perl no rio (ou brasil) Message-ID: Breno, por curiosidade. O que define um desenvolvedor Perl5 junior, pleno ou sênior? breno escreveu: Falando em vagas no Rio de Janeiro, pra quem não sabe, a Estante Virtual está contratando desenvolvedores Perl 5 de todos os níveis (júnior/pleno/sênior) pra trabalhar com desenvolvimento Web! A Estante é um e-commerce consagrado de livros novos, seminovos e usados que agrega o acervo de sebos de todo o país. O sistema é todo em Perl 5 e usa módulos como Moo/Moose, Template Toolkit, DBIx::Connector, CHI, JSON, Try::Tiny, entre tantos outros (não temos medo de usar o CPAN, nosso cpanfile tem mais de 90 módulos!). O banco é em MySQL (com full-text em Sphinx e interface memcached), trabalhamos com git, testes e code reviews. O requisito principal das nossas vagas realmente não é Perl; é saber trabalhar bem em equipe (somos 9 devs Perl e contando!), analisar problemas e ser proativo nas soluções ;-) Enviem currículos pra rh em estantevirtual.com.br []s -b 2014-05-05 16:24 GMT-03:00 Andre Carneiro : > O que mais eu vejo é vaga para suporte de infra/rede e sys admin(por aqui, > sinônimo para 'faz-tudo'). Quando não é isso, é para cuidar de código legado > e/ou novo de back-end, o que eu considero bem divertido. Mas a principal > observação é que, normalmente, o requisito principal para as vagas não é > Perl, mas shellscript, Java, PHP(argh!) e coisas assim. Perl aparece quase > sempre como requisito 'desejável', ao invés de 'básico' ou imprescindível. E > isso é um tanto perturbador pra mim, pelo menos. > > Quanto a salário não sei dizer ao certo. Normalmente vale a pena investir em > certificação LPI, no caso de trabalhos com suporte/infra. Os certificados > ajudam você a ganhar um pouco mais. Mestrado, doutorado e afins parecem ter > mais importância para cargos de liderança/executivos. Mas nada supera o > networking... ;-) > > Tudo isso que eu falei é baseado no que tenho observado do mercado através > de anúncios, e de colegas. Como eu não confio em pesquisas publicadas por > consultorias de RH, prefiro acreditar no que vejo, do escuto de colegas, de > quem me procura oferecendo emprego, e informações das listas de discussão. > > > Espero ter ajudado > > > Atenciosamente > > > > 2014-05-05 15:38 GMT-03:00 Diego Tostes : >> >> Pessoal, >> >> Como andam as vagas de perl no rio ou no brasil? >> >> Quais empresas ou nichos que mais contratam? >> >> Abs >> >> Diego >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > André Garcia Carneiro > Software Engineer > (11)982907780 > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From leonardo.balter em gmail.com Tue May 6 08:20:21 2014 From: leonardo.balter em gmail.com (Leo Balter) Date: Tue, 6 May 2014 12:20:21 -0300 Subject: [Rio-pm] empregos perl no rio (ou brasil) In-Reply-To: References: Message-ID: Junior: aquele que tem o mesmo nome do pai Pleno: aquele que não é gordo Sênior: maiores de 65 anos Brincadeiras a parte, as três são categorias de profissionais que não estão mais em nível estagiário e as três representam etapas de experiência profissional de cada. Do Junior que tem menos experiência ao sênior com mais. O pleno seria uma etapa intermediária. Isso é bem comum em várias empresas. Em 06/05/2014 11:54, "Aureliano Guedes" escreveu: > Breno, por curiosidade. O que define um desenvolvedor Perl5 junior, pleno > ou sênior? > > breno escreveu: > > Falando em vagas no Rio de Janeiro, pra quem não sabe, a Estante > Virtual está contratando desenvolvedores Perl 5 de todos os níveis > (júnior/pleno/sênior) pra trabalhar com desenvolvimento Web! > > A Estante é um e-commerce consagrado de livros novos, seminovos e > usados que agrega o acervo de sebos de todo o país. O sistema é todo > em Perl 5 e usa módulos como Moo/Moose, Template Toolkit, > DBIx::Connector, CHI, JSON, Try::Tiny, entre tantos outros (não temos > medo de usar o CPAN, nosso cpanfile tem mais de 90 módulos!). O banco > é em MySQL (com full-text em Sphinx e interface memcached), > trabalhamos com git, testes e code reviews. > > O requisito principal das nossas vagas realmente não é Perl; é saber > trabalhar bem em equipe (somos 9 devs Perl e contando!), analisar > problemas e ser proativo nas soluções ;-) > > Enviem currículos pra rh em estantevirtual.com.br > > > []s > > -b > > > 2014-05-05 16:24 GMT-03:00 Andre Carneiro : > > O que mais eu vejo é vaga para suporte de infra/rede e sys admin(por > aqui, > > sinônimo para 'faz-tudo'). Quando não é isso, é para cuidar de código > legado > > e/ou novo de back-end, o que eu considero bem divertido. Mas a principal > > observação é que, normalmente, o requisito principal para as vagas não é > > Perl, mas shellscript, Java, PHP(argh!) e coisas assim. Perl aparece > quase > > sempre como requisito 'desejável', ao invés de 'básico' ou > imprescindível. E > > isso é um tanto perturbador pra mim, pelo menos. > > > > Quanto a salário não sei dizer ao certo. Normalmente vale a pena > investir em > > certificação LPI, no caso de trabalhos com suporte/infra. Os certificados > > ajudam você a ganhar um pouco mais. Mestrado, doutorado e afins parecem > ter > > mais importância para cargos de liderança/executivos. Mas nada supera o > > networking... ;-) > > > > Tudo isso que eu falei é baseado no que tenho observado do mercado > através > > de anúncios, e de colegas. Como eu não confio em pesquisas publicadas por > > consultorias de RH, prefiro acreditar no que vejo, do escuto de colegas, > de > > quem me procura oferecendo emprego, e informações das listas de > discussão. > > > > > > Espero ter ajudado > > > > > > Atenciosamente > > > > > > > > 2014-05-05 15:38 GMT-03:00 Diego Tostes : > >> > >> Pessoal, > >> > >> Como andam as vagas de perl no rio ou no brasil? > >> > >> Quais empresas ou nichos que mais contratam? > >> > >> Abs > >> > >> Diego > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > > > -- > > André Garcia Carneiro > > Software Engineer > > (11)982907780 > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue May 6 10:02:58 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 6 May 2014 14:02:58 -0300 Subject: [Rio-pm] empregos perl no rio (ou brasil) Message-ID: Leo++; Que pena, eu nao seria capaz de me classificar nem mesmo como estagiário nem na minha área que e bioinformática. Mas tenho muita vontade de pegar experiencia trabalhando com dev Perl5. Leo Balter escreveu: Junior: aquele que tem o mesmo nome do pai Pleno: aquele que não é gordo Sênior: maiores de 65 anos Brincadeiras a parte, as três são categorias de profissionais que não estão mais em nível estagiário e as três representam etapas de experiência profissional de cada. Do Junior que tem menos experiência ao sênior com mais. O pleno seria uma etapa intermediária. Isso é bem comum em várias empresas. Em 06/05/2014 11:54, "Aureliano Guedes" escreveu: > Breno, por curiosidade. O que define um desenvolvedor Perl5 junior, pleno > ou sênior? > > breno escreveu: > > Falando em vagas no Rio de Janeiro, pra quem não sabe, a Estante > Virtual está contratando desenvolvedores Perl 5 de todos os níveis > (júnior/pleno/sênior) pra trabalhar com desenvolvimento Web! > > A Estante é um e-commerce consagrado de livros novos, seminovos e > usados que agrega o acervo de sebos de todo o país. O sistema é todo > em Perl 5 e usa módulos como Moo/Moose, Template Toolkit, > DBIx::Connector, CHI, JSON, Try::Tiny, entre tantos outros (não temos > medo de usar o CPAN, nosso cpanfile tem mais de 90 módulos!). O banco > é em MySQL (com full-text em Sphinx e interface memcached), > trabalhamos com git, testes e code reviews. > > O requisito principal das nossas vagas realmente não é Perl; é saber > trabalhar bem em equipe (somos 9 devs Perl e contando!), analisar > problemas e ser proativo nas soluções ;-) > > Enviem currículos pra rh em estantevirtual.com.br > > > []s > > -b > > > 2014-05-05 16:24 GMT-03:00 Andre Carneiro : > > O que mais eu vejo é vaga para suporte de infra/rede e sys admin(por > aqui, > > sinônimo para 'faz-tudo'). Quando não é isso, é para cuidar de código > legado > > e/ou novo de back-end, o que eu considero bem divertido. Mas a principal > > observação é que, normalmente, o requisito principal para as vagas não é > > Perl, mas shellscript, Java, PHP(argh!) e coisas assim. Perl aparece > quase > > sempre como requisito 'desejável', ao invés de 'básico' ou > imprescindível. E > > isso é um tanto perturbador pra mim, pelo menos. > > > > Quanto a salário não sei dizer ao certo. Normalmente vale a pena > investir em > > certificação LPI, no caso de trabalhos com suporte/infra. Os certificados > > ajudam você a ganhar um pouco mais. Mestrado, doutorado e afins parecem > ter > > mais importância para cargos de liderança/executivos. Mas nada supera o > > networking... ;-) > > > > Tudo isso que eu falei é baseado no que tenho observado do mercado > através > > de anúncios, e de colegas. Como eu não confio em pesquisas publicadas por > > consultorias de RH, prefiro acreditar no que vejo, do escuto de colegas, > de > > quem me procura oferecendo emprego, e informações das listas de > discussão. > > > > > > Espero ter ajudado > > > > > > Atenciosamente > > > > > > > > 2014-05-05 15:38 GMT-03:00 Diego Tostes : > >> > >> Pessoal, > >> > >> Como andam as vagas de perl no rio ou no brasil? > >> > >> Quais empresas ou nichos que mais contratam? > >> > >> Abs > >> > >> Diego > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > > > -- > > André Garcia Carneiro > > Software Engineer > > (11)982907780 > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From guedes_1000 em hotmail.com Tue May 6 11:19:57 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 6 May 2014 18:19:57 +0000 Subject: [Rio-pm] Bio::Filter Message-ID: Ola monges, Quero convidar todos nossos amigos que trabalham com bioinformática aderentes da filosofia open source a se juntar a mim para o desenvolvimento de um conjunto de módulos direcionados para filtra as longas listas de informações que temos que lidar na bioinformática. A ideia é ter fácil acesso por meio de pesquisa simples e direcionada a ferramentas para filtrar dados na bioinformática. Iniciei o projeto, e já tenho algumas ferramentas que vou revisar e fazer testes para incluir no projeto para enviar em breve para nosso querido CPAN. Quem quiser e puder colaborar, ficarei grato. GitHub: https://github.com/acpguedes/Bio--Filter.gitcontato: guedes.aureliano em gmail.com Estou aberto a critica, sugestões, colaborações, etc. Abraços, Aureliano Guedes -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From tiago.peczenyj em gmail.com Tue May 6 11:25:23 2014 From: tiago.peczenyj em gmail.com (Tiago Peczenyj) Date: Tue, 6 May 2014 15:25:23 -0300 Subject: [Rio-pm] Bio::Filter In-Reply-To: References: Message-ID: Bota logo no cpan. Como versão beta Em 06/05/2014 15:20, "Aureliano Guedes" escreveu: > Ola monges, > > Quero convidar todos nossos amigos que trabalham com bioinformática > aderentes da filosofia open source a se juntar a mim para o desenvolvimento > de um conjunto de módulos direcionados para filtra as longas listas de > informações que temos que lidar na bioinformática. > > A ideia é ter fácil acesso por meio de pesquisa simples e direcionada a > ferramentas para filtrar dados na bioinformática. > > Iniciei o projeto, e já tenho algumas ferramentas que vou revisar e fazer > testes para incluir no projeto para enviar em breve para nosso querido CPAN. > > Quem quiser e puder colaborar, ficarei grato. > > GitHub: https://github.com/acpguedes/Bio--Filter.git > contato: guedes.aureliano em gmail.com > > Estou aberto a critica, sugestões, colaborações, etc. > > Abraços, > > Aureliano Guedes > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From felipe em leprevost.com.br Tue May 6 12:22:34 2014 From: felipe em leprevost.com.br (Felipe da Veiga Leprevost) Date: Tue, 6 May 2014 16:22:34 -0300 Subject: [Rio-pm] Bio::Filter In-Reply-To: References: Message-ID: Olá Aureliano, Desculpa mas eu não entendi a proposta do seu módulo, pode explicar um pouco melhor dando exemplos? abraços 2014-05-06 15:25 GMT-03:00 Tiago Peczenyj : > Bota logo no cpan. Como versão beta > Em 06/05/2014 15:20, "Aureliano Guedes" > escreveu: > >> Ola monges, >> >> Quero convidar todos nossos amigos que trabalham com bioinformática >> aderentes da filosofia open source a se juntar a mim para o desenvolvimento >> de um conjunto de módulos direcionados para filtra as longas listas de >> informações que temos que lidar na bioinformática. >> >> A ideia é ter fácil acesso por meio de pesquisa simples e direcionada a >> ferramentas para filtrar dados na bioinformática. >> >> Iniciei o projeto, e já tenho algumas ferramentas que vou revisar e fazer >> testes para incluir no projeto para enviar em breve para nosso querido CPAN. >> >> Quem quiser e puder colaborar, ficarei grato. >> >> GitHub: https://github.com/acpguedes/Bio--Filter.git >> contato: guedes.aureliano em gmail.com >> >> Estou aberto a critica, sugestões, colaborações, etc. >> >> Abraços, >> >> Aureliano Guedes >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Felipe da Veiga Leprevost, PhD www.leprevost.com.br Laboratory for Proteomics and Protein Engineering. Fiocruz, Brazil. -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From andregarciacarneiro em gmail.com Tue May 6 14:43:04 2014 From: andregarciacarneiro em gmail.com (Andre Carneiro) Date: Tue, 6 May 2014 18:43:04 -0300 Subject: [Rio-pm] Bio::Filter In-Reply-To: References: Message-ID: Não sei exatamente o que você quer fazer. Só queria dizer que existe o Bioperl. Não sei se você conhece. http://www.bioperl.org/wiki/Main_Page 2014-05-06 16:22 GMT-03:00 Felipe da Veiga Leprevost < felipe em leprevost.com.br>: > Olá Aureliano, > > Desculpa mas eu não entendi a proposta do seu módulo, pode explicar um > pouco melhor dando exemplos? > abraços > > > 2014-05-06 15:25 GMT-03:00 Tiago Peczenyj : > > Bota logo no cpan. Como versão beta >> Em 06/05/2014 15:20, "Aureliano Guedes" >> escreveu: >> >>> Ola monges, >>> >>> Quero convidar todos nossos amigos que trabalham com bioinformática >>> aderentes da filosofia open source a se juntar a mim para o desenvolvimento >>> de um conjunto de módulos direcionados para filtra as longas listas de >>> informações que temos que lidar na bioinformática. >>> >>> A ideia é ter fácil acesso por meio de pesquisa simples e direcionada a >>> ferramentas para filtrar dados na bioinformática. >>> >>> Iniciei o projeto, e já tenho algumas ferramentas que vou revisar e >>> fazer testes para incluir no projeto para enviar em breve para nosso >>> querido CPAN. >>> >>> Quem quiser e puder colaborar, ficarei grato. >>> >>> GitHub: https://github.com/acpguedes/Bio--Filter.git >>> contato: guedes.aureliano em gmail.com >>> >>> Estou aberto a critica, sugestões, colaborações, etc. >>> >>> Abraços, >>> >>> Aureliano Guedes >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Felipe da Veiga Leprevost, PhD > www.leprevost.com.br > Laboratory for Proteomics and Protein Engineering. > Fiocruz, Brazil. > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- André Garcia Carneiro Software Engineer (11)982907780 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue May 6 15:27:14 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 6 May 2014 19:27:14 -0300 Subject: [Rio-pm] Bio::Filter Message-ID: O projeto nao e paralelo ao BioPerl, e dentro do BioPerl. Eu observei que ele e muito rico em ferramentas complexas para diversas áreas da bioinfo mas carece um pouco de ferramentas para filtrar os dados obtidos. Ou quando se tem um ferramenta para isso pesquisar ela e difícil também. Então eu vou montar um grupo de ferramentas para filtrar dados. Já eu subo pro CPAN um primeiro para tirar como exemplo. Andre Carneiro escreveu: Não sei exatamente o que você quer fazer. Só queria dizer que existe o Bioperl. Não sei se você conhece. http://www.bioperl.org/wiki/Main_Page 2014-05-06 16:22 GMT-03:00 Felipe da Veiga Leprevost < felipe em leprevost.com.br>: > Olá Aureliano, > > Desculpa mas eu não entendi a proposta do seu módulo, pode explicar um > pouco melhor dando exemplos? > abraços > > > 2014-05-06 15:25 GMT-03:00 Tiago Peczenyj : > > Bota logo no cpan. Como versão beta >> Em 06/05/2014 15:20, "Aureliano Guedes" >> escreveu: >> >>> Ola monges, >>> >>> Quero convidar todos nossos amigos que trabalham com bioinformática >>> aderentes da filosofia open source a se juntar a mim para o desenvolvimento >>> de um conjunto de módulos direcionados para filtra as longas listas de >>> informações que temos que lidar na bioinformática. >>> >>> A ideia é ter fácil acesso por meio de pesquisa simples e direcionada a >>> ferramentas para filtrar dados na bioinformática. >>> >>> Iniciei o projeto, e já tenho algumas ferramentas que vou revisar e >>> fazer testes para incluir no projeto para enviar em breve para nosso >>> querido CPAN. >>> >>> Quem quiser e puder colaborar, ficarei grato. >>> >>> GitHub: https://github.com/acpguedes/Bio--Filter.git >>> contato: guedes.aureliano em gmail.com >>> >>> Estou aberto a critica, sugestões, colaborações, etc. >>> >>> Abraços, >>> >>> Aureliano Guedes >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Felipe da Veiga Leprevost, PhD > www.leprevost.com.br > Laboratory for Proteomics and Protein Engineering. > Fiocruz, Brazil. > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- André Garcia Carneiro Software Engineer (11)982907780 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From viniciusmiasato em gmail.com Wed May 7 15:46:05 2014 From: viniciusmiasato em gmail.com (=?UTF-8?Q?Vin=C3=ADcius_Miasato?=) Date: Wed, 7 May 2014 19:46:05 -0300 Subject: [Rio-pm] ES - Rua Alice Message-ID: Opa pessoal, já faz tanto tempo! Que tal um ES pra animar a lista?! atenciosamente, Vinícius Miasato -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From lorn em lornlab.org Wed May 7 17:19:40 2014 From: lorn em lornlab.org (Lindolfo Rodrigues) Date: Wed, 7 May 2014 21:19:40 -0300 Subject: [Rio-pm] ES - Rua Alice In-Reply-To: References: Message-ID: <8A68418FEC5A499DB9ABC42D318462C6@lornlab.org> Se for dia 22/05 eu participo :) -- Lindolfo Rodrigues On Wednesday, May 7, 2014 at 7:46 PM, Vinícius Miasato wrote: > Opa pessoal, > > já faz tanto tempo! Que tal um ES pra animar a lista?! > > atenciosamente, > Vinícius Miasato > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org (mailto:Rio-pm em pm.org) > http://mail.pm.org/mailman/listinfo/rio-pm > > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From viniciusmiasato em gmail.com Thu May 8 09:43:42 2014 From: viniciusmiasato em gmail.com (=?UTF-8?Q?Vin=C3=ADcius_Miasato?=) Date: Thu, 8 May 2014 13:43:42 -0300 Subject: [Rio-pm] ES - Rua Alice In-Reply-To: <8A68418FEC5A499DB9ABC42D318462C6@lornlab.org> References: <8A68418FEC5A499DB9ABC42D318462C6@lornlab.org> Message-ID: Opa, dia ESX dia 22/05, agendado. atenciosamente, Vinícius Miasato Em 7 de maio de 2014 21:19, Lindolfo Rodrigues escreveu: > Se for dia 22/05 eu participo :) > > -- > Lindolfo Rodrigues > > On Wednesday, May 7, 2014 at 7:46 PM, Vinícius Miasato wrote: > > Opa pessoal, > > já faz tanto tempo! Que tal um ES pra animar a lista?! > > atenciosamente, > Vinícius Miasato > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From oainikusama em gmail.com Thu May 8 19:54:52 2014 From: oainikusama em gmail.com (breno) Date: Thu, 8 May 2014 23:54:52 -0300 Subject: [Rio-pm] ES - Rua Alice In-Reply-To: References: <8A68418FEC5A499DB9ABC42D318462C6@lornlab.org> Message-ID: Rua Alice? Eu vou! \o/ 2014-05-08 13:43 GMT-03:00 Vinícius Miasato : > Opa, > > dia ESX dia 22/05, agendado. > > atenciosamente, > Vinícius Miasato > > > Em 7 de maio de 2014 21:19, Lindolfo Rodrigues escreveu: > >> Se for dia 22/05 eu participo :) >> >> -- >> Lindolfo Rodrigues >> >> On Wednesday, May 7, 2014 at 7:46 PM, Vinícius Miasato wrote: >> >> Opa pessoal, >> >> já faz tanto tempo! Que tal um ES pra animar a lista?! >> >> atenciosamente, >> Vinícius Miasato >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm From breno em rio.pm.org Sat May 10 15:17:58 2014 From: breno em rio.pm.org (breno) Date: Sat, 10 May 2014 19:17:58 -0300 Subject: [Rio-pm] nota de falecimento Message-ID: Oi pessoal, é com muita tristeza e saudade que venho comunicar o falecimento de nossa querida amiga Diana Rosa. Diana começou a frequentar a comunidade nos encontros sociais da Rio Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo e ensinando. Tímida mas sempre animada, ela gostava de contar como, na época em que trabalhava com Java, implementou rapidamente um one-liner em Perl para corrigir um bug enquanto seus colegas ainda estavam desenhando 19 quadrinhos de UML para representar o problema. Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. A "di", como era conhecida pelos amigos, também adorava canto lírico e era uma excelente pintora. Uma de suas obras, feita para homenagear um amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua Alice, em frente ao local onde fizemos tantos encontros sociais da comunidade (e onde provavelmente faremos o próximo). Ainda não temos muitas informações, mas ao que parece ela não estava se sentindo bem ontem à noite, deitou para descansar e, infelizmente, não acordou. Ela nos deixa aos 27 anos. Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro será amanhã (11/05) às 11:00. Nossos sentimentos hoje vão para toda a família e amigos. breno From shonorio em gmail.com Sat May 10 15:39:12 2014 From: shonorio em gmail.com (Solli Honorio) Date: Sat, 10 May 2014 19:39:12 -0300 Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: Que notícia horrível ! Como pode uma coisa desta ? Ela tinha algum histórico médico ? Como é possível uma pessoa tão amável nos deixar tão rápido? Em sábado, 10 de maio de 2014, breno escreveu: > Oi pessoal, > > é com muita tristeza e saudade que venho comunicar o falecimento de > nossa querida amiga Diana Rosa. > > Diana começou a frequentar a comunidade nos encontros sociais da Rio > Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo > e ensinando. Tímida mas sempre animada, ela gostava de contar como, na > época em que trabalhava com Java, implementou rapidamente um one-liner > em Perl para corrigir um bug enquanto seus colegas ainda estavam > desenhando 19 quadrinhos de UML para representar o problema. > Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. > > A "di", como era conhecida pelos amigos, também adorava canto lírico e > era uma excelente pintora. Uma de suas obras, feita para homenagear um > amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua > Alice, em frente ao local onde fizemos tantos encontros sociais da > comunidade (e onde provavelmente faremos o próximo). > > Ainda não temos muitas informações, mas ao que parece ela não estava > se sentindo bem ontem à noite, deitou para descansar e, infelizmente, > não acordou. Ela nos deixa aos 27 anos. > > Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a > partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro > será amanhã (11/05) às 11:00. > > > Nossos sentimentos hoje vão para toda a família e amigos. > > breno > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Enviado do Gmail para celular -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From thiago em aware.com.br Sat May 10 16:32:02 2014 From: thiago em aware.com.br (Thiago Rondon) Date: Sat, 10 May 2014 20:32:02 -0300 Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: Tristeza... Como pode.... Em 10/05/2014 19:18, "breno" escreveu: > Oi pessoal, > > é com muita tristeza e saudade que venho comunicar o falecimento de > nossa querida amiga Diana Rosa. > > Diana começou a frequentar a comunidade nos encontros sociais da Rio > Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo > e ensinando. Tímida mas sempre animada, ela gostava de contar como, na > época em que trabalhava com Java, implementou rapidamente um one-liner > em Perl para corrigir um bug enquanto seus colegas ainda estavam > desenhando 19 quadrinhos de UML para representar o problema. > Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. > > A "di", como era conhecida pelos amigos, também adorava canto lírico e > era uma excelente pintora. Uma de suas obras, feita para homenagear um > amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua > Alice, em frente ao local onde fizemos tantos encontros sociais da > comunidade (e onde provavelmente faremos o próximo). > > Ainda não temos muitas informações, mas ao que parece ela não estava > se sentindo bem ontem à noite, deitou para descansar e, infelizmente, > não acordou. Ela nos deixa aos 27 anos. > > Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a > partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro > será amanhã (11/05) às 11:00. > > > Nossos sentimentos hoje vão para toda a família e amigos. > > breno > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Sat May 10 17:07:55 2014 From: renato.cron em gmail.com (Renato Santos) Date: Sat, 10 May 2014 21:07:55 -0300 Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: Vish vei, que bad :-\ Pã On May 10, 2014 8:32 PM, "Thiago Rondon" wrote: > Tristeza... Como pode.... > Em 10/05/2014 19:18, "breno" escreveu: > >> Oi pessoal, >> >> é com muita tristeza e saudade que venho comunicar o falecimento de >> nossa querida amiga Diana Rosa. >> >> Diana começou a frequentar a comunidade nos encontros sociais da Rio >> Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo >> e ensinando. Tímida mas sempre animada, ela gostava de contar como, na >> época em que trabalhava com Java, implementou rapidamente um one-liner >> em Perl para corrigir um bug enquanto seus colegas ainda estavam >> desenhando 19 quadrinhos de UML para representar o problema. >> Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. >> >> A "di", como era conhecida pelos amigos, também adorava canto lírico e >> era uma excelente pintora. Uma de suas obras, feita para homenagear um >> amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua >> Alice, em frente ao local onde fizemos tantos encontros sociais da >> comunidade (e onde provavelmente faremos o próximo). >> >> Ainda não temos muitas informações, mas ao que parece ela não estava >> se sentindo bem ontem à noite, deitou para descansar e, infelizmente, >> não acordou. Ela nos deixa aos 27 anos. >> >> Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a >> partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro >> será amanhã (11/05) às 11:00. >> >> >> Nossos sentimentos hoje vão para toda a família e amigos. >> >> breno >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Sat May 10 17:25:50 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Sat, 10 May 2014 21:25:50 -0300 Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: :( 2014-05-10 21:07 GMT-03:00 Renato Santos : > Vish vei, que bad > > :-\ > > Pã > On May 10, 2014 8:32 PM, "Thiago Rondon" wrote: > >> Tristeza... Como pode.... >> Em 10/05/2014 19:18, "breno" escreveu: >> >>> Oi pessoal, >>> >>> é com muita tristeza e saudade que venho comunicar o falecimento de >>> nossa querida amiga Diana Rosa. >>> >>> Diana começou a frequentar a comunidade nos encontros sociais da Rio >>> Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo >>> e ensinando. Tímida mas sempre animada, ela gostava de contar como, na >>> época em que trabalhava com Java, implementou rapidamente um one-liner >>> em Perl para corrigir um bug enquanto seus colegas ainda estavam >>> desenhando 19 quadrinhos de UML para representar o problema. >>> Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. >>> >>> A "di", como era conhecida pelos amigos, também adorava canto lírico e >>> era uma excelente pintora. Uma de suas obras, feita para homenagear um >>> amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua >>> Alice, em frente ao local onde fizemos tantos encontros sociais da >>> comunidade (e onde provavelmente faremos o próximo). >>> >>> Ainda não temos muitas informações, mas ao que parece ela não estava >>> se sentindo bem ontem à noite, deitou para descansar e, infelizmente, >>> não acordou. Ela nos deixa aos 27 anos. >>> >>> Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a >>> partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro >>> será amanhã (11/05) às 11:00. >>> >>> >>> Nossos sentimentos hoje vão para toda a família e amigos. >>> >>> breno >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From dan.vinciguerra em gmail.com Sun May 11 06:20:40 2014 From: dan.vinciguerra em gmail.com (Daniel Vinciguerra) Date: Sun, 11 May 2014 10:20:40 -0300 Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: :-( *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and co-founder at *Bivee* bivee.com.br - github.com/Bivee 2014-05-10 21:25 GMT-03:00 Blabos de Blebe : > :( > > > 2014-05-10 21:07 GMT-03:00 Renato Santos : > > Vish vei, que bad >> >> :-\ >> >> Pã >> On May 10, 2014 8:32 PM, "Thiago Rondon" wrote: >> >>> Tristeza... Como pode.... >>> Em 10/05/2014 19:18, "breno" escreveu: >>> >>>> Oi pessoal, >>>> >>>> é com muita tristeza e saudade que venho comunicar o falecimento de >>>> nossa querida amiga Diana Rosa. >>>> >>>> Diana começou a frequentar a comunidade nos encontros sociais da Rio >>>> Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo >>>> e ensinando. Tímida mas sempre animada, ela gostava de contar como, na >>>> época em que trabalhava com Java, implementou rapidamente um one-liner >>>> em Perl para corrigir um bug enquanto seus colegas ainda estavam >>>> desenhando 19 quadrinhos de UML para representar o problema. >>>> Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. >>>> >>>> A "di", como era conhecida pelos amigos, também adorava canto lírico e >>>> era uma excelente pintora. Uma de suas obras, feita para homenagear um >>>> amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua >>>> Alice, em frente ao local onde fizemos tantos encontros sociais da >>>> comunidade (e onde provavelmente faremos o próximo). >>>> >>>> Ainda não temos muitas informações, mas ao que parece ela não estava >>>> se sentindo bem ontem à noite, deitou para descansar e, infelizmente, >>>> não acordou. Ela nos deixa aos 27 anos. >>>> >>>> Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a >>>> partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro >>>> será amanhã (11/05) às 11:00. >>>> >>>> >>>> Nossos sentimentos hoje vão para toda a família e amigos. >>>> >>>> breno >>>> _______________________________________________ >>>> Rio-pm mailing list >>>> Rio-pm em pm.org >>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Sun May 11 07:39:42 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Sun, 11 May 2014 11:39:42 -0300 Subject: [Rio-pm] nota de falecimento Message-ID: -- Daniel Vinciguerra escreveu: :-( *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and co-founder at *Bivee* bivee.com.br - github.com/Bivee 2014-05-10 21:25 GMT-03:00 Blabos de Blebe : > :( > > > 2014-05-10 21:07 GMT-03:00 Renato Santos : > > Vish vei, que bad >> >> :-\ >> >> Pã >> On May 10, 2014 8:32 PM, "Thiago Rondon" wrote: >> >>> Tristeza... Como pode.... >>> Em 10/05/2014 19:18, "breno" escreveu: >>> >>>> Oi pessoal, >>>> >>>> é com muita tristeza e saudade que venho comunicar o falecimento de >>>> nossa querida amiga Diana Rosa. >>>> >>>> Diana começou a frequentar a comunidade nos encontros sociais da Rio >>>> Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo >>>> e ensinando. Tímida mas sempre animada, ela gostava de contar como, na >>>> época em que trabalhava com Java, implementou rapidamente um one-liner >>>> em Perl para corrigir um bug enquanto seus colegas ainda estavam >>>> desenhando 19 quadrinhos de UML para representar o problema. >>>> Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. >>>> >>>> A "di", como era conhecida pelos amigos, também adorava canto lírico e >>>> era uma excelente pintora. Uma de suas obras, feita para homenagear um >>>> amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua >>>> Alice, em frente ao local onde fizemos tantos encontros sociais da >>>> comunidade (e onde provavelmente faremos o próximo). >>>> >>>> Ainda não temos muitas informações, mas ao que parece ela não estava >>>> se sentindo bem ontem à noite, deitou para descansar e, infelizmente, >>>> não acordou. Ela nos deixa aos 27 anos. >>>> >>>> Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a >>>> partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro >>>> será amanhã (11/05) às 11:00. >>>> >>>> >>>> Nossos sentimentos hoje vão para toda a família e amigos. >>>> >>>> breno >>>> _______________________________________________ >>>> Rio-pm mailing list >>>> Rio-pm em pm.org >>>> http://mail.pm.org/mailman/listinfo/rio-pm >>>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From juniiior182 em gmail.com Sun May 11 13:47:01 2014 From: juniiior182 em gmail.com (Junior Moraes) Date: Sun, 11 May 2014 17:47:01 -0300 Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: Hi. Feels bad, man. :-( Se tem algo que eu nunca vou conseguir compreender é a tal morte... Só nos resta desejar força à família. :-( []'s Em 11 de maio de 2014 11:39, Aureliano Guedes escreveu: > -- > > Daniel Vinciguerra escreveu: > > :-( > > > * Daniel Vinciguerra (@dvinciguerra)* > Web solution architect, perl dev, vegetarian, geek and co-founder at > *Bivee* > bivee.com.br - github.com/Bivee > > > 2014-05-10 21:25 GMT-03:00 Blabos de Blebe : > > :( > > > 2014-05-10 21:07 GMT-03:00 Renato Santos : > > Vish vei, que bad > > :-\ > > Pã > On May 10, 2014 8:32 PM, "Thiago Rondon" wrote: > > Tristeza... Como pode.... > Em 10/05/2014 19:18, "breno" escreveu: > > Oi pessoal, > > é com muita tristeza e saudade que venho comunicar o falecimento de > nossa querida amiga Diana Rosa. > > Diana começou a frequentar a comunidade nos encontros sociais da Rio > Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo > e ensinando. Tímida mas sempre animada, ela gostava de contar como, na > época em que trabalhava com Java, implementou rapidamente um one-liner > em Perl para corrigir um bug enquanto seus colegas ainda estavam > desenhando 19 quadrinhos de UML para representar o problema. > Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. > > A "di", como era conhecida pelos amigos, também adorava canto lírico e > era uma excelente pintora. Uma de suas obras, feita para homenagear um > amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua > Alice, em frente ao local onde fizemos tantos encontros sociais da > comunidade (e onde provavelmente faremos o próximo). > > Ainda não temos muitas informações, mas ao que parece ela não estava > se sentindo bem ontem à noite, deitou para descansar e, infelizmente, > não acordou. Ela nos deixa aos 27 anos. > > Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a > partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro > será amanhã (11/05) às 11:00. > > > Nossos sentimentos hoje vão para toda a família e amigos. > > breno > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From merlyn em stonehenge.com Sun May 11 21:28:24 2014 From: merlyn em stonehenge.com (Randal L. Schwartz) Date: Sun, 11 May 2014 21:28:24 -0700 Subject: [Rio-pm] hacker space in the legislature? Message-ID: <86d2fj62on.fsf@red.stonehenge.com> Just heard from our "national public radio" that y'all now have a hackerspace in your government. Cool! -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 Perl/Unix consulting, Technical writing, Comedy, etc. etc. Still trying to think of something clever for the fourth line of this .sig From malsi2 em yahoo.com.br Mon May 12 04:53:23 2014 From: malsi2 em yahoo.com.br (Matheus Lucas) Date: Mon, 12 May 2014 04:53:23 -0700 (PDT) Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: <1399895603.88128.YahooMailNeo@web140403.mail.bf1.yahoo.com> Transmito meus sinceros sentimentos a todos os monges que a conhecia, colegas de trabalhos, familiares... :-( ------------------------------------------------------------------------------------------ Matheus Lucas Analista de Tecnologia da Informação Grupo de Pesquisas em Interação Atmosfera-Biosfera Depto. Engenharia Agrícola - UFV - Viçosa - MG (31) 7144-7456 - (31) 3899-1902 http://www.biosfera.dea.ufv.br/ "Seja livre, use Linux !" ________________________________ De: Junior Moraes Para: Perl Mongers Rio de Janeiro Enviadas: Domingo, 11 de Maio de 2014 17:47 Assunto: Re: [Rio-pm] nota de falecimento Hi. Feels bad, man. :-( Se tem algo que eu nunca vou conseguir compreender é a tal morte... Só nos resta desejar força à família. :-( []'s Em 11 de maio de 2014 11:39, Aureliano Guedes escreveu: -- > >Daniel Vinciguerra escreveu: > > >:-( > > > > >Daniel Vinciguerra (@dvinciguerra) >Web solution architect, perl dev, vegetarian, geek and co-founder at Bivee >bivee.com.br  -  github.com/Bivee > > > >2014-05-10 21:25 GMT-03:00 Blabos de Blebe : > >:( >> >> >> >>2014-05-10 21:07 GMT-03:00 Renato Santos : >> >> >>Vish vei, que bad >>>:-\ >>>Pã >>>On May 10, 2014 8:32 PM, "Thiago Rondon" wrote: >>> >>>Tristeza... Como pode.... >>>>Em 10/05/2014 19:18, "breno" escreveu: >>>> >>>>Oi pessoal, >>>>> >>>>>é com muita tristeza e saudade que venho comunicar o falecimento de >>>>>nossa querida amiga Diana Rosa. >>>>> >>>>>Diana começou a frequentar a comunidade nos encontros sociais da Rio >>>>>Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo >>>>>e ensinando. Tímida mas sempre animada, ela gostava de contar como, na >>>>>época em que trabalhava com Java, implementou rapidamente um one-liner >>>>>em Perl para corrigir um bug enquanto seus colegas ainda estavam >>>>>desenhando 19 quadrinhos de UML para representar o problema. >>>>>Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. >>>>> >>>>>A "di", como era conhecida pelos amigos, também adorava canto lírico e >>>>>era uma excelente pintora. Uma de suas obras, feita para homenagear um >>>>>amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua >>>>>Alice, em frente ao local onde fizemos tantos encontros sociais da >>>>>comunidade (e onde provavelmente faremos o próximo). >>>>> >>>>>Ainda não temos muitas informações, mas ao que parece ela não estava >>>>>se sentindo bem ontem à noite, deitou para descansar e, infelizmente, >>>>>não acordou. Ela nos deixa aos 27 anos. >>>>> >>>>>Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a >>>>>partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro >>>>>será amanhã (11/05) às 11:00. >>>>> >>>>> >>>>>Nossos sentimentos hoje vão para toda a família e amigos. >>>>> >>>>>breno >>>>>_______________________________________________ >>>>>Rio-pm mailing list >>>>>Rio-pm em pm.org >>>>>http://mail.pm.org/mailman/listinfo/rio-pm >>>>> >>>>_______________________________________________ >>>>Rio-pm mailing list >>>>Rio-pm em pm.org >>>>http://mail.pm.org/mailman/listinfo/rio-pm >>>> >>>_______________________________________________ >>>Rio-pm mailing list >>>Rio-pm em pm.org >>>http://mail.pm.org/mailman/listinfo/rio-pm >>> >> >>_______________________________________________ >>Rio-pm mailing list >>Rio-pm em pm.org >>http://mail.pm.org/mailman/listinfo/rio-pm >> > >_______________________________________________ >Rio-pm mailing list >Rio-pm em pm.org >http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From gabriel.vieira em gmail.com Mon May 12 05:02:21 2014 From: gabriel.vieira em gmail.com (Gabriel Vieira) Date: Mon, 12 May 2014 09:02:21 -0300 Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: Que notícia triste! Uma menina linda! Sempre sorrindo e passando energias boas! 2014-05-10 19:17 GMT-03:00 breno : > Oi pessoal, > > é com muita tristeza e saudade que venho comunicar o falecimento de > nossa querida amiga Diana Rosa. > > Diana começou a frequentar a comunidade nos encontros sociais da Rio > Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo > e ensinando. Tímida mas sempre animada, ela gostava de contar como, na > época em que trabalhava com Java, implementou rapidamente um one-liner > em Perl para corrigir um bug enquanto seus colegas ainda estavam > desenhando 19 quadrinhos de UML para representar o problema. > Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. > > A "di", como era conhecida pelos amigos, também adorava canto lírico e > era uma excelente pintora. Uma de suas obras, feita para homenagear um > amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua > Alice, em frente ao local onde fizemos tantos encontros sociais da > comunidade (e onde provavelmente faremos o próximo). > > Ainda não temos muitas informações, mas ao que parece ela não estava > se sentindo bem ontem à noite, deitou para descansar e, infelizmente, > não acordou. Ela nos deixa aos 27 anos. > > Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a > partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro > será amanhã (11/05) às 11:00. > > > Nossos sentimentos hoje vão para toda a família e amigos. > > breno > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Gabriel Vieira -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bionica2007-perl em yahoo.com Mon May 12 07:17:47 2014 From: bionica2007-perl em yahoo.com (Nicole Scherer) Date: Mon, 12 May 2014 07:17:47 -0700 (PDT) Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: <1399904267.83275.YahooMailNeo@web120405.mail.ne1.yahoo.com> Que triste notícia, Breno. A Diana era uma dos poucos mongers (difícil concordância) que eu conhecia pessoalmente, e era um dos rostos que montava a minha imagem deste grupo. Difícil de aceitar que tenha acontecido isto. Muito ruim! Abraços e força aos que terão que conviver com o espaço vazio deixado por sua ausência. Nicole Em Segunda-feira, 12 de Maio de 2014 9:03, Gabriel Vieira escreveu: Que notícia triste! Uma menina linda! Sempre sorrindo e passando energias boas! 2014-05-10 19:17 GMT-03:00 breno : Oi pessoal, > >é com muita tristeza e saudade que venho comunicar o falecimento de >nossa querida amiga Diana Rosa. > >Diana começou a frequentar a comunidade nos encontros sociais da Rio >Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo >e ensinando. Tímida mas sempre animada, ela gostava de contar como, na >época em que trabalhava com Java, implementou rapidamente um one-liner >em Perl para corrigir um bug enquanto seus colegas ainda estavam >desenhando 19 quadrinhos de UML para representar o problema. >Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. > >A "di", como era conhecida pelos amigos, também adorava canto lírico e >era uma excelente pintora. Uma de suas obras, feita para homenagear um >amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua >Alice, em frente ao local onde fizemos tantos encontros sociais da >comunidade (e onde provavelmente faremos o próximo). > >Ainda não temos muitas informações, mas ao que parece ela não estava >se sentindo bem ontem à noite, deitou para descansar e, infelizmente, >não acordou. Ela nos deixa aos 27 anos. > >Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a >partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro >será amanhã (11/05) às 11:00. > > >Nossos sentimentos hoje vão para toda a família e amigos. > >breno >_______________________________________________ >Rio-pm mailing list >Rio-pm em pm.org >http://mail.pm.org/mailman/listinfo/rio-pm > -- Gabriel Vieira _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From bionica2007-perl em yahoo.com Mon May 12 07:26:24 2014 From: bionica2007-perl em yahoo.com (Nicole Scherer) Date: Mon, 12 May 2014 07:26:24 -0700 (PDT) Subject: [Rio-pm] Bio::Filter In-Reply-To: References: Message-ID: <1399904784.40927.YahooMailNeo@web120405.mail.ne1.yahoo.com> Oi Aureliano, para filtrar flat files do UniprotKB e do Genbank eu criei meus próprios scripts, usando programação estruturada (há uns bons anos), pois não conseguia me entender bem com o BioPerl e a orientação a objetos. Também tenho scripts para trabalhar saídas de alinhamentos e do hmmer. Como posso ajudar? Que formato estás usando? Abs, Nicole Em Terça-feira, 6 de Maio de 2014 19:35, Aureliano Guedes escreveu: O projeto nao e paralelo ao BioPerl, e dentro do BioPerl. Eu observei que ele e muito rico em ferramentas complexas para diversas áreas da bioinfo mas carece um pouco de ferramentas para filtrar os dados obtidos. Ou quando se tem um ferramenta para isso pesquisar ela e difícil também. Então eu vou montar um grupo de ferramentas para filtrar dados. Já eu subo pro CPAN um primeiro para tirar como exemplo. Andre Carneiro escreveu: Não sei exatamente o que você quer fazer. Só queria dizer que existe o Bioperl. Não sei se você conhece. http://www.bioperl.org/wiki/Main_Page 2014-05-06 16:22 GMT-03:00 Felipe da Veiga Leprevost : Olá Aureliano, > > >Desculpa mas eu não entendi a proposta do seu módulo, pode explicar um pouco melhor dando exemplos? >abraços > > > >2014-05-06 15:25 GMT-03:00 Tiago Peczenyj : > > >Bota logo no cpan. Como versão beta >>Em 06/05/2014 15:20, "Aureliano Guedes" escreveu: >> >>Ola monges, >>> >>> >>>Quero convidar todos nossos amigos que trabalham com bioinformática aderentes da filosofia open source a se juntar a mim para o desenvolvimento de um conjunto de módulos direcionados para filtra as longas listas de informações que temos que lidar na bioinformática.  >>> >>> >>>A ideia é ter fácil acesso por meio de pesquisa simples e direcionada a ferramentas para filtrar dados na bioinformática. >>> >>> >>>Iniciei o projeto, e já tenho algumas ferramentas que vou revisar e fazer testes para incluir no projeto para enviar em breve para nosso querido CPAN. >>> >>> >>>Quem quiser e puder colaborar, ficarei grato. >>> >>> >>>GitHub: https://github.com/acpguedes/Bio--Filter.git >>>contato: guedes.aureliano em gmail.com >>> >>> >>>Estou aberto a critica, sugestões, colaborações, etc. >>> >>> >>>Abraços, >>> >>> >>>Aureliano Guedes >>> _______________________________________________ >>>Rio-pm mailing list >>>Rio-pm em pm.org >>>http://mail.pm.org/mailman/listinfo/rio-pm >>> >>_______________________________________________ >>Rio-pm mailing list >>Rio-pm em pm.org >>http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > >Felipe da Veiga Leprevost, PhD >www.leprevost.com.br > >Laboratory for Proteomics and Protein Engineering. >Fiocruz, Brazil. >_______________________________________________ >Rio-pm mailing list >Rio-pm em pm.org >http://mail.pm.org/mailman/listinfo/rio-pm > -- André Garcia Carneiro Software Engineer (11)982907780 _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From andregarciacarneiro em gmail.com Mon May 12 08:25:36 2014 From: andregarciacarneiro em gmail.com (Andre Carneiro) Date: Mon, 12 May 2014 12:25:36 -0300 Subject: [Rio-pm] nota de falecimento In-Reply-To: References: Message-ID: Meus sentimentos! 2014-05-12 9:02 GMT-03:00 Gabriel Vieira : > Que notícia triste! > > Uma menina linda! Sempre sorrindo e passando energias boas! > > > 2014-05-10 19:17 GMT-03:00 breno : > > Oi pessoal, >> >> é com muita tristeza e saudade que venho comunicar o falecimento de >> nossa querida amiga Diana Rosa. >> >> Diana começou a frequentar a comunidade nos encontros sociais da Rio >> Perl Mongers há alguns anos e aos poucos foi se engajando, aprendendo >> e ensinando. Tímida mas sempre animada, ela gostava de contar como, na >> época em que trabalhava com Java, implementou rapidamente um one-liner >> em Perl para corrigir um bug enquanto seus colegas ainda estavam >> desenhando 19 quadrinhos de UML para representar o problema. >> Atualmente, trabalhava como desenvolvedora Perl na Estante Virtual. >> >> A "di", como era conhecida pelos amigos, também adorava canto lírico e >> era uma excelente pintora. Uma de suas obras, feita para homenagear um >> amigo que faceleu recentemente, hoje enfeita o muro na esquina da Rua >> Alice, em frente ao local onde fizemos tantos encontros sociais da >> comunidade (e onde provavelmente faremos o próximo). >> >> Ainda não temos muitas informações, mas ao que parece ela não estava >> se sentindo bem ontem à noite, deitou para descansar e, infelizmente, >> não acordou. Ela nos deixa aos 27 anos. >> >> Aos que quiserem prestar sua homenagem, o velório será hoje (10/05) a >> partir das 22:00 na Capela 7 do Cemitério São João Batista. O enterro >> será amanhã (11/05) às 11:00. >> >> >> Nossos sentimentos hoje vão para toda a família e amigos. >> >> breno >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Gabriel Vieira > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- André Garcia Carneiro Software Engineer (11)982907780 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From leobetosouza em gmail.com Mon May 12 10:49:33 2014 From: leobetosouza em gmail.com (Leonardo Alberto Souza) Date: Mon, 12 May 2014 14:49:33 -0300 Subject: [Rio-pm] ES - Rua Alice In-Reply-To: References: <8A68418FEC5A499DB9ABC42D318462C6@lornlab.org> Message-ID: Sonho Lindo! No Sonho Lindo! --- *Leonardo Alberto A. de J. Souza - Leobetosouza* 2014-05-08 23:54 GMT-03:00 breno : > Rua Alice? Eu vou! \o/ > > 2014-05-08 13:43 GMT-03:00 Vinícius Miasato : > > Opa, > > > > dia ESX dia 22/05, agendado. > > > > atenciosamente, > > Vinícius Miasato > > > > > > Em 7 de maio de 2014 21:19, Lindolfo Rodrigues > escreveu: > > > >> Se for dia 22/05 eu participo :) > >> > >> -- > >> Lindolfo Rodrigues > >> > >> On Wednesday, May 7, 2014 at 7:46 PM, Vinícius Miasato wrote: > >> > >> Opa pessoal, > >> > >> já faz tanto tempo! Que tal um ES pra animar a lista?! > >> > >> atenciosamente, > >> Vinícius Miasato > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > >> > >> > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From leonardo.balter em gmail.com Thu May 15 09:24:40 2014 From: leonardo.balter em gmail.com (Leo Balter) Date: Thu, 15 May 2014 13:24:40 -0300 Subject: [Rio-pm] empregos perl no rio (ou brasil) In-Reply-To: References: Message-ID: Aureliano, da uma olhada nesse artigo explicando - de certa forma - uma diferenciação entre Junior e sênior: http://www.centurylinklabs.com/career-path-of-a-programmer/ Em 6 de maio de 2014 14:02, Aureliano Guedes escreveu: > Leo++; > > Que pena, eu nao seria capaz de me classificar nem mesmo como estagiário > nem na minha área que e bioinformática. > Mas tenho muita vontade de pegar experiencia trabalhando com dev Perl5. > > Leo Balter escreveu: > > Junior: aquele que tem o mesmo nome do pai > Pleno: aquele que não é gordo > Sênior: maiores de 65 anos > > Brincadeiras a parte, as três são categorias de profissionais que não > estão mais em nível estagiário e as três representam etapas de experiência > profissional de cada. Do Junior que tem menos experiência ao sênior com > mais. O pleno seria uma etapa intermediária. > > Isso é bem comum em várias empresas. > Em 06/05/2014 11:54, "Aureliano Guedes" > escreveu: > > Breno, por curiosidade. O que define um desenvolvedor Perl5 junior, pleno > ou sênior? > > breno escreveu: > > Falando em vagas no Rio de Janeiro, pra quem não sabe, a Estante > Virtual está contratando desenvolvedores Perl 5 de todos os níveis > (júnior/pleno/sênior) pra trabalhar com desenvolvimento Web! > > A Estante é um e-commerce consagrado de livros novos, seminovos e > usados que agrega o acervo de sebos de todo o país. O sistema é todo > em Perl 5 e usa módulos como Moo/Moose, Template Toolkit, > DBIx::Connector, CHI, JSON, Try::Tiny, entre tantos outros (não temos > medo de usar o CPAN, nosso cpanfile tem mais de 90 módulos!). O banco > é em MySQL (com full-text em Sphinx e interface memcached), > trabalhamos com git, testes e code reviews. > > O requisito principal das nossas vagas realmente não é Perl; é saber > trabalhar bem em equipe (somos 9 devs Perl e contando!), analisar > problemas e ser proativo nas soluções ;-) > > Enviem currículos pra rh em estantevirtual.com.br > > > []s > > -b > > > 2014-05-05 16:24 GMT-03:00 Andre Carneiro : > > O que mais eu vejo é vaga para suporte de infra/rede e sys admin(por > aqui, > > sinônimo para 'faz-tudo'). Quando não é isso, é para cuidar de código > legado > > e/ou novo de back-end, o que eu considero bem divertido. Mas a principal > > observação é que, normalmente, o requisito principal para as vagas não é > > Perl, mas shellscript, Java, PHP(argh!) e coisas assim. Perl aparece > quase > > sempre como requisito 'desejável', ao invés de 'básico' ou > imprescindível. E > > isso é um tanto perturbador pra mim, pelo menos. > > > > Quanto a salário não sei dizer ao certo. Normalmente vale a pena > investir em > > certificação LPI, no caso de trabalhos com suporte/infra. Os certificados > > ajudam você a ganhar um pouco mais. Mestrado, doutorado e afins parecem > ter > > mais importância para cargos de liderança/executivos. Mas nada supera o > > networking... ;-) > > > > Tudo isso que eu falei é baseado no que tenho observado do mercado > através > > de anúncios, e de colegas. Como eu não confio em pesquisas publicadas por > > consultorias de RH, prefiro acreditar no que vejo, do escuto de colegas, > de > > quem me procura oferecendo emprego, e informações das listas de > discussão. > > > > > > Espero ter ajudado > > > > > > Atenciosamente > > > > > > > > 2014-05-05 15:38 GMT-03:00 Diego Tostes : > >> > >> Pessoal, > >> > >> Como andam as vagas de perl no rio ou no brasil? > >> > >> Quais empresas ou nichos que mais contratam? > >> > >> Abs > >> > >> Diego > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > > > -- > > André Garcia Carneiro > > Software Engineer > > (11)982907780 > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From nuba em fastmail.fm Sun May 18 23:55:47 2014 From: nuba em fastmail.fm (Nuba Princigalli) Date: Mon, 19 May 2014 03:55:47 -0300 Subject: [Rio-pm] Fwd: Re: [SP-pm] ESX - Cervejaria Nacional Message-ID: <1400482547.14768.118908145.29387C0B@webmail.messagingengine.com> A quem interessar: está rolando essa thread na saopaulo-pm. ----- Original message ----- From: Nuba Princigalli <[1]nuba em fastmail.fm> To: [2]saopaulo-pm em pm.org Subject: Re: [SP-pm] ESX - Cervejaria Nacional Date: Mon, 19 May 2014 03:52:17 -0300 É como o Fernando disse. Deja-vu total. Na esperança de evitar mais uma repetição, e de tentar aprender com os erros anteriores, comento sobre o que rolou quando essa discussão surgiu pela primeira vez (para mim) em 2010-2011, e como a coisa também não se desenrolou... A falta de um CNPJ próprio é inconveniente em diversas situações, mas nunca foi um impeditivo. Especialmente não para a nossa turma, cheia de sevirol e capacidade de encontrar hacks e workarounds. Quando foi preciso um CNPJ para aceitar pagamentos no YAPC::Brasil, o Thiago Rondon sempre esteve à postos com a Aware, e deu tudo certo. Quando se discutiu a necessidade de termos uma entidade pública, sem fins lucrativos, eu estava à postos com o Instituto Aviva, iniciativa do meu pai, que atua com projetos culturais, em Belo Horizonte, MG. Ofereci até a alteração do nosso estatuto, para incluir "atuação na comunidade brasileira de software livre" como um dos objetivos do Instituto Aviva. Isso permitira criarmos um fundo só pras nossas iniciativas, com seus próprios objetivos, gestores, conta corrente e prestação de contas independente das outras ações do Instituto Aviva. As empresas brasileiras amigas do Perl poderiam doar direto para o fundo, e a gente teria facilidade em usar esse dinheiro, desde que o uso estivesse alinhado com os objetivos do fundo, que a princípio seriam a realização dos nossos eventos e a oferta de bolsas, para membros da comunidade trabalharem em projetos de interesse de todo o grupo. A referência era o que a YAPC Foundation faz lá fora: A comunidade faria o show acontecer, e o Instituto Aviva faria o dinheiro chegar onde necessário, absorvendo o overhead contábil e administrativo. Não houve interesse, e depois de um tempo, também parei de insistir... Ao invés disso, rolou um intenso e prolongado ciclo de discussões sobre a nossa futura entidade, formalizada, com membros fundadores, estatuto baseado no Garoa Hacker Club, etc... O processo na época estava sendo conduzido pelo Leonardo Ruoso, e o Eden Cardim assumiu a liderança desse projeto pouco depois depois de sair da organização do YAPC::Brasil 2011 (seria em SP, acabou sendo pro Rio). E a coisa ficou mais ou menos encaminhada, pendente apenas nos reunirmos presencialmente, para acertar os detalhes, em alguma data e local a serem definidos futuramente, quando o YAPC::Brasil estivesse mais próximo... No final, o tempo passou, e a discussão esfriou, mais uma vez. Seria muito legal ver o ciclo se romper e algo diferente acontecer. Abraço, Nuba On Sun, May 18, 2014, at 07:47 PM, Fernando Correa wrote: Ola Eu acho que essa deve ser a 4a ou 5a vez que eu escuto sobre esse tipo de ideia, inclusive 1 dessas vezes foi sugerida por mim (se eu bem me lembro). A diferença é que nas outras a ideia era algo mais nacional. Mas pq será que nenhuma dessas tentativas foi pra frente? Eu não sei dizer, nem sei se devia estar me metendo no assunto... Mas acho que descobrir essa resposta é um bom começo... Em 18/05/2014 16:18, Thiago Rondon escreveu: Penso da mesma maneira, creio o que falta é alguém para puxar o bonde e fazer acontecer. Abs! -Thiago Rondon 2014-05-18 15:47 GMT-03:00 Blabos de Blebe : Olá, Na minha visão idealista e carente de álcool, sem levar em consideração aspectos práticos, eu gostaria que houvesse uma entidade *local* com o seguinte propósito: "Fomentar o uso de Perl no mercado e na academia" Que fosse dissociada da comunidade, ainda que com 100% de sobreposição dos membros, e consequentemente atuando nos pontos que o Ruoso citou, como dar "suporte" a quem quisesse ministrar ou contratar treinamentos, eventualmente fazendo o meio de campo entre quem quisesse fornecer ou contratar serviços, ajudar nas questões burocráticas relacionadas a eventos, etc. Pra mim o objetivo do grupo é ligeiramente diferente do objetivo que teria uma associação. No grupo todos são voluntários e as regras são bastante livres. Sem problema. Já uma entidade com CNPJ *E* custos, tem preocupações que o grupo não tem, como por exemplo se manter financeiramente, remunerar prestadores de serviços, etc. Esse assunto é recorrente e de tempos em tempos a discussão sobre criar uma pessoa jurídica volta à tona. Na prática eu não sei se há uma utilidade imediata para os membros do grupo per si, pois cada um já está com a vida ganha, por assim dizer. A impressão que eu tenho é que a galera mais velha dá lista já queimou o gaz que tinha pra queimar com tudo que foi feito nos últimos anos. Desde que eu entrei na lista, as lideranças tiveram que descascar vários abacaxis, conquistando várias vitórias, bem como algumas derrotas que nem sempre se tornam públicas. Será que queremos arriscar nos movimentar novamente? Eu sinceramente não estou aqui pra tentar dar ignição, mas se a galera achar que vale a pena e tiver afim de levar a sério, contem comigo na hora de somar a massa crítica, eu só não vou puxar o bonde. A minha motivação, que fique bem clara, está no objetivo que eu sugeri acima. Por que? Porque Perl é uma linguagem que me faz feliz e eu gostaria que ela fosse mais utilizada no Brasil. Bom, as minhas cartas estão na mesa. E as de vocês? []'s 2014-05-18 8:55 GMT-03:00 Leonardo Ruoso : Uma ideia que surgiu é justamente de tocarmos essa ideia de uma associação de maneira mais independente da SPPM, recepcionando, inclusive, as pessoas de outros estados. Ontem eu descobri/percebi que não poderei ir ao Workshop em Taubaté por conta de um evento ao final de final de semestre da minha filha (peço desculpas a todos). A associação teria, pelo menos, quatro finalidades formais, até onde percebemos: - Eventos (sabemos das dificuldades que enfrentamos pela ausência de uma estrutura formal para realizar a YAPC::Brasil e nossos eventos tem deixado caixa para os próximos eventos, que serve como garantia para os organizadores) - Editora (nossa proposta fosse que o Equinócio, ou uma revista com outro nome, ganhasse um status mais formal, com peer review e viés acadêmico/profissional) - Treinamento (No mesmo viés dos eventos, atuando como uma entidade formal que dá suporte às parcerias com universidades e empresas) - Desenvolvimento de Software Open Source (Hackatons?) Abraços, Em 17 de maio de 2014 23:09, Blabos de Blebe escreveu: Olá, Realizamos hoje o EXS na Cervejaria Nacional, onde além das excelentes cerejas produzidas na casa, também tem uma ótima variedade de comidas. Relembrando os velhos tempos vou tentar passar um resumão. O papo foi longo, eu cheguei por volta das 15:00 e saímos lá pelas 21:00. Vários foram os assuntos tratados, variando de Hadoop a GoHorse e Javascript, passando por alguns de maior relevância como por exemplo qual seria a idade atual do Solli e se é verdade que ele anda pintando o cabelo. Também conversamos um pouco sobre a ideia de montar uma associação que possa ajudar a disseminar o uso da linguagem bem como coordenar melhor os eventos de Perl pelo país, e ainda ressuscitar o Equinócio. Na saída ainda tinha uma TV com câmera que te filmava e descobria como estava seu humor antes e após pagar a conta. Ela também descobria a sua idade a partir da sua face, então Solli, já está convidado pro próximo ESX lá :P Se algum dos presentes se lembrar de mais alguma coisa, por favor, não deixe de acrescentar. []'s =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org L =end disclaimer -- Leonardo Ruoso Journalist, Perl developer and business consultant Media, UFC/2006; Telecom, IFCE/1998 =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org L =end disclaimer =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org L =end disclaimer =begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org L =end disclaimer =begin disclaimer Sao Paulo Perl Mongers: [3]http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [4]SaoPaulo-pm em pm.org L<[5]http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer -- Nuba R. Princigalli nuba em pauleira.com http://pauleira.com @nprincigalli Discipline is not an end in itself, just a means to an end. - King Crimson =begin disclaimer Sao Paulo Perl Mongers: [6]http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [7]SaoPaulo-pm em pm.org L<[8]http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer -- Nuba R. Princigalli nuba em pauleira.com http://pauleira.com @nprincigalli Discipline is not an end in itself, just a means to an end. - King Crimson References 1. mailto:nuba em fastmail.fm 2. mailto:saopaulo-pm em pm.org 3. http://sao-paulo.pm.org/ 4. mailto:SaoPaulo-pm em pm.org 5. http://mail.pm.org/mailman/listinfo/saopaulo-pm 6. http://sao-paulo.pm.org/ 7. mailto:SaoPaulo-pm em pm.org 8. http://mail.pm.org/mailman/listinfo/saopaulo-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From samircurys em gmail.com Tue May 20 11:35:54 2014 From: samircurys em gmail.com (Samir Cury) Date: Tue, 20 May 2014 11:35:54 -0700 Subject: [Rio-pm] Release de modulo Beta no CPAN Message-ID: Pessoal, Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" Como estou no passo intermediario para o meu primeiro modulo "decente", com testes e tudo mais, talvez nao tenha visto essa opcao ainda. Pesquisando um pouco esbarrei com todas essas definicoes : http://search.cpan.org/dlsip?bpmOp Ja que o modulo funciona, esta documentado e passa no "prove", achei interessante subir como beta, e lancar novas releases quando fizer mais refatoracoes. Enfim. Queria confirmar com a galera que ja trilhou este caminho, que quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. Pra quem estiver curioso este e o modulo : https://github.com/samircury/HTCondor--Queue--Parser Abs, Samir -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From renato.cron em gmail.com Tue May 20 11:39:47 2014 From: renato.cron em gmail.com (Renato Santos) Date: Tue, 20 May 2014 15:39:47 -0300 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: * http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html #fastreply 2014-05-20 15:35 GMT-03:00 Samir Cury : > Pessoal, > > Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" > > Como estou no passo intermediario para o meu primeiro modulo "decente", > com testes e tudo mais, talvez nao tenha visto essa opcao ainda. > Pesquisando um pouco esbarrei com todas essas definicoes : > > http://search.cpan.org/dlsip?bpmOp > > Ja que o modulo funciona, esta documentado e passa no "prove", achei > interessante subir como beta, e lancar novas releases quando fizer mais > refatoracoes. > > Enfim. Queria confirmar com a galera que ja trilhou este caminho, que > quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. > > Pra quem estiver curioso este e o modulo : > > https://github.com/samircury/HTCondor--Queue--Parser > > Abs, > Samir > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From samircurys em gmail.com Tue May 20 11:52:43 2014 From: samircurys em gmail.com (Samir Cury) Date: Tue, 20 May 2014 11:52:43 -0700 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build e Module::Make. Lendo melhor, parece que rola uma discussao entre usar as flags oficiais do CPAN ou _ na versao. Hum. Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ na versao. Mas o argumento da confusao no metacpan faz sentido. De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no POD. Abs 2014-05-20 11:39 GMT-07:00 Renato Santos : > * > http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html > > #fastreply > > > 2014-05-20 15:35 GMT-03:00 Samir Cury : > >> Pessoal, >> >> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" >> >> Como estou no passo intermediario para o meu primeiro modulo "decente", >> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. >> Pesquisando um pouco esbarrei com todas essas definicoes : >> >> http://search.cpan.org/dlsip?bpmOp >> >> Ja que o modulo funciona, esta documentado e passa no "prove", achei >> interessante subir como beta, e lancar novas releases quando fizer mais >> refatoracoes. >> >> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que >> quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. >> >> Pra quem estiver curioso este e o modulo : >> >> https://github.com/samircury/HTCondor--Queue--Parser >> >> Abs, >> Samir >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Tue May 20 12:12:24 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Tue, 20 May 2014 19:12:24 +0000 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: , , Message-ID: >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa Dist::Zilla e lembro que os 2 metodos mais recomendados eram >Module::Build e Module::Make. Posso estar enganado, mas esses 'eram' os mais recomendados. O Dist::Zilla é mais recente porem creio que seja o melhor e atualmente o 'mais recomendado'. Date: Tue, 20 May 2014 11:52:43 -0700 From: samircurys em gmail.com To: rio-pm em pm.org Subject: Re: [Rio-pm] Release de modulo Beta no CPAN Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build e Module::Make. Lendo melhor, parece que rola uma discussao entre usar as flags oficiais do CPAN ou _ na versao. Hum. Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ na versao. Mas o argumento da confusao no metacpan faz sentido. De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no POD. Abs 2014-05-20 11:39 GMT-07:00 Renato Santos : * http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html #fastreply 2014-05-20 15:35 GMT-03:00 Samir Cury : Pessoal, Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" Como estou no passo intermediario para o meu primeiro modulo "decente", com testes e tudo mais, talvez nao tenha visto essa opcao ainda. Pesquisando um pouco esbarrei com todas essas definicoes : http://search.cpan.org/dlsip?bpmOp Ja que o modulo funciona, esta documentado e passa no "prove", achei interessante subir como beta, e lancar novas releases quando fizer mais refatoracoes. Enfim. Queria confirmar com a galera que ja trilhou este caminho, que quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. Pra quem estiver curioso este e o modulo : https://github.com/samircury/HTCondor--Queue--Parser Abs,Samir _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -- Saravá, Renato CRONhttp://www.renatocron.com/blog/ @renato_cron _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Tue May 20 20:26:09 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Wed, 21 May 2014 00:26:09 -0300 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: Ao colocar o underline na versão, vc evita que os instaladores usem essa versão inadvertidamente, embora ela ainda seja instalável se for especificado o caminho completo para o pacote. Assim, você pode usar a infra-estrutura do cpan testers pra testar o seu módulo antes de um release público, sem prejudicar quem já está usando uma versão estável do seu módulo. O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos meus módulos públicos ou privados. Eventualmente pode ser chato lidar com alguns bugs em edge cases, mas normalmente ele tira muito boiler plate da sua frente. A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias fases do processo de desenvolvimento, desde o startup do módulo até o release no cpan. Eventualmente você pode dividir esse processo em algo como: 1) Fase 1: Fazer o bootstrap do seu pacote. Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os arquivos auxiliares. Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus módulos é o https://metacpan.org/pod/Module::Starter Com ele você pode escolher qual builder você vai utilizar pra montar o seu pacote. 2) Fase 2: code, code, code 3) Fase 3: Build No processo de build, uma peça de software é utilizada para juntar tudo que o seu pacote vai precisar para ser instalado em uma máquina qualquer. Essa etapa pode ser baseada em vários builders como: https://metacpan.org/pod/ExtUtils::MakeMaker https://metacpan.org/pod/Module::Build https://metacpan.org/pod/Module::Install Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc) para a partir de apontamentos que você faz, verificar as dependências, criar o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias para tornar o seu módulo instalável. Quando vc instala um módulo manualmente, normalmente o processo é: a) Baixar e descompactar o .tar.gz b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo Makefile adaptado pra sua máquina. c) make. Isso vai fazer o build do seu módulo, eventualmente compilando XS, se for o caso, etc d) make test. Lê o Makefile para executar os testes do seu módulo. e) make install Quando você cria um módulo, para montar o .tar.gz normalmente você faz: a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo Makefile adaptado pra sua máquina. b) make manifest. Isso vai criar uma lista com todos os arquivos que precisam ser distribuídos dentro do seu .tar.gz c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. Os arquivos *.PL precisam ser executados no momento da instalação para que o Makefile seja montado de acordo com a máquina onde ele está sendo instalado e não de acordo com a máquina onde o módulo foi criado. 4) Release. Consiste em enviar o seu módulo para o CPAN. *** O Module::Make eu vou desconsiderar, porque ele só tem uma versão antiga lançada e nenhum outro módulo do cpan o utiliza ( https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). *** Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre todas as etapas listadas acima e mais algumas outras, como integração com o seu sistema de controle de versão e simplificação da criação de POD, por exemplo. Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou outra, ou ainda combiná-las entre si. Eu particularmente tenho módulos que usam o dzil ( https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não usam ( https://github.com/blabos/Paginator-Lite). E quando não uso, tenho preferência por criar o módulo com o Module::Starter (não confundir com https://metacpan.org/pod/Module::Start) usando como builder o Module::Install. *** Finalizando, só preste atenção no que você deseja fazer e escolha a ferramenta que achar mais adequada, tendo em mente que embora seja relativamente simples criar um módulo e botar no CPAN, há várias etapas envolvidas, que na maioria das vezes já são até instintivas, mas que se você misturar as coisas, pode dar a maior confusão. []'s 2014-05-20 16:12 GMT-03:00 Aureliano Guedes : > >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > Dist::Zilla e lembro que os 2 metodos mais recomendados eram >Module::Build > e Module::Make. > > Posso estar enganado, mas esses 'eram' os mais recomendados. O Dist::Zilla > é mais recente porem creio que seja o melhor e atualmente o 'mais > recomendado'. > > ------------------------------ > Date: Tue, 20 May 2014 11:52:43 -0700 > From: samircurys em gmail.com > To: rio-pm em pm.org > Subject: Re: [Rio-pm] Release de modulo Beta no CPAN > > > Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build > e Module::Make. > > Lendo melhor, parece que rola uma discussao entre usar as flags oficiais > do CPAN ou _ na versao. Hum. > > Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ na > versao. Mas o argumento da confusao no metacpan faz sentido. > > De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : > > http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm > > Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no POD. > > Abs > > > 2014-05-20 11:39 GMT-07:00 Renato Santos : > > * > http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html > > #fastreply > > > 2014-05-20 15:35 GMT-03:00 Samir Cury : > > Pessoal, > > Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" > > Como estou no passo intermediario para o meu primeiro modulo "decente", > com testes e tudo mais, talvez nao tenha visto essa opcao ainda. > Pesquisando um pouco esbarrei com todas essas definicoes : > > http://search.cpan.org/dlsip?bpmOp > > Ja que o modulo funciona, esta documentado e passa no "prove", achei > interessante subir como beta, e lancar novas releases quando fizer mais > refatoracoes. > > Enfim. Queria confirmar com a galera que ja trilhou este caminho, que > quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. > > Pra quem estiver curioso este e o modulo : > > https://github.com/samircury/HTCondor--Queue--Parser > > Abs, > Samir > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ Rio-pm mailing list > Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From samircurys em gmail.com Wed May 21 08:17:50 2014 From: samircurys em gmail.com (Samir Cury) Date: Wed, 21 May 2014 08:17:50 -0700 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do underline. Vou tentar desse jeito entao pra validar o processo do inicio ao fim antes de um release publico. Que bom saber que agora os procedimentos estao ainda melhores, vou dar um olhada no dzil. Estava ate agora usando o que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz que precise de algo mais para criar a distribuicao que vai subir pro CPAN. Abs 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : > Ao colocar o underline na versão, vc evita que os instaladores usem essa > versão inadvertidamente, embora ela ainda seja instalável se for > especificado o caminho completo para o pacote. > > Assim, você pode usar a infra-estrutura do cpan testers pra testar o seu > módulo antes de um release público, sem prejudicar quem já está usando uma > versão estável do seu módulo. > > O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos > meus módulos públicos ou privados. Eventualmente pode ser chato lidar com > alguns bugs em edge cases, mas normalmente ele tira muito boiler plate da > sua frente. > > A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias > fases do processo de desenvolvimento, desde o startup do módulo até o > release no cpan. > > Eventualmente você pode dividir esse processo em algo como: > > 1) Fase 1: Fazer o bootstrap do seu pacote. > > Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os > arquivos auxiliares. > > Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus > módulos é o https://metacpan.org/pod/Module::Starter > > Com ele você pode escolher qual builder você vai utilizar pra montar o seu > pacote. > > 2) Fase 2: code, code, code > > 3) Fase 3: Build > > No processo de build, uma peça de software é utilizada para juntar tudo > que o seu pacote vai precisar para ser instalado em uma máquina qualquer. > > Essa etapa pode ser baseada em vários builders como: > > https://metacpan.org/pod/ExtUtils::MakeMaker > https://metacpan.org/pod/Module::Build > https://metacpan.org/pod/Module::Install > > Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc) > para a partir de apontamentos que você faz, verificar as dependências, > criar o Makefile e seus alvos,gerar o .tar.gz entre outras coisas > necessárias para tornar o seu módulo instalável. > > Quando vc instala um módulo manualmente, normalmente o processo é: > > a) Baixar e descompactar o .tar.gz > b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo Makefile > adaptado pra sua máquina. > c) make. Isso vai fazer o build do seu módulo, eventualmente compilando > XS, se for o caso, etc > d) make test. Lê o Makefile para executar os testes do seu módulo. > e) make install > > Quando você cria um módulo, para montar o .tar.gz normalmente você faz: > > a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo Makefile > adaptado pra sua máquina. > b) make manifest. Isso vai criar uma lista com todos os arquivos que > precisam ser distribuídos dentro do seu .tar.gz > c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, > haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. > > Os arquivos *.PL precisam ser executados no momento da instalação para que > o Makefile seja montado de acordo com a máquina onde ele está sendo > instalado e não de acordo com a máquina onde o módulo foi criado. > > > 4) Release. > > Consiste em enviar o seu módulo para o CPAN. > > *** > > O Module::Make eu vou desconsiderar, porque ele só tem uma versão antiga > lançada e nenhum outro módulo do cpan o utiliza ( > https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). > > *** > > Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre > todas as etapas listadas acima e mais algumas outras, como integração com o > seu sistema de controle de versão e simplificação da criação de POD, por > exemplo. > > Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou > usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou > outra, ou ainda combiná-las entre si. > > Eu particularmente tenho módulos que usam o dzil ( > https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não > usam (https://github.com/blabos/Paginator-Lite). > > E quando não uso, tenho preferência por criar o módulo com o > Module::Starter (não confundir com https://metacpan.org/pod/Module::Start) > usando como builder o Module::Install. > > *** > > Finalizando, só preste atenção no que você deseja fazer e escolha a > ferramenta que achar mais adequada, tendo em mente que embora seja > relativamente simples criar um módulo e botar no CPAN, há várias etapas > envolvidas, que na maioria das vezes já são até instintivas, mas que se > você misturar as coisas, pode dar a maior confusão. > > []'s > > > > > > > 2014-05-20 16:12 GMT-03:00 Aureliano Guedes : > > >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa >> Dist::Zilla e lembro que os 2 metodos mais recomendados eram >Module::Build >> e Module::Make. >> >> Posso estar enganado, mas esses 'eram' os mais recomendados. O >> Dist::Zilla é mais recente porem creio que seja o melhor e atualmente o >> 'mais recomendado'. >> >> ------------------------------ >> Date: Tue, 20 May 2014 11:52:43 -0700 >> From: samircurys em gmail.com >> To: rio-pm em pm.org >> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN >> >> >> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa >> Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build >> e Module::Make. >> >> Lendo melhor, parece que rola uma discussao entre usar as flags oficiais >> do CPAN ou _ na versao. Hum. >> >> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ na >> versao. Mas o argumento da confusao no metacpan faz sentido. >> >> De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : >> >> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm >> >> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no POD. >> >> Abs >> >> >> 2014-05-20 11:39 GMT-07:00 Renato Santos : >> >> * >> http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html >> >> #fastreply >> >> >> 2014-05-20 15:35 GMT-03:00 Samir Cury : >> >> Pessoal, >> >> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" >> >> Como estou no passo intermediario para o meu primeiro modulo "decente", >> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. >> Pesquisando um pouco esbarrei com todas essas definicoes : >> >> http://search.cpan.org/dlsip?bpmOp >> >> Ja que o modulo funciona, esta documentado e passa no "prove", achei >> interessante subir como beta, e lancar novas releases quando fizer mais >> refatoracoes. >> >> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que >> quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. >> >> Pra quem estiver curioso este e o modulo : >> >> https://github.com/samircury/HTCondor--Queue--Parser >> >> Abs, >> Samir >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> -- >> Saravá, >> Renato CRON >> http://www.renatocron.com/blog/ >> @renato_cron >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ Rio-pm mailing list >> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From breno em rio.pm.org Thu May 22 08:00:32 2014 From: breno em rio.pm.org (breno) Date: Thu, 22 May 2014 12:00:32 -0300 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: Samir, O método que Blabos e Cron indicaram está corretíssimo, mas costuma ser mais usado quando você já tem uma versão pública estável. Por exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e ela será marcada como "trial" e só poderá ser instalada via caminho explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão "estável". Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão mais em torno de API ou se o módulo faz direito tudo que você quer, você pode sempre colocar um aviso em letras garrafais no início da sua documentação avisando que o módulo está em estágio alfa, beta, etc., que a API pode mudar e que a pessoa deve usar sob sua própria conta e risco. Por exemplo: https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING https://metacpan.org/pod/Stepford#DESCRIPTION https://metacpan.org/pod/Debug::Client#DESCRIPTION Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você sempre pode tomar uma cerveja e lançar outra versão :) []s -b 2014-05-21 12:17 GMT-03:00 Samir Cury : > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do > underline. Vou tentar desse jeito entao pra validar o processo do inicio ao > fim antes de um release publico. Que bom saber que agora os procedimentos > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora usando o > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz que > precise de algo mais para criar a distribuicao que vai subir pro CPAN. > > Abs > > > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : > >> Ao colocar o underline na versão, vc evita que os instaladores usem essa >> versão inadvertidamente, embora ela ainda seja instalável se for >> especificado o caminho completo para o pacote. >> >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o seu >> módulo antes de um release público, sem prejudicar quem já está usando uma >> versão estável do seu módulo. >> >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos >> meus módulos públicos ou privados. Eventualmente pode ser chato lidar com >> alguns bugs em edge cases, mas normalmente ele tira muito boiler plate da >> sua frente. >> >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias >> fases do processo de desenvolvimento, desde o startup do módulo até o >> release no cpan. >> >> Eventualmente você pode dividir esse processo em algo como: >> >> 1) Fase 1: Fazer o bootstrap do seu pacote. >> >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os >> arquivos auxiliares. >> >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus >> módulos é o https://metacpan.org/pod/Module::Starter >> >> Com ele você pode escolher qual builder você vai utilizar pra montar o seu >> pacote. >> >> 2) Fase 2: code, code, code >> >> 3) Fase 3: Build >> >> No processo de build, uma peça de software é utilizada para juntar tudo >> que o seu pacote vai precisar para ser instalado em uma máquina qualquer. >> >> Essa etapa pode ser baseada em vários builders como: >> >> https://metacpan.org/pod/ExtUtils::MakeMaker >> https://metacpan.org/pod/Module::Build >> https://metacpan.org/pod/Module::Install >> >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc) >> para a partir de apontamentos que você faz, verificar as dependências, criar >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias para >> tornar o seu módulo instalável. >> >> Quando vc instala um módulo manualmente, normalmente o processo é: >> >> a) Baixar e descompactar o .tar.gz >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo Makefile >> adaptado pra sua máquina. >> c) make. Isso vai fazer o build do seu módulo, eventualmente compilando >> XS, se for o caso, etc >> d) make test. Lê o Makefile para executar os testes do seu módulo. >> e) make install >> >> Quando você cria um módulo, para montar o .tar.gz normalmente você faz: >> >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo Makefile >> adaptado pra sua máquina. >> b) make manifest. Isso vai criar uma lista com todos os arquivos que >> precisam ser distribuídos dentro do seu .tar.gz >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. >> >> Os arquivos *.PL precisam ser executados no momento da instalação para que >> o Makefile seja montado de acordo com a máquina onde ele está sendo >> instalado e não de acordo com a máquina onde o módulo foi criado. >> >> >> 4) Release. >> >> Consiste em enviar o seu módulo para o CPAN. >> >> *** >> >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão antiga >> lançada e nenhum outro módulo do cpan o utiliza >> (https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). >> >> *** >> >> Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre >> todas as etapas listadas acima e mais algumas outras, como integração com o >> seu sistema de controle de versão e simplificação da criação de POD, por >> exemplo. >> >> Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou outra, >> ou ainda combiná-las entre si. >> >> Eu particularmente tenho módulos que usam o dzil >> (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não usam >> (https://github.com/blabos/Paginator-Lite). >> >> E quando não uso, tenho preferência por criar o módulo com o >> Module::Starter (não confundir com https://metacpan.org/pod/Module::Start) >> usando como builder o Module::Install. >> >> *** >> >> Finalizando, só preste atenção no que você deseja fazer e escolha a >> ferramenta que achar mais adequada, tendo em mente que embora seja >> relativamente simples criar um módulo e botar no CPAN, há várias etapas >> envolvidas, que na maioria das vezes já são até instintivas, mas que se você >> misturar as coisas, pode dar a maior confusão. >> >> []'s >> >> >> >> >> >> >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes : >> >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram >Module::Build >>> > e Module::Make. >>> >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O >>> Dist::Zilla é mais recente porem creio que seja o melhor e atualmente o >>> 'mais recomendado'. >>> >>> ________________________________ >>> Date: Tue, 20 May 2014 11:52:43 -0700 >>> From: samircurys em gmail.com >>> To: rio-pm em pm.org >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN >>> >>> >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram Module::Build e >>> Module::Make. >>> >>> Lendo melhor, parece que rola uma discussao entre usar as flags oficiais >>> do CPAN ou _ na versao. Hum. >>> >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ na >>> versao. Mas o argumento da confusao no metacpan faz sentido. >>> >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : >>> >>> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm >>> >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no >>> POD. >>> >>> Abs >>> >>> >>> 2014-05-20 11:39 GMT-07:00 Renato Santos : >>> >>> * >>> http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html >>> >>> #fastreply >>> >>> >>> 2014-05-20 15:35 GMT-03:00 Samir Cury : >>> >>> Pessoal, >>> >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" >>> >>> Como estou no passo intermediario para o meu primeiro modulo "decente", >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. Pesquisando >>> um pouco esbarrei com todas essas definicoes : >>> >>> http://search.cpan.org/dlsip?bpmOp >>> >>> Ja que o modulo funciona, esta documentado e passa no "prove", achei >>> interessante subir como beta, e lancar novas releases quando fizer mais >>> refatoracoes. >>> >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que >>> quando eu for realmente subir o modulo vou ter a opcao de marcar como beta. >>> >>> Pra quem estiver curioso este e o modulo : >>> >>> https://github.com/samircury/HTCondor--Queue--Parser >>> >>> Abs, >>> Samir >>> >>> >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> >>> -- >>> Saravá, >>> Renato CRON >>> http://www.renatocron.com/blog/ >>> @renato_cron >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> >>> >>> _______________________________________________ Rio-pm mailing list >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >>> >>> _______________________________________________ >>> Rio-pm mailing list >>> Rio-pm em pm.org >>> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm From samircurys em gmail.com Thu May 22 21:37:32 2014 From: samircurys em gmail.com (Samir Cury) Date: Thu, 22 May 2014 21:37:32 -0700 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: Exato Breno, valeu pelos exemplos que dao um pouco mais de coragem de subir o modulo. Essa e a ideia. Estou cozinhando esse modulo desde os fins de semana de 2012 por nao ter testes decentes. Agora que tem estou procurando nao deixar o otimo ser inimigo do bom. "release early, release often" Vou por o aviso e tambem um numero de versao ridiculo (0.1.0 ou 0.01), dai fica obvio. Abs 2014-05-22 8:00 GMT-07:00 breno : > Samir, > > O método que Blabos e Cron indicaram está corretíssimo, mas costuma > ser mais usado quando você já tem uma versão pública estável. Por > exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão > "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e > ela será marcada como "trial" e só poderá ser instalada via caminho > explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão > "estável". > > Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão > mais em torno de API ou se o módulo faz direito tudo que você quer, > você pode sempre colocar um aviso em letras garrafais no início da sua > documentação avisando que o módulo está em estágio alfa, beta, etc., > que a API pode mudar e que a pessoa deve usar sob sua própria conta e > risco. Por exemplo: > > https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING > > https://metacpan.org/pod/Stepford#DESCRIPTION > > https://metacpan.org/pod/Debug::Client#DESCRIPTION > > Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você > sempre pode tomar uma cerveja e lançar outra versão :) > > []s > > -b > > > > > 2014-05-21 12:17 GMT-03:00 Samir Cury : > > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do > > underline. Vou tentar desse jeito entao pra validar o processo do inicio > ao > > fim antes de um release publico. Que bom saber que agora os procedimentos > > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora usando > o > > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz que > > precise de algo mais para criar a distribuicao que vai subir pro CPAN. > > > > Abs > > > > > > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : > > > >> Ao colocar o underline na versão, vc evita que os instaladores usem essa > >> versão inadvertidamente, embora ela ainda seja instalável se for > >> especificado o caminho completo para o pacote. > >> > >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o seu > >> módulo antes de um release público, sem prejudicar quem já está usando > uma > >> versão estável do seu módulo. > >> > >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos > >> meus módulos públicos ou privados. Eventualmente pode ser chato lidar > com > >> alguns bugs em edge cases, mas normalmente ele tira muito boiler plate > da > >> sua frente. > >> > >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias > >> fases do processo de desenvolvimento, desde o startup do módulo até o > >> release no cpan. > >> > >> Eventualmente você pode dividir esse processo em algo como: > >> > >> 1) Fase 1: Fazer o bootstrap do seu pacote. > >> > >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os > >> arquivos auxiliares. > >> > >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus > >> módulos é o https://metacpan.org/pod/Module::Starter > >> > >> Com ele você pode escolher qual builder você vai utilizar pra montar o > seu > >> pacote. > >> > >> 2) Fase 2: code, code, code > >> > >> 3) Fase 3: Build > >> > >> No processo de build, uma peça de software é utilizada para juntar tudo > >> que o seu pacote vai precisar para ser instalado em uma máquina > qualquer. > >> > >> Essa etapa pode ser baseada em vários builders como: > >> > >> https://metacpan.org/pod/ExtUtils::MakeMaker > >> https://metacpan.org/pod/Module::Build > >> https://metacpan.org/pod/Module::Install > >> > >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc) > >> para a partir de apontamentos que você faz, verificar as dependências, > criar > >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias > para > >> tornar o seu módulo instalável. > >> > >> Quando vc instala um módulo manualmente, normalmente o processo é: > >> > >> a) Baixar e descompactar o .tar.gz > >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > Makefile > >> adaptado pra sua máquina. > >> c) make. Isso vai fazer o build do seu módulo, eventualmente compilando > >> XS, se for o caso, etc > >> d) make test. Lê o Makefile para executar os testes do seu módulo. > >> e) make install > >> > >> Quando você cria um módulo, para montar o .tar.gz normalmente você faz: > >> > >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > Makefile > >> adaptado pra sua máquina. > >> b) make manifest. Isso vai criar uma lista com todos os arquivos que > >> precisam ser distribuídos dentro do seu .tar.gz > >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, > >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. > >> > >> Os arquivos *.PL precisam ser executados no momento da instalação para > que > >> o Makefile seja montado de acordo com a máquina onde ele está sendo > >> instalado e não de acordo com a máquina onde o módulo foi criado. > >> > >> > >> 4) Release. > >> > >> Consiste em enviar o seu módulo para o CPAN. > >> > >> *** > >> > >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão antiga > >> lançada e nenhum outro módulo do cpan o utiliza > >> (https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). > >> > >> *** > >> > >> Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre > >> todas as etapas listadas acima e mais algumas outras, como integração > com o > >> seu sistema de controle de versão e simplificação da criação de POD, por > >> exemplo. > >> > >> Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou > >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou > outra, > >> ou ainda combiná-las entre si. > >> > >> Eu particularmente tenho módulos que usam o dzil > >> (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não > usam > >> (https://github.com/blabos/Paginator-Lite). > >> > >> E quando não uso, tenho preferência por criar o módulo com o > >> Module::Starter (não confundir com > https://metacpan.org/pod/Module::Start) > >> usando como builder o Module::Install. > >> > >> *** > >> > >> Finalizando, só preste atenção no que você deseja fazer e escolha a > >> ferramenta que achar mais adequada, tendo em mente que embora seja > >> relativamente simples criar um módulo e botar no CPAN, há várias etapas > >> envolvidas, que na maioria das vezes já são até instintivas, mas que se > você > >> misturar as coisas, pode dar a maior confusão. > >> > >> []'s > >> > >> > >> > >> > >> > >> > >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes : > >> > >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram > >Module::Build > >>> > e Module::Make. > >>> > >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O > >>> Dist::Zilla é mais recente porem creio que seja o melhor e atualmente o > >>> 'mais recomendado'. > >>> > >>> ________________________________ > >>> Date: Tue, 20 May 2014 11:52:43 -0700 > >>> From: samircurys em gmail.com > >>> To: rio-pm em pm.org > >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN > >>> > >>> > >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram > Module::Build e > >>> Module::Make. > >>> > >>> Lendo melhor, parece que rola uma discussao entre usar as flags > oficiais > >>> do CPAN ou _ na versao. Hum. > >>> > >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ > na > >>> versao. Mas o argumento da confusao no metacpan faz sentido. > >>> > >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : > >>> > >>> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm > >>> > >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no > >>> POD. > >>> > >>> Abs > >>> > >>> > >>> 2014-05-20 11:39 GMT-07:00 Renato Santos : > >>> > >>> * > >>> > http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html > >>> > >>> #fastreply > >>> > >>> > >>> 2014-05-20 15:35 GMT-03:00 Samir Cury : > >>> > >>> Pessoal, > >>> > >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" > >>> > >>> Como estou no passo intermediario para o meu primeiro modulo "decente", > >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. > Pesquisando > >>> um pouco esbarrei com todas essas definicoes : > >>> > >>> http://search.cpan.org/dlsip?bpmOp > >>> > >>> Ja que o modulo funciona, esta documentado e passa no "prove", achei > >>> interessante subir como beta, e lancar novas releases quando fizer mais > >>> refatoracoes. > >>> > >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que > >>> quando eu for realmente subir o modulo vou ter a opcao de marcar como > beta. > >>> > >>> Pra quem estiver curioso este e o modulo : > >>> > >>> https://github.com/samircury/HTCondor--Queue--Parser > >>> > >>> Abs, > >>> Samir > >>> > >>> > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> > >>> > >>> > >>> -- > >>> Saravá, > >>> Renato CRON > >>> http://www.renatocron.com/blog/ > >>> @renato_cron > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> > >>> > >>> _______________________________________________ Rio-pm mailing list > >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> > >> > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From guedes_1000 em hotmail.com Fri May 23 02:55:11 2014 From: guedes_1000 em hotmail.com (Aureliano Guedes) Date: Fri, 23 May 2014 06:55:11 -0300 Subject: [Rio-pm] Release de modulo Beta no CPAN Message-ID: De novo, posso esta falando besteira, me corrijam se eu tiver errado. Mas acho que 0.0.1 ou 0.01 nao seriam números de versões ridículos. Já seriam números de versões funcionais. Parece que até você do 2.0 para o 2.9.9 são geralmente so otimizações e correções de pequenos bugs ou revisão de acordo com a versão do perl atual se preciso, entao o 3.0 seria realmente implementações de novas funcionalidades ou mesmo a exclusão de alguma outra já existente. --- Mensagem Original --- De: "Samir Cury" Enviado: 23 de Maio de 2014 01:37 Para: "Perl Mongers Rio de Janeiro" Assunto: Re: [Rio-pm] Release de modulo Beta no CPAN Exato Breno, valeu pelos exemplos que dao um pouco mais de coragem de subir o modulo. Essa e a ideia. Estou cozinhando esse modulo desde os fins de semana de 2012 por nao ter testes decentes. Agora que tem estou procurando nao deixar o otimo ser inimigo do bom. "release early, release often" Vou por o aviso e tambem um numero de versao ridiculo (0.1.0 ou 0.01), dai fica obvio. Abs 2014-05-22 8:00 GMT-07:00 breno : > Samir, > > O método que Blabos e Cron indicaram está corretíssimo, mas costuma > ser mais usado quando você já tem uma versão pública estável. Por > exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão > "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e > ela será marcada como "trial" e só poderá ser instalada via caminho > explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão > "estável". > > Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão > mais em torno de API ou se o módulo faz direito tudo que você quer, > você pode sempre colocar um aviso em letras garrafais no início da sua > documentação avisando que o módulo está em estágio alfa, beta, etc., > que a API pode mudar e que a pessoa deve usar sob sua própria conta e > risco. Por exemplo: > > https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING > > https://metacpan.org/pod/Stepford#DESCRIPTION > > https://metacpan.org/pod/Debug::Client#DESCRIPTION > > Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você > sempre pode tomar uma cerveja e lançar outra versão :) > > []s > > -b > > > > > 2014-05-21 12:17 GMT-03:00 Samir Cury : > > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do > > underline. Vou tentar desse jeito entao pra validar o processo do inicio > ao > > fim antes de um release publico. Que bom saber que agora os procedimentos > > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora usando > o > > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz que > > precise de algo mais para criar a distribuicao que vai subir pro CPAN. > > > > Abs > > > > > > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : > > > >> Ao colocar o underline na versão, vc evita que os instaladores usem essa > >> versão inadvertidamente, embora ela ainda seja instalável se for > >> especificado o caminho completo para o pacote. > >> > >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o seu > >> módulo antes de um release público, sem prejudicar quem já está usando > uma > >> versão estável do seu módulo. > >> > >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos > >> meus módulos públicos ou privados. Eventualmente pode ser chato lidar > com > >> alguns bugs em edge cases, mas normalmente ele tira muito boiler plate > da > >> sua frente. > >> > >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias > >> fases do processo de desenvolvimento, desde o startup do módulo até o > >> release no cpan. > >> > >> Eventualmente você pode dividir esse processo em algo como: > >> > >> 1) Fase 1: Fazer o bootstrap do seu pacote. > >> > >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os > >> arquivos auxiliares. > >> > >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus > >> módulos é o https://metacpan.org/pod/Module::Starter > >> > >> Com ele você pode escolher qual builder você vai utilizar pra montar o > seu > >> pacote. > >> > >> 2) Fase 2: code, code, code > >> > >> 3) Fase 3: Build > >> > >> No processo de build, uma peça de software é utilizada para juntar tudo > >> que o seu pacote vai precisar para ser instalado em uma máquina > qualquer. > >> > >> Essa etapa pode ser baseada em vários builders como: > >> > >> https://metacpan.org/pod/ExtUtils::MakeMaker > >> https://metacpan.org/pod/Module::Build > >> https://metacpan.org/pod/Module::Install > >> > >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc) > >> para a partir de apontamentos que você faz, verificar as dependências, > criar > >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias > para > >> tornar o seu módulo instalável. > >> > >> Quando vc instala um módulo manualmente, normalmente o processo é: > >> > >> a) Baixar e descompactar o .tar.gz > >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > Makefile > >> adaptado pra sua máquina. > >> c) make. Isso vai fazer o build do seu módulo, eventualmente compilando > >> XS, se for o caso, etc > >> d) make test. Lê o Makefile para executar os testes do seu módulo. > >> e) make install > >> > >> Quando você cria um módulo, para montar o .tar.gz normalmente você faz: > >> > >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > Makefile > >> adaptado pra sua máquina. > >> b) make manifest. Isso vai criar uma lista com todos os arquivos que > >> precisam ser distribuídos dentro do seu .tar.gz > >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, > >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. > >> > >> Os arquivos *.PL precisam ser executados no momento da instalação para > que > >> o Makefile seja montado de acordo com a máquina onde ele está sendo > >> instalado e não de acordo com a máquina onde o módulo foi criado. > >> > >> > >> 4) Release. > >> > >> Consiste em enviar o seu módulo para o CPAN. > >> > >> *** > >> > >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão antiga > >> lançada e nenhum outro módulo do cpan o utiliza > >> (https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). > >> > >> *** > >> > >> Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre > >> todas as etapas listadas acima e mais algumas outras, como integração > com o > >> seu sistema de controle de versão e simplificação da criação de POD, por > >> exemplo. > >> > >> Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou > >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou > outra, > >> ou ainda combiná-las entre si. > >> > >> Eu particularmente tenho módulos que usam o dzil > >> (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não > usam > >> (https://github.com/blabos/Paginator-Lite). > >> > >> E quando não uso, tenho preferência por criar o módulo com o > >> Module::Starter (não confundir com > https://metacpan.org/pod/Module::Start) > >> usando como builder o Module::Install. > >> > >> *** > >> > >> Finalizando, só preste atenção no que você deseja fazer e escolha a > >> ferramenta que achar mais adequada, tendo em mente que embora seja > >> relativamente simples criar um módulo e botar no CPAN, há várias etapas > >> envolvidas, que na maioria das vezes já são até instintivas, mas que se > você > >> misturar as coisas, pode dar a maior confusão. > >> > >> []'s > >> > >> > >> > >> > >> > >> > >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes : > >> > >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram > >Module::Build > >>> > e Module::Make. > >>> > >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O > >>> Dist::Zilla é mais recente porem creio que seja o melhor e atualmente o > >>> 'mais recomendado'. > >>> > >>> ________________________________ > >>> Date: Tue, 20 May 2014 11:52:43 -0700 > >>> From: samircurys em gmail.com > >>> To: rio-pm em pm.org > >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN > >>> > >>> > >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram > Module::Build e > >>> Module::Make. > >>> > >>> Lendo melhor, parece que rola uma discussao entre usar as flags > oficiais > >>> do CPAN ou _ na versao. Hum. > >>> > >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ > na > >>> versao. Mas o argumento da confusao no metacpan faz sentido. > >>> > >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : > >>> > >>> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm > >>> > >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no > >>> POD. > >>> > >>> Abs > >>> > >>> > >>> 2014-05-20 11:39 GMT-07:00 Renato Santos : > >>> > >>> * > >>> > http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html > >>> > >>> #fastreply > >>> > >>> > >>> 2014-05-20 15:35 GMT-03:00 Samir Cury : > >>> > >>> Pessoal, > >>> > >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" > >>> > >>> Como estou no passo intermediario para o meu primeiro modulo "decente", > >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. > Pesquisando > >>> um pouco esbarrei com todas essas definicoes : > >>> > >>> http://search.cpan.org/dlsip?bpmOp > >>> > >>> Ja que o modulo funciona, esta documentado e passa no "prove", achei > >>> interessante subir como beta, e lancar novas releases quando fizer mais > >>> refatoracoes. > >>> > >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que > >>> quando eu for realmente subir o modulo vou ter a opcao de marcar como > beta. > >>> > >>> Pra quem estiver curioso este e o modulo : > >>> > >>> https://github.com/samircury/HTCondor--Queue--Parser > >>> > >>> Abs, > >>> Samir > >>> > >>> > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> > >>> > >>> > >>> -- > >>> Saravá, > >>> Renato CRON > >>> http://www.renatocron.com/blog/ > >>> @renato_cron > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> > >>> > >>> _______________________________________________ Rio-pm mailing list > >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> > >> > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: -------------- Próxima Parte ---------- _______________________________________________ Rio-pm mailing list Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm From renato.cron em gmail.com Fri May 23 06:56:37 2014 From: renato.cron em gmail.com (Renato Santos) Date: Fri, 23 May 2014 10:56:37 -0300 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: Eu não dou tanto valor pro número, a primeira versão pode ser a 10.02.56 que eu não vo ligar, desde que a proxima seja maior. e ai sim, entra o negocio de usar versões impares, tipo, 10.03_55 pra publicar algum pre-release e testar sob o cpan inteiro. 2014-05-23 6:55 GMT-03:00 Aureliano Guedes : > De novo, posso esta falando besteira, me corrijam se eu tiver errado. > Mas acho que 0.0.1 ou 0.01 nao seriam números de versões ridículos. Já > seriam números de versões funcionais. > Parece que até você do 2.0 para o 2.9.9 são geralmente so otimizações e > correções de pequenos bugs ou revisão de acordo com a versão do perl atual > se preciso, entao o 3.0 seria realmente implementações de novas > funcionalidades ou mesmo a exclusão de alguma outra já existente. > > --- Mensagem Original --- > > De: "Samir Cury" > Enviado: 23 de Maio de 2014 01:37 > Para: "Perl Mongers Rio de Janeiro" > Assunto: Re: [Rio-pm] Release de modulo Beta no CPAN > > Exato Breno, valeu pelos exemplos que dao um pouco mais de coragem de > subir o modulo. > > Essa e a ideia. Estou cozinhando esse modulo desde os fins de semana de > 2012 por nao ter testes decentes. Agora que tem estou procurando nao deixar > o otimo ser inimigo do bom. "release early, release often" > > Vou por o aviso e tambem um numero de versao ridiculo (0.1.0 ou 0.01), dai > fica obvio. > > Abs > > > 2014-05-22 8:00 GMT-07:00 breno : > > Samir, > > O método que Blabos e Cron indicaram está corretíssimo, mas costuma > ser mais usado quando você já tem uma versão pública estável. Por > exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão > "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e > ela será marcada como "trial" e só poderá ser instalada via caminho > explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão > "estável". > > Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão > mais em torno de API ou se o módulo faz direito tudo que você quer, > você pode sempre colocar um aviso em letras garrafais no início da sua > documentação avisando que o módulo está em estágio alfa, beta, etc., > que a API pode mudar e que a pessoa deve usar sob sua própria conta e > risco. Por exemplo: > > https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING > > https://metacpan.org/pod/Stepford#DESCRIPTION > > https://metacpan.org/pod/Debug::Client#DESCRIPTION > > Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você > sempre pode tomar uma cerveja e lançar outra versão :) > > []s > > -b > > > > > 2014-05-21 12:17 GMT-03:00 Samir Cury : > > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do > > underline. Vou tentar desse jeito entao pra validar o processo do inicio > ao > > fim antes de um release publico. Que bom saber que agora os procedimentos > > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora usando > o > > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz que > > precise de algo mais para criar a distribuicao que vai subir pro CPAN. > > > > Abs > > > > > > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : > > > >> Ao colocar o underline na versão, vc evita que os instaladores usem essa > >> versão inadvertidamente, embora ela ainda seja instalável se for > >> especificado o caminho completo para o pacote. > >> > >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o seu > >> módulo antes de um release público, sem prejudicar quem já está usando > uma > >> versão estável do seu módulo. > >> > >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos > >> meus módulos públicos ou privados. Eventualmente pode ser chato lidar > com > >> alguns bugs em edge cases, mas normalmente ele tira muito boiler plate > da > >> sua frente. > >> > >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias > >> fases do processo de desenvolvimento, desde o startup do módulo até o > >> release no cpan. > >> > >> Eventualmente você pode dividir esse processo em algo como: > >> > >> 1) Fase 1: Fazer o bootstrap do seu pacote. > >> > >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os > >> arquivos auxiliares. > >> > >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus > >> módulos é o https://metacpan.org/pod/Module::Starter > >> > >> Com ele você pode escolher qual builder você vai utilizar pra montar o > seu > >> pacote. > >> > >> 2) Fase 2: code, code, code > >> > >> 3) Fase 3: Build > >> > >> No processo de build, uma peça de software é utilizada para juntar tudo > >> que o seu pacote vai precisar para ser instalado em uma máquina > qualquer. > >> > >> Essa etapa pode ser baseada em vários builders como: > >> > >> https://metacpan.org/pod/ExtUtils::MakeMaker > >> https://metacpan.org/pod/Module::Build > >> https://metacpan.org/pod/Module::Install > >> > >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc) > >> para a partir de apontamentos que você faz, verificar as dependências, > criar > >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias > para > >> tornar o seu módulo instalável. > >> > >> Quando vc instala um módulo manualmente, normalmente o processo é: > >> > >> a) Baixar e descompactar o .tar.gz > >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > Makefile > >> adaptado pra sua máquina. > >> c) make. Isso vai fazer o build do seu módulo, eventualmente compilando > >> XS, se for o caso, etc > >> d) make test. Lê o Makefile para executar os testes do seu módulo. > >> e) make install > >> > >> Quando você cria um módulo, para montar o .tar.gz normalmente você faz: > >> > >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > Makefile > >> adaptado pra sua máquina. > >> b) make manifest. Isso vai criar uma lista com todos os arquivos que > >> precisam ser distribuídos dentro do seu .tar.gz > >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, > >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. > >> > >> Os arquivos *.PL precisam ser executados no momento da instalação para > que > >> o Makefile seja montado de acordo com a máquina onde ele está sendo > >> instalado e não de acordo com a máquina onde o módulo foi criado. > >> > >> > >> 4) Release. > >> > >> Consiste em enviar o seu módulo para o CPAN. > >> > >> *** > >> > >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão antiga > >> lançada e nenhum outro módulo do cpan o utiliza > >> (https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). > >> > >> *** > >> > >> Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre > >> todas as etapas listadas acima e mais algumas outras, como integração > com o > >> seu sistema de controle de versão e simplificação da criação de POD, por > >> exemplo. > >> > >> Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou > >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou > outra, > >> ou ainda combiná-las entre si. > >> > >> Eu particularmente tenho módulos que usam o dzil > >> (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não > usam > >> (https://github.com/blabos/Paginator-Lite). > >> > >> E quando não uso, tenho preferência por criar o módulo com o > >> Module::Starter (não confundir com > https://metacpan.org/pod/Module::Start) > >> usando como builder o Module::Install. > >> > >> *** > >> > >> Finalizando, só preste atenção no que você deseja fazer e escolha a > >> ferramenta que achar mais adequada, tendo em mente que embora seja > >> relativamente simples criar um módulo e botar no CPAN, há várias etapas > >> envolvidas, que na maioria das vezes já são até instintivas, mas que se > você > >> misturar as coisas, pode dar a maior confusão. > >> > >> []'s > >> > >> > >> > >> > >> > >> > >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes : > >> > >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram > >Module::Build > >>> > e Module::Make. > >>> > >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O > >>> Dist::Zilla é mais recente porem creio que seja o melhor e atualmente o > >>> 'mais recomendado'. > >>> > >>> ________________________________ > >>> Date: Tue, 20 May 2014 11:52:43 -0700 > >>> From: samircurys em gmail.com > >>> To: rio-pm em pm.org > >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN > >>> > >>> > >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram > Module::Build e > >>> Module::Make. > >>> > >>> Lendo melhor, parece que rola uma discussao entre usar as flags > oficiais > >>> do CPAN ou _ na versao. Hum. > >>> > >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ > na > >>> versao. Mas o argumento da confusao no metacpan faz sentido. > >>> > >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag la : > >>> > >>> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm > >>> > >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no > >>> POD. > >>> > >>> Abs > >>> > >>> > >>> 2014-05-20 11:39 GMT-07:00 Renato Santos : > >>> > >>> * > >>> > http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html > >>> > >>> #fastreply > >>> > >>> > >>> 2014-05-20 15:35 GMT-03:00 Samir Cury : > >>> > >>> Pessoal, > >>> > >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como "beta" > >>> > >>> Como estou no passo intermediario para o meu primeiro modulo "decente", > >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. > Pesquisando > >>> um pouco esbarrei com todas essas definicoes : > >>> > >>> http://search.cpan.org/dlsip?bpmOp > >>> > >>> Ja que o modulo funciona, esta documentado e passa no "prove", achei > >>> interessante subir como beta, e lancar novas releases quando fizer mais > >>> refatoracoes. > >>> > >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que > >>> quando eu for realmente subir o modulo vou ter a opcao de marcar como > beta. > >>> > >>> Pra quem estiver curioso este e o modulo : > >>> > >>> https://github.com/samircury/HTCondor--Queue--Parser > >>> > >>> Abs, > >>> Samir > >>> > >>> > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> > >>> > >>> > >>> -- > >>> Saravá, > >>> Renato CRON > >>> http://www.renatocron.com/blog/ > >>> @renato_cron > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> > >>> > >>> _______________________________________________ Rio-pm mailing list > >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > >>> > >>> _______________________________________________ > >>> Rio-pm mailing list > >>> Rio-pm em pm.org > >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> > >> > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From oainikusama em gmail.com Fri May 23 07:22:17 2014 From: oainikusama em gmail.com (breno) Date: Fri, 23 May 2014 11:22:17 -0300 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: Samir, lança logo o módulo que agora eu to curioso :D Não se prenda por "não tem testes", "não tá pronto", "não tá perfeito", ou "o que vão pensar de mim". Lembre que não é estático e que você sempre pode lançar outras versões depois - quantas vc quiser! - corrigindo ou melhorando. Lembra também que só vai usar quem quiser. O próprio Tokuhiro Matsuno, um dos autores mais assíduos do CPAN, criador de módulos como Test::Pretty, Minilla, HTML::Escape e tantos outros, costuma lançar seus primeiros módulos sem testes ou documentação, e vai melhorando gradativamente. O Ricardo Signes, mantenedor do Perl e maior autor do CPAN com módulos como Dist::Zilla CPAN::Mini, Email::Sender entre vários outros, é conhecido por lançar módulos sem documentação na primeira versão, e ir melhorando nas seguintes. Há até casos extremos que não concordo muito mas acontecem, como a primeira versão do Mojo, que quando o sri lançou era só um placeholder pra reservar o namespace! Não tenha medo de lançar seu código para o mundo. O pior que pode acontecer é ninguém usar (nem você) ;-) go go go! Aperta o botão! Você vai ver que não é nada de mais e rapidinho estará lançando um módulo atrás do outro :D []s -b 2014-05-23 10:56 GMT-03:00 Renato Santos : > Eu não dou tanto valor pro número, > > a primeira versão pode ser a 10.02.56 que eu não vo ligar, desde que a > proxima seja maior. > > e ai sim, entra o negocio de usar versões impares, tipo, 10.03_55 pra > publicar algum pre-release e testar sob o cpan inteiro. > > > > > 2014-05-23 6:55 GMT-03:00 Aureliano Guedes : > >> De novo, posso esta falando besteira, me corrijam se eu tiver errado. Mas >> acho que 0.0.1 ou 0.01 nao seriam números de versões ridículos. Já seriam >> números de versões funcionais. >> Parece que até você do 2.0 para o 2.9.9 são geralmente so otimizações e >> correções de pequenos bugs ou revisão de acordo com a versão do perl atual >> se preciso, entao o 3.0 seria realmente implementações de novas >> funcionalidades ou mesmo a exclusão de alguma outra já existente. >> >> --- Mensagem Original --- >> >> De: "Samir Cury" >> Enviado: 23 de Maio de 2014 01:37 >> Para: "Perl Mongers Rio de Janeiro" >> Assunto: Re: [Rio-pm] Release de modulo Beta no CPAN >> >> Exato Breno, valeu pelos exemplos que dao um pouco mais de coragem de >> subir o modulo. >> >> Essa e a ideia. Estou cozinhando esse modulo desde os fins de semana de >> 2012 por nao ter testes decentes. Agora que tem estou procurando nao deixar >> o otimo ser inimigo do bom. "release early, release often" >> >> Vou por o aviso e tambem um numero de versao ridiculo (0.1.0 ou 0.01), dai >> fica obvio. >> >> Abs >> >> >> 2014-05-22 8:00 GMT-07:00 breno : >> >> Samir, >> >> O método que Blabos e Cron indicaram está corretíssimo, mas costuma >> ser mais usado quando você já tem uma versão pública estável. Por >> exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão >> "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e >> ela será marcada como "trial" e só poderá ser instalada via caminho >> explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão >> "estável". >> >> Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão >> mais em torno de API ou se o módulo faz direito tudo que você quer, >> você pode sempre colocar um aviso em letras garrafais no início da sua >> documentação avisando que o módulo está em estágio alfa, beta, etc., >> que a API pode mudar e que a pessoa deve usar sob sua própria conta e >> risco. Por exemplo: >> >> https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING >> >> https://metacpan.org/pod/Stepford#DESCRIPTION >> >> https://metacpan.org/pod/Debug::Client#DESCRIPTION >> >> Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você >> sempre pode tomar uma cerveja e lançar outra versão :) >> >> []s >> >> -b >> >> >> >> >> 2014-05-21 12:17 GMT-03:00 Samir Cury : >> > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do >> > underline. Vou tentar desse jeito entao pra validar o processo do inicio >> > ao >> > fim antes de um release publico. Que bom saber que agora os >> > procedimentos >> > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora usando >> > o >> > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz >> > que >> > precise de algo mais para criar a distribuicao que vai subir pro CPAN. >> > >> > Abs >> > >> > >> > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : >> > >> >> Ao colocar o underline na versão, vc evita que os instaladores usem >> >> essa >> >> versão inadvertidamente, embora ela ainda seja instalável se for >> >> especificado o caminho completo para o pacote. >> >> >> >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o >> >> seu >> >> módulo antes de um release público, sem prejudicar quem já está usando >> >> uma >> >> versão estável do seu módulo. >> >> >> >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos >> >> meus módulos públicos ou privados. Eventualmente pode ser chato lidar >> >> com >> >> alguns bugs em edge cases, mas normalmente ele tira muito boiler plate >> >> da >> >> sua frente. >> >> >> >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias >> >> fases do processo de desenvolvimento, desde o startup do módulo até o >> >> release no cpan. >> >> >> >> Eventualmente você pode dividir esse processo em algo como: >> >> >> >> 1) Fase 1: Fazer o bootstrap do seu pacote. >> >> >> >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os >> >> arquivos auxiliares. >> >> >> >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus >> >> módulos é o https://metacpan.org/pod/Module::Starter >> >> >> >> Com ele você pode escolher qual builder você vai utilizar pra montar o >> >> seu >> >> pacote. >> >> >> >> 2) Fase 2: code, code, code >> >> >> >> 3) Fase 3: Build >> >> >> >> No processo de build, uma peça de software é utilizada para juntar tudo >> >> que o seu pacote vai precisar para ser instalado em uma máquina >> >> qualquer. >> >> >> >> Essa etapa pode ser baseada em vários builders como: >> >> >> >> https://metacpan.org/pod/ExtUtils::MakeMaker >> >> https://metacpan.org/pod/Module::Build >> >> https://metacpan.org/pod/Module::Install >> >> >> >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc) >> >> para a partir de apontamentos que você faz, verificar as dependências, >> >> criar >> >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias >> >> para >> >> tornar o seu módulo instalável. >> >> >> >> Quando vc instala um módulo manualmente, normalmente o processo é: >> >> >> >> a) Baixar e descompactar o .tar.gz >> >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo >> >> Makefile >> >> adaptado pra sua máquina. >> >> c) make. Isso vai fazer o build do seu módulo, eventualmente compilando >> >> XS, se for o caso, etc >> >> d) make test. Lê o Makefile para executar os testes do seu módulo. >> >> e) make install >> >> >> >> Quando você cria um módulo, para montar o .tar.gz normalmente você faz: >> >> >> >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo >> >> Makefile >> >> adaptado pra sua máquina. >> >> b) make manifest. Isso vai criar uma lista com todos os arquivos que >> >> precisam ser distribuídos dentro do seu .tar.gz >> >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, >> >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. >> >> >> >> Os arquivos *.PL precisam ser executados no momento da instalação para >> >> que >> >> o Makefile seja montado de acordo com a máquina onde ele está sendo >> >> instalado e não de acordo com a máquina onde o módulo foi criado. >> >> >> >> >> >> 4) Release. >> >> >> >> Consiste em enviar o seu módulo para o CPAN. >> >> >> >> *** >> >> >> >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão >> >> antiga >> >> lançada e nenhum outro módulo do cpan o utiliza >> >> (https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). >> >> >> >> *** >> >> >> >> Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre >> >> todas as etapas listadas acima e mais algumas outras, como integração >> >> com o >> >> seu sistema de controle de versão e simplificação da criação de POD, >> >> por >> >> exemplo. >> >> >> >> Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou >> >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou >> >> outra, >> >> ou ainda combiná-las entre si. >> >> >> >> Eu particularmente tenho módulos que usam o dzil >> >> (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não >> >> usam >> >> (https://github.com/blabos/Paginator-Lite). >> >> >> >> E quando não uso, tenho preferência por criar o módulo com o >> >> Module::Starter (não confundir com >> >> https://metacpan.org/pod/Module::Start) >> >> usando como builder o Module::Install. >> >> >> >> *** >> >> >> >> Finalizando, só preste atenção no que você deseja fazer e escolha a >> >> ferramenta que achar mais adequada, tendo em mente que embora seja >> >> relativamente simples criar um módulo e botar no CPAN, há várias etapas >> >> envolvidas, que na maioria das vezes já são até instintivas, mas que se >> >> você >> >> misturar as coisas, pode dar a maior confusão. >> >> >> >> []'s >> >> >> >> >> >> >> >> >> >> >> >> >> >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes : >> >> >> >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa >> >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram >> >>> > >Module::Build >> >>> > e Module::Make. >> >>> >> >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O >> >>> Dist::Zilla é mais recente porem creio que seja o melhor e atualmente >> >>> o >> >>> 'mais recomendado'. >> >>> >> >>> ________________________________ >> >>> Date: Tue, 20 May 2014 11:52:43 -0700 >> >>> From: samircurys em gmail.com >> >>> To: rio-pm em pm.org >> >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN >> >>> >> >>> >> >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa >> >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram >> >>> Module::Build e >> >>> Module::Make. >> >>> >> >>> Lendo melhor, parece que rola uma discussao entre usar as flags >> >>> oficiais >> >>> do CPAN ou _ na versao. Hum. >> >>> >> >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ >> >>> na >> >>> versao. Mas o argumento da confusao no metacpan faz sentido. >> >>> >> >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag la >> >>> : >> >>> >> >>> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm >> >>> >> >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no >> >>> POD. >> >>> >> >>> Abs >> >>> >> >>> >> >>> 2014-05-20 11:39 GMT-07:00 Renato Santos : >> >>> >> >>> * >> >>> >> >>> http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html >> >>> >> >>> #fastreply >> >>> >> >>> >> >>> 2014-05-20 15:35 GMT-03:00 Samir Cury : >> >>> >> >>> Pessoal, >> >>> >> >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como >> >>> "beta" >> >>> >> >>> Como estou no passo intermediario para o meu primeiro modulo >> >>> "decente", >> >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. >> >>> Pesquisando >> >>> um pouco esbarrei com todas essas definicoes : >> >>> >> >>> http://search.cpan.org/dlsip?bpmOp >> >>> >> >>> Ja que o modulo funciona, esta documentado e passa no "prove", achei >> >>> interessante subir como beta, e lancar novas releases quando fizer >> >>> mais >> >>> refatoracoes. >> >>> >> >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que >> >>> quando eu for realmente subir o modulo vou ter a opcao de marcar como >> >>> beta. >> >>> >> >>> Pra quem estiver curioso este e o modulo : >> >>> >> >>> https://github.com/samircury/HTCondor--Queue--Parser >> >>> >> >>> Abs, >> >>> Samir >> >>> >> >>> >> >>> >> >>> _______________________________________________ >> >>> Rio-pm mailing list >> >>> Rio-pm em pm.org >> >>> http://mail.pm.org/mailman/listinfo/rio-pm >> >>> >> >>> >> >>> >> >>> >> >>> -- >> >>> Saravá, >> >>> Renato CRON >> >>> http://www.renatocron.com/blog/ >> >>> @renato_cron >> >>> >> >>> _______________________________________________ >> >>> Rio-pm mailing list >> >>> Rio-pm em pm.org >> >>> http://mail.pm.org/mailman/listinfo/rio-pm >> >>> >> >>> >> >>> >> >>> _______________________________________________ Rio-pm mailing list >> >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >>> >> >>> _______________________________________________ >> >>> Rio-pm mailing list >> >>> Rio-pm em pm.org >> >>> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> >> >> >> _______________________________________________ >> >> Rio-pm mailing list >> >> Rio-pm em pm.org >> >> http://mail.pm.org/mailman/listinfo/rio-pm >> > >> > >> > >> > _______________________________________________ >> > Rio-pm mailing list >> > Rio-pm em pm.org >> > http://mail.pm.org/mailman/listinfo/rio-pm >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm From nuba em fastmail.fm Fri May 23 08:28:57 2014 From: nuba em fastmail.fm (Nuba Princigalli) Date: Fri, 23 May 2014 12:28:57 -0300 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: <1400858937.12571.120829945.7A0F60A7@webmail.messagingengine.com> Garu já deu a dica! O lance é "vai fondo, vai fondo, vai fondo, até que iu!" ;) Sobre como lidar com números de versão, sugiro ler também http://semver.org/ On Fri, May 23, 2014, at 11:22 AM, breno wrote: > Samir, lança logo o módulo que agora eu to curioso :D > > Não se prenda por "não tem testes", "não tá pronto", "não tá > perfeito", ou "o que vão pensar de mim". Lembre que não é estático e > que você sempre pode lançar outras versões depois - quantas vc quiser! > - corrigindo ou melhorando. Lembra também que só vai usar quem quiser. > > O próprio Tokuhiro Matsuno, um dos autores mais assíduos do CPAN, > criador de módulos como Test::Pretty, Minilla, HTML::Escape e tantos > outros, costuma lançar seus primeiros módulos sem testes ou > documentação, e vai melhorando gradativamente. O Ricardo Signes, > mantenedor do Perl e maior autor do CPAN com módulos como Dist::Zilla > CPAN::Mini, Email::Sender entre vários outros, é conhecido por lançar > módulos sem documentação na primeira versão, e ir melhorando nas > seguintes. Há até casos extremos que não concordo muito mas acontecem, > como a primeira versão do Mojo, que quando o sri lançou era só um > placeholder pra reservar o namespace! > > Não tenha medo de lançar seu código para o mundo. O pior que pode > acontecer é ninguém usar (nem você) ;-) > > go go go! Aperta o botão! Você vai ver que não é nada de mais e > rapidinho estará lançando um módulo atrás do outro :D > > > []s > > -b > > > > 2014-05-23 10:56 GMT-03:00 Renato Santos : > > Eu não dou tanto valor pro número, > > > > a primeira versão pode ser a 10.02.56 que eu não vo ligar, desde que a > > proxima seja maior. > > > > e ai sim, entra o negocio de usar versões impares, tipo, 10.03_55 pra > > publicar algum pre-release e testar sob o cpan inteiro. > > > > > > > > > > 2014-05-23 6:55 GMT-03:00 Aureliano Guedes : > > > >> De novo, posso esta falando besteira, me corrijam se eu tiver errado. Mas > >> acho que 0.0.1 ou 0.01 nao seriam números de versões ridículos. Já seriam > >> números de versões funcionais. > >> Parece que até você do 2.0 para o 2.9.9 são geralmente so otimizações e > >> correções de pequenos bugs ou revisão de acordo com a versão do perl atual > >> se preciso, entao o 3.0 seria realmente implementações de novas > >> funcionalidades ou mesmo a exclusão de alguma outra já existente. > >> > >> --- Mensagem Original --- > >> > >> De: "Samir Cury" > >> Enviado: 23 de Maio de 2014 01:37 > >> Para: "Perl Mongers Rio de Janeiro" > >> Assunto: Re: [Rio-pm] Release de modulo Beta no CPAN > >> > >> Exato Breno, valeu pelos exemplos que dao um pouco mais de coragem de > >> subir o modulo. > >> > >> Essa e a ideia. Estou cozinhando esse modulo desde os fins de semana de > >> 2012 por nao ter testes decentes. Agora que tem estou procurando nao deixar > >> o otimo ser inimigo do bom. "release early, release often" > >> > >> Vou por o aviso e tambem um numero de versao ridiculo (0.1.0 ou 0.01), dai > >> fica obvio. > >> > >> Abs > >> > >> > >> 2014-05-22 8:00 GMT-07:00 breno : > >> > >> Samir, > >> > >> O método que Blabos e Cron indicaram está corretíssimo, mas costuma > >> ser mais usado quando você já tem uma versão pública estável. Por > >> exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão > >> "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e > >> ela será marcada como "trial" e só poderá ser instalada via caminho > >> explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão > >> "estável". > >> > >> Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão > >> mais em torno de API ou se o módulo faz direito tudo que você quer, > >> você pode sempre colocar um aviso em letras garrafais no início da sua > >> documentação avisando que o módulo está em estágio alfa, beta, etc., > >> que a API pode mudar e que a pessoa deve usar sob sua própria conta e > >> risco. Por exemplo: > >> > >> https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING > >> > >> https://metacpan.org/pod/Stepford#DESCRIPTION > >> > >> https://metacpan.org/pod/Debug::Client#DESCRIPTION > >> > >> Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você > >> sempre pode tomar uma cerveja e lançar outra versão :) > >> > >> []s > >> > >> -b > >> > >> > >> > >> > >> 2014-05-21 12:17 GMT-03:00 Samir Cury : > >> > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do > >> > underline. Vou tentar desse jeito entao pra validar o processo do inicio > >> > ao > >> > fim antes de um release publico. Que bom saber que agora os > >> > procedimentos > >> > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora usando > >> > o > >> > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz > >> > que > >> > precise de algo mais para criar a distribuicao que vai subir pro CPAN. > >> > > >> > Abs > >> > > >> > > >> > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : > >> > > >> >> Ao colocar o underline na versão, vc evita que os instaladores usem > >> >> essa > >> >> versão inadvertidamente, embora ela ainda seja instalável se for > >> >> especificado o caminho completo para o pacote. > >> >> > >> >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o > >> >> seu > >> >> módulo antes de um release público, sem prejudicar quem já está usando > >> >> uma > >> >> versão estável do seu módulo. > >> >> > >> >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria dos > >> >> meus módulos públicos ou privados. Eventualmente pode ser chato lidar > >> >> com > >> >> alguns bugs em edge cases, mas normalmente ele tira muito boiler plate > >> >> da > >> >> sua frente. > >> >> > >> >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de várias > >> >> fases do processo de desenvolvimento, desde o startup do módulo até o > >> >> release no cpan. > >> >> > >> >> Eventualmente você pode dividir esse processo em algo como: > >> >> > >> >> 1) Fase 1: Fazer o bootstrap do seu pacote. > >> >> > >> >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os > >> >> arquivos auxiliares. > >> >> > >> >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus > >> >> módulos é o https://metacpan.org/pod/Module::Starter > >> >> > >> >> Com ele você pode escolher qual builder você vai utilizar pra montar o > >> >> seu > >> >> pacote. > >> >> > >> >> 2) Fase 2: code, code, code > >> >> > >> >> 3) Fase 3: Build > >> >> > >> >> No processo de build, uma peça de software é utilizada para juntar tudo > >> >> que o seu pacote vai precisar para ser instalado em uma máquina > >> >> qualquer. > >> >> > >> >> Essa etapa pode ser baseada em vários builders como: > >> >> > >> >> https://metacpan.org/pod/ExtUtils::MakeMaker > >> >> https://metacpan.org/pod/Module::Build > >> >> https://metacpan.org/pod/Module::Install > >> >> > >> >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, etc) > >> >> para a partir de apontamentos que você faz, verificar as dependências, > >> >> criar > >> >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas necessárias > >> >> para > >> >> tornar o seu módulo instalável. > >> >> > >> >> Quando vc instala um módulo manualmente, normalmente o processo é: > >> >> > >> >> a) Baixar e descompactar o .tar.gz > >> >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > >> >> Makefile > >> >> adaptado pra sua máquina. > >> >> c) make. Isso vai fazer o build do seu módulo, eventualmente compilando > >> >> XS, se for o caso, etc > >> >> d) make test. Lê o Makefile para executar os testes do seu módulo. > >> >> e) make install > >> >> > >> >> Quando você cria um módulo, para montar o .tar.gz normalmente você faz: > >> >> > >> >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > >> >> Makefile > >> >> adaptado pra sua máquina. > >> >> b) make manifest. Isso vai criar uma lista com todos os arquivos que > >> >> precisam ser distribuídos dentro do seu .tar.gz > >> >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do qual, > >> >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. > >> >> > >> >> Os arquivos *.PL precisam ser executados no momento da instalação para > >> >> que > >> >> o Makefile seja montado de acordo com a máquina onde ele está sendo > >> >> instalado e não de acordo com a máquina onde o módulo foi criado. > >> >> > >> >> > >> >> 4) Release. > >> >> > >> >> Consiste em enviar o seu módulo para o CPAN. > >> >> > >> >> *** > >> >> > >> >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão > >> >> antiga > >> >> lançada e nenhum outro módulo do cpan o utiliza > >> >> (https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). > >> >> > >> >> *** > >> >> > >> >> Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre > >> >> todas as etapas listadas acima e mais algumas outras, como integração > >> >> com o > >> >> seu sistema de controle de versão e simplificação da criação de POD, > >> >> por > >> >> exemplo. > >> >> > >> >> Já se você preferir fazer sem ele, você pode fazer tudo manualmente, ou > >> >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou > >> >> outra, > >> >> ou ainda combiná-las entre si. > >> >> > >> >> Eu particularmente tenho módulos que usam o dzil > >> >> (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que não > >> >> usam > >> >> (https://github.com/blabos/Paginator-Lite). > >> >> > >> >> E quando não uso, tenho preferência por criar o módulo com o > >> >> Module::Starter (não confundir com > >> >> https://metacpan.org/pod/Module::Start) > >> >> usando como builder o Module::Install. > >> >> > >> >> *** > >> >> > >> >> Finalizando, só preste atenção no que você deseja fazer e escolha a > >> >> ferramenta que achar mais adequada, tendo em mente que embora seja > >> >> relativamente simples criar um módulo e botar no CPAN, há várias etapas > >> >> envolvidas, que na maioria das vezes já são até instintivas, mas que se > >> >> você > >> >> misturar as coisas, pode dar a maior confusão. > >> >> > >> >> []'s > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes : > >> >> > >> >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >> >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram > >> >>> > >Module::Build > >> >>> > e Module::Make. > >> >>> > >> >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O > >> >>> Dist::Zilla é mais recente porem creio que seja o melhor e atualmente > >> >>> o > >> >>> 'mais recomendado'. > >> >>> > >> >>> ________________________________ > >> >>> Date: Tue, 20 May 2014 11:52:43 -0700 > >> >>> From: samircurys em gmail.com > >> >>> To: rio-pm em pm.org > >> >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN > >> >>> > >> >>> > >> >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >> >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram > >> >>> Module::Build e > >> >>> Module::Make. > >> >>> > >> >>> Lendo melhor, parece que rola uma discussao entre usar as flags > >> >>> oficiais > >> >>> do CPAN ou _ na versao. Hum. > >> >>> > >> >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um _ > >> >>> na > >> >>> versao. Mas o argumento da confusao no metacpan faz sentido. > >> >>> > >> >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag la > >> >>> : > >> >>> > >> >>> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm > >> >>> > >> >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota no > >> >>> POD. > >> >>> > >> >>> Abs > >> >>> > >> >>> > >> >>> 2014-05-20 11:39 GMT-07:00 Renato Santos : > >> >>> > >> >>> * > >> >>> > >> >>> http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html > >> >>> > >> >>> #fastreply > >> >>> > >> >>> > >> >>> 2014-05-20 15:35 GMT-03:00 Samir Cury : > >> >>> > >> >>> Pessoal, > >> >>> > >> >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como > >> >>> "beta" > >> >>> > >> >>> Como estou no passo intermediario para o meu primeiro modulo > >> >>> "decente", > >> >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. > >> >>> Pesquisando > >> >>> um pouco esbarrei com todas essas definicoes : > >> >>> > >> >>> http://search.cpan.org/dlsip?bpmOp > >> >>> > >> >>> Ja que o modulo funciona, esta documentado e passa no "prove", achei > >> >>> interessante subir como beta, e lancar novas releases quando fizer > >> >>> mais > >> >>> refatoracoes. > >> >>> > >> >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, que > >> >>> quando eu for realmente subir o modulo vou ter a opcao de marcar como > >> >>> beta. > >> >>> > >> >>> Pra quem estiver curioso este e o modulo : > >> >>> > >> >>> https://github.com/samircury/HTCondor--Queue--Parser > >> >>> > >> >>> Abs, > >> >>> Samir > >> >>> > >> >>> > >> >>> > >> >>> _______________________________________________ > >> >>> Rio-pm mailing list > >> >>> Rio-pm em pm.org > >> >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> -- > >> >>> Saravá, > >> >>> Renato CRON > >> >>> http://www.renatocron.com/blog/ > >> >>> @renato_cron > >> >>> > >> >>> _______________________________________________ > >> >>> Rio-pm mailing list > >> >>> Rio-pm em pm.org > >> >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> >>> > >> >>> > >> >>> > >> >>> _______________________________________________ Rio-pm mailing list > >> >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > >> >>> > >> >>> _______________________________________________ > >> >>> Rio-pm mailing list > >> >>> Rio-pm em pm.org > >> >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> >> > >> >> > >> >> > >> >> _______________________________________________ > >> >> Rio-pm mailing list > >> >> Rio-pm em pm.org > >> >> http://mail.pm.org/mailman/listinfo/rio-pm > >> > > >> > > >> > > >> > _______________________________________________ > >> > Rio-pm mailing list > >> > Rio-pm em pm.org > >> > http://mail.pm.org/mailman/listinfo/rio-pm > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > >> > >> > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > > > -- > > Saravá, > > Renato CRON > > http://www.renatocron.com/blog/ > > @renato_cron > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm -- Nuba R. Princigalli nuba em pauleira.com http://pauleira.com @nprincigalli Discipline is not an end in itself, just a means to an end. - King Crimson From bruno.buss em gmail.com Fri May 23 10:17:11 2014 From: bruno.buss em gmail.com (Bruno Buss) Date: Fri, 23 May 2014 14:17:11 -0300 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: garu++ Samir: http://www.troll.me/images/the-chuck-norris/chuck-norris-approved-ship-it.jpg 2014-05-23 11:22 GMT-03:00 breno : > Samir, lança logo o módulo que agora eu to curioso :D > > Não se prenda por "não tem testes", "não tá pronto", "não tá > perfeito", ou "o que vão pensar de mim". Lembre que não é estático e > que você sempre pode lançar outras versões depois - quantas vc quiser! > - corrigindo ou melhorando. Lembra também que só vai usar quem quiser. > > O próprio Tokuhiro Matsuno, um dos autores mais assíduos do CPAN, > criador de módulos como Test::Pretty, Minilla, HTML::Escape e tantos > outros, costuma lançar seus primeiros módulos sem testes ou > documentação, e vai melhorando gradativamente. O Ricardo Signes, > mantenedor do Perl e maior autor do CPAN com módulos como Dist::Zilla > CPAN::Mini, Email::Sender entre vários outros, é conhecido por lançar > módulos sem documentação na primeira versão, e ir melhorando nas > seguintes. Há até casos extremos que não concordo muito mas acontecem, > como a primeira versão do Mojo, que quando o sri lançou era só um > placeholder pra reservar o namespace! > > Não tenha medo de lançar seu código para o mundo. O pior que pode > acontecer é ninguém usar (nem você) ;-) > > go go go! Aperta o botão! Você vai ver que não é nada de mais e > rapidinho estará lançando um módulo atrás do outro :D > > > []s > > -b > > > > 2014-05-23 10:56 GMT-03:00 Renato Santos : > > Eu não dou tanto valor pro número, > > > > a primeira versão pode ser a 10.02.56 que eu não vo ligar, desde que a > > proxima seja maior. > > > > e ai sim, entra o negocio de usar versões impares, tipo, 10.03_55 pra > > publicar algum pre-release e testar sob o cpan inteiro. > > > > > > > > > > 2014-05-23 6:55 GMT-03:00 Aureliano Guedes : > > > >> De novo, posso esta falando besteira, me corrijam se eu tiver errado. > Mas > >> acho que 0.0.1 ou 0.01 nao seriam números de versões ridículos. Já > seriam > >> números de versões funcionais. > >> Parece que até você do 2.0 para o 2.9.9 são geralmente so otimizações e > >> correções de pequenos bugs ou revisão de acordo com a versão do perl > atual > >> se preciso, entao o 3.0 seria realmente implementações de novas > >> funcionalidades ou mesmo a exclusão de alguma outra já existente. > >> > >> --- Mensagem Original --- > >> > >> De: "Samir Cury" > >> Enviado: 23 de Maio de 2014 01:37 > >> Para: "Perl Mongers Rio de Janeiro" > >> Assunto: Re: [Rio-pm] Release de modulo Beta no CPAN > >> > >> Exato Breno, valeu pelos exemplos que dao um pouco mais de coragem de > >> subir o modulo. > >> > >> Essa e a ideia. Estou cozinhando esse modulo desde os fins de semana de > >> 2012 por nao ter testes decentes. Agora que tem estou procurando nao > deixar > >> o otimo ser inimigo do bom. "release early, release often" > >> > >> Vou por o aviso e tambem um numero de versao ridiculo (0.1.0 ou 0.01), > dai > >> fica obvio. > >> > >> Abs > >> > >> > >> 2014-05-22 8:00 GMT-07:00 breno : > >> > >> Samir, > >> > >> O método que Blabos e Cron indicaram está corretíssimo, mas costuma > >> ser mais usado quando você já tem uma versão pública estável. Por > >> exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão > >> "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e > >> ela será marcada como "trial" e só poderá ser instalada via caminho > >> explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão > >> "estável". > >> > >> Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão > >> mais em torno de API ou se o módulo faz direito tudo que você quer, > >> você pode sempre colocar um aviso em letras garrafais no início da sua > >> documentação avisando que o módulo está em estágio alfa, beta, etc., > >> que a API pode mudar e que a pessoa deve usar sob sua própria conta e > >> risco. Por exemplo: > >> > >> https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING > >> > >> https://metacpan.org/pod/Stepford#DESCRIPTION > >> > >> https://metacpan.org/pod/Debug::Client#DESCRIPTION > >> > >> Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você > >> sempre pode tomar uma cerveja e lançar outra versão :) > >> > >> []s > >> > >> -b > >> > >> > >> > >> > >> 2014-05-21 12:17 GMT-03:00 Samir Cury : > >> > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao do > >> > underline. Vou tentar desse jeito entao pra validar o processo do > inicio > >> > ao > >> > fim antes de um release publico. Que bom saber que agora os > >> > procedimentos > >> > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora > usando > >> > o > >> > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz > >> > que > >> > precise de algo mais para criar a distribuicao que vai subir pro CPAN. > >> > > >> > Abs > >> > > >> > > >> > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : > >> > > >> >> Ao colocar o underline na versão, vc evita que os instaladores usem > >> >> essa > >> >> versão inadvertidamente, embora ela ainda seja instalável se for > >> >> especificado o caminho completo para o pacote. > >> >> > >> >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o > >> >> seu > >> >> módulo antes de um release público, sem prejudicar quem já está > usando > >> >> uma > >> >> versão estável do seu módulo. > >> >> > >> >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria > dos > >> >> meus módulos públicos ou privados. Eventualmente pode ser chato lidar > >> >> com > >> >> alguns bugs em edge cases, mas normalmente ele tira muito boiler > plate > >> >> da > >> >> sua frente. > >> >> > >> >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de > várias > >> >> fases do processo de desenvolvimento, desde o startup do módulo até o > >> >> release no cpan. > >> >> > >> >> Eventualmente você pode dividir esse processo em algo como: > >> >> > >> >> 1) Fase 1: Fazer o bootstrap do seu pacote. > >> >> > >> >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como os > >> >> arquivos auxiliares. > >> >> > >> >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos meus > >> >> módulos é o https://metacpan.org/pod/Module::Starter > >> >> > >> >> Com ele você pode escolher qual builder você vai utilizar pra montar > o > >> >> seu > >> >> pacote. > >> >> > >> >> 2) Fase 2: code, code, code > >> >> > >> >> 3) Fase 3: Build > >> >> > >> >> No processo de build, uma peça de software é utilizada para juntar > tudo > >> >> que o seu pacote vai precisar para ser instalado em uma máquina > >> >> qualquer. > >> >> > >> >> Essa etapa pode ser baseada em vários builders como: > >> >> > >> >> https://metacpan.org/pod/ExtUtils::MakeMaker > >> >> https://metacpan.org/pod/Module::Build > >> >> https://metacpan.org/pod/Module::Install > >> >> > >> >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, > etc) > >> >> para a partir de apontamentos que você faz, verificar as > dependências, > >> >> criar > >> >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas > necessárias > >> >> para > >> >> tornar o seu módulo instalável. > >> >> > >> >> Quando vc instala um módulo manualmente, normalmente o processo é: > >> >> > >> >> a) Baixar e descompactar o .tar.gz > >> >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > >> >> Makefile > >> >> adaptado pra sua máquina. > >> >> c) make. Isso vai fazer o build do seu módulo, eventualmente > compilando > >> >> XS, se for o caso, etc > >> >> d) make test. Lê o Makefile para executar os testes do seu módulo. > >> >> e) make install > >> >> > >> >> Quando você cria um módulo, para montar o .tar.gz normalmente você > faz: > >> >> > >> >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo > >> >> Makefile > >> >> adaptado pra sua máquina. > >> >> b) make manifest. Isso vai criar uma lista com todos os arquivos que > >> >> precisam ser distribuídos dentro do seu .tar.gz > >> >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do > qual, > >> >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. > >> >> > >> >> Os arquivos *.PL precisam ser executados no momento da instalação > para > >> >> que > >> >> o Makefile seja montado de acordo com a máquina onde ele está sendo > >> >> instalado e não de acordo com a máquina onde o módulo foi criado. > >> >> > >> >> > >> >> 4) Release. > >> >> > >> >> Consiste em enviar o seu módulo para o CPAN. > >> >> > >> >> *** > >> >> > >> >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão > >> >> antiga > >> >> lançada e nenhum outro módulo do cpan o utiliza > >> >> (https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]] > ). > >> >> > >> >> *** > >> >> > >> >> Com o dzil você tem uma ferramenta, que em conjunto com plugins cobre > >> >> todas as etapas listadas acima e mais algumas outras, como integração > >> >> com o > >> >> seu sistema de controle de versão e simplificação da criação de POD, > >> >> por > >> >> exemplo. > >> >> > >> >> Já se você preferir fazer sem ele, você pode fazer tudo manualmente, > ou > >> >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase ou > >> >> outra, > >> >> ou ainda combiná-las entre si. > >> >> > >> >> Eu particularmente tenho módulos que usam o dzil > >> >> (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que > não > >> >> usam > >> >> (https://github.com/blabos/Paginator-Lite). > >> >> > >> >> E quando não uso, tenho preferência por criar o módulo com o > >> >> Module::Starter (não confundir com > >> >> https://metacpan.org/pod/Module::Start) > >> >> usando como builder o Module::Install. > >> >> > >> >> *** > >> >> > >> >> Finalizando, só preste atenção no que você deseja fazer e escolha a > >> >> ferramenta que achar mais adequada, tendo em mente que embora seja > >> >> relativamente simples criar um módulo e botar no CPAN, há várias > etapas > >> >> envolvidas, que na maioria das vezes já são até instintivas, mas que > se > >> >> você > >> >> misturar as coisas, pode dar a maior confusão. > >> >> > >> >> []'s > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes >: > >> >> > >> >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >> >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram > >> >>> > >Module::Build > >> >>> > e Module::Make. > >> >>> > >> >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O > >> >>> Dist::Zilla é mais recente porem creio que seja o melhor e > atualmente > >> >>> o > >> >>> 'mais recomendado'. > >> >>> > >> >>> ________________________________ > >> >>> Date: Tue, 20 May 2014 11:52:43 -0700 > >> >>> From: samircurys em gmail.com > >> >>> To: rio-pm em pm.org > >> >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN > >> >>> > >> >>> > >> >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa > >> >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram > >> >>> Module::Build e > >> >>> Module::Make. > >> >>> > >> >>> Lendo melhor, parece que rola uma discussao entre usar as flags > >> >>> oficiais > >> >>> do CPAN ou _ na versao. Hum. > >> >>> > >> >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que um > _ > >> >>> na > >> >>> versao. Mas o argumento da confusao no metacpan faz sentido. > >> >>> > >> >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag > la > >> >>> : > >> >>> > >> >>> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm > >> >>> > >> >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota > no > >> >>> POD. > >> >>> > >> >>> Abs > >> >>> > >> >>> > >> >>> 2014-05-20 11:39 GMT-07:00 Renato Santos : > >> >>> > >> >>> * > >> >>> > >> >>> > http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html > >> >>> > >> >>> #fastreply > >> >>> > >> >>> > >> >>> 2014-05-20 15:35 GMT-03:00 Samir Cury : > >> >>> > >> >>> Pessoal, > >> >>> > >> >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como > >> >>> "beta" > >> >>> > >> >>> Como estou no passo intermediario para o meu primeiro modulo > >> >>> "decente", > >> >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. > >> >>> Pesquisando > >> >>> um pouco esbarrei com todas essas definicoes : > >> >>> > >> >>> http://search.cpan.org/dlsip?bpmOp > >> >>> > >> >>> Ja que o modulo funciona, esta documentado e passa no "prove", achei > >> >>> interessante subir como beta, e lancar novas releases quando fizer > >> >>> mais > >> >>> refatoracoes. > >> >>> > >> >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, > que > >> >>> quando eu for realmente subir o modulo vou ter a opcao de marcar > como > >> >>> beta. > >> >>> > >> >>> Pra quem estiver curioso este e o modulo : > >> >>> > >> >>> https://github.com/samircury/HTCondor--Queue--Parser > >> >>> > >> >>> Abs, > >> >>> Samir > >> >>> > >> >>> > >> >>> > >> >>> _______________________________________________ > >> >>> Rio-pm mailing list > >> >>> Rio-pm em pm.org > >> >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> -- > >> >>> Saravá, > >> >>> Renato CRON > >> >>> http://www.renatocron.com/blog/ > >> >>> @renato_cron > >> >>> > >> >>> _______________________________________________ > >> >>> Rio-pm mailing list > >> >>> Rio-pm em pm.org > >> >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> >>> > >> >>> > >> >>> > >> >>> _______________________________________________ Rio-pm mailing list > >> >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm > >> >>> > >> >>> _______________________________________________ > >> >>> Rio-pm mailing list > >> >>> Rio-pm em pm.org > >> >>> http://mail.pm.org/mailman/listinfo/rio-pm > >> >> > >> >> > >> >> > >> >> _______________________________________________ > >> >> Rio-pm mailing list > >> >> Rio-pm em pm.org > >> >> http://mail.pm.org/mailman/listinfo/rio-pm > >> > > >> > > >> > > >> > _______________________________________________ > >> > Rio-pm mailing list > >> > Rio-pm em pm.org > >> > http://mail.pm.org/mailman/listinfo/rio-pm > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > >> > >> > >> > >> _______________________________________________ > >> Rio-pm mailing list > >> Rio-pm em pm.org > >> http://mail.pm.org/mailman/listinfo/rio-pm > > > > > > > > > > -- > > Saravá, > > Renato CRON > > http://www.renatocron.com/blog/ > > @renato_cron > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- Bruno C. Buss http://www.brunobuss.net -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From samircurys em gmail.com Fri May 23 10:26:16 2014 From: samircurys em gmail.com (Samir Cury) Date: Fri, 23 May 2014 10:26:16 -0700 Subject: [Rio-pm] Release de modulo Beta no CPAN In-Reply-To: References: Message-ID: hehehe, valeu a forca galera, vai nascer esse fim de semana entao. Na real o modulo ja ate funciona (e pra mim, funciona bem http://www.wiliam.com.au/content/upload/blog/worksonmymachine.jpg). Entao vou deixar de lado o underline. So tem umas coisas bizarras no codigo que nao pensei na hora que escrevi e que poderiam ser otimizadas, mas dai e que disseram, nada impede de lancar novas versoes com as correcoes. Vou ate deixar o TODO no POD. Abs 2014-05-23 10:17 GMT-07:00 Bruno Buss : > garu++ > > Samir: > > http://www.troll.me/images/the-chuck-norris/chuck-norris-approved-ship-it.jpg > > > 2014-05-23 11:22 GMT-03:00 breno : > > Samir, lança logo o módulo que agora eu to curioso :D >> >> Não se prenda por "não tem testes", "não tá pronto", "não tá >> perfeito", ou "o que vão pensar de mim". Lembre que não é estático e >> que você sempre pode lançar outras versões depois - quantas vc quiser! >> - corrigindo ou melhorando. Lembra também que só vai usar quem quiser. >> >> O próprio Tokuhiro Matsuno, um dos autores mais assíduos do CPAN, >> criador de módulos como Test::Pretty, Minilla, HTML::Escape e tantos >> outros, costuma lançar seus primeiros módulos sem testes ou >> documentação, e vai melhorando gradativamente. O Ricardo Signes, >> mantenedor do Perl e maior autor do CPAN com módulos como Dist::Zilla >> CPAN::Mini, Email::Sender entre vários outros, é conhecido por lançar >> módulos sem documentação na primeira versão, e ir melhorando nas >> seguintes. Há até casos extremos que não concordo muito mas acontecem, >> como a primeira versão do Mojo, que quando o sri lançou era só um >> placeholder pra reservar o namespace! >> >> Não tenha medo de lançar seu código para o mundo. O pior que pode >> acontecer é ninguém usar (nem você) ;-) >> >> go go go! Aperta o botão! Você vai ver que não é nada de mais e >> rapidinho estará lançando um módulo atrás do outro :D >> >> >> []s >> >> -b >> >> >> >> 2014-05-23 10:56 GMT-03:00 Renato Santos : >> > Eu não dou tanto valor pro número, >> > >> > a primeira versão pode ser a 10.02.56 que eu não vo ligar, desde que a >> > proxima seja maior. >> > >> > e ai sim, entra o negocio de usar versões impares, tipo, 10.03_55 pra >> > publicar algum pre-release e testar sob o cpan inteiro. >> > >> > >> > >> > >> > 2014-05-23 6:55 GMT-03:00 Aureliano Guedes : >> > >> >> De novo, posso esta falando besteira, me corrijam se eu tiver errado. >> Mas >> >> acho que 0.0.1 ou 0.01 nao seriam números de versões ridículos. Já >> seriam >> >> números de versões funcionais. >> >> Parece que até você do 2.0 para o 2.9.9 são geralmente so otimizações e >> >> correções de pequenos bugs ou revisão de acordo com a versão do perl >> atual >> >> se preciso, entao o 3.0 seria realmente implementações de novas >> >> funcionalidades ou mesmo a exclusão de alguma outra já existente. >> >> >> >> --- Mensagem Original --- >> >> >> >> De: "Samir Cury" >> >> Enviado: 23 de Maio de 2014 01:37 >> >> Para: "Perl Mongers Rio de Janeiro" >> >> Assunto: Re: [Rio-pm] Release de modulo Beta no CPAN >> >> >> >> Exato Breno, valeu pelos exemplos que dao um pouco mais de coragem de >> >> subir o modulo. >> >> >> >> Essa e a ideia. Estou cozinhando esse modulo desde os fins de semana de >> >> 2012 por nao ter testes decentes. Agora que tem estou procurando nao >> deixar >> >> o otimo ser inimigo do bom. "release early, release often" >> >> >> >> Vou por o aviso e tambem um numero de versao ridiculo (0.1.0 ou 0.01), >> dai >> >> fica obvio. >> >> >> >> Abs >> >> >> >> >> >> 2014-05-22 8:00 GMT-07:00 breno : >> >> >> >> Samir, >> >> >> >> O método que Blabos e Cron indicaram está corretíssimo, mas costuma >> >> ser mais usado quando você já tem uma versão pública estável. Por >> >> exemplo, se seu módulo é Foo::Bar 1.03 e vc quer lançar uma versão >> >> "trial", dê um número de versão 1.03_01, 1.03_02, assim por diante, e >> >> ela será marcada como "trial" e só poderá ser instalada via caminho >> >> explícito. Quando se tornar estável, vc sobe pra 1.04 e lança a versão >> >> "estável". >> >> >> >> Se, por outro lado, este é o seu primeiro módulo e suas dúvidas estão >> >> mais em torno de API ou se o módulo faz direito tudo que você quer, >> >> você pode sempre colocar um aviso em letras garrafais no início da sua >> >> documentação avisando que o módulo está em estágio alfa, beta, etc., >> >> que a API pode mudar e que a pessoa deve usar sob sua própria conta e >> >> risco. Por exemplo: >> >> >> >> https://metacpan.org/pod/Fey::ORM#EARLY-VERSION-WARNING >> >> >> >> https://metacpan.org/pod/Stepford#DESCRIPTION >> >> >> >> https://metacpan.org/pod/Debug::Client#DESCRIPTION >> >> >> >> Nenhum módulo nasce perfeito. Lance o seu logo! Se der errado você >> >> sempre pode tomar uma cerveja e lançar outra versão :) >> >> >> >> []s >> >> >> >> -b >> >> >> >> >> >> >> >> >> >> 2014-05-21 12:17 GMT-03:00 Samir Cury : >> >> > Valeu mesmo pelas dicas Blabos. Esclareceu bastante tambem a funcao >> do >> >> > underline. Vou tentar desse jeito entao pra validar o processo do >> inicio >> >> > ao >> >> > fim antes de um release publico. Que bom saber que agora os >> >> > procedimentos >> >> > estao ainda melhores, vou dar um olhada no dzil. Estava ate agora >> usando >> >> > o >> >> > que o Padre oferece, que para a Fase 1 e 2 deu certo, mas e bem capaz >> >> > que >> >> > precise de algo mais para criar a distribuicao que vai subir pro >> CPAN. >> >> > >> >> > Abs >> >> > >> >> > >> >> > 2014-05-20 20:26 GMT-07:00 Blabos de Blebe : >> >> > >> >> >> Ao colocar o underline na versão, vc evita que os instaladores usem >> >> >> essa >> >> >> versão inadvertidamente, embora ela ainda seja instalável se for >> >> >> especificado o caminho completo para o pacote. >> >> >> >> >> >> Assim, você pode usar a infra-estrutura do cpan testers pra testar o >> >> >> seu >> >> >> módulo antes de um release público, sem prejudicar quem já está >> usando >> >> >> uma >> >> >> versão estável do seu módulo. >> >> >> >> >> >> O Dist::Zilla não é uma unanimidade, embora eu o utilize na maioria >> dos >> >> >> meus módulos públicos ou privados. Eventualmente pode ser chato >> lidar >> >> >> com >> >> >> alguns bugs em edge cases, mas normalmente ele tira muito boiler >> plate >> >> >> da >> >> >> sua frente. >> >> >> >> >> >> A vantagem do dzil é que ele encapsula o acesso a ferramentas de >> várias >> >> >> fases do processo de desenvolvimento, desde o startup do módulo até >> o >> >> >> release no cpan. >> >> >> >> >> >> Eventualmente você pode dividir esse processo em algo como: >> >> >> >> >> >> 1) Fase 1: Fazer o bootstrap do seu pacote. >> >> >> >> >> >> Isso significa criar os diretórios padrão (/lib, /t, etc) bem como >> os >> >> >> arquivos auxiliares. >> >> >> >> >> >> Além do dzil, um aplicativo que eu uso pra fazer o bootstrap dos >> meus >> >> >> módulos é o https://metacpan.org/pod/Module::Starter >> >> >> >> >> >> Com ele você pode escolher qual builder você vai utilizar pra >> montar o >> >> >> seu >> >> >> pacote. >> >> >> >> >> >> 2) Fase 2: code, code, code >> >> >> >> >> >> 3) Fase 3: Build >> >> >> >> >> >> No processo de build, uma peça de software é utilizada para juntar >> tudo >> >> >> que o seu pacote vai precisar para ser instalado em uma máquina >> >> >> qualquer. >> >> >> >> >> >> Essa etapa pode ser baseada em vários builders como: >> >> >> >> >> >> https://metacpan.org/pod/ExtUtils::MakeMaker >> >> >> https://metacpan.org/pod/Module::Build >> >> >> https://metacpan.org/pod/Module::Install >> >> >> >> >> >> Esses builders baseiam-se em arquivos perl (Makefile.PL, Build.PL, >> etc) >> >> >> para a partir de apontamentos que você faz, verificar as >> dependências, >> >> >> criar >> >> >> o Makefile e seus alvos,gerar o .tar.gz entre outras coisas >> necessárias >> >> >> para >> >> >> tornar o seu módulo instalável. >> >> >> >> >> >> Quando vc instala um módulo manualmente, normalmente o processo é: >> >> >> >> >> >> a) Baixar e descompactar o .tar.gz >> >> >> b) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo >> >> >> Makefile >> >> >> adaptado pra sua máquina. >> >> >> c) make. Isso vai fazer o build do seu módulo, eventualmente >> compilando >> >> >> XS, se for o caso, etc >> >> >> d) make test. Lê o Makefile para executar os testes do seu módulo. >> >> >> e) make install >> >> >> >> >> >> Quando você cria um módulo, para montar o .tar.gz normalmente você >> faz: >> >> >> >> >> >> a) perl Makefile.PL (ou perl Build.PL). Isso vai criar um arquivo >> >> >> Makefile >> >> >> adaptado pra sua máquina. >> >> >> b) make manifest. Isso vai criar uma lista com todos os arquivos que >> >> >> precisam ser distribuídos dentro do seu .tar.gz >> >> >> c) make dist. Isso vai criar um .tar.gz do seu módulo, dentro do >> qual, >> >> >> haverá um Makefile.PL (ou Build.PL), e *não* um Makefile. >> >> >> >> >> >> Os arquivos *.PL precisam ser executados no momento da instalação >> para >> >> >> que >> >> >> o Makefile seja montado de acordo com a máquina onde ele está sendo >> >> >> instalado e não de acordo com a máquina onde o módulo foi criado. >> >> >> >> >> >> >> >> >> 4) Release. >> >> >> >> >> >> Consiste em enviar o seu módulo para o CPAN. >> >> >> >> >> >> *** >> >> >> >> >> >> O Module::Make eu vou desconsiderar, porque ele só tem uma versão >> >> >> antiga >> >> >> lançada e nenhum outro módulo do cpan o utiliza >> >> >> ( >> https://metacpan.org/requires/distribution/Module-Make?sort=[[2,1]]). >> >> >> >> >> >> *** >> >> >> >> >> >> Com o dzil você tem uma ferramenta, que em conjunto com plugins >> cobre >> >> >> todas as etapas listadas acima e mais algumas outras, como >> integração >> >> >> com o >> >> >> seu sistema de controle de versão e simplificação da criação de POD, >> >> >> por >> >> >> exemplo. >> >> >> >> >> >> Já se você preferir fazer sem ele, você pode fazer tudo >> manualmente, ou >> >> >> usar qualquer dessas ferramentas citadas acima pra cobrir uma fase >> ou >> >> >> outra, >> >> >> ou ainda combiná-las entre si. >> >> >> >> >> >> Eu particularmente tenho módulos que usam o dzil >> >> >> (https://github.com/blabos/Dancer2-Plugin-Paginator) e módulos que >> não >> >> >> usam >> >> >> (https://github.com/blabos/Paginator-Lite). >> >> >> >> >> >> E quando não uso, tenho preferência por criar o módulo com o >> >> >> Module::Starter (não confundir com >> >> >> https://metacpan.org/pod/Module::Start) >> >> >> usando como builder o Module::Install. >> >> >> >> >> >> *** >> >> >> >> >> >> Finalizando, só preste atenção no que você deseja fazer e escolha a >> >> >> ferramenta que achar mais adequada, tendo em mente que embora seja >> >> >> relativamente simples criar um módulo e botar no CPAN, há várias >> etapas >> >> >> envolvidas, que na maioria das vezes já são até instintivas, mas >> que se >> >> >> você >> >> >> misturar as coisas, pode dar a maior confusão. >> >> >> >> >> >> []'s >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> 2014-05-20 16:12 GMT-03:00 Aureliano Guedes < >> guedes_1000 em hotmail.com>: >> >> >> >> >> >>> >Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa >> >> >>> > Dist::Zilla e lembro que os 2 metodos mais recomendados eram >> >> >>> > >Module::Build >> >> >>> > e Module::Make. >> >> >>> >> >> >>> Posso estar enganado, mas esses 'eram' os mais recomendados. O >> >> >>> Dist::Zilla é mais recente porem creio que seja o melhor e >> atualmente >> >> >>> o >> >> >>> 'mais recomendado'. >> >> >>> >> >> >>> ________________________________ >> >> >>> Date: Tue, 20 May 2014 11:52:43 -0700 >> >> >>> From: samircurys em gmail.com >> >> >>> To: rio-pm em pm.org >> >> >>> Subject: Re: [Rio-pm] Release de modulo Beta no CPAN >> >> >>> >> >> >>> >> >> >>> Sim, passei o olho nisso, mas meio que ignorei pois o mesmo usa >> >> >>> Dist::Zilla e lembro que os 2 metodos mais recomendados eram >> >> >>> Module::Build e >> >> >>> Module::Make. >> >> >>> >> >> >>> Lendo melhor, parece que rola uma discussao entre usar as flags >> >> >>> oficiais >> >> >>> do CPAN ou _ na versao. Hum. >> >> >>> >> >> >>> Meio tosco que as flags oficiais do CPAN sao mais inuteis do que >> um _ >> >> >>> na >> >> >>> versao. Mas o argumento da confusao no metacpan faz sentido. >> >> >>> >> >> >>> De qualquer jeito quando visito a pagina um modulo nao vejo a flag >> la >> >> >>> : >> >> >>> >> >> >>> http://search.cpan.org/~ingy/Module-Make-0.01/lib/Module/Make.pm >> >> >>> >> >> >>> Entao de repente o melhor e fazer como o "ingy" e colocar uma nota >> no >> >> >>> POD. >> >> >>> >> >> >>> Abs >> >> >>> >> >> >>> >> >> >>> 2014-05-20 11:39 GMT-07:00 Renato Santos : >> >> >>> >> >> >>> * >> >> >>> >> >> >>> >> http://blogs.perl.org/users/oliver_gorwits/2011/10/releasing-trialdevbeta-versions-with-distzilla.html >> >> >>> >> >> >>> #fastreply >> >> >>> >> >> >>> >> >> >>> 2014-05-20 15:35 GMT-03:00 Samir Cury : >> >> >>> >> >> >>> Pessoal, >> >> >>> >> >> >>> Outro dia na lista, li alguem dizendo : manda pro CPAN logo como >> >> >>> "beta" >> >> >>> >> >> >>> Como estou no passo intermediario para o meu primeiro modulo >> >> >>> "decente", >> >> >>> com testes e tudo mais, talvez nao tenha visto essa opcao ainda. >> >> >>> Pesquisando >> >> >>> um pouco esbarrei com todas essas definicoes : >> >> >>> >> >> >>> http://search.cpan.org/dlsip?bpmOp >> >> >>> >> >> >>> Ja que o modulo funciona, esta documentado e passa no "prove", >> achei >> >> >>> interessante subir como beta, e lancar novas releases quando fizer >> >> >>> mais >> >> >>> refatoracoes. >> >> >>> >> >> >>> Enfim. Queria confirmar com a galera que ja trilhou este caminho, >> que >> >> >>> quando eu for realmente subir o modulo vou ter a opcao de marcar >> como >> >> >>> beta. >> >> >>> >> >> >>> Pra quem estiver curioso este e o modulo : >> >> >>> >> >> >>> https://github.com/samircury/HTCondor--Queue--Parser >> >> >>> >> >> >>> Abs, >> >> >>> Samir >> >> >>> >> >> >>> >> >> >>> >> >> >>> _______________________________________________ >> >> >>> Rio-pm mailing list >> >> >>> Rio-pm em pm.org >> >> >>> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> -- >> >> >>> Saravá, >> >> >>> Renato CRON >> >> >>> http://www.renatocron.com/blog/ >> >> >>> @renato_cron >> >> >>> >> >> >>> _______________________________________________ >> >> >>> Rio-pm mailing list >> >> >>> Rio-pm em pm.org >> >> >>> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >>> >> >> >>> >> >> >>> >> >> >>> _______________________________________________ Rio-pm mailing list >> >> >>> Rio-pm em pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> >>> >> >> >>> _______________________________________________ >> >> >>> Rio-pm mailing list >> >> >>> Rio-pm em pm.org >> >> >>> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> >> >> >> >> >> >> >> _______________________________________________ >> >> >> Rio-pm mailing list >> >> >> Rio-pm em pm.org >> >> >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> > >> >> > >> >> > >> >> > _______________________________________________ >> >> > Rio-pm mailing list >> >> > Rio-pm em pm.org >> >> > http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> >> Rio-pm mailing list >> >> Rio-pm em pm.org >> >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> >> >> >> _______________________________________________ >> >> Rio-pm mailing list >> >> Rio-pm em pm.org >> >> http://mail.pm.org/mailman/listinfo/rio-pm >> > >> > >> > >> > >> > -- >> > Saravá, >> > Renato CRON >> > http://www.renatocron.com/blog/ >> > @renato_cron >> > >> > _______________________________________________ >> > Rio-pm mailing list >> > Rio-pm em pm.org >> > http://mail.pm.org/mailman/listinfo/rio-pm >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm em pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Bruno C. Buss > http://www.brunobuss.net > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From dtostes em gmail.com Thu May 29 05:41:58 2014 From: dtostes em gmail.com (Diego Tostes) Date: Thu, 29 May 2014 12:41:58 +0000 Subject: [Rio-pm] vaga em botafogo Message-ID: Pessoal, tenho visto anuncios como esse: http://www.infojobs.com.br/vaga-de-desenvolvedore-perl-botafogo-em-rio-janeiro__3930615.aspx Como a comunidade não é muito grande, vocês saberiam me informar que empresa é essa? Sou desenvolvedor python, mas venho estudando perl pois quero participar mais ativamente do desenvolvimento da api do duck duck go. Como estou saindo de um projeto agora em julho e moro em botafogo, mesmo como junior seria uma oportunidade ímpar de estar trabalhando, aprendendo e não se deslocando muito!!! Se alguém souber de algo poderia me informar? Abs Diego -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From breno em rio.pm.org Fri May 30 09:54:58 2014 From: breno em rio.pm.org (breno) Date: Fri, 30 May 2014 13:54:58 -0300 Subject: [Rio-pm] vaga em botafogo In-Reply-To: References: Message-ID: Oi Diego, não sei o nome da empresa, se descobrir nos avise! E, se estiver interessado por algo em Laranjeiras, a Estante Virtual também está procurando desenvolvedores Perl :) Envie seu currículo pra rh em estantevirtual.com.br :) []s -b 2014-05-29 9:41 GMT-03:00 Diego Tostes : > Pessoal, > > tenho visto anuncios como esse: > > http://www.infojobs.com.br/vaga-de-desenvolvedore-perl-botafogo-em-rio-janeiro__3930615.aspx > > > Como a comunidade não é muito grande, vocês saberiam me informar que empresa > é essa? > > Sou desenvolvedor python, mas venho estudando perl pois quero participar > mais ativamente do desenvolvimento da api do duck duck go. Como estou saindo > de um projeto agora em julho e moro em botafogo, mesmo como junior seria uma > oportunidade ímpar de estar trabalhando, aprendendo e não se deslocando > muito!!! > > Se alguém souber de algo poderia me informar? > > Abs > > Diego > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm From dtostes em gmail.com Fri May 30 10:15:00 2014 From: dtostes em gmail.com (Diego Tostes) Date: Fri, 30 May 2014 14:15:00 -0300 Subject: [Rio-pm] vaga em botafogo In-Reply-To: References: Message-ID: Já apliquei... Mas acho q precisam de alguém mais sênior em Perl... Em 30/05/2014 13:55, "breno" escreveu: > Oi Diego, > > não sei o nome da empresa, se descobrir nos avise! E, se estiver > interessado por algo em Laranjeiras, a Estante Virtual também está > procurando desenvolvedores Perl :) > > Envie seu currículo pra rh em estantevirtual.com.br :) > > > []s > > -b > > 2014-05-29 9:41 GMT-03:00 Diego Tostes : > > Pessoal, > > > > tenho visto anuncios como esse: > > > > > http://www.infojobs.com.br/vaga-de-desenvolvedore-perl-botafogo-em-rio-janeiro__3930615.aspx > > > > > > Como a comunidade não é muito grande, vocês saberiam me informar que > empresa > > é essa? > > > > Sou desenvolvedor python, mas venho estudando perl pois quero participar > > mais ativamente do desenvolvimento da api do duck duck go. Como estou > saindo > > de um projeto agora em julho e moro em botafogo, mesmo como junior seria > uma > > oportunidade ímpar de estar trabalhando, aprendendo e não se deslocando > > muito!!! > > > > Se alguém souber de algo poderia me informar? > > > > Abs > > > > Diego > > > > _______________________________________________ > > Rio-pm mailing list > > Rio-pm em pm.org > > http://mail.pm.org/mailman/listinfo/rio-pm > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From dtostes em gmail.com Sun Jun 8 15:03:22 2014 From: dtostes em gmail.com (Diego Tostes) Date: Sun, 8 Jun 2014 19:03:22 -0300 Subject: [Rio-pm] openshift + cpan Message-ID: Pessoal, alguem ja usou openshift (openshift.redhat.com) com uma aplicacao perl? queria fazer uns testes mas precisava usar o cpan. no entanto qundo tento: > cpan mkdir /var/lib/openshift/5394ca015973ca5dd90005f6/.cpan: Permissão negada at /usr/share/perl5/CPAN/HandleConfig.pm line 554 alguem sabe como resolver isso? ou existe uma outra plataforma de cloud que roda perl e o cpan esteja habilitado? abs diego -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From blabos em gmail.com Sun Jun 8 15:26:31 2014 From: blabos em gmail.com (Blabos de Blebe) Date: Sun, 8 Jun 2014 19:26:31 -0300 Subject: [Rio-pm] openshift + cpan In-Reply-To: References: Message-ID: Opa, Vê se isso aqui ajuda: http://www.allaroundtheworld.fr/blog/2014/05/07/using-perl-on-red-hats-openshift-cloud/ Procura por cpan.txt Sim. É estranho. Mas é assim que o openshift baixas as dependências do cpan. []'s 2014-06-08 19:03 GMT-03:00 Diego Tostes : > Pessoal, > > alguem ja usou openshift (openshift.redhat.com) com uma aplicacao perl? > > queria fazer uns testes mas precisava usar o cpan. no entanto qundo tento: > > > cpan > mkdir /var/lib/openshift/5394ca015973ca5dd90005f6/.cpan: Permissão negada > at /usr/share/perl5/CPAN/HandleConfig.pm line 554 > > > alguem sabe como resolver isso? ou existe uma outra plataforma de cloud > que roda perl e o cpan esteja habilitado? > > abs > > diego > > > > _______________________________________________ > Rio-pm mailing list > Rio-pm em pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From edu_eddy em yahoo.com.br Wed Jun 25 18:02:51 2014 From: edu_eddy em yahoo.com.br (Eduardo Lemons) Date: Wed, 25 Jun 2014 18:02:51 -0700 Subject: [Rio-pm] =?iso-8859-1?q?=5BJobs=5D_Vaga=3A_=22Analista_Desenvolve?= =?iso-8859-1?q?dor_Perl=22_=28Paran=E1=29?= In-Reply-To: <1403743683.84600.YahooMailNeo@web125201.mail.ne1.yahoo.com> References: <1403743683.84600.YahooMailNeo@web125201.mail.ne1.yahoo.com> Message-ID: <1403744571.65200.YahooMailNeo@web125205.mail.ne1.yahoo.com> Saudações a todos! Gostaria de saber quem de vós tem conhecimento em Perl para Web, preferencialmente conhecimentos sobre Catalyst, Moose e DBIx::Class, e gostaria de uma oportunidade de se tornar um Desenvolvedor e Analista Perl em uma empresa em São José dos Pinhais - PR (cidade da região metropolitana de Curitiba). A empresa se chama Sascar, e atua no ramo de rastreamento de veículos e cargas. O funcionário que for selecionado ficará alocado na unidade do Paraná da empresa, em uma equipe grande de analistas e desenvolvedores de diversas linguagens. O contrato de trabalho é CLT, 44 horas semanais, salário à combinar na entrevista. Não possuo mais informações sobre a vaga, assim que os currículos forem encaminhados, o pessoal de RH entrará em contato e pode tirar dúvidas e agendar a entrevista. Favor, enviar currículos para: edu_eddy em yahoo.com.br  ;  eduardo.lemons em sascar.com.br Obrigado! -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: