From franjvasquezg at gmail.com Wed Jan 5 07:43:14 2011 From: franjvasquezg at gmail.com (francisco vasquez) Date: Wed, 5 Jan 2011 07:43:14 -0800 Subject: [caracas-pm] francisco vasquez desea chatear Message-ID: ----------------------------------------------------------------------- francisco vasquez quiere estar en contacto utilizando algunos productos nuevos de Google. Si ya tienes Gmail o Google Talk, visita: http://mail.google.com/mail/b-b8fa57bb18-25311f34f5-xmXj40p_2jkKHcdTfa_nzWDHDIg Tendr?s que hacer clic en este enlace para poder chatear con francisco vasquez. Para hacerte con Gmail (una cuenta de correo electr?nico gratuita de Google, con m?s de 2.800 megabytes de capacidad de almacenamiento) y chatear con francisco vasquez, visita: http://mail.google.com/mail/a-b8fa57bb18-25311f34f5-xmXj40p_2jkKHcdTfa_nzWDHDIg Gmail ofrece: - mensajer?a instant?nea dentro de Gmail, - protecci?n eficaz frente a spam, - una funci?n de b?squeda integrada para buscar mensajes y un ?til sistema para organizar los mensajes en "conversaciones", - adem?s es una aplicaci?n sin anuncios emergentes ni banners no orientados; s?lo tiene anuncios de texto e informaci?n relacionada que son relevantes dado el contenido de tus mensajes. Todo esto de manera gratuita. Pero espera, ?a?n hay m?s! Al abrir una cuenta de Gmail, podr?s acceder a Google Talk, el servicio de mensajer?a instant?nea de Google: http://www.google.com/talk/intl/es/ Google Talk te ofrece: - un servicio de chat web que podr?s utilizar desde cualquier sitio, sin necesidad de descargar nada, - una lista de contactos sincronizada con tu cuenta de Gmail, - llamadas de voz de PC a PC gratuitas y de alta calidad, al descargar el cliente de Google Talk. Trabajamos duro para a?adir nuevas funciones y realizar mejoras, as? que es posible que te pidamos que nos env?es comentarios o sugerencias de forma peri?dica. Agradecemos tu ayuda para mejorar nuestros productos. Gracias, El equipo de Google Para obtener m?s informaci?n sobre Gmail y Google Talk, visita: http://mail.google.com/mail/help/intl/es/about.html http://www.google.com/talk/intl/es/about.html Si al hacer clic en las URL de este mensaje no se abren los enlaces correspondientes, c?pialas y p?galas en la barra de direcciones de tu navegador. From emhnemhn at gmail.com Fri Jan 14 12:57:13 2011 From: emhnemhn at gmail.com (Ernesto =?ISO-8859-1?Q?Hern=E1ndez-Novich?=) Date: Fri, 14 Jan 2011 16:27:13 -0430 Subject: [caracas-pm] =?iso-8859-1?q?=5Bl-desarrollo=5D_Perl_-_uso_de_file?= =?iso-8859-1?q?handlers_an=F3nimos_para_evitar_archivos_temporales?= In-Reply-To: References: Message-ID: <1295038633.3548.17.camel@deepthought.ius.cc> On Fri, 2011-01-14 at 11:33 -0600, Juan Luis Zamora wrote: > ?Cual es la mejor manera de progresivamente ir escribiendo a un filehandler (a > medida que vaya sacando datos a trav?s del programa), pero que ?ste, > no est? escribiendo a un archivo en disco sino a una cadena tipo > lista?. Interpreto a una cadena, pero agregando al final. > Actualmente lo estoy implementando as? y parece funcionar bien: > > my $string; > open (my $fh,'>',\$string) || "no puedo escribir en la lista: $!"; Eso hace exactamente lo que tu quieres. Es un ejemplo de DWIM [1] combinado con la regla de la m?nima sorpresa :-) Al usar open() en un Perl moderno (5.10.0 o mejor), los filehandles generados en realidad son objetos en la jerarqu?a IO::Handle. Dependiendo del tercer argumento de open (en este caso, una referencia a un escalar), el nuevo open() decide cu?l subclase utilizar, y en este caso utiliza IO::String. Pero supongo que no tuviste que leer nada, porque supusiste (correctamente) "Perl *sabe* lo que quiero hacer" y la cosa simplemente funciona. > No estando seguro que sea la mejor manera de manejar esto, leyendo un > poco encontr? que hay un modulo core IO::Handle, pero por alguna raz?n > al tratar de sacar un filehandler an?nimo, me daba error: > > Bareword "IO::Handle" not allowed while "strict subs" in use El manual de IO::Handle es claro al indicar que esta clase no debe ser instanciada, pues simplemente sirve de base para las clases especializadas. > ?Tendr?n alguna sugerencia de como tratar esto de la mejor manera?, el > objetivo es ir escribiendo sobre dicha lista a medida de que se van > obteniendo datos tipo texto de varias funciones que hacen auditorias > sobre bases de dato entre otras cosas, y al final, cifrarlo y > guardarlo as? para no escribir texto claro en disco. La clase especializada que est?s buscando es IO::Scalar use IO::Scalar; my $s = "TIMTOWTDI:\n"; my $sh = new IO::Scalar \$s; $sh->print("There Is More Than One Way To Do It"); $sh->print(", FTW!\nKTHXBYE!\n"); print $s; Incidentalmente IO::Handle junto con sus clases derivadas logran algo que muy pocos lenguajes de programaci?n tienen: completa ortogonalidad entre los tipos de datos y las operaciones de I/O cumpliendo al pie de la letra con la filosof?a Unix de "todo es un archivo". En efecto IO::Scalar permite que una variable sea trabajada como un archivo, as? que *c?digo* que fue pensado para trabajar con archivos puede operar *sin* modificaci?n sobre una variable (para leer, escribir y ambas cosas con desplazamientos arbitrarios) con el ?nico proviso de contar con memoria suficiente. Para aquellos que intuyen que la OO es superflua en un problema como este, hay una interfaz para IO::Scalar absolutamente imperativo/funcional (basada en la magia del hombre blanco llamada 'tie') de manera que el mismo programa anterior puede escribirse use IO::Scalar; my $s = "TIMTOWTDI:\n"; my $sh = new IO::Scalar \$s; print $sh "There Is More Than One Way To Do It"; print $sh ", FTW!\nKTHXBYE!\n"; print $s; De hecho, gracias a la sobrecarga de la "conversi?n impl?cita a cadena", si haces print "$sh" se muestra el string asociado al filehandle :) Se pueden hacer cosas similares con listas, arreglos de escalares y operaciones at?micas (man IO::Stringy) [1] Do What I Mean -- Ernesto Hern?ndez-Novich - @iamemhn - Unix: Live free or die! Geek by nature, Linux by choice, Debian of course. If you can't aptitude it, it isn't useful or doesn't exist. GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3 From juanluis.zamora at gmail.com Sun Jan 16 13:26:11 2011 From: juanluis.zamora at gmail.com (Juan Luis Zamora) Date: Sun, 16 Jan 2011 15:26:11 -0600 Subject: [caracas-pm] =?utf-8?q?Perl_-_uso_de_filehandlers_an=C3=B3nimos_p?= =?utf-8?q?ara_evitar_archivos_temporales_=28solved=29?= Message-ID: Muchas gracias Ernesto, me queda bastante claro el tema. Saludos, JL El 14/01/11, Ernesto Hern?ndez-Novich escribi?: > On Fri, 2011-01-14 at 11:33 -0600, Juan Luis Zamora wrote: >> ?Cual es la mejor manera de progresivamente ir escribiendo a un >> filehandler (a >> medida que vaya sacando datos a trav?s del programa), pero que ?ste, >> no est? escribiendo a un archivo en disco sino a una cadena tipo >> lista?. > > Interpreto a una cadena, pero agregando al final. > >> Actualmente lo estoy implementando as? y parece funcionar bien: >> >> my $string; >> open (my $fh,'>',\$string) || "no puedo escribir en la lista: $!"; > > Eso hace exactamente lo que tu quieres. Es un ejemplo de DWIM [1] > combinado con la regla de la m?nima sorpresa :-) > > Al usar open() en un Perl moderno (5.10.0 o mejor), los filehandles > generados en realidad son objetos en la jerarqu?a IO::Handle. > Dependiendo del tercer argumento de open (en este caso, una referencia a > un escalar), el nuevo open() decide cu?l subclase utilizar, y en este > caso utiliza IO::String. > > Pero supongo que no tuviste que leer nada, porque supusiste > (correctamente) "Perl *sabe* lo que quiero hacer" y la cosa simplemente > funciona. > >> No estando seguro que sea la mejor manera de manejar esto, leyendo un >> poco encontr? que hay un modulo core IO::Handle, pero por alguna raz?n >> al tratar de sacar un filehandler an?nimo, me daba error: >> >> Bareword "IO::Handle" not allowed while "strict subs" in use > > El manual de IO::Handle es claro al indicar que esta clase no debe ser > instanciada, pues simplemente sirve de base para las clases > especializadas. > >> ?Tendr?n alguna sugerencia de como tratar esto de la mejor manera?, el >> objetivo es ir escribiendo sobre dicha lista a medida de que se van >> obteniendo datos tipo texto de varias funciones que hacen auditorias >> sobre bases de dato entre otras cosas, y al final, cifrarlo y >> guardarlo as? para no escribir texto claro en disco. > > La clase especializada que est?s buscando es IO::Scalar > > use IO::Scalar; > my $s = "TIMTOWTDI:\n"; > my $sh = new IO::Scalar \$s; > $sh->print("There Is More Than One Way To Do It"); > $sh->print(", FTW!\nKTHXBYE!\n"); > print $s; > > Incidentalmente IO::Handle junto con sus clases derivadas logran algo > que muy pocos lenguajes de programaci?n tienen: completa ortogonalidad > entre los tipos de datos y las operaciones de I/O cumpliendo al pie de > la letra con la filosof?a Unix de "todo es un archivo". En efecto > IO::Scalar permite que una variable sea trabajada como un archivo, as? > que *c?digo* que fue pensado para trabajar con archivos puede operar > *sin* modificaci?n sobre una variable (para leer, escribir y ambas cosas > con desplazamientos arbitrarios) con el ?nico proviso de contar con > memoria suficiente. > > Para aquellos que intuyen que la OO es superflua en un problema como > este, hay una interfaz para IO::Scalar absolutamente > imperativo/funcional (basada en la magia del hombre blanco llamada > 'tie') de manera que el mismo programa anterior puede escribirse > > use IO::Scalar; > my $s = "TIMTOWTDI:\n"; > my $sh = new IO::Scalar \$s; > print $sh "There Is More Than One Way To Do It"; > print $sh ", FTW!\nKTHXBYE!\n"; > print $s; > > De hecho, gracias a la sobrecarga de la "conversi?n impl?cita a cadena", > si haces > > print "$sh" > > se muestra el string asociado al filehandle :) > > Se pueden hacer cosas similares con listas, arreglos de escalares y > operaciones at?micas (man IO::Stringy) > > [1] Do What I Mean > -- > Ernesto Hern?ndez-Novich - @iamemhn - Unix: Live free or die! > Geek by nature, Linux by choice, Debian of course. > If you can't aptitude it, it isn't useful or doesn't exist. > GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3 > > _______________________________________________ > caracas-pm mailing list > caracas-pm at pm.org > http://mail.pm.org/mailman/listinfo/caracas-pm -- Enviado desde mi dispositivo m?vil Juan Luis Zamora Sarabia Key fingerprint = D8E1 E14C DF5D 3A4B 9161 CEC0 8B36 6DB7 F228 EA4C From franjvasquezg at gmail.com Mon Jan 31 11:09:10 2011 From: franjvasquezg at gmail.com (francisco vasquez) Date: Mon, 31 Jan 2011 11:09:10 -0800 Subject: [caracas-pm] francisco vasquez desea chatear Message-ID: ----------------------------------------------------------------------- francisco vasquez quiere estar en contacto utilizando algunos productos nuevos de Google. Si ya tienes Gmail o Google Talk, visita: http://mail.google.com/mail/b-b8fa57bb18-4bbeefe517-dzzZZ4FZx_El5eRdzoFdVMJFdlI Tendr?s que hacer clic en este enlace para poder chatear con francisco vasquez. Para hacerte con Gmail (una cuenta de correo electr?nico gratuita de Google, con m?s de 2.800 megabytes de capacidad de almacenamiento) y chatear con francisco vasquez, visita: http://mail.google.com/mail/a-b8fa57bb18-4bbeefe517-dzzZZ4FZx_El5eRdzoFdVMJFdlI Gmail ofrece: - mensajer?a instant?nea dentro de Gmail, - protecci?n eficaz frente a spam, - una funci?n de b?squeda integrada para buscar mensajes y un ?til sistema para organizar los mensajes en "conversaciones", - adem?s es una aplicaci?n sin anuncios emergentes ni banners no orientados; s?lo tiene anuncios de texto e informaci?n relacionada que son relevantes dado el contenido de tus mensajes. Todo esto de manera gratuita. Pero espera, ?a?n hay m?s! Al abrir una cuenta de Gmail, podr?s acceder a Google Talk, el servicio de mensajer?a instant?nea de Google: http://www.google.com/talk/intl/es/ Google Talk te ofrece: - un servicio de chat web que podr?s utilizar desde cualquier sitio, sin necesidad de descargar nada, - una lista de contactos sincronizada con tu cuenta de Gmail, - llamadas de voz de PC a PC gratuitas y de alta calidad, al descargar el cliente de Google Talk. Trabajamos duro para a?adir nuevas funciones y realizar mejoras, as? que es posible que te pidamos que nos env?es comentarios o sugerencias de forma peri?dica. Agradecemos tu ayuda para mejorar nuestros productos. Gracias, El equipo de Google Para obtener m?s informaci?n sobre Gmail y Google Talk, visita: http://mail.google.com/mail/help/intl/es/about.html http://www.google.com/talk/intl/es/about.html Si al hacer clic en las URL de este mensaje no se abren los enlaces correspondientes, c?pialas y p?galas en la barra de direcciones de tu navegador.