From gabriel em webclube.com Tue Dec 2 19:10:13 2003 From: gabriel em webclube.com (Gabriel Vieira) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Post/Get/Cookies Me ajudem!!!!! =) Message-ID: <003a01c3b93a$3f9e8160$ad57a8c0@fortalnet.com.br> Olá Lista, fiz um script A que envia dados via socket em método POST para que este loga-se a um script B. São enviados um login e uma senha pelo script A, e o script B reconhece normalmente e libera o acesso. O script B seta um cookie para o login e a senha, até aí sem problemas. Porém, como quem está tentando acessar é um script perl(script A), os cookies não são gravados. Logo adicionei ao header do get/post a linha Cookies: login=blabla&senha=blabla E fiz com com que o script B imprimisse na tela o conteúdo do $ENV{'HTTP_COOKIE'}, o mesmo imprime perfeitamente login=blabla&senha=blabla só que não os reconhece... Ele não libera o acesso mais. Quando EU acesso via web normal, o login é feito, o cookie salvo.. tudo 100%, porém quando o script A tenta fazer a segunda etapa (navegar a partir dos cookies passados via headers) o script B não trabalha direito. Existe alguma informação a mais que deve ser passada via header para que o script B funcione também quando acessado pelo script A? Os navegadores impõem esta informação? Alguém tem idéia? Tá complicado de entender?? =P Espero ajuda. Grato!!! Gabriel Vieira -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20031202/3766b219/attachment.htm From lechamps em terra.com.br Wed Dec 3 06:16:55 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Post/Get/Cookies Me ajudem!!!!! =) References: <003a01c3b93a$3f9e8160$ad57a8c0@fortalnet.com.br> Message-ID: <3FCDD437.50408@terra.com.br> Gabriel Vieira wrote: > Olá Lista, Oies, Gabriel. > fiz um script A que envia dados via socket em método POST para que este > loga-se a um script B. A? B? Socket? Como você está falando em Cookies, vou imaginar que você esteja tentando falar HTTP com alguém. =-] Se eu estiver supondo errado, por favor me corrija. > São enviados um login e uma senha pelo script A, e o script B reconhece > normalmente e libera o acesso. > O script B seta um cookie para o login e a senha, até aí sem problemas. > Porém, como quem está tentando acessar é um script perl(script A), os > cookies não são gravados. Você está usando algum módulo para administrar isso, ou está falando HTTP diretamente com o servidor, via Socket? > Logo adicionei ao header do get/post a linha Cookies: > login=blabla&senha=blabla Isto não se parece em nada com um Cookie... parece mais um parametro passado via GET, coisa que você não está usando... Cookies são cabeçalhos HTTP, devem ser passados juntamente com a requisição, no formato de cabeçalhos. > E fiz com com que o script B imprimisse na tela o conteúdo do > $ENV{'HTTP_COOKIE'}, o mesmo imprime perfeitamente > login=blabla&senha=blabla só que não os reconhece... Ele não libera o > acesso mais. > Quando EU acesso via web normal, o login é feito, o cookie salvo.. tudo > 100%, porém quando o script A tenta fazer a segunda etapa (navegar a > partir dos cookies passados via headers) o script B não trabalha direito. > > Existe alguma informação a mais que deve ser passada via header para que > o script B funcione também quando acessado pelo script A? Sim, existe. > Os navegadores impõem esta informação? Como assim, 'impõem'? Eles seguem a RFC2616 e passam os cabeçalhos corretamente. Para você ler, muito educativo: [http://www.w3.org/Protocols/rfc2616/rfc2616.html] > Alguém tem idéia? =] > Tá complicado de entender?? =P Muito complicado. Por favor, diga qual o website onde você está tentando se conectar, e de preferência me deixe ver seu código... posso ajudar mais se souber do que eu estou falando. Por outro lado, você poderia usar o LWP::Client ou o LWP::SimpleClient para navegar programaticamente em qualquer website. Ou o WWW:Mechanize, construído especificamente para o seu caso... Espero que isso te ajude. Se precisar de mais, por favor escreva. []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From fglock em pucrs.br Wed Dec 3 07:40:10 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Post/Get/Cookies Me ajudem!!!!! =) References: <003a01c3b93a$3f9e8160$ad57a8c0@fortalnet.com.br> Message-ID: <3FCDE7BA.6316@pucrs.br> Gabriel Vieira wrote: > > Olá Lista, > > fiz um script A que envia dados via socket em método POST para que > este loga-se a um script B. > São enviados um login e uma senha pelo script A, e o script B > reconhece normalmente e libera o acesso. > O script B seta um cookie para o login e a senha, até aí sem > problemas. > Porém, como quem está tentando acessar é um script perl(script A), os > cookies não são gravados. > Logo adicionei ao header do get/post a linha Cookies: > login=blabla&senha=blabla > > E fiz com com que o script B imprimisse na tela o conteúdo do > $ENV{'HTTP_COOKIE'}, o mesmo imprime perfeitamente > login=blabla&senha=blabla só que não os reconhece... Ele não libera o > acesso mais. > > Quando EU acesso via web normal, o login é feito, o cookie salvo.. > tudo 100%, porém quando o script A tenta fazer a segunda etapa > (navegar a partir dos cookies passados via headers) o script B não > trabalha direito. > > Existe alguma informação a mais que deve ser passada via header para > que o script B funcione também quando acessado pelo script A? > Os navegadores impõem esta informação? Se você utilizar o LWP, ele já tem toda a estrutura para cookies pronta. Este é um trecho de um programa que trabalha com cookies: if ($ua) { $ua->cookie_jar->load($cookie_file) if $cookie_file; } else { $ua = LWP::UserAgent->new; $ua->agent($agent); $ua->timeout($timeout); $ua->env_proxy(); $ua->cookie_jar(HTTP::Cookies->new(file => $cookie_file, autosave => 1)) if $cookie_file; } $cookie_file é o nome de um arquivo onde os cookies são armazenados. Desta forma, mesmo que você execute o programa de novo, os cookies já existentes continuam valendo. - Flavio S. Glock From glasswalk3r em yahoo.com.br Wed Dec 3 08:29:05 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Post/Get/Cookies Me ajudem!!!!! =) In-Reply-To: <3FCDE7BA.6316@pucrs.br> Message-ID: <20031203142905.53548.qmail@web20205.mail.yahoo.com> A princípio, você poderia fazer isso sem usar LWP. Mas teria que receber os parâmetros do cookie e salvar num arquivo texto. Quando recebesse a requisição do cookie do servidor (acho que é o script B), você deve retornar esse cookie. Porém, essa transação toda é complicada, é mais fácil você usar o LWP do que reinventar a roda. --- "Flavio S. Glock" escreveu: > > > Se você utilizar o LWP, ele já tem toda a estrutura > para cookies pronta. > > Este é um trecho de um programa que trabalha com > cookies: > > if ($ua) { > $ua->cookie_jar->load($cookie_file) if > $cookie_file; > } > else { > $ua = LWP::UserAgent->new; > $ua->agent($agent); > $ua->timeout($timeout); > $ua->env_proxy(); > $ua->cookie_jar(HTTP::Cookies->new(file > => $cookie_file, > autosave => 1)) if $cookie_file; > } > > $cookie_file é o nome de um arquivo onde os cookies > são armazenados. > Desta forma, mesmo que você execute o programa de > novo, os cookies já > existentes continuam valendo. > > - Flavio S. Glock > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm ______________________________________________________________________ Yahoo! Mail: 6MB, anti-spam e antivírus gratuito! Crie sua conta agora: http://mail.yahoo.com.br From gabriel em webclube.com Wed Dec 3 13:35:32 2003 From: gabriel em webclube.com (Gabriel Vieira) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Post/Get/Cookies Me ajudem!!!!! =) References: <003a01c3b93a$3f9e8160$ad57a8c0@fortalnet.com.br> <3FCDD437.50408@terra.com.br> Message-ID: <003f01c3b9d4$a35703e0$ad57a8c0@fortalnet.com.br> Opa estarei respondendo também após cada linha :) Abraços, Gabriel Vieira > Gabriel Vieira wrote: > > Olá Lista, > > Oies, Gabriel. > > > fiz um script A que envia dados via socket em método POST para que este > > loga-se a um script B. > > A? B? Socket? > Como você está falando em Cookies, vou imaginar que você esteja > tentando falar HTTP com alguém. =-] Se eu estiver supondo errado, por > favor me corrija. > ################# Sim, dei os nomes A e B para os scripts para que ficasse mais fácil de se entender. No caso o get.pl (A) e o http://www.webclube.com/cgi/login.cgi (B). Exato. Estou tentando fazer com que o get.pl (A) envie e receba dados do login.cgi (B). Para isso uso o LWP. (Socket) :) ################# > > São enviados um login e uma senha pelo script A, e o script B reconhece > > normalmente e libera o acesso. > > O script B seta um cookie para o login e a senha, até aí sem problemas. > > Porém, como quem está tentando acessar é um script perl(script A), os > > cookies não são gravados. > > Você está usando algum módulo para administrar isso, ou está falando > HTTP diretamente com o servidor, via Socket? ################# Uso o LWP::UserAgent.. a seguir estarei informando o código utilizado. ################# > > > Logo adicionei ao header do get/post a linha Cookies: > > login=blabla&senha=blabla > > Isto não se parece em nada com um Cookie... parece mais um parametro > passado via GET, coisa que você não está usando... Cookies são > cabeçalhos HTTP, devem ser passados juntamente com a requisição, no > formato de cabeçalhos. > ################# Pois bem, eles são passados no cabeçalho, conforme verifiquei o formato é o proposto acima, exemplo: Host: 127.0.0.1 Cookies: oi=a&ola=b&opa=c Content-type: text/html [conteudo] ################# e como informei + abaixo o login.cgi (B) lê os cookies, pois peço pra ele me exibir o conteúdo de $ENV{'HTTP_COOKIE'} e o mesmo é feito, me informando o login e a senha que passei através do get.pl (A). ################# > > E fiz com com que o script B imprimisse na tela o conteúdo do > > $ENV{'HTTP_COOKIE'}, o mesmo imprime perfeitamente > > login=blabla&senha=blabla só que não os reconhece... Ele não libera o > > acesso mais. > > Quando EU acesso via web normal, o login é feito, o cookie salvo.. tudo > > 100%, porém quando o script A tenta fazer a segunda etapa (navegar a > > partir dos cookies passados via headers) o script B não trabalha direito. > > > > Existe alguma informação a mais que deve ser passada via header para que > > o script B funcione também quando acessado pelo script A? > > Sim, existe. > > > Os navegadores impõem esta informação? > > Como assim, 'impõem'? Eles seguem a RFC2616 e passam os cabeçalhos > corretamente. > ################# Não foi muito feliz com o 'impõem' :~) mas foi a palavra que me veio. =) ################# > Para você ler, muito educativo: > [http://www.w3.org/Protocols/rfc2616/rfc2616.html] > > > Alguém tem idéia? > > =] > > > Tá complicado de entender?? =P > > Muito complicado. > ################# Foi oq imaginei heheh :P ################# > Por favor, diga qual o website onde você está tentando se conectar, e > de preferência me deixe ver seu código... posso ajudar mais se souber do > que eu estou falando. ################# O código :) #!/usr/bin/perl use LWP::UserAgent; $ua = LWP::UserAgent->new; $header = HTTP::Headers->new('Cookie'=>'login=*****&senha=*****',); $req = HTTP::Request->new('GET','http://www.webclube.com/cgi/login.cgi',$header,''); $res = $ua->request($req); print "content-type: text/html\n\n"; print $res->as_string; exit; Estou usando este módulo pq na programação final terei que acessar uma página em HTTPS e verifiquei que ocorre o mesmo problema no HTTP normal que é o problema que informei neste e-mail. ################# > > Por outro lado, você poderia usar o LWP::Client ou o > LWP::SimpleClient para navegar programaticamente em qualquer website. Ou > o WWW:Mechanize, construído especificamente para o seu caso... > > Espero que isso te ajude. > Se precisar de mais, por favor escreva. > []'z! Agradeço :) []s From gabriel em webclube.com Wed Dec 3 13:38:19 2003 From: gabriel em webclube.com (Gabriel Vieira) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Post/Get/Cookies Me ajudem!!!!! =) References: <003a01c3b93a$3f9e8160$ad57a8c0@fortalnet.com.br> <3FCDE7BA.6316@pucrs.br> Message-ID: <005d01c3b9d5$070ef820$ad57a8c0@fortalnet.com.br> Olá Flávio, acho que isto será muito útil! Poderia me informar onde acho algo mais sobre o cookies junto com LWP? Grato, Gabriel Vieira > Gabriel Vieira wrote: > > > > Olá Lista, > > > > fiz um script A que envia dados via socket em método POST para que > > este loga-se a um script B. > > São enviados um login e uma senha pelo script A, e o script B > > reconhece normalmente e libera o acesso. > > O script B seta um cookie para o login e a senha, até aí sem > > problemas. > > Porém, como quem está tentando acessar é um script perl(script A), os > > cookies não são gravados. > > Logo adicionei ao header do get/post a linha Cookies: > > login=blabla&senha=blabla > > > > E fiz com com que o script B imprimisse na tela o conteúdo do > > $ENV{'HTTP_COOKIE'}, o mesmo imprime perfeitamente > > login=blabla&senha=blabla só que não os reconhece... Ele não libera o > > acesso mais. > > > > Quando EU acesso via web normal, o login é feito, o cookie salvo.. > > tudo 100%, porém quando o script A tenta fazer a segunda etapa > > (navegar a partir dos cookies passados via headers) o script B não > > trabalha direito. > > > > Existe alguma informação a mais que deve ser passada via header para > > que o script B funcione também quando acessado pelo script A? > > Os navegadores impõem esta informação? > > Se você utilizar o LWP, ele já tem toda a estrutura para cookies pronta. > > Este é um trecho de um programa que trabalha com cookies: > > if ($ua) { > $ua->cookie_jar->load($cookie_file) if $cookie_file; > } > else { > $ua = LWP::UserAgent->new; > $ua->agent($agent); > $ua->timeout($timeout); > $ua->env_proxy(); > $ua->cookie_jar(HTTP::Cookies->new(file => $cookie_file, > autosave => 1)) if $cookie_file; > } > > $cookie_file é o nome de um arquivo onde os cookies são armazenados. > Desta forma, mesmo que você execute o programa de novo, os cookies já > existentes continuam valendo. > > - Flavio S. Glock From gabriel em webclube.com Wed Dec 3 13:40:39 2003 From: gabriel em webclube.com (Gabriel Vieira) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Post/Get/Cookies Me ajudem!!!!! =) References: <20031203142905.53548.qmail@web20205.mail.yahoo.com> Message-ID: <006101c3b9d5$61bdb0e0$ad57a8c0@fortalnet.com.br> Foi exatamente como fiz. Porém deixei em uma sting e em seguinda executei o acesso novamente, dessa vez informando ao script B as cookies que me foram passadas via Set-Cookie por ele, (usei o código 2 vezes) sem finalizar o script. Abraços, Gabriel Vieira > A princípio, você poderia fazer isso sem usar LWP. Mas > teria que receber os parâmetros do cookie e salvar num > arquivo texto. Quando recebesse a requisição do cookie > do servidor (acho que é o script B), você deve > retornar esse cookie. > > Porém, essa transação toda é complicada, é mais fácil > você usar o LWP do que reinventar a roda. > > --- "Flavio S. Glock" escreveu: > > > > > Se você utilizar o LWP, ele já tem toda a estrutura > > para cookies pronta. > > > > Este é um trecho de um programa que trabalha com > > cookies: > > > > if ($ua) { > > $ua->cookie_jar->load($cookie_file) if > > $cookie_file; > > } > > else { > > $ua = LWP::UserAgent->new; > > $ua->agent($agent); > > $ua->timeout($timeout); > > $ua->env_proxy(); > > $ua->cookie_jar(HTTP::Cookies->new(file > > => $cookie_file, > > autosave => 1)) if $cookie_file; > > } > > > > $cookie_file é o nome de um arquivo onde os cookies > > são armazenados. > > Desta forma, mesmo que você execute o programa de > > novo, os cookies já > > existentes continuam valendo. > > > > - Flavio S. Glock From fglock em pucrs.br Wed Dec 3 18:56:30 2003 From: fglock em pucrs.br (fglock@pucrs.br) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Post/Get/Cookies Me ajudem!!!!! =) Message-ID: <200312040057.hB40vCl2078061@rigel.pucrs.br> > Olá Flávio, acho que isto será muito útil! > Poderia me informar onde acho algo mais sobre o > cookies junto com LWP? Achei este módulo interessante (não experimentei): http://search.cpan.org/dist/LWP-Simple-Cookies/lib/LW P/Simple/Cookies.pm Aqui fala um pouco mais sobre cookies: http://www.perl.com/pub/a/2002/08/20/perlandlwp.html E finalmente, tudo sobre LWP cookies: http://search.cpan.org/~gaas/libwww-perl-5.76/lib/HTT P/Cookies.pm - Flavio S. Glock From frighetti em cascavel.pm.org Sat Dec 6 08:02:03 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Fw: Safe::World - By brasucas! Message-ID: <20031206120203.3197f9a9.frighetti@cascavel.pm.org> From: "Graciliano M. P." To: Subject: Safe::World - By brasucas! Date: Sat, 6 Dec 2003 11:43:46 -0300 E ai pessoal, Bom, 1o um feliz natal e próspero ano novo. [ bem adiantado mesmo para não esquecer! :-) ] [Que bom poder escrever em português, e desculpe se estiver meio enrolado!] Recentemente publiquei um novo módulo no CPAN, Safe::World, e recebi várias respostas, mas nenhuma do Brasil. Tive até a colaboração de gente da Nova Zelândia que testou o módulo em várias versões do Perl no Win32, Linux e Mac OSX e apontou todos os bugs que apareceram. Bom, agora já publiquei a versão 0.03, que parece não ter mais nenhum bug. Gostaria da opinião de vcs sobre o módulo, e que fizessem os devidos testes, de preferência tentar usa-lo de maneira complexa, pois é aí que encontramos os benditos bugs. Mas o que é o Safe::World? Com o Safe::World vc pode criar várias instâncias virtuais do interpretador Perl dentro do interpretador real, que funcionam de maneira independente dos outros (não confunda com múltiplos threads, pois a execução é de apenas 1 fluxo por thread). Na verdade cada instância é um compartimento onde os códigos executados dentro dos compartimentos não conseguem sair dele (enxergar fora dele ou modificar qualquer coisa fora). Os códigos dentro do compartimento pensam que estão sendo executados em um interpretador novo e normal. Quem já utilizou o módulo Safe já deve ter visto algo parecido, mas sabe que o ambiente interno está longe de ser parecido com um interpretador. A coisa mais interessante sobre o Safe::World é que os mundos podem ser montados juntos. Por exemplo, pode-se criar 2 objetos Safe::World, "linka-los" e executa-los como se fossem 1 só. Mas qual a utilidade disto? Por exemplo, pode-se usar um World para carregar as classes comuns a um site (World Cache), e utilizar múltiplos World para executar o código específico de cada página (World Exec). E depois da execução o link pode ser desfeito, e apenas o World Exec é destruído, mantendo-se o World Cache como cache das classes em memória. Tal prática torna a execução bem mais rápida e com menos memória, pois não é necessário carregar novamente as classes comuns a cada execução. Bom, criei o Safe::World especialmente para ser utilizado com mod_perl, e quem sabe, disponibilizar o mod_perl para web hosts compartilhados. Outra característica do Safe::World são os mecanismos de saída de dados, onde cada instância tem a sua própria implementação. Ou seja, cada World tem seu próprio STDOUT, STDERR e STDIN. Onde a saída dos dados (STDOUT e STDERR) pode ser redirecionada para qualquer coisa (1 arquivo, socket ou até mesmo uma váriável SCALAR ou um sub). Dentro do STDOUT também é implementada uma saída extra, chamada HEADOUT, que serve para os headers. Então se for feita uma execução de CGI dentro do World, pode-se ter o content separado dos headers automaticamente. O mecanismo do HEADOUT também permite o envio de headers depois do envio do content, ou seja, pode-se enviar um cookie (pelo protocolo) no fim de uma página sem se preocupar com nada. Com o Safe::World pode-se também utilizar versões diferentes de um módulo em diferentes instâncias, já que cada instância não interfere nas outras ou no interpretador principal. Ou seja, os módulos carregados dentro de um World são apenas carregados dentro dele. Download em: http://search.cpan.org/~gmpassos/Safe-World-0.03/ Documentação: http://search.cpan.org/~gmpassos/Safe-World-0.03/lib/Safe/World.pm Testado em: - Perl-5.8.1 Win32|Linux|FreeBSD - Perl-5.8.2 Win32|Linux|FreeBSD|MacOSX - Perl-5.6.1 Win32|Linux - Perl-5.6.2 Win32 Atenciosamente, Graciliano M. P. From gmpowers em terra.com.br Tue Dec 9 23:14:52 2003 From: gmpowers em terra.com.br (Graciliano M. P.) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Safe::World 0.04 released Message-ID: <003901c3bedc$8ae100b0$098cb0c8@main> Acabei de publicar mais uma versão do Safe::World, arrumando alguns erros da implementação interna do STDERR e introduzindo novos métodos. Então para aqueles que estavam testando a versão 0.03, mantenham-se atualizados com a 0.04. Download: http://search.cpan.org/CPAN/authors/id/G/GM/GMPASSOS/Safe-World-0.04.tar.gz Doc: http://search.cpan.org/~gmpassos/Safe-World-0.04/lib/Safe/World.pm O que é? O Safe::World simula um ou mais interpretadores Perl dentro do interpretador normal sem criar novos processos ou threads, com a possibilidade de carregar diferentes módulos dentro de cada um, e de manipular-se a saída dos dados, que normalmente iria para o console, podendo redireciona-la para uma variável SCALAR (string), sub (função), ou IO (socket, arquivo, pipe, consoles, etc...). Outro recurso interessante é a possibilidade de lincar as instâncias de 2 objetos Safe::World, e faze-las funcionar como se focem uma só, e em seguida desfazer o link. Tal recurso permite uma abordagem interessante, principalmente em mod_perl, onde pode-se criar uma instância para Cache de módulos e outro para Execução de scripts diversos que usem tais módulos, o que economiza memória e torna a execução muito mais rápida (e olha que mod_perl já é rápido). Atenciosamente, Graciliano M. P. From glasswalk3r em yahoo.com.br Wed Dec 10 10:41:14 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Safe::World 0.04 released In-Reply-To: <003901c3bedc$8ae100b0$098cb0c8@main> Message-ID: <20031210164114.55863.qmail@web20207.mail.yahoo.com> --- "Graciliano M. P." escreveu: > O Safe::World simula um ou mais interpretadores Perl > dentro do interpretador > normal sem criar novos processos ou threads Graciliano, Eu não tive oportunidade de olhar o código ainda por questão de tempo disponível para tanto, mas fiquei (bastante) curioso: como funciona (basicamente) a mágica acima? []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill ______________________________________________________________________ Yahoo! Mail: 6MB, anti-spam e antivírus gratuito! Crie sua conta agora: http://mail.yahoo.com.br From lechamps em terra.com.br Wed Dec 10 12:35:00 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Safe::World 0.04 released In-Reply-To: <20031210164114.55863.qmail@web20207.mail.yahoo.com> References: <20031210164114.55863.qmail@web20207.mail.yahoo.com> Message-ID: <3FD76754.6070901@terra.com.br> Alceu R. de Freitas Jr. wrote: > --- "Graciliano M. P." > escreveu: > >>O Safe::World simula um ou mais interpretadores Perl >>dentro do interpretador >>normal sem criar novos processos ou threads > > Graciliano, > > Eu não tive oportunidade de olhar o código ainda por > questão de tempo disponível para tanto, mas fiquei > (bastante) curioso: como funciona (basicamente) a > mágica acima? > Não tem mágica nenhuma, caro e caríssimo Alceu. Até onde a minha mente limitada conseguiu entender o código, isso se parece muito com um "namespace" (Package::), mas com algum código controlando o que pode e o que não deve ser executado atravéz dos evalLOOPS internos da biblioteca... Eu estou me preparando para procurar Bugz relacionados com a exploração de Namespace Leaks, acho que o potencial é grande. (: Desta forma, eu poderia sobreescrever uma sub{} de um pacote "partilhado" para que use a minha versão, capturando senhas de bancos de dados e outras informações... Mas ainda estou estudando as possibilidades. (: Graciliano, eu gostaria de saber se você tem alguma suíte de testes "desejáveis" para eu olhar e me "inspirar". Você tem testes crash-me ou similares? Como é a filosofia de manutenção dos módulos partilhados? Como funciona a carga de novos módulos? Eu posso solicitar a carga de um módulo "partilhado" de dentro de um Safe::World? Esquentando... []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From gmpowers em terra.com.br Wed Dec 10 21:37:52 2003 From: gmpowers em terra.com.br (Graciliano M. P.) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Re: Safe::World 0.04 released References: <200312101800.hBAI0TP09940@mail.pm.org> Message-ID: <006101c3bf98$28650870$098cb0c8@main> > Eu não tive oportunidade de olhar o código ainda por > questão de tempo disponível para tanto, mas fiquei > (bastante) curioso: como funciona (basicamente) a > mágica acima? Mágica?! Quando eu era pequeno sempre quis ser mágico! eheheh ;-P Mágica nada, é muito trabalho e testes para encotrar um caminho para resolver esta locura. O Safe world é baseado em 4 "técnicas": 1 - Safe, que permite a execução de um código dentro d um pacote X, mas de uma maneira que o código pense que está no pacote main, e sem conseguir acessar nada no nível inferior deste pacote. O que cria um compartimento seguro, onde alguns operadores também podem ser restringidos (como exit(), thread() e lock()). Na verdade quem faz a mágica deste recurso é o módulo 'Opcode', através da função 'Opcode::_safe_call_sv'. 2 - Gerenciamento das variáveis globais compartilhadas pelos compartimentos com o "interpretador" normal (main::). Já que as váriáveis globais (@INC, %INC, @_, $@, $_...) dentro e fora são as mesmas (fazem a mesma referência), já que são globais e especiais, o seu estado interno e externo tem que ser respeitado. Então antes de qualquer execução interna a um compartimento, é selecionado o estado interno do compartimento em questão nas variáveis compartilhadas, e após a execução elas voltam ao normal, criando basicamente uma estrutura de Stack (pilha) em cada variável. 3 - Gerenciamento da saída de dados através de tied handlers. Então quando algum dado é enviado para STDOUT ou STDERR ele passa pelos métodos tie de cada handler, onde é possível redirecionar os dados para diferentes estruturas (SCALAR, IO, CODE), incluindo a chamada de funções do usuário. No STDOUT também é implementado um gerenciador automático dos headers, o que serve para separar o seu documento html dos headers que devem ser enviados para o browser, permitindo a execução de um filtro sobre os headers gerados, tanto para checar a sua validade como para arruma-los. Tal prática também permite o envio de headers após ou durante o envio do content. 4 - Sistema de destruição completa de um compartimento. Andei estudando qual a maneira mais eficiente para limpar totalmente um compartimento (pacote/package) do interpretador normal. Nas 1as implementações do recurso, após 1000 execuções de um código de teste o processo utilizava 150Mb, atualmente no Safe::World o mesmo teste utiliza 8Mb! O que significa que apenas 8KB ficam de refugo, e não 150KB como antes. Também observei que liberar a memória utilizada para execuções futuras agiliza a execução, pois requerir memória ao sistema consome bastante tempo de execução. Depois de ter esses 4 recursos definidos e funcionando o resto é feito sobre eles. Como o recurso de lincar 2 objetos Safe::World e faze-los funcionar como 1 só. Isto é feito manipulando-se a tabela de símbolos (symbol table) de um pacote. Na verdade implementar o Safe::World utiliza muitas técnicas de referência, tie, e tudo orientado a objeto para separar-se bem cada isntância (representação, já que isntância não é um termo exclusivo a OO) de Safe::World. Outra técnica que possibilitou td, principalmente no caso da seleção dos estados de um compartimento, é a técnica de select em Safe::World::Select. Onde cria-se um objeto select de um compartimento quando quer-se selecionar o mesmo. E quando o objeto é destruído ele reestabelece os estados anteriores. Isto cria automaticamente a estrutura de Stack nas variáveis (virtualmente). Também facilita o controle do retorno de um método, já que o código de reestabelecer os estado tem que ser executado após o retorno, ou então o uso de variáveis auxiliáres seria penoso e lento demais. Ao meu ver o Safe::World, na verdade a possibilidade dele ter sido feito apenas com Perl puro, demonstra como o intepretador Perl é rico em recursos, e como ele permite que o usuário manipule o seu comportamento da maneira que quiser. Também demonstra como Perl tem uma infinidade de coisas para aprendermos. Há alguns anos atrás tive a estupidez de achar que sabia tudo sobre Perl, mas até hoje aprendo coisas novas, e ainda acho que tenho muita coisa a aprender. Bom, tudo isso foi criado para utilizarmos o nosso velho e bom mod_perl de uma forma ainda melhor. ;-P Querm tiver maior curiosidade pode consultar o código do Safe::World, já que tudo em Perl é em código aberto, e se não foce nunca teria conseguido fazê-lo. ;-) Atenciosamente, Graciliano M. P. From glasswalk3r em yahoo.com.br Fri Dec 12 09:07:12 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <20031212141518.GA4343@pinguim.elobo.cjb.net> Message-ID: <20031212150712.92964.qmail@web20202.mail.yahoo.com> --- Ednardo Lobo escreveu: > Bem, em minha opinião, acho que deveríamos > apontar o 'perl.org.br' > para o 'brasil.pm.org' e dar continuidade a este > último. Se em algum > momento percebermos que há necessidade de > desmembrar o 'brasil.pm.org' > em 'perl.org.br', por uma razão qualquer, sei lá, o > faríamos. E também > acho que deveríamos basear o 'brasil.pm.org' no > 'pm.org' eno 'perl.org' > mas adequando-o a nossa realidade e necessidades. Concordo nesse ponto com o Ednardo. Isso pouparia bastante trabalho, e ainda estaríamos sendo referenciados como ong (pelo menos pela url). []´s Alceu ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill ______________________________________________________________________ Yahoo! Mail: 6MB, anti-spam e antivírus gratuito! Crie sua conta agora: http://mail.yahoo.com.br From fglock em pucrs.br Fri Dec 12 09:56:45 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo References: <20031212150712.92964.qmail@web20202.mail.yahoo.com> Message-ID: <3FD9E53D.62F6@pucrs.br> Alceu R. de Freitas Jr. wrote: > > --- Ednardo Lobo escreveu: > > Bem, em minha opinião, acho que deveríamos > > apontar o 'perl.org.br' > > para o 'brasil.pm.org' e dar continuidade a este > > último. Se em algum > > momento percebermos que há necessidade de > > desmembrar o 'brasil.pm.org' > > em 'perl.org.br', por uma razão qualquer, sei lá, o > > faríamos. E também > > acho que deveríamos basear o 'brasil.pm.org' no > > 'pm.org' eno 'perl.org' > > mas adequando-o a nossa realidade e necessidades. > > Concordo nesse ponto com o Ednardo. Isso pouparia > bastante trabalho, e ainda estaríamos sendo > referenciados como ong (pelo menos pela url). O brasil.pm.org já está instalado e funcionando. Acho que a questão é de como abrir o projeto para a participação de mais pessoas. Uma coisa que eu poderia fazer seria a instalação de uma interface web para que o responsável por cada seção pudesse atualizar suas páginas. Para "apontar" o perl.org.br para o brasil.pm.org seria necessário a colaboração da administração do pm.org, devido ao compartilhamento do endereço IP com outros sites. - Flavio S. Glock From lechamps em terra.com.br Fri Dec 12 12:32:38 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <3FD9E53D.62F6@pucrs.br> References: <20031212150712.92964.qmail@web20202.mail.yahoo.com> <3FD9E53D.62F6@pucrs.br> Message-ID: <3FDA09C6.8090700@terra.com.br> Flavio S. Glock wrote: > Alceu R. de Freitas Jr. wrote: > > O brasil.pm.org já está instalado e funcionando. Acho que > a questão é de como abrir o projeto para a participação > de mais pessoas. > Eu penso que a estrutura oferecida pelo pessoal do pm.org é maio inflexível, não? Existe alguma fonte oficial de informações sobre o uso dos subdomínios? > Uma coisa que eu poderia fazer seria a instalação de uma > interface web para que o responsável por cada seção pudesse > atualizar suas páginas. Isso certamente ajudaria bastante. (: > Para "apontar" o perl.org.br para o brasil.pm.org seria > necessário a colaboração da administração do pm.org, > devido ao compartilhamento do endereço IP com outros > sites. E se fizermos ao contrário? Apontemos brasil.pm.org para perl.org.br, hosteado onde e como queremos. Corremos atrás de patrocínio, e implementamos as coisas como acharmos mais apropriado. Minhas habilidades de administrador de sistemas linux, programador perl e DBA Oracle (cozinheiro, churrasqueiro e enólogo amador também) estão à disposição dos monges brasileiros. []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From glasswalk3r em yahoo.com.br Fri Dec 12 13:17:57 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <3FD9E53D.62F6@pucrs.br> Message-ID: <20031212191757.82305.qmail@web20201.mail.yahoo.com> --- "Flavio S. Glock" escreveu: > > Uma coisa que eu poderia fazer seria a instalação de > uma > interface web para que o responsável por cada seção > pudesse > atualizar suas páginas. Tem um módulo Perl interessante para fazer, algo como kwiki (alguém me socorra aqui por favor)... > Para "apontar" o perl.org.br para o brasil.pm.org > seria > necessário a colaboração da administração do pm.org, > > devido ao compartilhamento do endereço IP com outros > > sites. brasil.pm.org não possui seu próprio IP? funciona via virtual hosts (talvez num servidor Apache)? De qualquer forma, acho que vai precisar de ajuda deles mesmo... isso é complicado de conseguir? Na pior das hipóteses podíamos apontar o perl.org.br para um servidor qualquer e redirecionar automaticamente para o brasil.pm.org, não? []´s ______________________________________________________________________ Yahoo! Mail: 6MB, anti-spam e antivírus gratuito! Crie sua conta agora: http://mail.yahoo.com.br From glasswalk3r em yahoo.com.br Fri Dec 12 13:20:16 2003 From: glasswalk3r em yahoo.com.br (=?iso-8859-1?q?Alceu=20R.=20de=20Freitas=20Jr.?=) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <3FDA09C6.8090700@terra.com.br> Message-ID: <20031212192016.94628.qmail@web20206.mail.yahoo.com> --- Luis Campos de Carvalho escreveu: > Eu penso que a estrutura oferecida pelo pessoal > do pm.org é maio > inflexível, não? Existe alguma fonte oficial de > informações sobre o uso > dos subdomínios? Se for tão ruim assim, que tal usar algo como o Sourceforge? A estrutura de lá funciona muito bem obrigado. > E se fizermos ao contrário? Apontemos > brasil.pm.org para perl.org.br, > hosteado onde e como queremos. Corremos atrás de > patrocínio, e > implementamos as coisas como acharmos mais > apropriado. Isso seria bem mais simples de fazer realmente. []´s ===== Alceu Rodrigues de Freitas Junior -------------------------------------- glasswalk3r@yahoo.com.br http://www.imortais.cjb.net ----------------------------------------------------------------------- "You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill ______________________________________________________________________ Yahoo! Mail: 6MB, anti-spam e antivírus gratuito! Crie sua conta agora: http://mail.yahoo.com.br From fglock em pucrs.br Fri Dec 12 13:39:20 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo References: <20031212150712.92964.qmail@web20202.mail.yahoo.com> <3FD9E53D.62F6@pucrs.br> <3FDA09C6.8090700@terra.com.br> Message-ID: <3FDA1968.5647@pucrs.br> Luis Campos de Carvalho wrote: > > E se fizermos ao contrário? Apontemos brasil.pm.org para perl.org.br, > hosteado onde e como queremos. Corremos atrás de patrocínio, e > implementamos as coisas como acharmos mais apropriado. Pode ser - melhor ainda! > Minhas habilidades de administrador de sistemas linux, programador > perl e DBA Oracle (cozinheiro, churrasqueiro e enólogo amador também) > estão à disposição dos monges brasileiros. Ótimo. Precisamos também de recursos para viajar para congressos e fazer reuniões-almoço! - Flavio S. Glock From lechamps em terra.com.br Fri Dec 12 13:57:55 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <3FDA1968.5647@pucrs.br> References: <20031212150712.92964.qmail@web20202.mail.yahoo.com> <3FD9E53D.62F6@pucrs.br> <3FDA09C6.8090700@terra.com.br> <3FDA1968.5647@pucrs.br> Message-ID: <3FDA1DC3.4040706@terra.com.br> Flavio S. Glock wrote: > Luis Campos de Carvalho wrote: > >> E se fizermos ao contrário? Apontemos brasil.pm.org para perl.org.br, >>hosteado onde e como queremos. Corremos atrás de patrocínio, e >>implementamos as coisas como acharmos mais apropriado. > > Pode ser - melhor ainda! Isso implica em aceitar depressa a oferta do pessoal do Laboratório GENESS -- alguém pode me apontar o website destes caras, para eu ter a mínima noção de quem são eles e o que fazem, por favor? O que o pessoal achou da cartinha que eu publiquei? Depois da primeira 'rodada' de palpites, vou colocá-la em https://mongers.perl.org.br/~champs/carta-ao-geness.html, para que todo mundo possa enviar "patches" [XML's também serão aceitos, "sr." Lobo... (: ] >> Minhas habilidades de administrador de sistemas linux, programador >>perl e DBA Oracle (cozinheiro, churrasqueiro e enólogo amador também) >>estão à disposição dos monges brasileiros. > > Ótimo. Precisamos também de recursos para viajar para congressos > e fazer reuniões-almoço! > Bom, parece bom... mas não sei como fazer isso, ainda... vamos tentar implementar o website e nos concentrar nisso mais adiante um pouquinho? (: Eu ainda preciso ser "iniciado" nas artes de ser patrocinado... eheh... []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From nferraz em phperl.com Fri Dec 12 16:24:28 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <3FD9E53D.62F6@pucrs.br> References: <20031212150712.92964.qmail@web20202.mail.yahoo.com> <3FD9E53D.62F6@pucrs.br> Message-ID: <3FDA401C.5070703@phperl.com> Flavio S. Glock wrote: > O brasil.pm.org já está instalado e funcionando. Acho que > a questão é de como abrir o projeto para a participação > de mais pessoas. > > Uma coisa que eu poderia fazer seria a instalação de uma > interface web para que o responsável por cada seção pudesse > atualizar suas páginas. Que tal usar um wiki? Wikis são excelentes ferramentas para criação de conteúdo colaborativo, e o TWiki (http://twiki.org) é um dos melhores wikis disponíveis atualmente. (Como vocês devem imaginar, foi feito em Perl :o)) Caso seja necessário atribuir um único administrador por área, podemos criar diversas webs. -- []s Nelson ________________________________________________________________ Nelson Ferraz GNU BIS: http://www.gnubis.com.br PhPerl: http://www.phperl.com From frighetti em cascavel.pm.org Fri Dec 12 20:31:34 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <3FDA401C.5070703@phperl.com> References: <20031212150712.92964.qmail@web20202.mail.yahoo.com> <3FD9E53D.62F6@pucrs.br> <3FDA401C.5070703@phperl.com> Message-ID: <20031213003134.2bfa6f52.frighetti@cascavel.pm.org> On Fri, 12 Dec 2003 20:24:28 -0200 Nelson Ferraz wrote: > Flavio S. Glock wrote: > > > O brasil.pm.org já está instalado e funcionando. Acho que > > a questão é de como abrir o projeto para a participação > > de mais pessoas. > > > > Uma coisa que eu poderia fazer seria a instalação de uma > > interface web para que o responsável por cada seção pudesse > > atualizar suas páginas. > > Que tal usar um wiki? > > Wikis são excelentes ferramentas para criação de conteúdo > colaborativo, e o TWiki (http://twiki.org) é um dos melhores wikis > disponíveis atualmente. (Como vocês devem imaginar, foi feito em Perl > :o)) > > Caso seja necessário atribuir um único administrador por área, podemos > criar diversas webs. Também simpatizo pelo uso de Wikis, um bom exemplo é o site da Debian-RS (http://www.debian-rs.org/) que implementa o TWiki citado pelo Nelson, realmente uma ótima opção. -- Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} From frighetti em cascavel.pm.org Fri Dec 12 20:42:40 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <3FDA1DC3.4040706@terra.com.br> References: <20031212150712.92964.qmail@web20202.mail.yahoo.com> <3FD9E53D.62F6@pucrs.br> <3FDA09C6.8090700@terra.com.br> <3FDA1968.5647@pucrs.br> <3FDA1DC3.4040706@terra.com.br> Message-ID: <20031213004240.563c2a94.frighetti@cascavel.pm.org> On Fri, 12 Dec 2003 17:57:55 -0200 Luis Campos de Carvalho wrote: > Flavio S. Glock wrote: > > Luis Campos de Carvalho wrote: > > > >> E se fizermos ao contrário? Apontemos brasil.pm.org para > >>perl.org.br, hosteado onde e como queremos. Corremos atrás de > >>patrocínio, e implementamos as coisas como acharmos mais apropriado. > > > > Pode ser - melhor ainda! Deixo ver se entendi, a ideia seria montar um servidor através de patrocínio e nós mesmos administrarmos? Não seria mais fácil aceitarmos o apoio da cipsga.org.br no qual me parece bem disposta a nos fornecer todos os recursos necessários e bem abertos a negociações? > Isso implica em aceitar depressa a oferta do pessoal do Laboratório > GENESS -- alguém pode me apontar o website destes caras, para eu ter a > mínima noção de quem são eles e o que fazem, por favor? http://geness.ufsc.br/ > O que o pessoal achou da cartinha que eu publiquei? > Depois da primeira 'rodada' de palpites, vou colocá-la em > https://mongers.perl.org.br/~champs/carta-ao-geness.html, para que > todo mundo possa enviar "patches" [XML's também serão aceitos, "sr." > Lobo... (: ] Champs, esta dando error 404 na url repassada. > > Ótimo. Precisamos também de recursos para viajar para congressos > > e fazer reuniões-almoço! > > Bem comentado, mas na minha opinião antes de tudo devemos nos ater em firmar a comunidade. -- Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} From frighetti em cascavel.pm.org Sat Dec 13 08:06:00 2003 From: frighetti em cascavel.pm.org (Fabiano Reese Righetti) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] [OFF] Lista sobre o Perl Brasil Message-ID: <20031213120600.1616e720.frighetti@cascavel.pm.org> Olá! Por motivos de não misturarmos os assuntos, foi criado uma nova lista para discussão de tudo que seja relacionado ao projeto Perl Brasil. Então os interessados nestas discussões favor se inscrever pela url: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/perl-coordenacao Abraços -- Fabiano Reese Righetti - frighetti AT {cascavel.pm.org, cpan.org} From gmpowers em terra.com.br Sat Dec 13 15:23:14 2003 From: gmpowers em terra.com.br (Graciliano M. P.) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Digest Cascavel-pm, volume 23, assunto 4 References: <200312131800.hBDI0Gc07771@mail.pm.org> Message-ID: <002501c3c1bf$517f2ff0$098cb0c8@main> Respondendo a todos: > > Luis Campos de Carvalho wrote: > > > >> E se fizermos ao contrário? Apontemos brasil.pm.org para perl.org.br, > >>hosteado onde e como queremos. Corremos atrás de patrocínio, e > >>implementamos as coisas como acharmos mais apropriado. > > > > Pode ser - melhor ainda! > > Isso implica em aceitar depressa a oferta do pessoal do Laboratório > GENESS -- alguém pode me apontar o website destes caras, para eu ter a > mínima noção de quem são eles e o que fazem, por favor? Cá está: http://www.geness.ufsc.br/ > > O que o pessoal achou da cartinha que eu publiquei? > > Depois da primeira 'rodada' de palpites, vou colocá-la em > > https://mongers.perl.org.br/~champs/carta-ao-geness.html, para que todo > > mundo possa enviar "patches" [XML's também serão aceitos, "sr." Lobo... (: ] > > >> Minhas habilidades de administrador de sistemas linux, programador > >>perl e DBA Oracle (cozinheiro, churrasqueiro e enólogo amador também) > >>estão à disposição dos monges brasileiros. Cozinheiro e churrasqueiro! Já temos uma desculpa para fazer uma festa! heeheh > > Que tal usar um wiki? > > Wikis são excelentes ferramentas para criação de conteúdo colaborativo, > e o TWiki (http://twiki.org) é um dos melhores wikis disponíveis > atualmente. (Como vocês devem imaginar, foi feito em Perl :o)) > > Caso seja necessário atribuir um único administrador por área, podemos > criar diversas webs. Sobre o wiki, acho que seria bom ter uma seção wiki, onde ele pode existir da maneira que quiser lá dentro, pois muita gente vai querer criar seções diferentes de wiki no portal. Assim dá-se a oportunidade para todos. > >> E se fizermos ao contrário? Apontemos brasil.pm.org para > >>perl.org.br, hosteado onde e como queremos. Corremos atrás de > >>patrocínio, e implementamos as coisas como acharmos mais apropriado. > > > > Pode ser - melhor ainda! > > Deixo ver se entendi, a ideia seria montar um servidor através de patrocínio e nós mesmos administrarmos? > Não seria mais fácil aceitarmos o apoio da cipsga.org.br no qual me > parece bem disposta a nos fornecer todos os recursos necessários e bem > abertos a negociações? Olha, a nossa hospedagem no GENESS seria praticamente como em um server dedicado, pois teremos a liberdade de configurar a máquina como quisermos, só que eu sou o único autorizado a isto, pois não liberam para pessoas de fora da UFSC, a não ser que participe de um projeto interno deles. > O que o pessoal achou da cartinha que eu publiquei? > Depois da primeira 'rodada' de palpites, vou colocá-la em > https://mongers.perl.org.br/~champs/carta-ao-geness.html, para que > todo mundo possa enviar "patches" [XML's também serão aceitos, "sr." > Lobo... (: ] Não consegui acessar tb! > Olá! > Por motivos de não misturarmos os assuntos, foi criado uma nova lista > para discussão de tudo que seja relacionado ao projeto Perl Brasil. > Então os interessados nestas discussões favor se inscrever pela url: > > http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/perl-coordenacao > Valeu Fabiano! Olha, volto a dizer que o importante é começarmos, e não ficar imaginando todas as opções possíveis. Digo isto pois estamos em fim de ano, natal já etá aí, e quanto mais argumentamos mais difícil fica de oficilizarmos os apoios oferecidos pelo GENESS e pelo CIPSGA. Seria muito ruim demorarmos mais uma semana e só podermos ter algo no fim de janeiro, que é quando o pessoal realmente volta! Estou preparando uma enquete com o Fabiano para decidirmos democraticamente todos estes pontos levantados na lista. Quem tiver mais idéia envie-as para a lista, pois temos que definir td logo! Vou tentar publicar a enquete ainda neste sábado, onde vcs terão 24h para dar novas idéias a constarem na enquete. Só então começa a votação de 72h, que ao finalizada, o que estiver definido estará! Atenciosamente, Graciliano M. P. From lechamps em terra.com.br Mon Dec 15 06:00:37 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Re: Perl Brasil - Resumo In-Reply-To: <20031213004240.563c2a94.frighetti@cascavel.pm.org> References: <20031212150712.92964.qmail@web20202.mail.yahoo.com> <3FD9E53D.62F6@pucrs.br> <3FDA09C6.8090700@terra.com.br> <3FDA1968.5647@pucrs.br> <3FDA1DC3.4040706@terra.com.br> <20031213004240.563c2a94.frighetti@cascavel.pm.org> Message-ID: <3FDDA265.7090407@terra.com.br> Fabiano Reese Righetti wrote: > Deixo ver se entendi, a ideia seria montar um servidor através de patrocínio e nós mesmos administrarmos? É uma possibilidade. > Não seria mais fácil aceitarmos o apoio da cipsga.org.br no qual me > parece bem disposta a nos fornecer todos os recursos necessários e bem > abertos a negociações? Bom, se conseguirmos, os recursos parecem interessantes. Persiste o problema de aceitar ou recusar a oferta do GENESS, precisamos votar e decidir. > http://geness.ufsc.br/ Obrigado! >> O que o pessoal achou da cartinha que eu publiquei? >> Depois da primeira 'rodada' de palpites, vou colocá-la em >>https://mongers.perl.org.br/~champs/carta-ao-geness.html, para que >>todo mundo possa enviar "patches" [XML's também serão aceitos, "sr." >>Lobo... (: ] > Champs, esta dando error 404 na url repassada. Ah! Calma... a primeira rodada ainda não terminou. Não li opiniões do Glock, do Lobo, do Alceu, do Oxcy e nem do Graciliano. (Faltou alguém?) Apenas depois disso vou colocar a cartinha online. Desculpe se causei confusão... (: []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From lechamps em terra.com.br Thu Dec 18 11:07:42 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:50 2004 Subject: [Cascavel-pm] Cocktails do Muttley Message-ID: <3FE1DEDE.8050106@terra.com.br> Pessoal, a turma da lista de Londres acaba de colocar no ar a 'biblioteca de cocktails do Muttley (Simon Winston)'. Vale à pena conferir, muito útil. Infelizmente, em inglês, mas muito compreensível. http://www.thegestalt.org/simon/cocktail.cgi Boa diversão a todos! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From lechamps em terra.com.br Fri Dec 19 13:37:10 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] [SOS] [Bucha]: HTML com defeito Message-ID: <3FE35366.9090208@terra.com.br> Prezados, acho que hoje é a minha vez. :o) Estou com um problema de renderização de HTML, exclusivo do IE5+. Gostaria de contar com a experiência dos hackers html desta lista. Estou com um problema no acabamento arredondado das barras marrom e laranja da parte superior desta página, onde se lê "Cliente: Integral Sistemas e Comércio" (barra marrom) e "Usuário: Luis Campos de Carvalho (8399)" (barra laranja). Quando apresentadas pelo Internet Explorer, eu obtenho uma imperfeição em cada ponta arredondada da barra, semelhante a um "dente". Este dente não aparece no Netscape, e nem no Mozilla. Eu preciso desesperadamente corrigir isso, a.s.a.p. Se alguém souber de uma forma simples de fazer isso, eu vou ficar muito agradecido. Eu gero HTML a partir com Template Toolkit (www.template-toolkit.org). O fonte gerador da pagina em questão (cgi/perl+T+imagens+html) está disponível aqui: http://www.integral.com.br/templates/templates.tar.gz Conto com a colaboração de vocês. Bom final de semana a todos. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From fglock em pucrs.br Fri Dec 19 15:09:58 2003 From: fglock em pucrs.br (Flavio S. Glock) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] [SOS] [Bucha]: HTML com defeito References: <3FE35366.9090208@terra.com.br> Message-ID: <3FE36926.5B0@pucrs.br> Luis Campos de Carvalho wrote: > > Prezados, acho que hoje é a minha vez. :o) > > Estou com um problema de renderização de HTML, exclusivo do IE5+. > > Gostaria de contar com a experiência dos hackers html desta lista. > > Estou com um problema no acabamento arredondado das barras marrom e > laranja da parte superior desta página, onde se lê "Cliente: Integral > Sistemas e Comércio" (barra marrom) e "Usuário: Luis Campos de Carvalho > (8399)" (barra laranja). Luis: Você poderia mandar o html gerado (save-as) com as imagens? Eu já tive este problema várias vezes, normalmente quando eu usei tabelas dentro de tabelas. Se for o caso, experimente definir todos os parâmetros das tabelas, quer dizer: - Flavio S. Glock From lechamps em terra.com.br Fri Dec 19 15:14:15 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] [RFC] Database x XML Message-ID: <3FE36A27.3000707@terra.com.br> [English version follows, please read on] Oies, monges de Cascavel. Estou (re) implementando os menus da aplicação web da empresa e gostaria de obter comentários, impressões e sugestões de vocês sobre a melhor forma de armazenar as informações (semi-estáticas e raramente altaradas) necessáras para gerar menus de usuário. Vocês acham melhor que eu armazene estas informações em um banco de dados, e recupere todas elas via DBI/DBD? Ou seria melhor armazenar estas informações na forma de um arquivo XML, e recuperar estas informações com XML::Parser? Eu não tenho muitos ítens no menu, são menos de 50 ao todo. Obrigado antecipadamente pelas sugestões e comentários. ============================================================ Hy dear London Mongers. I'm (re) implementing the company web application menus and would like to read comments, impressions and suggestions from you about the best way to store informations (demi-static, rarely changed) needed to generate the user menus. You think its better to store this information on a database, and recall them via DBI? Or would be better to store these informations into a XML file, and recall them via XML::Parser? My menus don't exceed 50 items at all. Thank you very much in advance for comments and suggestions. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From nferraz em phperl.com Fri Dec 19 16:45:19 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] [RFC] Database x XML In-Reply-To: <3FE36A27.3000707@terra.com.br> References: <3FE36A27.3000707@terra.com.br> Message-ID: <3FE37F7F.1000502@phperl.com> Luis Campos de Carvalho wrote: > Estou (re) implementando os menus da aplicação web da empresa e > gostaria de obter comentários, impressões e sugestões de vocês sobre a > melhor forma de armazenar as informações (semi-estáticas e raramente > altaradas) necessáras para gerar menus de usuário. Eu não vejo razão para todo esse overhead. Por que você não coloca os menus em templates? -- []s Nelson ________________________________________________________________ Nelson Ferraz GNU BIS: http://www.gnubis.com.br PhPerl: http://www.phperl.com From gabriel em webclube.com Fri Dec 19 16:53:06 2003 From: gabriel em webclube.com (Gabriel Vieira) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] [RFC] Database x XML References: <3FE36A27.3000707@terra.com.br> Message-ID: <000d01c3c682$df5f03a0$ad57a8c0@fortalnet.com.br> Acho que banco de dados é a melhor opção, nada contra XML, mas a manipulação é mais fácil através de banco de dados. Abraços, Gabriel Vieira Diretor Geral http://www.webclube.com ----- Original Message ----- From: "Luis Campos de Carvalho" To: "Cascavel Perl Mongers" ; "London Perl Mongers" Sent: Friday, December 19, 2003 7:14 PM Subject: [Cascavel-pm] [RFC] Database x XML > [English version follows, please read on] > > Oies, monges de Cascavel. > Estou (re) implementando os menus da aplicação web da empresa e > gostaria de obter comentários, impressões e sugestões de vocês sobre a > melhor forma de armazenar as informações (semi-estáticas e raramente > altaradas) necessáras para gerar menus de usuário. Vocês acham melhor > que eu armazene estas informações em um banco de dados, e recupere todas > elas via DBI/DBD? Ou seria melhor armazenar estas informações na forma > de um arquivo XML, e recuperar estas informações com XML::Parser? > > Eu não tenho muitos ítens no menu, são menos de 50 ao todo. > Obrigado antecipadamente pelas sugestões e comentários. > > ============================================================ > > Hy dear London Mongers. > I'm (re) implementing the company web application menus and would > like to read comments, impressions and suggestions from you about the > best way to store informations (demi-static, rarely changed) needed to > generate the user menus. You think its better to store this information > on a database, and recall them via DBI? Or would be better to store > these informations into a XML file, and recall them via XML::Parser? > > My menus don't exceed 50 items at all. > Thank you very much in advance for comments and suggestions. > > -- > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > Luis Campos de Carvalho is BSc in Comp Science, > PerlMonk [SiteDocClan], Cascavel-pm Moderator, > Unix Sys Admin && Certified Oracle DBA > http://br.geocities.com/monsieur_champs/ > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm > From glasswalk3r em yahoo.com.br Fri Dec 19 22:23:13 2003 From: glasswalk3r em yahoo.com.br (Alceu Rodrigues de Freitas Junior) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] [RFC] Database x XML In-Reply-To: <3FE36A27.3000707@terra.com.br> References: <3FE36A27.3000707@terra.com.br> Message-ID: <20031220022313.70635f9c.glasswalk3r@yahoo.com.br> Lá vão meus dois reais de contribuição... Banco de dados é melhor, não? Deve ser mais rápido obter os ítens do que fazer parse no XML. De qualquer forma, hoje o número de ítens é pequeno... e se aumentar posteriormente? []'s -- Alceu Rodrigues de Freitas Junior -- glasswalk3r@yahoo.com.br PGP public key at http://www.imortais.cjb.net/addgb.html --------------------------------------------------------------- "The 7 Deadly Sins are:/ Wealth without work/ Pleasure without conscience/ Knowledge without character/ Business without morality/ Science without humanity/ Worship without sacrifice/ Politics without principle" - Mahatma Ghandi On Fri, 19 Dec 2003 19:14:15 -0200 Luis Campos de Carvalho wrote: > > [English version follows, please read on] > > Oies, monges de Cascavel. > Estou (re) implementando os menus da aplicação web da empresa e > gostaria de obter comentários, impressões e sugestões de vocês sobre a > melhor forma de armazenar as informações (semi-estáticas e raramente > altaradas) necessáras para gerar menus de usuário. Vocês acham melhor > que eu armazene estas informações em um banco de dados, e recupere todas > elas via DBI/DBD? Ou seria melhor armazenar estas informações na forma > de um arquivo XML, e recuperar estas informações com XML::Parser? > > Eu não tenho muitos ítens no menu, são menos de 50 ao todo. > Obrigado antecipadamente pelas sugestões e comentários. > > ============================================================ > > Hy dear London Mongers. > I'm (re) implementing the company web application menus and would > like to read comments, impressions and suggestions from you about the > best way to store informations (demi-static, rarely changed) needed to > generate the user menus. You think its better to store this information > on a database, and recall them via DBI? Or would be better to store > these informations into a XML file, and recall them via XML::Parser? > > My menus don't exceed 50 items at all. > Thank you very much in advance for comments and suggestions. > > -- > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > Luis Campos de Carvalho is BSc in Comp Science, > PerlMonk [SiteDocClan], Cascavel-pm Moderator, > Unix Sys Admin && Certified Oracle DBA > http://br.geocities.com/monsieur_champs/ > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > _______________________________________________ > Cascavel-pm mailing list > Cascavel-pm@mail.pm.org > http://cascavel.pm.org/mailman/listinfo/cascavel-pm From robin.berjon em expway.fr Sat Dec 20 12:15:23 2003 From: robin.berjon em expway.fr (Robin Berjon) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] Re: [RFC] Database x XML In-Reply-To: <3FE36A27.3000707@terra.com.br> References: <3FE36A27.3000707@terra.com.br> Message-ID: <3FE491BB.8070806@expway.fr> Luis Campos de Carvalho wrote: > Hy dear London Mongers. > I'm (re) implementing the company web application menus and would like > to read comments, impressions and suggestions from you about the best > way to store informations (demi-static, rarely changed) needed to > generate the user menus. You think its better to store this information > on a database, and recall them via DBI? Or would be better to store > these informations into a XML file, and recall them via XML::Parser? > > My menus don't exceed 50 items at all. A database will be totally useless for this. XML has several advantages, some of which being much simpler edition and extensibility (should you need it down the line). There are many ways to process XML, however XML::Parser is not one of them. Don't use it, unless you really really have to. If you need stream parsing use XML::SAX, if you need tree parsing use XML::LibXML, if all you need is to transform those menus into something else use XML::LibXSLT (and then switch your site to AxKit ;). -- Robin Berjon From nferraz em phperl.com Sat Dec 20 17:43:12 2003 From: nferraz em phperl.com (Nelson Ferraz) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] Happy Birthday, Perl! Message-ID: <3FE4DE90.3060603@phperl.com> Um pouco atrasado (a notícia foi publicada em 2003.12.18 9:28), mas fica o registro: "Larry Wall released Perl 1 on this day in 1987, so today Perl is 16 years old. Happy birthday Perl! You can read more about the timeline of Perl releases in perlhist.pod and at history.perl.org." Happy birthday Perl. You are now old enough to get a US drivers license. Update : to celebrate this event, Richard Clamp released perl 1.0.16, which you will be able to fetch at ftp://ftp.cpan.org/pub/CPAN/authors/id/R/RC/RCLAMP/perl-1.0_16.tar.gz. -- []s Nelson ________________________________________________________________ Nelson Ferraz GNU BIS: http://www.gnubis.com.br PhPerl: http://www.phperl.com From lechamps em terra.com.br Mon Dec 22 11:25:01 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] Unified Process Message-ID: <3FE728ED.30600@terra.com.br> Graciliano, Lendo este nó http://www.perlmonks.org/index.pl?node_id=295856 sobre o o que você perguntou aos Perl Monks, eu fiquei imaginando se você teria alguma dica interessante para o pessoal que vai começar a brincar com UML nos próximos mêses... eu acabo de me dar de presente de natal os livros do RUP, UML U.G. e Design Paterns. Espero que eu não me arrependa. (comentários são bem-vindos) Existe alguma coisa interessante que a gente possa usar sobre isso (UML, RUP & Design Paterns) e que seja fácil de encontrar na Web? []'z! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From gmpowers em terra.com.br Mon Dec 22 16:25:25 2003 From: gmpowers em terra.com.br (Graciliano M. P.) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] Re: Digest Cascavel-pm, volume 25, assunto 1 References: <200312221800.hBMI0Bv29844@mail.pm.org> Message-ID: <006301c3c8da$7edc0500$0100a8c0@main> > Graciliano, > > Lendo este nó > > http://www.perlmonks.org/index.pl?node_id=295856 > > sobre o o que você perguntou aos Perl Monks, eu fiquei imaginando se > você teria alguma dica interessante para o pessoal que vai começar a > brincar com UML nos próximos mêses... eu acabo de me dar de presente de > natal os livros do RUP, UML U.G. e Design Paterns. Espero que eu não me > arrependa. (comentários são bem-vindos) > > Existe alguma coisa interessante que a gente possa usar sobre isso > (UML, RUP & Design Paterns) e que seja fácil de encontrar na Web? > Luiz, 1o um feliz natal é um próspero ano novo com muita saúde! Eu uso o livro Applying UML and Patterns do Graig Larman (q tb tenho em PDF). Este livro aborda desde UML, OO até UP. Bom, este livro tem UML mais como chamaris/marketing, pois o interessante são os padrões de design (design paterns) que o livro aborda. Digo isto pois vc pode usar td sobre UML e ao mesmo tempo não fazer nada de Design Patern e modelagem. Não sei em que regime de trabalho vc atua, mas aprender modelagens e "Análise de Projetos e Sistemas" é algo muito útil, tanto para concluir um projeto de forma mais eficiente como para fazê-lo de forma mais rápida e com menos problemas. O problema é que tds envolvidos em um projeto têm que saber isto. Quanto ao UML, só tem sentido se vc quiser utiliza-lo para geração automática de código, mas isto funciona mais com Java e olhe lá! Eu gosto de usar UML na parte de modelagem conceitual, mais para organizar td e ter uma visão melhor do problema. Na parte de projeto (programação) também é bom utilizar UML para organizar cada ciclo, mas será útil mesmo se vc tiver uma equipe trabalhando no mesmo problema, e não uma única pessoa. Em resumo a melhor dica que posso dar é q todas estas ferramentas servem para auxiliar o trabalho, por ex, "Casos de Uso" (vc vai ver um monte sobre isso nos livros) é apenas uma ferramenta de estudo, para auxiliar a análise de como o sistema tem que ser utilizado e como vai interagir. Ou seja, UML, modelagem, "Casos de Uso", Análise, não são a finalidade, apenas ferramentas para ajudar o bom projetista. Digo isso pq tem muita gente que perde um tempão fazendo td isso e sai com um projeto ruim, pois pensam que estas ferramentas são como uma receita de bolo a ser seguida, na verdade é o contrário, vc tem o seu processo e procura melhora-lo com as ferramentas ideais para cada necessidade. Ter isto em mente é crucial, pois é muito fácil qualquer um se perder em todos estes padrões e esquece o objetivo real. Quanto a aprender uma modelagem para desenvolvimento, encorajo muito isso, pois aqui no Brasil tem muito pouca gente utilizando qualquer coisa do tipo, na verdade tem muito pouca gente que sabe o que realmente existe nesta área. Tem gente que acha que desenvolver em conceito ASP (reaproveitamento/pré-moldados) é modelagem para desenvolvimento, o que na verdade é apenas um detalhe. De tudo que vc pode aprender, o bom é focar na análise inicial de um projeto, como fazer e qual a finalidade, e na parte de desenvolvimento em OO (desde que seja OO com reaproveitamento maior que 80% do código produzido!) em equipes, onde 1 tem que poder entender o que o outro faz, para onde o outro vai e o que o outro precisa. Agora quanto a Web, não sei se tem muita coisa boa, pois UP é algo bem extenso e que exitem várias abordagens e focos sobre o mesmo. Agora quanto aplicar tais recursos na Web é complicado, principalmente falando-se em OO, pois OO para Web é algo que não funciona muito bem, pois grande parde dos sistemas para Web ainda usam muita coisa estruturada, e a única coisa de OO que eles usam são aguns módulos para algumas tarefas específicas, ou seja, não se utiliza OO para desenvolver o sistema em si. Na verdade o problema da Web com OO para sistemas, é que cada execução de página/tela está em um processo diferente, e pode estar em máquinas diferentes tb, mas o objeto responsável por tal parte do sistema, e que interage com o usuário, tem que funcionar como se estivece em um programa normal, desktop. Ou seja, muita coisa está escrita para desenvolver softwares desktop, e não para Web. Digo isto sobre a Web pois a área de pesquisa que atuo é extamente esta, aplicar de forma mais eficiente os Design Patterns e a modelagem OO em sistemas Web. Onde também estou desenvolvendo um FrameWork para WebGUI, ou seja, a idéia é fazer um sistema de um portal sem escrever nada de HTML, e apenas componentes, como os componentes gráficos utilizados em um Delphi da vida. Por exemplo, uma enquete (Pool en inglês) seria declarada desta maneira: E o FrameWork detecta automaticamente os tags de webgui e converter para código. Bom, isso ai é só para dar um gostinho do que vem por ai! ;-P Bom, chega, já escrevi muito! Boa sorte com os livros. Atenciosamente, Graciliano M. P. From lechamps em terra.com.br Tue Dec 23 06:41:57 2003 From: lechamps em terra.com.br (Luis Campos de Carvalho) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] UML+Design Paterns+Modelagem In-Reply-To: <006301c3c8da$7edc0500$0100a8c0@main> References: <200312221800.hBMI0Bv29844@mail.pm.org> <006301c3c8da$7edc0500$0100a8c0@main> Message-ID: <3FE83815.9050109@terra.com.br> Graciliano M. P. wrote: > Luiz, > > 1o um feliz natal é um próspero ano novo com muita saúde! Obrigado, Graciliano. Feliz Natal e um Fantástico Ano Novo para você e para os seus. (: > Eu uso o livro Applying UML and Patterns do Graig Larman (q tb tenho em > PDF). Este livro aborda desde UML, OO até UP. Ah! Certo... (: Anotado! > Bom, este livro tem UML mais como chamaris/marketing, pois o interessante > são os padrões de design (design paterns) que o livro aborda. Digo isto pois > vc pode usar td sobre UML e ao mesmo tempo não fazer nada de Design Patern e > modelagem. Eu tentaria traduzir como "Padrões de Projeto", me soa melhor... muito interessante. > Não sei em que regime de trabalho vc atua, mas aprender modelagens e > "Análise de Projetos e Sistemas" é algo muito útil, tanto para concluir um > projeto de forma mais eficiente como para fazê-lo de forma mais rápida e com > menos problemas. O problema é que tds envolvidos em um projeto têm que saber > isto. Eu sou CLT, atuo como programador. Mas sou uma "equipe de um homem só", como a maior parte do pessoal daqui... ): Na literatura que eu conheço, os "papas" são o Wirth, o Knuth, o Pressman e o Yourdon (respectivamente, "Estruturas de Dados", "The Art of Computer Programming", "Engenharia de Software" e "Análise de Sistemas"). Gostaria de conhecer mais coisas. Sinto muita dificuldade em trabalhar construindo sistemas sem projeto ou objetivos claros e bem-definidos. > Quanto ao UML, só tem sentido se vc quiser utiliza-lo para geração > automática de código, mas isto funciona mais com Java e olhe lá! Eu gosto de > usar UML na parte de modelagem conceitual, mais para organizar td e ter uma > visão melhor do problema. Na parte de projeto (programação) também é bom > utilizar UML para organizar cada ciclo, mas será útil mesmo se vc tiver uma > equipe trabalhando no mesmo problema, e não uma única pessoa. Oras, por que esse preconceito? Tenho certeza de que documentação bem-feita e com ajuda do UML pode aumentar e muito o rendimento da construção de projetos de sistemas de computador... > Em resumo a melhor dica que posso dar é q todas estas ferramentas servem > para auxiliar o trabalho, por ex, "Casos de Uso" (vc vai ver um monte sobre > isso nos livros) é apenas uma ferramenta de estudo, para auxiliar a análise > de como o sistema tem que ser utilizado e como vai interagir. [...] > fácil qualquer um se perder em todos estes padrões e esquece o > objetivo real. De acordo. Mas saber apenas UML, e conhecer alguma coisa de "Casos de Uso" não é o suficiente para o processo de modelagem de sistemas orientados à objetos. Precisamos desesperadamente de um processo de modelagem, formal o suficiente para garantir documentação e boas práticas, mas ao mesmo tempo suficientemente flexível para se adaptar ao nosso modo de trabalhar e pensar problemas e soluções. Eu acredito firmemente que o processo de modelagem de software unificado ("RUP", desenvolvido pela Rational) é a chave para um universo de compreensão, projeto e modelagem de software pouco conhecido pela maior parte dos profissionais brazucas da área. > Quanto a aprender uma modelagem para desenvolvimento, encorajo muito isso, > pois aqui no Brasil tem muito pouca gente utilizando qualquer coisa do tipo, > na verdade tem muito pouca gente que sabe o que realmente existe nesta área. > Tem gente que acha que desenvolver em conceito ASP > (reaproveitamento/pré-moldados) é modelagem para desenvolvimento, o que na > verdade é apenas um detalhe. As pessoas acham que podem construir edifícios simplesmente juntando "peças de Lego" como se isso fosse o suficiente... mas como destruir essa ilusão, principalmente na esfera gerencial? > Agora quanto a Web, não sei se tem muita coisa boa, pois UP é algo bem > extenso e que exitem várias abordagens e focos sobre o mesmo. Agora quanto > aplicar tais recursos na Web é complicado, principalmente falando-se em OO, > pois OO para Web é algo que não funciona muito bem, pois grande parde dos > sistemas para Web ainda usam muita coisa estruturada, e a única coisa de OO > que eles usam são aguns módulos para algumas tarefas específicas, ou seja, > não se utiliza OO para desenvolver o sistema em si. Desculpe, mas sou obrigado a discordar. Eu não tenho nenhuma linha de código estruturado em meus websites, apenas código OO. E funciona muito bem, obrigado. (: Para começar, eu criei uma hierarquia de objetos para representar coisas interessantes para o meu projeto: Conexões com banco de dados, objetos de configuração e de conservação de estado. Em seguida, agreguei todos estes objetos em um Framework de duas camadas, capaz de lidar praticamente sozinho com as requisições HTTP e chamar os métodos corretos para cada situação. Deste ponto em diante, implementar novas funcionalidades passa a ser apenas questão de extender o Framework, implementar métodos para manipular cada evento desejado, agregar Templates (eu uso o Template Toolkit, do Andy Wardley) e publicar o CGI na web, que acaba simples como #!/usr/bin/perl use warnings; use strict; use Framework::Module; ( new Framework::Module )->run(); __END__ > Na verdade o problema da Web com OO para sistemas, é que cada execução de > página/tela está em um processo diferente, e pode estar em máquinas > diferentes tb, mas o objeto responsável por tal parte do sistema, e que > interage com o usuário, tem que funcionar como se estivece em um programa > normal, desktop. Ou seja, muita coisa está escrita para desenvolver > softwares desktop, e não para Web. Isso não é importante. Aliás, quanto menos sua aplicação souber sober o ambiente em que ela está rodando, mais simples se torna o desenvolvimento. Eu implementei gerenciamento de sessões utilizando os módulos CGI::Session (puro OO) e CGI (suporte a OO se você quiser). Depois, implementei acesso a banco de dados usando DBI/DBD, e acesso a configuração via Config::Simple. Mas posso facilmente trocar Config::Simple por XML::Config, e isso me abre a possibilidade de distribuir a configuração do sistema (e todo o resto) usando banco dados (para os dados da aplicação) e HTTP (para os XML's de configuração). Desta forma, o mesmo framework que eu concebi inicialmente pode ser extendido para um ambiente distribuído, statefull, seguro, paralelo, multiprocessado e com suporte a processos concorrentes, sem mudar sequer uma linha de programação da aplicação. Com isso, quero mostrar que as dificuldades de programar sistemas para a Web está muito mais relacionada com a abortagem adotada do que com a tecnologia ou as limitações existentes. > Digo isto sobre a Web pois a área de pesquisa que atuo é extamente esta, > aplicar de forma mais eficiente os Design Patterns e a modelagem OO em > sistemas Web. Onde também estou desenvolvendo um FrameWork para WebGUI, ou > seja, a idéia é fazer um sistema de um portal sem escrever nada de HTML, e > apenas componentes, como os componentes gráficos utilizados em um Delphi da > vida. Puxa!!! A parte de desenvolver componentes é muito interessante... mas isso vai deixar toda a web mais ou menos com a mesma 'cara', não? Como você pretende se livrar das "amarras" de look'n'feel impostas pela componentização? Ou você não está preocupado com isso, e é um detalhe sem importância a esta altura do campeonato? > Por exemplo, uma enquete (Pool en inglês) seria declarada desta maneira: > > button_color="#000000" style="pool-style.xml"> > > > Parece muito com XML, de um tipo (com atributos) que eu não gosto muito... (: Mas é promissor... > E o FrameWork detecta automaticamente os tags de webgui e converter para > código. Bom, isso ai é só para dar um gostinho do que vem por ai! ;-P Obaaaa!! Será que você precisa de um "beta-tester"? Obrigado pela "Aula"! (: Boa sorte com seu projeto!! -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Luis Campos de Carvalho is BSc in Comp Science, PerlMonk [SiteDocClan], Cascavel-pm Moderator, Unix Sys Admin && Certified Oracle DBA http://br.geocities.com/monsieur_champs/ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From gmpowers em terra.com.br Tue Dec 23 17:57:08 2003 From: gmpowers em terra.com.br (Graciliano M. P.) Date: Mon Aug 2 21:26:51 2004 Subject: [Cascavel-pm] Re: UML+Design Paterns+Modelagem References: <200312231800.hBNI0Ii07214@mail.pm.org> Message-ID: <002801c3c9b0$79d8bc20$098cb0c8@main> > > Quanto ao UML, só tem sentido se vc quiser utiliza-lo para geração > > automática de código, mas isto funciona mais com Java e olhe lá! Eu gosto de > > usar UML na parte de modelagem conceitual, mais para organizar td e ter uma > > visão melhor do problema. Na parte de projeto (programação) também é bom > > utilizar UML para organizar cada ciclo, mas será útil mesmo se vc tiver uma > > equipe trabalhando no mesmo problema, e não uma única pessoa. > > Oras, por que esse preconceito? Tenho certeza de que documentação > bem-feita e com ajuda do UML pode aumentar e muito o rendimento da > construção de projetos de sistemas de computador... Não estou dizendo que não aumenta o rendimento, mas UML apenas pela UML é um erro, como qualquer outro recurso. É q é muito comum ver isto! > > Agora quanto a Web, não sei se tem muita coisa boa, pois UP é algo bem > > extenso e que exitem várias abordagens e focos sobre o mesmo. Agora quanto > > aplicar tais recursos na Web é complicado, principalmente falando-se em OO, > > pois OO para Web é algo que não funciona muito bem, pois grande parde dos > > sistemas para Web ainda usam muita coisa estruturada, e a única coisa de OO > > que eles usam são aguns módulos para algumas tarefas específicas, ou seja, > > não se utiliza OO para desenvolver o sistema em si. > > Desculpe, mas sou obrigado a discordar. Eu não tenho nenhuma linha de > código estruturado em meus websites, apenas código OO. E funciona muito > bem, obrigado. (: Tem certeza que não é estruturado? Vc pode fazer um sistema a la estruturado até em Java, e na verdade já cansei de ver isto em JSP. > Para começar, eu criei uma hierarquia de objetos para representar > coisas interessantes para o meu projeto: Conexões com banco de dados, > objetos de configuração e de conservação de estado. Em seguida, agreguei > todos estes objetos em um Framework de duas camadas, capaz de lidar > praticamente sozinho com as requisições HTTP e chamar os métodos > corretos para cada situação. Deste ponto em diante, implementar novas > funcionalidades passa a ser apenas questão de extender o Framework, > implementar métodos para manipular cada evento desejado, agregar > Templates (eu uso o Template Toolkit, do Andy Wardley) e publicar o CGI > na web, que acaba simples como > > #!/usr/bin/perl > use warnings; > use strict; > use Framework::Module; > ( new Framework::Module )->run(); > __END__ > > > Na verdade o problema da Web com OO para sistemas, é que cada execução de > > página/tela está em um processo diferente, e pode estar em máquinas > > diferentes tb, mas o objeto responsável por tal parte do sistema, e que > > interage com o usuário, tem que funcionar como se estivece em um programa > > normal, desktop. Ou seja, muita coisa está escrita para desenvolver > > softwares desktop, e não para Web. > > Isso não é importante. Aliás, quanto menos sua aplicação souber sober > o ambiente em que ela está rodando, mais simples se torna o > desenvolvimento. Estas completamente certo, o sistema nunca deve saber sobre o ambiente, mas como os conceitos básico de estado de objetos na Web não podem ser mantidos, muita coisa escrita para Softwares Desktop não pode ser utilizada, simplesmente pq o Desgin Pattern não deve saber sobre o ambiente externo. Na verdade explicaste para vc mesmo o pq. > > Eu implementei gerenciamento de sessões utilizando os módulos > CGI::Session (puro OO) e CGI (suporte a OO se você quiser). Depois, > implementei acesso a banco de dados usando DBI/DBD, e acesso a > configuração via Config::Simple. Mas posso facilmente trocar > Config::Simple por XML::Config, e isso me abre a possibilidade de > distribuir a configuração do sistema (e todo o resto) usando banco dados > (para os dados da aplicação) e HTTP (para os XML's de configuração). > > Desta forma, o mesmo framework que eu concebi inicialmente pode ser > extendido para um ambiente distribuído, statefull, seguro, paralelo, > multiprocessado e com suporte a processos concorrentes, sem mudar sequer > uma linha de programação da aplicação. > > Com isso, quero mostrar que as dificuldades de programar sistemas > para a Web está muito mais relacionada com a abortagem adotada do que > com a tecnologia ou as limitações existentes. Como eu falei, utiliza-se muito OO para Web nos recursos que o sistema utiliza (seções, persistência, DB, XML, etc...), mas não no sistema em si. Por exemplo, em uma locadora de vídeo, o ideal é ter um objeto que represente cada fita de vídeo, formando uma coleção de fitas. Para cada fita podemos ter uma classe de especialização, com preço, tipo, etc... Ou seja, o sistema é a representação do problema, e não da tecnologia, e a idéia básica do UP é exatamente esta! Quanto a tecnologia utilizada para DB, persistência, etc... não é nem discutida, pois isto td faz parte do FrameWork, e muita coisa já está pronta e em uma camada que o desenvolvedor nem toca. > > Digo isto sobre a Web pois a área de pesquisa que atuo é extamente esta, > > aplicar de forma mais eficiente os Design Patterns e a modelagem OO em > > sistemas Web. Onde também estou desenvolvendo um FrameWork para WebGUI, ou > > seja, a idéia é fazer um sistema de um portal sem escrever nada de HTML, e > > apenas componentes, como os componentes gráficos utilizados em um Delphi da > > vida. > > Puxa!!! A parte de desenvolver componentes é muito interessante... > mas isso vai deixar toda a web mais ou menos com a mesma 'cara', não? > Como você pretende se livrar das "amarras" de look'n'feel impostas pela > componentização? Ou você não está preocupado com isso, e é um detalhe > sem importância a esta altura do campeonato? Os componentes têm a camada de domínio (responsável pelas informações que o componente irá tratar) e a camada de interface, separada em camada de apresentação (estilos, design, etc...) e de aplicação (controle do comportamento). Vc está falando da camanda de apresentação, e a idéia é tornar cada componente o mais personalizável possível, só que a idéia tb é facilitar a criação de componentes, pois o FrameWork é exatamente para facilitar a criação, já que a idéia é o desenvolvedor fazer td em componentes, que ele mesmo pode criar, e nos sistemas futuros reaproveitar 100% dos componentes anteriores. Ou seja, vc terá os componetes básicos (table, button, etc..), e os componentes complexos (pool, menu, banner, etc...), e os componentes do desenvolvedor. Por traz disto tb estava pensando, no futuro, criar um CPAN de componentes... ;-P > > > Por exemplo, uma enquete (Pool en inglês) seria declarada desta maneira: > > > > > button_color="#000000" style="pool-style.xml"> > > > > > > > > Parece muito com XML, de um tipo (com atributos) que eu não gosto > muito... (: Mas é promissor... É XML, e tem q ser XML, pois não vou criar mais um padrão por ai para ser aprendido! ;-P Mas na verdade é um Wild XML, ou seja, vc não é obrigado a colocar aspas, etc... pois este é um XML para ser declarado a mão. Na verdade esta declaração é uma substituição da chamada por código (também permitida): my $pool = webgui::pool->new( title => '...' , bgcolor => '...' , options => [ 0 , 'red' , 1 , 'blue' , ] , ); print $pool->print ; > > E o FrameWork detecta automaticamente os tags de webgui e converter para > > código. Bom, isso ai é só para dar um gostinho do que vem por ai! ;-P > > Obaaaa!! Será que você precisa de um "beta-tester"? Provavelmente o projeto vai estar na Web na faze de testes, aí eu faço um anunciamento para tds. > Obrigado pela "Aula"! > (: > Boa sorte com seu projeto!! Boa sorte tb, Graciliano M. P.