From clmorphes at gmail.com Mon Oct 10 05:39:32 2005 From: clmorphes at gmail.com (=?ISO-8859-1?Q?Rub=E9n?=) Date: Mon, 10 Oct 2005 08:39:32 -0400 Subject: [caracas-pm] [OT]python vs. perl (according to Yoda) Message-ID: Hola a todos, Esto es algo que apareci? en mi bandeja y quise compartir con todos ustedes, espero lo disfruten como yo. Seg?n los programadores en perl son seguidores del _Lado oscuro de la fuerza_, jeje... EXTERIOR: DAGOBAH -- DAY With Yoda strapped to his back, Luke climbs up one of the many thick vines that grow in the swamp until he reaches the Dagobah statistics lab. Panting heavily, he continues his exercises -- grepping, installing new packages, logging in as root, and writing replacements for two-year-old shell scripts in Python. YODA: Code! Yes. A programmer's strength flows from code maintainability. But beware of Perl. Terse syntax... more than one way to do it... default variables. The dark side of code maintainability are they. Easily they flow, quick to join you when code you write. If once you start down the dark path, forever will it dominate your destiny, consume you it will. LUKE: Is Perl better than Python? YODA: No... no... no. Quicker, easier, more seductive. LUKE: But how will I know why Python is better than Perl? YODA: You will know. When your code you try to read six months from now. Rub?n From lem at cantv.net Mon Oct 10 08:48:15 2005 From: lem at cantv.net (=?ISO-8859-1?Q?Luis_Mu=F1oz?=) Date: Mon, 10 Oct 2005 11:48:15 -0400 Subject: [caracas-pm] [OT]python vs. perl (according to Yoda) In-Reply-To: References: Message-ID: <5d75226e36b7b1f6a8c467d7166935c7@cantv.net> On Oct 10, 2005, at 8:39 AM, Rub?n wrote: > Esto es algo que apareci? en mi bandeja y quise compartir con todos > ustedes, espero lo disfruten como yo. Seg?n los programadores en perl > son seguidores del _Lado oscuro de la fuerza_, jeje... Son argumentos futiles. En el fondo, todos los PM sabemos que Perl est? m?s all? del bien y del mal (o de lo "oscuro" y lo "claro"). -lem From manuel.telleria at gmail.com Wed Oct 26 04:45:56 2005 From: manuel.telleria at gmail.com (Manuel Telleria) Date: Wed, 26 Oct 2005 07:45:56 -0400 Subject: [caracas-pm] Problema Message-ID: <5ca115530510260445t36a4101bj6864a8796d298164@mail.gmail.com> Estimados todos, Tengo el siguiente problema, Estoy usando CGI::FormBuilder y Apache::Session::Postgres. El programa comienza con el runmode = "comienzo" que es el run mode por omision, lo primero que se ejecuta en este run mode, es la funci?n IniciaSesion, la cual me genera una sesi?n con el m?dulo Apache::Sesion::Postgres, ahora bien cuando ejecuto el programa con el bloque de codigo comentado (ver programa)) todo esta bien en cuanto a la generaci?n de la sesion es decir me retorna el Dumper(%my_session) y verifico que esta sesi?n existe en la base de datos "sessions", me explico, si hago un select sobre la tabla donde Apache guarda las sesiones existe y la puedo ver. El problema esta cuando descomento el bloque de c?digo al que me refiero, que no es mas que el llamado al new del CGI::FormBuilder. Al hacer la ejecuci?n del programa con el bloque de c?digo descomentado a pesar de que me muestra un arreglo de sesi?n con el Dumper, cuando trato de verificar la existencia de esta sesi?n en la base de datos "sessions" esta no existe, la verdad es que no logro entender que sucede , que tiene que ver el llamado a CGI::FormBuilder sobre la generaci?n de la sesi?n si se supone que la gener? ya que el arreglo %my_session tiene valores. Otro dato cuando reviso el archivo error.log de apache no encuentro ningun error que haga referencia a problemas con la conexion o con el insert en la tabla de sessions. Datos tecnicos SO Debian sarge Apache2 con modperl2 todos los m?dulos fueron instalados con apt-get install A continuaci?n el c?digo. Y Gracias de antemano al que pueda ayudarme. manuel.pl =================================== #!/usr/bin/perl -w -I ./ctrl use CGI::Carp qw(fatalsToBrowser); use manuel; use CGI '-debug'; my $q = new CGI; my $obj = manuel->new ( TMPL_PATH => '/cgi-bin/inicio_sesion/tmpl/', PARAMS => { titulo => "Inicio de Sesion", accion => "manuel.pl" } ); $obj->run; manuel.pm =================================== #! /usr/bin/perl -w -I . BEGIN {unshift @INC, "/usr/lib/cgi-bin/model/"; }; package manuel; use strict; use warnings; use base 'CGI::Application'; use CGI::FormBuilder; use Data::Dumper; use CGI::Cookie; use Error; use Apache::Session::Postgres; my %my_session; my $sMensaje = ''; ############################################################################ ### # Funci??n setup : esta funci??n es la que controla el flujo del programa, depen- # diendo del rm (run mode). ############################################################################ ### sub setup { my $self = shift; $self->start_mode('comienzo'); $self->run_modes( comienzo => 'comienzo', ); $self->mode_param('rm'); } ############################################################################ ### # Funci?n comienzo : esta funci?n es la que da inicio al programa. Es la que se # ejecuta en caso de que no se haya escogido ningun rm (run mode). ############################################################################ ### sub comienzo { my $self = shift; my $q = $self->query; &IniciaSesion($self); ****BLOQUE QUE SE COMENTA PARA QUE FUNCIONE # my $form = CGI::FormBuilder->new( method => 'post', # name => 'myforma', # sticky => 0, # enctype => 'multipart/form-data', # selectnum => 1, # fields => [qw/scorreo scontrasena serrortxt SubmitBtn nintentos/], # validate => { scorreo => 'EMAIL', # scontrasena => 'VALUE', # }, # messages => '/usr/lib/cgi-bin/lib/mensajes.es', # template => '/usr/lib/cgi-bin/tmpl/sesion.tmpl', # ); *******FIN BLOQUE return Dumper(%my_session); ----Linea que retorna el arreglo de la sesion solo para debuger. programa continua .... return $form->render; } ############################################################################ ### # Funci??n cIniciaSesion : ############################################################################ ### sub IniciaSesion{ my $self = shift; my $q = $self->query(); my $dsn = "dbi:Pg:dbname='sessions';host='postgres.desarrollo'"; my $id = ($q->param('_sessionid')) ? $q->param('_sessionid') : 0; eval{ tie %my_session, 'Apache::Session::Postgres', $id, {DataSource => $dsn, UserName => 'usuario', Password => '123456', Commit => 1 }; }; if ($@){ $sMensaje = Error::getError(10); } } 1; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/caracas-pm/attachments/20051026/ef359e12/attachment.html From gdelfino at mac.com Wed Oct 26 06:20:44 2005 From: gdelfino at mac.com (Gustavo Delfino) Date: Wed, 26 Oct 2005 09:20:44 -0400 Subject: [caracas-pm] Problema In-Reply-To: <5ca115530510260445t36a4101bj6864a8796d298164@mail.gmail.com> References: <5ca115530510260445t36a4101bj6864a8796d298164@mail.gmail.com> Message-ID: <7925FDB0-838C-455B-ADEA-4D790145EE3B@mac.com> Manuel, no se cual es el problema, pero te puedo recomendar mover la rutina IniciaSesion al run-mode especial llamado cgiapp_prerun. De esta forma se ejecuta siempre independientemente del runmode seleccionado. A mi Apache::Session::mysql me funciona bien, pero no he usado CGI::FormBuilder. Saludos, Gustavo Delfino On Oct 26, 2005, at 7:45 AM, Manuel Telleria wrote: > Estimados todos, > > Tengo el siguiente problema, > > Estoy usando CGI::FormBuilder y Apache::Session::Postgres. > > El programa comienza con el runmode = "comienzo" que es el run mode > por omision, lo primero que se ejecuta en este run mode, es la > funci?n IniciaSesion, la cual me genera una sesi?n con el m?dulo > Apache::Sesion::Postgres, ahora bien cuando ejecuto el programa con > el bloque de codigo comentado (ver programa)) todo esta bien en > cuanto a la generaci?n de la sesion es decir me retorna el Dumper(% > my_session) y verifico que esta sesi?n existe en la base de datos > "sessions", me explico, si hago un select sobre la tabla donde > Apache guarda las sesiones existe y la puedo ver. El problema esta > cuando descomento el bloque de c?digo al que me refiero, que no es > mas que el llamado al new del CGI::FormBuilder. > > Al hacer la ejecuci?n del programa con el bloque de c?digo > descomentado a pesar de que me muestra un arreglo de sesi?n con el > Dumper, cuando trato de verificar la existencia de esta sesi?n en > la base de datos "sessions" esta no existe, la verdad es que no > logro entender que sucede , que tiene que ver el llamado a > CGI::FormBuilder sobre la generaci?n de la sesi?n si se supone que > la gener? ya que el arreglo %my_session tiene valores. > > Otro dato cuando reviso el archivo error.log de apache no encuentro > ningun error que haga referencia a problemas con la conexion o con > el insert en la tabla de sessions. > > Datos tecnicos > SO Debian sarge > Apache2 con modperl2 > todos los m?dulos fueron instalados con apt-get install > > > A continuaci?n el c?digo. Y Gracias de antemano al que pueda ayudarme. > > manuel.pl > =================================== > #!/usr/bin/perl -w -I ./ctrl > > use CGI::Carp qw(fatalsToBrowser); > use manuel; > use CGI '-debug'; > my $q = new CGI; > my $obj = manuel->new ( > TMPL_PATH => '/cgi-bin/ > inicio_sesion/tmpl/', > PARAMS => { > > titulo => "Inicio de Sesion", > > accion => "manuel.pl" > } ); > $obj->run; > > manuel.pm > =================================== > #! /usr/bin/perl -w -I . > BEGIN {unshift @INC, "/usr/lib/cgi-bin/model/"; }; > > package manuel; > > use strict; > use warnings; > use base 'CGI::Application'; > use CGI::FormBuilder; > use Data::Dumper; > use CGI::Cookie; > use Error; > use Apache::Session::Postgres; > my %my_session; > my $sMensaje = ''; > > ###################################################################### > ###### ### > # Funci??n setup : esta funci??n es la que controla el flujo del > programa, depen- > # diendo del rm (run mode). > ###################################################################### > ###### ### > > sub setup { > my $self = shift; > $self->start_mode('comienzo'); > $self->run_modes( > comienzo => 'comienzo', > ); > $self->mode_param('rm'); > } > > ###################################################################### > ###### ### > # Funci?n comienzo : esta funci?n es la que da inicio al programa. > Es la que se > # ejecuta en caso de que no se haya escogido ningun rm (run mode). > ###################################################################### > ###### ### > sub comienzo { > my $self = shift; > my $q = $self->query; > > &IniciaSesion($self); > > ****BLOQUE QUE SE COMENTA PARA QUE FUNCIONE > > # my $form = CGI::FormBuilder->new( method => 'post', > # name > => 'myforma', > # > sticky => 0, > # > enctype => 'multipart/form-data', > # > selectnum => 1, > # > fields => [qw/scorreo scontrasena serrortxt SubmitBtn nintentos/], > # > validate => { scorreo => 'EMAIL', > # > scontrasena => 'VALUE', > # > }, > # > messages => '/usr/lib/cgi-bin/lib/mensajes.es', > # > template => '/usr/lib/cgi-bin/tmpl/sesion.tmpl', > # ); > > *******FIN BLOQUE > > > return Dumper(%my_session); ----Linea que retorna el arreglo de > la sesion solo para debuger. > > programa continua .... > > return $form->render; > > } > > ###################################################################### > ###### ### > # Funci??n cIniciaSesion : > ###################################################################### > ###### ### > sub IniciaSesion{ > my $self = shift; > my $q = $self->query(); > my $dsn = "dbi:Pg:dbname='sessions';host='postgres.desarrollo'"; > > my $id = ($q->param('_sessionid')) ? $q->param('_sessionid') : 0; > > eval{ > tie %my_session, 'Apache::Session::Postgres', $id, > {DataSource => $dsn, > > UserName => 'usuario', > > Password => '123456', > > Commit => 1 }; > }; > > if ($@){ > $sMensaje = Error::getError(10); > } > } > > 1; > _______________________________________________ > caracas-pm mailing list > caracas-pm at pm.org > http://mail.pm.org/mailman/listinfo/caracas-pm -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/caracas-pm/attachments/20051026/90f876ba/attachment-0001.html From jrey at linuxsis.net Thu Oct 27 16:31:09 2005 From: jrey at linuxsis.net (Jose Rey) Date: Thu, 27 Oct 2005 19:31:09 -0400 Subject: [caracas-pm] Problema In-Reply-To: <5ca115530510260445t36a4101bj6864a8796d298164@mail.gmail.com> References: <5ca115530510260445t36a4101bj6864a8796d298164@mail.gmail.com> Message-ID: <4361633D.3020306@linuxsis.net> Por seguridad CGI::FormBuilder elimina todos los par?metros que no esten declarados como "fields" en el formulario, seguramente est?s perdiendo la variable _sessionid. 2 Soluciones: 1.- Utiliza la opci?n keepextras para conservar _sessionid espec?ficamente, o utiliza simplemente: keepextras => 1 para mantener todas las variables que necesites, particularmente el par?metro "rm". 2.- CGI::FormBuilder, puede mantener una sessi?n de Apache::Session, asi que probablemente esta eliminando el par?metro _sessionid, prueba obtener la sesi?n con: $id = $form->sessionid en vez de intentar obtenr el campo _sessionid. Saludos Jose Luis Rey Manuel Telleria wrote: > Estimados todos, > > Tengo el siguiente problema, > > Estoy usando CGI::FormBuilder y Apache::Session::Postgres. > > El programa comienza con el runmode = "comienzo" que es el run mode > por omision, lo primero que se ejecuta en este run mode, es la funci?n > IniciaSesion, la cual me genera una sesi?n con el m?dulo > Apache::Sesion::Postgres, ahora bien cuando ejecuto el programa con el > bloque de codigo comentado (ver programa)) todo esta bien en cuanto a > la generaci?n de la sesion es decir me retorna el Dumper(%my_session) > y verifico que esta sesi?n existe en la base de datos "sessions", me > explico, si hago un select sobre la tabla donde Apache guarda las > sesiones existe y la puedo ver. El problema esta cuando descomento el > bloque de c?digo al que me refiero, que no es mas que el llamado al > new del CGI::FormBuilder. > > Al hacer la ejecuci?n del programa con el bloque de c?digo > descomentado a pesar de que me muestra un arreglo de sesi?n con el > Dumper, cuando trato de verificar la existencia de esta sesi?n en la > base de datos "sessions" esta no existe, la verdad es que no logro > entender que sucede , que tiene que ver el llamado a CGI::FormBuilder > sobre la generaci?n de la sesi?n si se supone que la gener? ya que el > arreglo %my_session tiene valores. > > Otro dato cuando reviso el archivo error.log de apache no encuentro > ningun error que haga referencia a problemas con la conexion o con el > insert en la tabla de sessions. > > Datos tecnicos > SO Debian sarge > Apache2 con modperl2 > todos los m?dulos fueron instalados con apt-get install > > > A continuaci?n el c?digo. Y Gracias de antemano al que pueda ayudarme. > > manuel.pl > =================================== > #!/usr/bin/perl -w -I ./ctrl > > use CGI::Carp qw(fatalsToBrowser); > use manuel; > use CGI '-debug'; > my $q = new CGI; > my $obj = manuel->new ( > TMPL_PATH => > '/cgi-bin/inicio_sesion/tmpl/', > PARAMS => { > > titulo => "Inicio de Sesion", > > accion => "manuel.pl" > } ); > $obj->run; > > manuel.pm > =================================== > #! /usr/bin/perl -w -I . > BEGIN {unshift @INC, "/usr/lib/cgi-bin/model/"; }; > > package manuel; > > use strict; > use warnings; > use base 'CGI::Application'; > use CGI::FormBuilder; > use Data::Dumper; > use CGI::Cookie; > use Error; > use Apache::Session::Postgres; > my %my_session; > my $sMensaje = ''; > > ############################################################################ > ### > # Funci??n setup : esta funci??n es la que controla el flujo del > programa, depen- > # diendo del rm (run mode). > ############################################################################ > ### > > sub setup { > my $self = shift; > $self->start_mode('comienzo'); > $self->run_modes( > comienzo => 'comienzo', > ); > $self->mode_param('rm'); > } > > ############################################################################ > ### > # Funci?n comienzo : esta funci?n es la que da inicio al programa. Es > la que se > # ejecuta en caso de que no se haya escogido ningun rm (run mode). > ############################################################################ > ### > sub comienzo { > my $self = shift; > my $q = $self->query; > > &IniciaSesion($self); > > ****BLOQUE QUE SE COMENTA PARA QUE FUNCIONE > > # my $form = CGI::FormBuilder->new( method => 'post', > # name => > 'myforma', > # sticky => 0, > # enctype > => 'multipart/form-data', > # > selectnum => 1, > # fields > => [qw/scorreo scontrasena serrortxt SubmitBtn nintentos/], > # validate > => { scorreo => 'EMAIL', > # > > scontrasena => 'VALUE', > # > }, > # messages > => '/usr/lib/cgi-bin/lib/mensajes.es', > # template > => '/usr/lib/cgi-bin/tmpl/sesion.tmpl', > # ); > > *******FIN BLOQUE > > > return Dumper(%my_session); ----Linea que retorna el arreglo de la > sesion solo para debuger. > > programa continua .... > > return $form->render; > > } > > ############################################################################ > ### > # Funci??n cIniciaSesion : > ############################################################################ > ### > sub IniciaSesion{ > my $self = shift; > my $q = $self->query(); > my $dsn = "dbi:Pg:dbname='sessions';host='postgres.desarrollo'"; > > my $id = ($q->param('_sessionid')) ? $q->param('_sessionid') : 0; > > eval{ > tie %my_session, 'Apache::Session::Postgres', $id, > {DataSource => $dsn, > > UserName => 'usuario', > > Password => '123456', > > Commit => 1 }; > }; > > if ($@){ > $sMensaje = Error::getError(10); > } > } > > 1; > >------------------------------------------------------------------------ > >_______________________________________________ >caracas-pm mailing list >caracas-pm at pm.org >http://mail.pm.org/mailman/listinfo/caracas-pm >