From joel.pinckheardagmail.com Mon Mar 6 10:15:33 2006 From: joel.pinckheardagmail.com (Joel Pinckheard) Date: Mon, 6 Mar 2006 19:15:33 +0100 Subject: [bcn-pm] YAPC::Europe::2007 Message-ID: <391e184c0603061015h337b8684r535345fe970aa209@mail.gmail.com> Ha salido el anuncio de que estan buscando sitios para la conferencia del 2007 http://www.yapceurope.org/cfv_2007.html ¿Es algo que podríamos intentar? -- Joel Pinckheard http://www.pincky.com/ From cesatablinum.org Mon Mar 6 15:42:48 2006 From: cesatablinum.org (Carlos Escribano) Date: Tue, 7 Mar 2006 00:42:48 +0100 Subject: [bcn-pm] YAPC::Europe::2007 In-Reply-To: <391e184c0603061015h337b8684r535345fe970aa209@mail.gmail.com> References: <391e184c0603061015h337b8684r535345fe970aa209@mail.gmail.com> Message-ID: <200603070043.12370.ces@tablinum.org> El Lunes 06 Marzo 2006 19:15, Joel Pinckheard escribió: > ¿Es algo que podríamos intentar? Alguien tiene información de la organización de alguna YAPC? locales, alojamiento, si hay invitados a los que cubrir gastos, ... -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: signature Url : http://mail.pm.org/pipermail/barcelona-pm/attachments/20060306/f466a1d6/attachment.bin From jluisaescomposlinux.org Mon Mar 6 23:30:01 2006 From: jluisaescomposlinux.org (=?iso-8859-1?q?Jos=E9_Luis_P=E9rez_Diez?=) Date: Tue, 07 Mar 2006 08:30:01 +0100 Subject: [bcn-pm] YAPC::Europe::2007 In-Reply-To: <391e184c0603061015h337b8684r535345fe970aa209@mail.gmail.com> References: <391e184c0603061015h337b8684r535345fe970aa209@mail.gmail.com> Message-ID: <200603070830.01473.jluis@escomposlinux.org> On Monday 06 March 2006 19:15, Joel Pinckheard wrote: > ¿Es algo que podríamos intentar? Bueno almenos si no se consigue o se puede hacer tenemos tema para la durante dos meses charla de este mes From jj.mereloatelefonica.net Mon Mar 6 11:08:52 2006 From: jj.mereloatelefonica.net (JJ Merelo) Date: Mon, 06 Mar 2006 20:08:52 +0100 Subject: [bcn-pm] YAPC::Europe::2007 In-Reply-To: <391e184c0603061015h337b8684r535345fe970aa209@mail.gmail.com> References: <391e184c0603061015h337b8684r535345fe970aa209@mail.gmail.com> Message-ID: <440C88C4.2060708@telefonica.net> Joel Pinckheard wrote: > Ha salido el anuncio de que estan buscando sitios para la conferencia del 2007 > http://www.yapceurope.org/cfv_2007.html > > ¿Es algo que podríamos intentar? > Si necesitáis que os eche una mano, aunque remotamente, contad conmigo. JJ From joel.pinckheardagmail.com Tue Mar 7 02:15:49 2006 From: joel.pinckheardagmail.com (Joel Pinckheard) Date: Tue, 7 Mar 2006 11:15:49 +0100 Subject: [bcn-pm] YAPC::Europe::2007 In-Reply-To: <440C88C4.2060708@telefonica.net> References: <391e184c0603061015h337b8684r535345fe970aa209@mail.gmail.com> <440C88C4.2060708@telefonica.net> Message-ID: <391e184c0603070215k4b552fb2q359594fec6bc0180@mail.gmail.com> > Alguien tiene información de la organización de alguna YAPC? Todo la informacion sale en el modulo de CPAN YAPC::Venue No puedo connectar a search.cpan.org ahora mismo, a ver si más tarde lo encuentro. -- Joel Pinckheard http://www.pincky.com/ From toomanyatoomany.net Thu Mar 9 04:41:06 2006 From: toomanyatoomany.net (TooManySecrets) Date: Thu, 9 Mar 2006 13:41:06 +0100 Subject: [bcn-pm] Manejar salidas del sistema. Message-ID: <200603091341.07033.toomany@toomany.net> Buenas. Espero que sepais perdonar mi supina ignorancia, pero me gustaría aprender (y además también por necesidad), cómo poder manejar una salida en plan tabla de un comando del sistema. En otras palabras, si a través de "system" obtengo la salida de un "df -h", me gustaría luego poder aislar un particionado en concreto, y luego poder decir algo del estilo; "son xG de espacio libre lo que queda, que si "comparo" con el mínimo impuesto, envío mensaje o sencillamente no hago nada". ¿Sabeis de alguna URL con ejemplos/tutoriales sobre ésto? Espero haberme explicado mínimamente bien. Muchas gracias por vuestra ayuda. -- Have a nice day ;-) TooManySecrets ============================ Nine megs for the secretaries fair, Seven megs for the hackers scarce, Five megs for the grads in smoky lairs, Three megs for system source; One disk to rule them all, One disk to bind them, One disk to hold the files And in the darkness grind 'em. ============================ From jmereloageneura.ugr.es Thu Mar 9 05:15:46 2006 From: jmereloageneura.ugr.es (Juan Julian Merelo Guervos) Date: Thu, 09 Mar 2006 14:15:46 +0100 Subject: [bcn-pm] Manejar salidas del sistema. In-Reply-To: <200603091341.07033.toomany@toomany.net> References: <200603091341.07033.toomany@toomany.net> Message-ID: <44102A82.9000006@geneura.ugr.es> TooManySecrets wrote: >Buenas. > >Espero que sepais perdonar mi supina ignorancia, pero me gustaría aprender (y >además también por necesidad), cómo poder manejar una salida en plan tabla de >un comando del sistema. >En otras palabras, si a través de "system" obtengo la salida de un "df -h", me >gustaría luego poder aislar un particionado en concreto, y luego poder decir >algo del estilo; "son xG de espacio libre lo que queda, que si "comparo" con >el mínimo impuesto, envío mensaje o sencillamente no hago nada". > >¿Sabeis de alguna URL con ejemplos/tutoriales sobre ésto? > > Bueno, tienes el comando quota del sistema, y el sistema de quotas, que puedes activar por filesystem, y ponerle una serie de condiciones. No sé si es eso lo que buscas. De todas formas, si capturas la salida con @output = `df -h` luego puedes procesarlo como te dé la gana. JJ From toomanyatoomany.net Thu Mar 9 07:04:40 2006 From: toomanyatoomany.net (TooManySecrets) Date: Thu, 9 Mar 2006 16:04:40 +0100 Subject: [bcn-pm] Manejar salidas del sistema. In-Reply-To: <44102A82.9000006@geneura.ugr.es> References: <200603091341.07033.toomany@toomany.net> <44102A82.9000006@geneura.ugr.es> Message-ID: <200603091604.40804.toomany@toomany.net> El Jueves, 9 de Marzo de 2006 14:15, Juan Julian Merelo Guervos escribió: > Bueno, tienes el comando quota del sistema, y el sistema de quotas, que > puedes activar por filesystem, y ponerle una serie de condiciones. No sé > si es eso lo que buscas. No, bueno... Las "quotas" son para eso... acotar el espacio en disco al $luser. > De todas formas, si capturas la salida con > @output = `df -h` > luego puedes procesarlo como te dé la gana. Los problemas que yo tengo son de conocimientos, o dicho de otra manera, que no tengo zorrona idea de cómo procesar esos datos, dado el tipo de salida que me proporciona el df -h. Si que podría hacerlo con bash, pero quiero aprender a realizarlo con perl, así que bueno, en eso estoy ;-) -- Have a nice day ;-) TooManySecrets ============================ Nine megs for the secretaries fair, Seven megs for the hackers scarce, Five megs for the grads in smoky lairs, Three megs for system source; One disk to rule them all, One disk to bind them, One disk to hold the files And in the darkness grind 'em. ============================ From pbenaventagmail.com Thu Mar 9 08:15:19 2006 From: pbenaventagmail.com (Pere Benavent) Date: Thu, 9 Mar 2006 17:15:19 +0100 Subject: [bcn-pm] Manejar salidas del sistema. In-Reply-To: <200603091341.07033.toomany@toomany.net> References: <200603091341.07033.toomany@toomany.net> Message-ID: Fes-li una mirada a: ## Title: df-sum ## ## Submitter: Art Mulder ## Submitter Email: amulderairus.rri.on.ca ## ## A short script that runs "df" and totals up the results. ## print results as: Hostname, Megabytes Avail, Megabytes Used ## ## -- Art Mulder, Jun2001 ## ## - 4.Mar.2002 - tweak the awk line to elimnate the need for grep. ## submitted by Carl.Marinoacoutts.com ## ## Example Output: ## hostname.nowhere.com 37038 MB, 16058 MB used hostnm=`hostname` # We need to allow for different versions of 'df' on differt Unix OS's ostype=`/bin/uname` #echo $ostype if [ $ostype = "Linux" -o $ostype = "SunOS" ]; then dfbinary="/bin/df -kl" elif [ $ostype = "IRIX64" ]; then ## Newer SGI's. Irix 6.5 at least dfbinary="/bin/df -Pkl" else ## use the GNU version of df dfbinary="/irus/bin/df" fi ##disksum=`$dfbinary | grep dev | awk '{t += $2; u += $3} \ disksum=`$dfbinary | awk '/dev/ {t += $2; u += $3} \ END { printf("%d MB, %d MB used",t/1024,u/1024) }'` echo $hostnm $disksum # -- END -- Fale, no és perl, però s'hi pot adaptar.... hi han més a http://www.sun.com/bigadmin/home/ Pere Benavent > Have a nice day ;-) > TooManySecrets > > ============================ > Nine megs for the secretaries fair, > Seven megs for the hackers scarce, > Five megs for the grads in smoky lairs, > Three megs for system source; > > One disk to rule them all, > One disk to bind them, > One disk to hold the files > And in the darkness grind 'em. > ============================ > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pmapm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org > -- "El hombre es la medida de todas las cosas" Protágoras http://www.benavent.org From wjperezdagencat.net Thu Mar 9 08:26:05 2006 From: wjperezdagencat.net (Jose Luis Perez Diez) Date: Thu, 09 Mar 2006 17:26:05 +0100 Subject: [bcn-pm] Manejar salidas del sistema. In-Reply-To: <200603091341.07033.toomany@toomany.net> References: <200603091341.07033.toomany@toomany.net> Message-ID: <200603091726.06086.wjperezd@gencat.net> On Thursday 09 March 2006 13:41, TooManySecrets wrote: > Buenas. > > Espero que sepais perdonar mi supina ignorancia, pero me gustaría aprender > (y además también por necesidad), cómo poder manejar una salida en plan > tabla de un comando del sistema. > En otras palabras, si a través de "system" obtengo la salida de un "df -h", > me gustaría luego poder aislar un particionado en concreto, y luego poder > decir algo del estilo; "son xG de espacio libre lo que queda, que si > "comparo" con el mínimo impuesto, envío mensaje o sencillamente no hago > nada". > > ¿Sabeis de alguna URL con ejemplos/tutoriales sobre ésto? http://search.cpan.org/search?module=Filesys::DiskFree Lamento que mi respuesta sea tan corta pero es que es la respuesta como decia Jeremie Miller en AM IM WITH ME: Pregunta a la red antes de preguntar al origen. He estado pensando en poner el codigo del modulo ( solo depende de carp) pero la mayoria es documentacion . Mira tambien http://search.cpan.org/search?query=df&mode=all La minoria realcionada con el tema que dices son pure perl From toomanyatoomany.net Thu Mar 9 08:41:43 2006 From: toomanyatoomany.net (TooManySecrets) Date: Thu, 9 Mar 2006 17:41:43 +0100 Subject: [bcn-pm] Manejar salidas del sistema. In-Reply-To: References: <200603091341.07033.toomany@toomany.net> Message-ID: <200603091741.43354.toomany@toomany.net> El Jueves, 9 de Marzo de 2006 17:15, Pere Benavent escribió: > Fes-li una mirada a: > > ## Title: df-sum > ## Muchas gracias!! Eso me lo apunto XD Mi compañero en programación, que casualmente está también aquí apuntado, me ha estado enseñando cómo manejar el tema usando regex's. Gracias. -- \|/ ____ \|/ Have a nice day ;-) "@'/ ,. \'@" TooManySecrets /_| \__/ |_\ \__U_/ ============================ Nine megs for the secretaries fair, Seven megs for the hackers scarce, Five megs for the grads in smoky lairs, Three megs for system source; One disk to rule them all, One disk to bind them, One disk to hold the files And in the darkness grind 'em. ============================ From toomanyatoomany.net Thu Mar 9 08:43:29 2006 From: toomanyatoomany.net (TooManySecrets) Date: Thu, 9 Mar 2006 17:43:29 +0100 Subject: [bcn-pm] Manejar salidas del sistema. In-Reply-To: <200603091726.06086.wjperezd@gencat.net> References: <200603091341.07033.toomany@toomany.net> <200603091726.06086.wjperezd@gencat.net> Message-ID: <200603091743.29694.toomany@toomany.net> El Jueves, 9 de Marzo de 2006 17:26, Jose Luis Perez Diez escribió: > Lamento que mi respuesta sea tan corta pero es que es la respuesta > como decia Jeremie Miller en AM IM WITH ME: > Pregunta a la red antes de preguntar al origen. El pequeño "problemilla" es de esos que no sabes qué buscar exactamente... El cpan es enorme XD > He estado pensando en poner el codigo del modulo ( solo depende de carp) > pero la mayoria es documentacion . > > Mira tambien > http://search.cpan.org/search?query=df&mode=all > La minoria realcionada con el tema que dices son pure perl Perfecto. En realidad, aunque estoy enormemente agradecido, lo que pedía eran URL's y demás por el estilo a documentación. Con eso me vale de maravilla. Muchas gracias. -- Have a nice day ;-) TooManySecrets ============================ Nine megs for the secretaries fair, Seven megs for the hackers scarce, Five megs for the grads in smoky lairs, Three megs for system source; One disk to rule them all, One disk to bind them, One disk to hold the files And in the darkness grind 'em. ============================ From mtrujilloacorp.vlex.com Thu Mar 9 08:41:13 2006 From: mtrujilloacorp.vlex.com (Manuel Trujillo Albarral) Date: Thu, 9 Mar 2006 17:41:13 +0100 Subject: [bcn-pm] Manejar salidas del sistema. In-Reply-To: References: <200603091341.07033.toomany@toomany.net> Message-ID: <200603091741.13916.mtrujillo@corp.vlex.com> El Jueves, 9 de Marzo de 2006 17:15, Pere Benavent escribió: > Fes-li una mirada a: > > ## Title: df-sum > ## Muchas gracias!! Eso me lo apunto XD Mi compañero en programación, que casualmente está también aquí apuntado, me ha estado enseñando cómo manejar el tema usando regex's. Gracias. -- Manuel Trujillo Albarral Responsable de Sistemas VLEX NETWORKS S.L. Telf: 93-272.26.85 ext. 111 http://www.vlex.com From perl_nellatelefonica.net Sat Mar 11 15:57:04 2006 From: perl_nellatelefonica.net (Enrique Nell) Date: Sun, 12 Mar 2006 00:57:04 +0100 Subject: [bcn-pm] Split: Perl vs. Python (vs. Awk?) Message-ID: <4411D7410001560A@ctsmtpout1.frontal.correo> (added by postmaster@telefonica.net) Hola mongers En la pasada edición de YAPC (en Braga), un Perl monger de Lisboa llamado Miguel Duarte presentó una Lightning Talk titulada "Perl is slow for processing delimited records and what I've done to improve it". Más tarde me pasó el código que había utilizado para llegar a sus conclusiones y me comentó que le extrañaba que los JAPH no hubieran respondido a la provocación. Este "kit de pruebas", que os envío adjunto, contiene un programa (denominado generate.pl) que genera un fichero de valores numéricos aleatorios separados por ":", versiones en Perl, Python y Awk de un programa para contar el número de campos, y otro programa (denominado run_benchmark.pl) que mide los tiempos de ejecución de las versiones anteriores. En la presentación, Miguel afirmó que la versión Java también tardaba menos en ejecutarse que la versión Perl. Quedó en copiar el código Java en la página de YAPC::2005, pero aún no lo ha hecho (creo que necesitaba permiso de su empresa para hacerlo). Hace unos días vi en perl.com que los perl mongers de Lisboa iban a celebrar una reunión el martes pasado y que Miguel volvía a la carga con otra presentación titulada "When not to choose Perl". Otros mongers del grupo amenazaron con recurrir a la violencia física para hacerle entrar en razón, pero no creo que hayan tenido éxito. Aunque sea monger y la crítica sea constructiva, creo que ha sido abducido por el mundo Java:-) De todos modos, eso me hizo recordar la charla de Braga, así que "desempolvé" el código que me pasó y me puse a hacer pruebas en la siguiente plataforma: Pentium Centrino a 1,3 GHz, 512 MB de RAM Mandrake Linux 10.1 con Perl 5.8.5, Python 2.3.4, GNU Awk 3.1.3 Windows XP con Perl 5.8.7, Python 2.4.2, GNU Awk 3.0.4 Los resultados: En Windows XP: Perl - 80 seg., Python - 16 seg., GNU Awk - 10 seg. En Linux: Perl - 46 seg., Python - 18 seg., GNU Awk - 3 seg. Conclusiones ============ Diferencias entre sistemas operativos: - La ejecución del programa Awk en Windows XP tarda más del doble que en Linux. - La ejecución del programa Perl en Windows XP tarda casi el doble que en Linux. - La ejecución del programa Python en Windows XP es un poco más rápida que en Linux (pero hay que tener en cuenta que la versión de Python que tengo instalada en Windows es más reciente). - Debería dejar de utilizar Windows (o empezar a utilizar Python en Windows):-) Diferencias entre lenguajes: Sobre la velocidad de Awk: igual me equivoco (porque nunca he programado en Awk), pero creo que el programa Awk no almacena los campos (simplemente cuenta el número de campos), con lo cual no es equivalente a los programas Perl y Python, que sí los almacenan. En Perl se puede conseguir el mismo resultado con estas líneas (que tardan prácticamente lo mismo que el programa Awk): $field_count += (($_ =~ tr/:/:/) + 1) while (<>); print "$field_count\n"; Así que descartamos Awk y no nos creemos lo de Java de momento, pero nos queda el dato inquietante: la función split de Python es mucho más rápida que la de Perl. Xavier Noria y Miguel estuvieron cacharreando un rato, y llegaron a la conclusión de que la diferencia se debía a que la función split de Python utiliza como argumento separador de campos una cadena en lugar de una expresión regular. Si los campos fueran de ancho fijo, podríamos intentar utilizar unpack para obtener mejores resultados, pero no es el caso. Mi pregunta es: ¿se os ocurre alguna forma de mejorar el rendimiento de Perl en esta tarea? (se supone que además de contar el número de campos, hay que almacenar los campos en una estructura de datos). Saludos Enrique ------------ próxima parte ------------ Se ha borrado un mensaje que no está en formato texto plano... Nombre : _test_kit.zip Tipo : application/x-zip-compressed Tamaño : 1302 bytes Descripción: no disponible Url : http://mail.pm.org/pipermail/barcelona-pm/attachments/20060311/cd1267d2/_test_kit.bin From sfandinoayahoo.com Sat Mar 11 16:47:40 2006 From: sfandinoayahoo.com (Salvador Fandiño) Date: Sat, 11 Mar 2006 16:47:40 -0800 (PST) Subject: [bcn-pm] Split: Perl vs. Python (vs. Awk?) In-Reply-To: <4411D7410001560A@ctsmtpout1.frontal.correo> (added by postmaster@telefonica.net) Message-ID: <20060312004740.29115.qmail@web52710.mail.yahoo.com> --- Enrique Nell wrote: > Hola mongers > > En la pasada edici�n de YAPC (en Braga), un Perl monger de Lisboa > llamado > Miguel Duarte present� una Lightning Talk titulada "Perl is slow > for > processing delimited records and what I've done to improve it". > M�s tarde me pas� el c�digo que hab�a utilizado para llegar a sus > conclusiones y me coment� que le extra�aba que > los JAPH no hubieran respondido a la provocaci�n. > Este "kit de pruebas", que os env�o adjunto, contiene un programa > (denominado generate.pl) que genera un fichero de valores num�ricos > aleatorios separados por ":", versiones en Perl, Python y Awk de un > programa > para contar el n�mero > de campos, y otro programa (denominado run_benchmark.pl) que mide > los > tiempos de ejecuci�n de las versiones anteriores. > En la presentaci�n, Miguel afirm� que la versi�n Java tambi�n > tardaba menos > en ejecutarse que la versi�n Perl. > Qued� en copiar el c�digo Java en la p�gina de YAPC::2005, pero a�n > no lo ha > hecho (creo que necesitaba permiso de su > empresa para hacerlo). > > Hace unos d�as vi en perl.com que los perl mongers de Lisboa iban a > celebrar > una reuni�n el martes pasado y que Miguel volv�a a la carga con > otra > presentaci�n titulada "When not to choose Perl". Otros mongers del > grupo > amenazaron con > recurrir a la violencia f�sica para hacerle entrar en raz�n, pero > no creo > que hayan tenido �xito. Aunque sea monger y > la cr�tica sea constructiva, creo que ha sido abducido por el mundo > Java:-) > De todos modos, eso me hizo recordar la charla de Braga, as� que > "desempolv�" el c�digo que me pas� y me puse a hacer pruebas en la > siguiente > plataforma: > > Pentium Centrino a 1,3 GHz, 512 MB de RAM > Mandrake Linux 10.1 con Perl 5.8.5, Python 2.3.4, GNU Awk 3.1.3 > Windows XP con Perl 5.8.7, Python 2.4.2, GNU Awk 3.0.4 > > Los resultados: > En Windows XP: Perl - 80 seg., Python - 16 seg., GNU Awk - 10 seg. > En Linux: Perl - 46 seg., Python - 18 seg., GNU Awk - 3 seg. > > Conclusiones > ============ > Diferencias entre sistemas operativos: > - La ejecuci�n del programa Awk en Windows XP tarda m�s del doble > que en > Linux. > - La ejecuci�n del programa Perl en Windows XP tarda casi el doble > que en > Linux. > - La ejecuci�n del programa Python en Windows XP es un poco m�s > r�pida que > en Linux > (pero hay que tener en cuenta que la versi�n de Python que tengo > instalada > en Windows es m�s reciente). > - Deber�a dejar de utilizar Windows (o empezar a utilizar Python en > Windows):-) > > Diferencias entre lenguajes: > Sobre la velocidad de Awk: igual me equivoco (porque nunca he > programado en > Awk), pero creo que el programa Awk no almacena los campos > (simplemente > cuenta el n�mero de campos), con lo cual no es equivalente a los > programas > Perl y Python, que s� los almacenan. En Perl se puede conseguir el > mismo > resultado con estas l�neas (que tardan pr�cticamente lo mismo que > el > programa Awk): > > $field_count += (($_ =~ tr/:/:/) + 1) while (<>); > > print "$field_count\n"; > > As� que descartamos Awk y no nos creemos lo de Java de momento, > pero nos > queda el dato inquietante: > la funci�n split de Python es mucho m�s r�pida que la de Perl. > > Xavier Noria y Miguel estuvieron cacharreando un rato, y llegaron a > la > conclusi�n de que la diferencia se deb�a a que > la funci�n split de Python utiliza como argumento separador de > campos una > cadena en lugar de una expresi�n regular. > > Si los campos fueran de ancho fijo, podr�amos intentar utilizar > unpack para > obtener mejores resultados, pero no es > el caso. > > Mi pregunta es: �se os ocurre alguna forma de mejorar el > rendimiento de Perl > en esta tarea? (se supone que adem�s de contar el n�mero de campos, > hay que > almacenar los campos en una estructura de datos). hola Enrique, recuerdo que yo tambien estube haciendo algunas mis pruebas sobre porque split era tan lento y la conclusion a la que llegue es que la lentitud no era causada por usar una expresion regular o una cadena, sino por el manejo de memoria de Perl. Si no me equivoco durante el split se crea un SV por cada campo y al asignarlos a un array, se duplican (osea, mas SVs) a la vez que se liberan los viejos y ademas se liberan los valores temporales devueltos por split. En python en cambio, se devuelve una referencia al array con los valores, ademas como las cadenas en python son inmutables, es posible que los objetos devueltos no se hayan creado completamente de nuevo, si no que simplemente sean punteros a subcadenas de la cadena original... a parte de que el manejo de memoria de Python es diferente y puede tener un mejor rendimiento para este caso. Para conseguir un mejor rendimiento en Perl, lo primero seria devolver una referencia a un array en vez de devolver los resultados como una lista, luego tambien, en vez de devolver SVs completamente nuevos, se podrian devolver punteros dentro de la cadena original... desde XS, claro, y usando "magic", pero eso tambien implica crear SVs nuevos, con lo cual habria que ver con detalle si compensa o no... posiblemente solo lo haga si las subcadenas son muy grandes. Saludos, - Salva __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From fxnahashref.com Sun Mar 12 02:51:21 2006 From: fxnahashref.com (Xavier Noria) Date: Sun, 12 Mar 2006 11:51:21 +0100 Subject: [bcn-pm] Split: Perl vs. Python (vs. Awk?) In-Reply-To: <4411D7410001560A@ctsmtpout1.frontal.correo> (added by postmaster@telefonica.net) References: <4411D7410001560A@ctsmtpout1.frontal.correo> (added by postmaster@telefonica.net) Message-ID: <5080AC80-2A25-4BC6-94B0-E36E9EBE1C38@hashref.com> On Mar 12, 2006, at 0:57, Enrique Nell wrote: > Xavier Noria y Miguel estuvieron cacharreando un rato, y llegaron a la > conclusión de que la diferencia se debía a que > la función split de Python utiliza como argumento separador de > campos una > cadena en lugar de una expresión regular. Heh, bueno ese analisis fue un una cosa superficial ahi en el restaurante en un rato, porque recuerdas que veia sospechosas las conclusiones. Vi que en Python estaba usando str.split, en vez de re.split, y str.split tiene pinta de ser mas eficiente porque puede asumir mas cosas (eso puede no ser cierto, al final para hacer esto bien hay que medir.) El split de cadenas en Python se puede leer aqui (funcion string_split): http://tinyurl.com/jndpo y parece que no usa el truco de las cadenas inmutables, ya que el bucle principal llama a PyString_FromStringAndSize y a PyList_Append: while (i+n <= len) { if (s[i] == sub[0] && memcmp(s+i, sub, n) == 0) { if (maxsplit-- <= 0) break; item = PyString_FromStringAndSize(s+j, i-j); if (item == NULL) goto fail; err = PyList_Append(list, item); Py_DECREF(item); if (err < 0) goto fail; i = j = i + n; } else i++; } El constructor PyString_FromStringAndSize parece que copia la cadena entera en memoria nueva: op = (PyStringObject *)PyObject_MALLOC(sizeof(PyStringObject) + size); if (op == NULL) return PyErr_NoMemory(); PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; if (str != NULL) memcpy(op->ob_sval, str, size); op->ob_sval[size] = '\0'; PyList_Append hace lo normal, que es alocatar mas si hace falta y asignar al final. Yo seguiria investigando str.split versus re.split como conjetura. -- fxn From perl_nellatelefonica.net Mon Mar 13 05:33:55 2006 From: perl_nellatelefonica.net (Enrique Nell) Date: Mon, 13 Mar 2006 14:33:55 +0100 Subject: [bcn-pm] Split: Perl vs. Python (vs. Awk?) In-Reply-To: <5080AC80-2A25-4BC6-94B0-E36E9EBE1C38@hashref.com> Message-ID: <4414A3450001E566@ctsmtpout4.frontal.correo> (added by postmaster@telefonica.net) Deberíais aliaros Salva y tú para crear el módulo Split::Faster:-) Por cierto, la reunión de Lisboa fue el jueves, no el martes (ya no sé en qué día vivo...). Os envío unos vínculos de artículos relacionados con el tema (aunque supongo que muchos de vosotros ya los habréis leído): http://www.perl.com/lpt/a/2001/06/27/ctoperl.html http://www.stonehenge.com/merlyn/UnixReview/col49.html Haré experimentos con las funciones de cadena de Perl para ver si consigo reducir un poco el tiempo. Saludos, Enrique -----Original Message----- From: barcelona-pm-bounces+perl_nell=telefonica.netapm.org [mailto:barcelona-pm-bounces+perl_nell=telefonica.netapm.org] On Behalf Of Xavier Noria Sent: Sunday, March 12, 2006 11:51 AM To: Barcelona Perl Mongers Subject: Re: [bcn-pm] Split: Perl vs. Python (vs. Awk?) On Mar 12, 2006, at 0:57, Enrique Nell wrote: > Xavier Noria y Miguel estuvieron cacharreando un rato, y llegaron a la > conclusión de que la diferencia se debía a que la función split de > Python utiliza como argumento separador de campos una cadena en lugar > de una expresión regular. Heh, bueno ese analisis fue un una cosa superficial ahi en el restaurante en un rato, porque recuerdas que veia sospechosas las conclusiones. Vi que en Python estaba usando str.split, en vez de re.split, y str.split tiene pinta de ser mas eficiente porque puede asumir mas cosas (eso puede no ser cierto, al final para hacer esto bien hay que medir.) El split de cadenas en Python se puede leer aqui (funcion string_split): http://tinyurl.com/jndpo y parece que no usa el truco de las cadenas inmutables, ya que el bucle principal llama a PyString_FromStringAndSize y a PyList_Append: while (i+n <= len) { if (s[i] == sub[0] && memcmp(s+i, sub, n) == 0) { if (maxsplit-- <= 0) break; item = PyString_FromStringAndSize(s+j, i-j); if (item == NULL) goto fail; err = PyList_Append(list, item); Py_DECREF(item); if (err < 0) goto fail; i = j = i + n; } else i++; } El constructor PyString_FromStringAndSize parece que copia la cadena entera en memoria nueva: op = (PyStringObject *)PyObject_MALLOC(sizeof(PyStringObject) + size); if (op == NULL) return PyErr_NoMemory(); PyObject_INIT_VAR(op, &PyString_Type, size); op->ob_shash = -1; op->ob_sstate = SSTATE_NOT_INTERNED; if (str != NULL) memcpy(op->ob_sval, str, size); op->ob_sval[size] = '\0'; PyList_Append hace lo normal, que es alocatar mas si hace falta y asignar al final. Yo seguiria investigando str.split versus re.split como conjetura. -- fxn _______________________________________________ llista dels Barcelona-pm Barcelona-pmapm.org http://mail.pm.org/mailman/listinfo/barcelona-pm BCN Perl Mongers: http://barcelona.pm.org From sfandinoayahoo.com Mon Mar 13 05:52:08 2006 From: sfandinoayahoo.com (Salvador Fandiño) Date: Mon, 13 Mar 2006 05:52:08 -0800 (PST) Subject: [bcn-pm] Split: Perl vs. Python (vs. Awk?) In-Reply-To: <4414A3450001E566@ctsmtpout4.frontal.correo> (added by postmaster@telefonica.net) Message-ID: <20060313135208.37744.qmail@web52708.mail.yahoo.com> --- Enrique Nell wrote: > > Deber�ais aliaros Salva y t� para crear el m�dulo Split::Faster:-) lo suyo seria crear una optimizacion en el propio perl para construcciones del tipo @a = split //, $foo; algo parecido se hace para @a = sort @a; aunque con sort es mas facil hacerlo porque el destino de la operacion tambien aparece como argumento. Para split habria que pasarlo de alguna manera especial. Saludos, - Salva __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From wjperezdagencat.net Mon Mar 13 07:00:52 2006 From: wjperezdagencat.net (Jose Luis Perez Diez) Date: Mon, 13 Mar 2006 16:00:52 +0100 Subject: [bcn-pm] Split: Perl vs. Python (vs. Awk?) In-Reply-To: <4411D7410001560A@ctsmtpout1.frontal.correo> References: <4411D7410001560A@ctsmtpout1.frontal.correo> Message-ID: <200603131600.53751.wjperezd@gencat.net> On Sunday 12 March 2006 00:57, Enrique Nell wrote: > Hola mongers > > En la pasada edición de YAPC (en Braga), un Perl monger de Lisboa llamado > Miguel Duarte presentó una Lightning Talk titulada "Perl is slow for > processing delimited records and what I've done to improve it". > Más tarde me pasó el código que había utilizado para llegar a sus > conclusiones y me comentó que le extrañaba que > los JAPH no hubieran respondido a la provocación. > Así que descartamos Awk y no nos creemos lo de Java de momento, pero nos > queda el dato inquietante: > la función split de Python es mucho más rápida que la de Perl. Ficheros originales gawk: 7 wallclock secs ( 0.00 usr 0.01 sys + 5.72 cusr 0.85 csys = 6.58 CPU) @ 1000.00/s (n=10) perl: 71 wallclock secs ( 0.00 usr 0.00 sys + 58.83 cusr 1.36 csys = 60.19 CPU) python: 28 wallclock secs ( 0.00 usr 0.00 sys + 24.53 cusr 1.00 csys = 25.53 CPU) con cat <field_count.pl while(<>) { \$field_count += split ':'; } print "\$field_count\\n"; EOF Me da Benchmark: timing 10 iterations of gawk, perl, python... gawk: 7 wallclock secs ( 0.00 usr 0.00 sys + 5.74 cusr 0.84 csys = 6.58 CPU) perl: 24 wallclock secs ( 0.00 usr 0.00 sys + 20.13 cusr 0.62 csys = 20.75 CPU) python: 28 wallclock secs ( 0.00 usr 0.00 sys + 24.75 cusr 1.00 csys = 25.75 CPU) > Xavier Noria y Miguel estuvieron cacharreando un rato, y llegaron a la > conclusión de que la diferencia se debía a que > la función split de Python utiliza como argumento separador de campos una > cadena en lugar de una expresión regular. Creo que el codigo de perl es un poco mas rapido si lo usas de la forma adecuada. La diferencia deve venir por como cada uno de ellos maneja los datos para hacerlos disponibles al programa. Modificando el python para que los datos no tengan necesidad de estar en extructuras accesibles por el programa : cat <field_count.py import sys s = sys.stdin.readline() field_count = 0 while s: field_count += len(s.split(':')) s = sys.stdin.readline() print field_count EOF gawk: 8 wallclock secs ( 0.00 usr 0.00 sys + 5.75 cusr 0.86 csys = 6.61 CPU) perl: 23 wallclock secs ( 0.00 usr 0.00 sys + 20.15 cusr 0.57 csys = 20.72 CPU) pthon: 33 wallclock secs ( 0.00 usr 0.00 sys + 24.75 cusr 1.06 csys = 25.81 CPU) > Mi pregunta es: ¿se os ocurre alguna forma de mejorar el rendimiento de > Perl en esta tarea? (se supone que además de contar el número de campos, > hay que almacenar los campos en una estructura de datos). ¿eer el fichero en una lista? From sfandinoayahoo.com Mon Mar 13 07:36:43 2006 From: sfandinoayahoo.com (Salvador Fandiño) Date: Mon, 13 Mar 2006 07:36:43 -0800 (PST) Subject: [bcn-pm] Split: Perl vs. Python (vs. Awk?) In-Reply-To: <20060313135208.37744.qmail@web52708.mail.yahoo.com> Message-ID: <20060313153643.29801.qmail@web52703.mail.yahoo.com> --- Salvador Fandi�o wrote: > > > --- Enrique Nell wrote: > > > > > Deber�ais aliaros Salva y t� para crear el m�dulo > Split::Faster:-) > > lo suyo seria crear una optimizacion en el propio perl para > construcciones del tipo > > @a = split //, $foo; jugando con B::Deparse he visto que esto ya lo hace en algunas ocasiones (desafortunadamente poco frecuentes). Probad perl -MO=Deparse 'my @foo = split //, $ARGV[0]' perl -MO=Deparse '@foo = split //, $ARGV[0]' perl -MO=Deparse '@foo = split' y vereis como en el primer y tercer caso aparece el opcode aasign y en cambio en el segundo se pasa como una referencia al split. Y para terminar un benchmark: use Benchmark qw(cmpthese); my @lexical; my @t; for (1..100) { push @t, pack('c*', map { 32+int(rand 8) } (0..int(rand 100000))) } cmpthese ( -1, { lexical => sub { for my $t (@t) { @lexical = split //, $t} }, global => sub { for my $t (@t) { @global = split //, $t } } } ); en mi ordenador obtengo s/iter lexical global lexical 12.1 -- -39% global 7.40 64% -- - Salva __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From pancakeaphreaker.net Wed Mar 15 04:55:03 2006 From: pancakeaphreaker.net (pancake) Date: Wed, 15 Mar 2006 13:55:03 +0100 Subject: [bcn-pm] perl threads + ipc Message-ID: <20060315135503.e23ce88c.pancake@phreaker.net> Algu sap d'algun tutorial o documentació sobre threads en perl i comunicació entre processos, o com fer per compartir una variable entre dos fils, fer mutex, etc.. ? xcert, hi ha alguna forma generica de dirli al perl que busqui els moduls en un directori enlloc de pasarli -I/path/to... cada cop? merci d'avantmà :) --pancake From jmereloageneura.ugr.es Wed Mar 15 04:41:40 2006 From: jmereloageneura.ugr.es (Juan Julian Merelo Guervos) Date: Wed, 15 Mar 2006 13:41:40 +0100 Subject: [bcn-pm] perl threads + ipc In-Reply-To: <20060315135503.e23ce88c.pancake@phreaker.net> References: <20060315135503.e23ce88c.pancake@phreaker.net> Message-ID: <44180B84.7060008@geneura.ugr.es> pancake wrote: >Algu sap d'algun tutorial o documentació sobre threads en perl i comunicació entre processos, o com fer per compartir una variable entre dos fils, fer mutex, etc.. ? > >xcert, hi ha alguna forma generica de dirli al perl que busqui els moduls en un directori enlloc de pasarli -I/path/to... cada cop? > > use lib qw( path/to otro/path/to); Suerte! JJ From pancakeaphreaker.net Wed Mar 15 08:57:01 2006 From: pancakeaphreaker.net (pancake) Date: Wed, 15 Mar 2006 17:57:01 +0100 Subject: [bcn-pm] perl threads + ipc In-Reply-To: <44180B84.7060008@geneura.ugr.es> References: <20060315135503.e23ce88c.pancake@phreaker.net> <44180B84.7060008@geneura.ugr.es> Message-ID: <20060315175701.77cbbc9a.pancake@phreaker.net> Más bien buscaba alguna cosa que no me obligara a modificar el source de todos los programas , algo como una variable de entorno o un fichero de configuracion. On Wed, 15 Mar 2006 13:41:40 +0100 Juan Julian Merelo Guervos wrote: > pancake wrote: > > >Algu sap d'algun tutorial o documentació sobre threads en perl i comunicació entre processos, o com fer per compartir una variable entre dos fils, fer mutex, etc.. ? > > > >xcert, hi ha alguna forma generica de dirli al perl que busqui els moduls en un directori enlloc de pasarli -I/path/to... cada cop? > > > > > > use lib qw( path/to otro/path/to); > > Suerte! > > JJ > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pmapm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org From jruanoacapside.com Wed Mar 15 09:00:11 2006 From: jruanoacapside.com (Josep Ruano) Date: Wed, 15 Mar 2006 18:00:11 +0100 Subject: [bcn-pm] perl threads + ipc In-Reply-To: <20060315175701.77cbbc9a.pancake@phreaker.net> Message-ID: Creo que la variable de entorno que buscas es PERL5LIB ;-) saludos, josep From jluisaescomposlinux.org Thu Mar 16 06:36:59 2006 From: jluisaescomposlinux.org (=?iso-8859-1?q?Jos=E9_Luis_P=E9rez_Diez?=) Date: Thu, 16 Mar 2006 15:36:59 +0100 Subject: [bcn-pm] JASP genial Message-ID: <200603161536.59923.jluis@escomposlinux.org> Como las referencias de google son larguismas esta editada a mano funciona: http://groups.google.com/group/comp.lang.perl.misc/tree/browse_frm/thread/cb885b6cbf823a6d/20e8cc3932366f88?rnum=21 Contrariamente a lo que aparece en las listas no es necesario dar pemisos de ejecucion. basta con indicar de forma no ambigua el parametro al exec$0 de forma que sea estable entre llamadas. Tiene la belleza de un RTFM donde R es Reread. No se si se la curro para el hiilo pero es genial. Como ya he puesto el link paso del contexto y simplemente cito lo interesante q% Actually, you can't run another program "within perl" using 'exec', as 'exec' *replaces* the current program with another. Abigail -- #!/opt/perl/bin/perl -- # No trailing newline after the last line! BEGIN{$|=$SIG{__WARN__}=sub{$_=$_[0];y-_- -;print/(.)"$/;seek _,-open(_ ,"+<$0"),2;truncate _,tell _;close _;exec$0}}//rekcaH_lreP_rehtona_tsuJ % simple y elegante lastima que no funcione con -e From sergioacodigo.com Fri Mar 17 17:26:43 2006 From: sergioacodigo.com (Sergio Arias) Date: Sat, 18 Mar 2006 02:26:43 +0100 Subject: [bcn-pm] perl threads + ipc In-Reply-To: <20060315135503.e23ce88c.pancake@phreaker.net> References: <20060315135503.e23ce88c.pancake@phreaker.net> Message-ID: <1142645204.13672.59.camel@ebro> > xcert, hi ha alguna forma generica de dirli al perl que busqui els moduls en un directori enlloc de pasarli -I/path/to... cada cop? BEGIN { push @INC, "/path/to..." } Salut! From perl_nellatelefonica.net Sun Mar 19 07:12:57 2006 From: perl_nellatelefonica.net (Enrique Nell) Date: Sun, 19 Mar 2006 16:12:57 +0100 Subject: [bcn-pm] Split: Perl vs. Python (vs. Awk?) In-Reply-To: <200603131600.53751.wjperezd@gencat.net> Message-ID: <4414A3450013E4BE@ctsmtpout4.frontal.correo> (added by postmaster@telefonica.net) Hola José Luis >con > >cat <field_count.pl >while(<>) >{ > \$field_count += split ':'; >} > >print "\$field_count\\n"; >EOF > > >Me da >Benchmark: timing 10 iterations of gawk, perl, python... >gawk: 7 wallclock secs ( 0.00 usr 0.00 sys + 5.74 cusr 0.84 csys = 6.58 >CPU) >perl: 24 wallclock secs ( 0.00 usr 0.00 sys + 20.13 cusr 0.62 csys = 20.75 >CPU) >python: 28 wallclock secs ( 0.00 usr 0.00 sys + 24.75 cusr 1.00 csys = 25.75 >CPU) Es cierto que esta versión del programa se ejecuta más rápido, pero es equivalente al programa Awk, ya que no almacena los campos en un array, como los programas Perl y Python. Si sólo queremos contar los campos, la versión con tr que envié en el primer mensaje es bastante más rápida. Por otra parte, en la documentación de Perl se recomienda no utilizar split en contexto escalar. La cuestión es la diferencia de velocidad entre Perl y Python al utilizar split y almacenar los trozos obtenidos en una matriz. De tu experimento llama la atención que al eliminar la parte de almacenar en el array, los tiempos de las funciones split de Perl y Python son bastante más parecidos (y la versión Perl es más rápida). Ya comentaba Salva hace unos días que es en la asignación del resultado de split donde está el problema en Perl. > Mi pregunta es: ¿se os ocurre alguna forma de mejorar el rendimiento de > Perl en esta tarea? (se supone que además de contar el número de campos, > hay que almacenar los campos en una estructura de datos). >¿eer el fichero en una lista? También lo probé, con File::Slurp, pero como el archivo de prueba es gordísimo la memoria virtual de mi sistema se redujo a niveles poco conocidos:-) Saludos Enrique From cesatablinum.org Wed Mar 22 15:25:02 2006 From: cesatablinum.org (Carlos Escribano) Date: Thu, 23 Mar 2006 00:25:02 +0100 Subject: [bcn-pm] gtk2 y utf8 Message-ID: <200603230025.11336.ces@tablinum.org> Estoy probando Gtk2 y no salgo de ésta, a ver si alguien sabe una solución. Tengo el locale es_ES con UTF-8, en un Debian Sarge. En [1] pongo la lista de locales. Los caracteres extendidos van bien en un script de Perl, pero son vistos en Gtk2 erróneamente. El código de [2] imprime correctamente en consola una cadena con acentos, 'Vós Siau Ben Arribada', pero el widget de Gtk me muestra 'Vós Siau Ben Arribada'. Parece como si glib no hiciese caso de los locales y se empeñara en ver el texto en otra codificación. Utilizando la variable de entorno G_FILENAME_ENCODING=@locale debería forzar a glib a utilizar el locale, pero no me hace caso. Probando otro camino, fuerzo a Perl a que reconozca las cadenas como UTF-8, añadiendo 'use encoding 'utf8' y el problema se arregla, pero eso no le gusta a las entradas que no son UTF-8; si en el ejemplo el texto de la etiqueta se sustituye por el contenido de una web como http://google.es, los acentos se ven erróneos, y es que la negociación http con LWP::UserAgent dice que es un texto ISO 8859-1, y no UTF-8. Si no forzara el encoding, Perl reconoce con normalidad el texto de google.es. ¿alguna idea? 1 --------------------------------------- carlosascrinium:~/$ locale LANG=es_ES LC_CTYPE="es_ES.UTF-8" LC_NUMERIC="es_ES.UTF-8" LC_TIME="es_ES.UTF-8" LC_COLLATE="es_ES.UTF-8" LC_MONETARY="es_ES.UTF-8" LC_MESSAGES="es_ES.UTF-8" LC_PAPER="es_ES.UTF-8" LC_NAME="es_ES.UTF-8" LC_ADDRESS="es_ES.UTF-8" LC_TELEPHONE="es_ES.UTF-8" LC_MEASUREMENT="es_ES.UTF-8" LC_IDENTIFICATION="es_ES.UTF-8" LC_ALL=es_ES.UTF-8 2 --------------------------------------- #!/usr/bin/perl use Gtk2 '-init'; my $name ='Vós Siau Ben Arribada'; print "$name\n"; my $window = Gtk2::Window->new( 'toplevel' ); $window->set_title("Prueba de locales"); $window->signal_connect( destroy => sub{ Gtk2->main_quit } ); my $label = Gtk2::Label->new( $name); $window->add($label); $window->show_all; Gtk2->main; -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/barcelona-pm/attachments/20060322/bab33053/attachment.bin From frankieaetsetb.upc.edu Thu Mar 23 01:42:40 2006 From: frankieaetsetb.upc.edu (Francesc Guasch) Date: Thu, 23 Mar 2006 10:42:40 +0100 Subject: [bcn-pm] gtk2 y utf8 In-Reply-To: <200603230025.11336.ces@tablinum.org> References: <200603230025.11336.ces@tablinum.org> Message-ID: <44226D90.50608@etsetb.upc.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 En/na Carlos Escribano ha escrit: > Tengo el locale es_ES con UTF-8, en un Debian Sarge. En [1] pongo la lista de > ¿alguna idea? verifica que el locale que necesitas está en /etc/locale.gen ca_ESaeuro ISO-8859-15 es_ES ISO-8859-15 es_ESaeuro ISO-8859-15 en_US ISO-8859-1 y luego ejecuta: # locale-gen -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFEIm2NVfvsWQAffzIRAqKjAJ0SIyX3J7MIgTkkfAMMO0++hsXEMQCaAnzj 5kgKY76voN50XKOqs9BXx20= =QVmx -----END PGP SIGNATURE----- From cesatablinum.org Thu Mar 23 01:49:19 2006 From: cesatablinum.org (Carlos Escribano) Date: Thu, 23 Mar 2006 10:49:19 +0100 Subject: [bcn-pm] gtk2 y utf8 In-Reply-To: <44226D90.50608@etsetb.upc.edu> References: <200603230025.11336.ces@tablinum.org> <44226D90.50608@etsetb.upc.edu> Message-ID: <200603231049.27654.ces@tablinum.org> El Jueves 23 Marzo 2006 10:42, Francesc Guasch escribió: > verifica que el locale que necesitas está en /etc/locale.gen Parece que tú tienes ISO-8859-1, el mío es UTF-8, este es mi /etc/locale.gen es_ES UTF-8 es_ES.UTF-8 UTF-8 es_ES.ISO-8859-1 ISO-8859-1 Y sí, ayer volví a a ejecutar locale-gen por si acaso -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/barcelona-pm/attachments/20060323/5a2133e3/attachment.bin From joel.pinckheardagmail.com Thu Mar 30 08:37:07 2006 From: joel.pinckheardagmail.com (Joel Pinckheard) Date: Thu, 30 Mar 2006 18:37:07 +0200 Subject: [bcn-pm] Esta tarde Message-ID: <391e184c0603300837q4deeae87w10406c70916be8ac@mail.gmail.com> Llegaré sobre las 20:30 - tengo clase teorico de conducir. -- Joel Pinckheard http://www.pincky.com/ From cesatablinum.org Thu Mar 30 13:02:07 2006 From: cesatablinum.org (Carlos Escribano) Date: Thu, 30 Mar 2006 23:02:07 +0200 Subject: [bcn-pm] Enlace de tira Message-ID: <200603302302.14973.ces@tablinum.org> Ahi va el enlace de Everybody love's Eric Raymond que me habeis pedido: http://geekz.co.uk/lovesraymond y aquí la máquina para democratizar la GPl 3. Impagable http://geekz.co.uk/lovesraymond/archive/gpl-3-democracy y otros que también me gustan: http://geekz.co.uk/lovesraymond/archive/referential-integrity http://geekz.co.uk/lovesraymond/archive/letters-of-support -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://mail.pm.org/pipermail/barcelona-pm/attachments/20060330/4aac0a30/attachment.bin From gperezarunsolutions.com Fri Mar 31 03:54:44 2006 From: gperezarunsolutions.com (Gabriel Perez S.) Date: Fri, 31 Mar 2006 13:54:44 +0200 Subject: [bcn-pm] Enviar un objeto a un proceso hijo Message-ID: <200603311354.44444.gperez@runsolutions.com> Hola a todos, Estoy trabajando en un demonio que tiene que conectar por TCP a un servidor que le envía texto plano cada vez que ocurre un evento. A su ves, esta aplicación tendría que estar escuchando un puerto al que se conectarán con una pequeña aplicación en java. El motivo de construir este demonio es que haga de -pasarela- entre el demonio que envía los eventos y los clientes java (seguridad, autentificación de usuarios, etc..). Lo que hice fue: - Script "central" que hace un fork, creando un hijo, que se encarga de conectar con el demonio que envía los eventos. - El mismo script "central" realiza un "listen" para recibir a los clientes, en cada conexión de cada cliente se crea un hijo. Esto lo hice "bien", el problema que tengo es que yo quiero enviar a los hijos algunos de los eventos que recibo del demonio pero la variable donde "meto" el socket que se conecta con el demonio de los eventos no la pueden ve los hijos (como es lógico, son otro proceso, otro pid). Para -solucionar- esto cree otro objeto "pakage" que se llama GLOBAL (esta en el script central) y este deberia ser el sitio donde se guarden los eventos enviados por el demonio y los hijos deberían verlo. La idea, es que lo vean todos, el script central y el demonio de los eventos para enviarle lo que le toca a cada hijo. Cuando hice las pruebas; llamaba al objeto para introducir texto en un array, y a la ves, para saber que lo hacia bien, imprimía lo mismo que guardaba en el array en un archivo con el $$ por delante, asi sabia que PID lo estaba haciendo. Lo hice mas o menos asi: [seudo-code] use IO::Socket; use GLOBAL; <-- donde quiero que puedan acceder todos $GLOBAL = GLOBAL; fork; &eventos($GLOBAL); exit 0; $child = IO::Socket::new...... if $child = 0 fork; &child($child,$GLOBAL); exit; sub child { my $GLOBAL = $_[0]; while (<$child>) { ..... print $child $GLOBAL->leer; } } sub eventos { my $GLOBAL = $_[0]; $socket = ..... host=>blabla.com, port.... while ($sock) { .... $GLOBAL->guardar("el texto"); } } [/seudo-code] ¿Se puede hacer esto de alguna manera? ¿Que parte de la teoría no estoy entendiendo bien? - Según yo: tiene que existir alguna manera de mantener comunicados a hijos y padres sin hacer que se conecten entre sí por unix socket o tcp/udp. ¿No? Un saludo. Gabriel.