From diego en kuperman.com.ar Sat Oct 2 17:50:39 2010 From: diego en kuperman.com.ar (Diego Kuperman) Date: Sun, 03 Oct 2010 02:50:39 +0200 Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> <461147.47771.qm@web52608.mail.re2.yahoo.com> Message-ID: <4CA7D35F.9030507@kuperman.com.ar> Hola!, On 9/30/10 4:54 PM, JJ Merelo wrote: > Hola, > >> Yo opino parecido. >> >> Si solo hay 90 minutos creo que seria mejor presentar algo del tipo que es Perl >> en el 2010 (similar a lo que hizo Matt Trout en la YAPC::EU de este año con su >> "Estado del Velociraptor") y una intro a Perl 6 por ejemplo. > Esta colgada en video?, no recuerdo exactamente por donde iba :-( > > OK. ¿Voluntarios? > Ya sabes que soy un boy scout :-p Que os parece algo en esta linea? http://www.slideshare.net/davorg/modern-perl-4892457 Quizas no exactamente asi, pero con ejemplos de cosas que la gente pueda usar y que muestren lo que es perl hoy en dia. From jjmerelo en gmail.com Sat Oct 2 23:44:44 2010 From: jjmerelo en gmail.com (JJ Merelo) Date: Sun, 3 Oct 2010 08:44:44 +0200 Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: <4CA7D35F.9030507@kuperman.com.ar> References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> <461147.47771.qm@web52608.mail.re2.yahoo.com> <4CA7D35F.9030507@kuperman.com.ar> Message-ID: Hola, > Ya sabes que soy un boy scout :-p > > Que os parece algo en esta linea? > > http://www.slideshare.net/davorg/modern-perl-4892457 OK, adjudicado (si nadie más dice nada). ¿Quién se pide Perl 6? -- JJ From jjmerelo en gmail.com Sun Oct 10 00:24:39 2010 From: jjmerelo en gmail.com (JJ Merelo) Date: Sun, 10 Oct 2010 09:24:39 +0200 Subject: [Madrid-pm] Abrir un fichero de forma independiente del SO Message-ID: Hola ¿Cómo abriríais un fichero, por ejemplo un PDF o TXT de forma independiente del SO? ¿Mandándolo al navegador? ¿Y cómo se haría eso? -- JJ From roberto en freekeylabs.com Sun Oct 10 03:15:57 2010 From: roberto en freekeylabs.com (Roberto Henriquez) Date: Sun, 10 Oct 2010 12:15:57 +0200 Subject: [Madrid-pm] Abrir un fichero de forma independiente del SO In-Reply-To: References: Message-ID: <4CB1925D.3050108@freekeylabs.com> On 10/10/2010 09:24 AM, JJ Merelo wrote: > Hola > ¿Cómo abriríais un fichero, por ejemplo un PDF o TXT de forma > independiente del SO? ¿Mandándolo al navegador? ¿Y cómo se haría eso? > Hola, en linux usaría "xdg-open", que invoca al visor configurado por el usuario. En windows usaría el comando "start". No he investigado opciones más genéricas que esas, que probablemente las hay. Saludos From kamunas en gmail.com Sun Oct 10 03:11:09 2010 From: kamunas en gmail.com (=?UTF-8?Q?Javier_Camu=C3=B1as?=) Date: Sun, 10 Oct 2010 12:11:09 +0200 Subject: [Madrid-pm] Abrir un fichero de forma independiente del SO In-Reply-To: <4CB1925D.3050108@freekeylabs.com> References: <4CB1925D.3050108@freekeylabs.com> Message-ID: Mac OS X con "open" 2010/10/10 Roberto Henriquez > On 10/10/2010 09:24 AM, JJ Merelo wrote: > >> Hola >> ¿Cómo abriríais un fichero, por ejemplo un PDF o TXT de forma >> independiente del SO? ¿Mandándolo al navegador? ¿Y cómo se haría eso? >> >> Hola, > > en linux usaría "xdg-open", que invoca al visor configurado por el usuario. > > En windows usaría el comando "start". > > No he investigado opciones más genéricas que esas, que probablemente las > hay. > > Saludos > > _______________________________________________ > Madrid-pm mailing list > Madrid-pm en pm.org > http://mail.pm.org/mailman/listinfo/madrid-pm > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From explorer en joaquinferrero.com Sun Oct 10 09:01:02 2010 From: explorer en joaquinferrero.com (=?ISO-8859-1?Q?Joaqu=EDn_Ferrero?=) Date: Sun, 10 Oct 2010 18:01:02 +0200 Subject: [Madrid-pm] Abrir un fichero de forma independiente del SO In-Reply-To: References: Message-ID: <4CB1E33E.1090409@joaquinferrero.com> El 10/10/10 09:24, JJ Merelo escribió: > Hola > ¿Cómo abriríais un fichero, por ejemplo un PDF o TXT de forma > independiente del SO? ¿Mandándolo al navegador? ¿Y cómo se haría eso? > Cada sistema tiene su propia organización para asociar ficheros con las aplicaciones que las abren, así que sí es una opción cómoda el que sea el navegador web el que se encargue de eso. Puedes probar el módulo de Browser::Open, de Pedro Melo ;) Viendo el código, intentará ejecutar esto: my @known_commands = ( ['', $ENV{BROWSER}], ['darwin', '/usr/bin/open', 1], ['cygwin', 'start'], ['MSWin32', 'start'], ['solaris', 'xdg-open'], ['solaris', 'firefox'], ['linux', 'xdg-open'], ['linux', 'x-www-browser'], ['linux', 'www-browser'], ['linux', 'htmlview'], ['linux', 'gnome-open'], ['linux', 'gnome-moz-remote'], ['linux', 'kfmclient'], ['linux', 'exo-open'], ['linux', 'firefox'], ['linux', 'seamonkey'], ['linux', 'opera'], ['linux', 'mozilla'], ['linux', 'iceweasel'], ['linux', 'netscape'], ['linux', 'galeon'], ['linux', 'opera'], ['linux', 'w3m'], ['linux', 'lynx'], ['', 'open'], ['', 'start'], ); http://search.cpan.org/perldoc?Browser::Open -- JF^D From jjmerelo en gmail.com Sun Oct 10 09:21:31 2010 From: jjmerelo en gmail.com (JJ Merelo) Date: Sun, 10 Oct 2010 18:21:31 +0200 Subject: [Madrid-pm] Abrir un fichero de forma independiente del SO In-Reply-To: <4CB1E33E.1090409@joaquinferrero.com> References: <4CB1E33E.1090409@joaquinferrero.com> Message-ID: Jolines, qué completo. ¡Gracias! -- JJ From mipassat en gmail.com Sun Oct 10 10:40:30 2010 From: mipassat en gmail.com (mipassa) Date: Sun, 10 Oct 2010 19:40:30 +0200 Subject: [Madrid-pm] perl threads Message-ID: <000f01cb68a2$3d11abb0$b7350310$@com> Hola, Una preguntilla rápida… J La última vez que “probé” threads en perl me tardaban/consumían más la creación/funcionamiento de los threads que usar forks L ¿hay algún package sobre threads que haya mejorado esto ? …me niego pasarme a Java L Thanks in advance ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From explorer en joaquinferrero.com Sun Oct 10 13:29:38 2010 From: explorer en joaquinferrero.com (=?windows-1252?Q?Joaqu=EDn_Ferrero?=) Date: Sun, 10 Oct 2010 22:29:38 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <000f01cb68a2$3d11abb0$b7350310$@com> References: <000f01cb68a2$3d11abb0$b7350310$@com> Message-ID: <4CB22232.9040902@joaquinferrero.com> El 10/10/10 19:40, mipassa escribió: > Hola, > > Una preguntilla rápida? J > > La última vez que ?probé? threads en Perl me tardaban/consumían más la creación/funcionamiento de los threads que usar forks L > > ¿hay algún package sobre threads que haya mejorado esto...? me niego pasarme a Java L > Leer, al respecto, la sección "Performance considerations" del manual perlthrtut: http://perldoc.perl.org/perlthrtut.html#Performance-considerations El resto del manual está también muy bien para entender los threads en Perl, y cómo usarlos. En mi experiencia, nunca he tenido la necesidad de crear threads así que no soy el más adecuado para responderte. A lo sumo, he usado forks() para crear algún subproceso pesado, o repartir la carga entre procesadores. Saludos. -- JF^D From jjmerelo en gmail.com Sun Oct 10 23:50:38 2010 From: jjmerelo en gmail.com (JJ Merelo) Date: Mon, 11 Oct 2010 08:50:38 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <4CB22232.9040902@joaquinferrero.com> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> Message-ID: Puestos a sugerir, te aconsejo que mires también POE para hacer multitarea cooperativa. No son hebras, ni en realidad es multitarea, pero puede ser lo que estés buscando. -- JJ From rafael.porres en qindel.com Mon Oct 11 00:34:28 2010 From: rafael.porres en qindel.com (Rafael Porres Molina) Date: Mon, 11 Oct 2010 09:34:28 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> Message-ID: Está esto: http://search.cpan.org/~mlehmann/Coro-5.23/ pero yo nunca lo he probado... ¡Suerte! Rafa -- Rafael Porres Molina Consultoría y Proyectos Qindel Formación y Servicios S.L. Móvil: (+34) 678650609 e-mail: rafael.porres en qindel.com Dirección: c/Julián Camarillo 29, Edificio D2, 4ºIzda, 28037 Madrid, SPAIN / ESPAÑA El 11/10/2010, a las 08:50, JJ Merelo escribió: > Puestos a sugerir, te aconsejo que mires también POE para hacer > multitarea cooperativa. No son hebras, ni en realidad es multitarea, > pero puede ser lo que estés buscando. > > > -- > JJ > _______________________________________________ > Madrid-pm mailing list > Madrid-pm en pm.org > http://mail.pm.org/mailman/listinfo/madrid-pm ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego en kuperman.com.ar Mon Oct 11 05:06:13 2010 From: diego en kuperman.com.ar (Diego Kuperman) Date: Mon, 11 Oct 2010 14:06:13 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> Message-ID: <4CB2FDB5.5060109@kuperman.com.ar> Hola, On 10/11/10 9:34 AM, Rafael Porres Molina wrote: > Está esto: > > http://search.cpan.org/~mlehmann/Coro-5.23/ > > pero yo nunca lo he probado... > > ¡Suerte! > > Rafa > > El 11/10/2010, a las 08:50, JJ Merelo escribió: > >> Puestos a sugerir, te aconsejo que mires también POE para hacer >> multitarea cooperativa. No son hebras, ni en realidad es multitarea, >> pero puede ser lo que estés buscando. >> Hay un namespace para modulos que funcionan en cualquier motor de eventos que es AnyEvent::* De cualquier forma, la multitarea colaborativa no es la solución a todo, aunque en mi experiencia, a casi todo :-p Yo nunca he necesitado threads, o mas bien lo he evitado, pero si he hecho cosas con fork. Dependiendo de lo que necesitas, hay muchos modulos que te ayudan a gestionar los procesos. Normalmente compilo mis perl sin threads. -dk From rodrigolive en gmail.com Mon Oct 11 05:48:31 2010 From: rodrigolive en gmail.com (Rodrigo) Date: Mon, 11 Oct 2010 14:48:31 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <4CB2FDB5.5060109@kuperman.com.ar> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> Message-ID: > > Yo nunca he necesitado threads, o mas bien lo he evitado, pero si he > hecho cosas con fork. Dependiendo de lo que necesitas, hay muchos > modulos que te ayudan a gestionar los procesos. > > Normalmente compilo mis perl sin threads. > > -dk > > Yo hago lo mismo que Diego, perl compilado sin threads (dicen que es más rápido/estable incluso). A cambio, uso el módulo "forks" ( http://search.cpan.org/dist/forks/) que reemplaza threads utilizando la misma sintaxis, p.ej. "async { ... }", y me permite ir de una arquitectura a otra sin tener que cambiar el código. -rodrigo ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From diego en kuperman.com.ar Mon Oct 11 06:48:35 2010 From: diego en kuperman.com.ar (Diego Kuperman) Date: Mon, 11 Oct 2010 15:48:35 +0200 Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> Message-ID: <4CB315B3.5040009@kuperman.com.ar> Hola!, Han visto esto: http://www.opensourceworldconference.com/malaga10/?q=node/3467 ??? Esto significa que no se hace o que no se hace la siguiente?, alguna novedad mas? Abrazo!, -dk On 9/30/10 4:54 PM, JJ Merelo wrote: > Hola, > >> Yo creo que si finalmente tenemos solo hora y media, lo suyo es pensar >> cosas que sean prácticas y se puedan dar en ese tiempo. >> >> Una pregunta importante: nos van a pagar viaje y hotel? > > A ponentes imagino que sí. Por eso creo que también es conveniente que > no hubiera muchos, porque si tienen que pagarle a 4 personas para una > hora y media, no sé qué me dirán. > > From alexm en alexm.org Mon Oct 11 07:18:24 2010 From: alexm en alexm.org (Alex Muntada) Date: Mon, 11 Oct 2010 16:18:24 +0200 Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: <4CB315B3.5040009@kuperman.com.ar> References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> <4CB315B3.5040009@kuperman.com.ar> Message-ID: + Diego Kuperman : > Esto significa que no se hace o que no se hace la siguiente?, alguna > novedad mas? El resumen dice... «La Consejería de Economía, Innovación y Ciencia ha decidido estudiar alternativas diferentes a la celebración de la sexta edición de la Conferencia Internacional de Software Libre (OSWC) que tiene lugar cada dos años en Málaga y que no se celebrará este año.» Entiendo que se suspende :( -- Alex Muntada http://alexm.org/ From sfandino en yahoo.com Mon Oct 11 07:20:41 2010 From: sfandino en yahoo.com (Salvador Fandino) Date: Mon, 11 Oct 2010 07:20:41 -0700 (PDT) Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: <4CB315B3.5040009@kuperman.com.ar> References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> <4CB315B3.5040009@kuperman.com.ar> Message-ID: <474270.18678.qm@web52603.mail.re2.yahoo.com> En principio esta cancelada la de este año. Lo han anunciado cuando solo faltaban 20 dias para que se celebrase y con un comunicado de lo mas cutre y lleno de medias tintas! Los de ASOLIF (asociacion de empresas de software libre) estan intentando organizar un evento alternativo... con solo 20 dias es jodido organizar algo en condiciones, pero por lo menos lo estan intentando, si alguien quiere echar una mano solo hay que apuntarse a la lista de correo que tienen. - Salva ----- Original Message ---- > From: Diego Kuperman > To: madrid-pm en pm.org > Sent: Mon, October 11, 2010 3:48:35 PM > Subject: Re: [Madrid-pm] Perl en la OSWC > > Hola!, > > Han visto esto: > http://www.opensourceworldconference.com/malaga10/?q=node/3467 ??? > > Esto significa que no se hace o que no se hace la siguiente?, alguna > novedad mas? > > Abrazo!, > > -dk > > On 9/30/10 4:54 PM, JJ Merelo wrote: > > Hola, > > > >> Yo creo que si finalmente tenemos solo hora y media, lo suyo es pensar > >> cosas que sean prácticas y se puedan dar en ese tiempo. > >> > >> Una pregunta importante: nos van a pagar viaje y hotel? > > > > A ponentes imagino que sí. Por eso creo que también es conveniente que > > no hubiera muchos, porque si tienen que pagarle a 4 personas para una > > hora y media, no sé qué me dirán. > > > > > _______________________________________________ > Madrid-pm mailing list > Madrid-pm en pm.org > http://mail.pm.org/mailman/listinfo/madrid-pm > From jjmerelo en gmail.com Mon Oct 11 09:23:50 2010 From: jjmerelo en gmail.com (JJ Merelo) Date: Mon, 11 Oct 2010 18:23:50 +0200 Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: <474270.18678.qm@web52603.mail.re2.yahoo.com> References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> <4CB315B3.5040009@kuperman.com.ar> <474270.18678.qm@web52603.mail.re2.yahoo.com> Message-ID: Yo estoy apuntando, y seguramente iremos al evento alternativo. Ahora, el seminario de Perl (y más cuando me faltaba una de las dos personas para hacer presentaciones) creo que estará más bien cancelado. -- JJ From jjmerelo en gmail.com Mon Oct 11 09:27:22 2010 From: jjmerelo en gmail.com (JJ Merelo) Date: Mon, 11 Oct 2010 18:27:22 +0200 Subject: [Madrid-pm] cpan Net::Lujoyglamour Message-ID: Hola, Si os actualizáis desde CPAN el acortador de URLs Net::Lujoyglamour , encontraréis en el directorio t/ un PDF con la novela con licencia Creative Commons (by-nc-sa). Os agradezco el apoyo que me habéis dado hasta ahora, y recordad que todavía podéis comprarla en http://compra.lujoyglamour.net o descargarla directamente en http://descarga.lujoyglamour.net (o a mi directamente, que todavía me quedan algunos ejemplares) -- JJ From jjmerelo en gmail.com Mon Oct 11 10:45:52 2010 From: jjmerelo en gmail.com (JJ Merelo) Date: Mon, 11 Oct 2010 19:45:52 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> Message-ID: Perl sin threads es bastante más rápido, al menos casi un 30% en pruebas que yo he hecho. Por eso, hay que ver exactamente lo que se necesita... -- JJ From mipassat en gmail.com Wed Oct 13 11:59:29 2010 From: mipassat en gmail.com (mipassa) Date: Wed, 13 Oct 2010 20:59:29 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> Message-ID: <002c01cb6b08$c5ec01c0$51c40540$@com> Hola, Mi pega es que mientras que con perl lanzo 10 procesos (por poner un número) para hacer 10 "cosas" en un intervalo de tiempo, aprovechando al máximo los recursos de la máquina, para ese mismo periodo con Java en esa misma máquina, me creo que puedo lanzar 100K threads que me hacen 100mil "cosas" :( Ok thanks, echaré un ojo a vuestras sugerencias Perl, perl, mucho perl !!! -----Mensaje original----- De: madrid-pm-bounces+mipassat=gmail.com en pm.org [mailto:madrid-pm-bounces+mipassat=gmail.com en pm.org] En nombre de JJ Merelo Enviado el: lunes, 11 de octubre de 2010 19:46 Para: Lista de correo de Madrid Perl Mongers Asunto: Re: [Madrid-pm] perl threads Perl sin threads es bastante más rápido, al menos casi un 30% en pruebas que yo he hecho. Por eso, hay que ver exactamente lo que se necesita... -- JJ _______________________________________________ Madrid-pm mailing list Madrid-pm en pm.org http://mail.pm.org/mailman/listinfo/madrid-pm From alexm en alexm.org Wed Oct 13 13:19:22 2010 From: alexm en alexm.org (Alex Muntada) Date: Wed, 13 Oct 2010 22:19:22 +0200 Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: <474270.18678.qm@web52603.mail.re2.yahoo.com> References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> <4CB315B3.5040009@kuperman.com.ar> <474270.18678.qm@web52603.mail.re2.yahoo.com> Message-ID: + Salvador Fandino : > En principio esta cancelada la de este año. Lo han anunciado cuando solo > faltaban 20 dias para que se celebrase y con un comunicado de lo mas cutre y > lleno de medias tintas! Las cosas parece que se van aclarando: http://www.nacionred.com/gasto-publico/andalucia-sigue-los-pasos-de-camps-y-se-pasa-a-microsoft Qué pena que los políticos tengan tanto poder e impunidad :( -- Alex Muntada http://alexm.org/ From alexm en alexm.org Wed Oct 13 13:20:47 2010 From: alexm en alexm.org (Alex Muntada) Date: Wed, 13 Oct 2010 22:20:47 +0200 Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> <4CB315B3.5040009@kuperman.com.ar> <474270.18678.qm@web52603.mail.re2.yahoo.com> Message-ID: + JJ Merelo : > Yo estoy apuntando, y seguramente iremos al evento alternativo. Ahora, > el seminario de Perl (y más cuando me faltaba una de las dos personas > para hacer presentaciones) creo que estará más bien cancelado. Si, como se comenta por ahí, el evento al final se hace virtualmente tal vez sí se podría montar alguna cosa conjuntamente por IRC, no? -- Alex Muntada http://alexm.org/ From jjmerelo en gmail.com Wed Oct 13 13:31:47 2010 From: jjmerelo en gmail.com (JJ Merelo) Date: Wed, 13 Oct 2010 22:31:47 +0200 Subject: [Madrid-pm] Perl en la OSWC In-Reply-To: References: <349619.94021.qm@web52607.mail.re2.yahoo.com> <4CA46C97.5020700@kuperman.com.ar> <4CB315B3.5040009@kuperman.com.ar> <474270.18678.qm@web52603.mail.re2.yahoo.com> Message-ID: No sé si se va a hacer virtualmente algo, ni con qué soporte. Se está organizando alrededor del encuentro de empresas de ASOLIF una serie de actividades, que serán en la Universidad de Málaga. Si ya tenéis comprado el billete, puedo tratar de buscar sitio para algún encuentro de Perl, mesa redonda o algo. Saludos -- JJ From explorer en joaquinferrero.com Wed Oct 13 13:52:55 2010 From: explorer en joaquinferrero.com (=?ISO-8859-1?Q?Joaqu=EDn_Ferrero?=) Date: Wed, 13 Oct 2010 22:52:55 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <002c01cb6b08$c5ec01c0$51c40540$@com> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> <002c01cb6b08$c5ec01c0$51c40540$@com> Message-ID: <4CB61C27.6070605@joaquinferrero.com> El 13/10/10 20:59, mipassa escribió: > Hola, > > Mi pega es que mientras que con perl lanzo 10 procesos (por poner un número) > para hacer 10 "cosas" en un intervalo de tiempo, aprovechando al máximo los > recursos de la máquina, para ese mismo periodo con Java en esa misma > máquina, me creo que puedo lanzar 100K threads que me hacen 100mil "cosas" > :( ¿Cien mil "cosas"? ¿Es que, acaso, tienes, "cien mil" núcleos de procesador? ¿Qué sentido tiene arrancar un montón de threads si tienen que esperarse unos a otros para que les atienda el procesador? Al final, con tanto cambio de contexto, tienes menos rendimiento que si lo hicieras de forma secuencial. Yo, como máximo, monté un "cluster" que sumaba 32Gb, 8 procesadores con dos núcleos cada uno, así que, por mucho que yo quisiera, nunca habría más de 16 procesos activos de forma simultánea (y uno de ellos, al menos, atendiendo al sistema operativo). Mi problema era procesar ficheros muy grandes, que, de forma normal (en un solo procesador), tardaba 100 minutos. Pero como el problema se podía dividir, lo hice en 16 partes cada uno. Al final, el tiempo final no era exactamente 1/16, sino mayor, algo así como 1/10 del tiempo inicial. usé Parallel::ForkManager; # nada más, algo muy sencillo En los problemas en los cuales hay "cien mil" elementos, queda muy bonito modelizar el problema en torno a objetos que tienen su "vida propia" (estoy pensando en los MMORPG), pero eso mismo se puedo hacer de otras formas, que reparta mejor la carga entre los procesadores disponibles. IMO, por supuesto. -- JF^D From mipassat en gmail.com Wed Oct 13 14:03:51 2010 From: mipassat en gmail.com (mipassa) Date: Wed, 13 Oct 2010 23:03:51 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <4CB61C27.6070605@joaquinferrero.com> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> <002c01cb6b08$c5ec01c0$51c40540$@com> <4CB61C27.6070605@joaquinferrero.com> Message-ID: <000801cb6b1a$24347350$6c9d59f0$@com> Cierto todo lo que dices. Pero mi problema podría tratar por ejemplo de sondear estado de 100K equipos, que mientras llegas o no, te da timeout, y demás tiempo muertos, estas pasando a los otros 99.999. La cosa es llenar esos tiempos muertos con algo/thread ocioso y que no haya que estar creando continuamente costosos hijos/forks/procesos Thanks again por vuestras sabias opiniones -----Mensaje original----- De: madrid-pm-bounces+mipassat=gmail.com en pm.org [mailto:madrid-pm-bounces+mipassat=gmail.com en pm.org] En nombre de Joaquín Ferrero Enviado el: miércoles, 13 de octubre de 2010 22:53 Para: Lista de correo de Madrid Perl Mongers Asunto: Re: [Madrid-pm] perl threads El 13/10/10 20:59, mipassa escribió: > Hola, > > Mi pega es que mientras que con perl lanzo 10 procesos (por poner un número) > para hacer 10 "cosas" en un intervalo de tiempo, aprovechando al máximo los > recursos de la máquina, para ese mismo periodo con Java en esa misma > máquina, me creo que puedo lanzar 100K threads que me hacen 100mil "cosas" > :( ¿Cien mil "cosas"? ¿Es que, acaso, tienes, "cien mil" núcleos de procesador? ¿Qué sentido tiene arrancar un montón de threads si tienen que esperarse unos a otros para que les atienda el procesador? Al final, con tanto cambio de contexto, tienes menos rendimiento que si lo hicieras de forma secuencial. Yo, como máximo, monté un "cluster" que sumaba 32Gb, 8 procesadores con dos núcleos cada uno, así que, por mucho que yo quisiera, nunca habría más de 16 procesos activos de forma simultánea (y uno de ellos, al menos, atendiendo al sistema operativo). Mi problema era procesar ficheros muy grandes, que, de forma normal (en un solo procesador), tardaba 100 minutos. Pero como el problema se podía dividir, lo hice en 16 partes cada uno. Al final, el tiempo final no era exactamente 1/16, sino mayor, algo así como 1/10 del tiempo inicial. usé Parallel::ForkManager; # nada más, algo muy sencillo En los problemas en los cuales hay "cien mil" elementos, queda muy bonito modelizar el problema en torno a objetos que tienen su "vida propia" (estoy pensando en los MMORPG), pero eso mismo se puedo hacer de otras formas, que reparta mejor la carga entre los procesadores disponibles. IMO, por supuesto. -- JF^D _______________________________________________ Madrid-pm mailing list Madrid-pm en pm.org http://mail.pm.org/mailman/listinfo/madrid-pm From explorer en joaquinferrero.com Wed Oct 13 14:22:45 2010 From: explorer en joaquinferrero.com (=?ISO-8859-1?Q?Joaqu=EDn_Ferrero?=) Date: Wed, 13 Oct 2010 23:22:45 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <000801cb6b1a$24347350$6c9d59f0$@com> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> <002c01cb6b08$c5ec01c0$51c40540$@com> <4CB61C27.6070605@joaquinferrero.com> <000801cb6b1a$24347350$6c9d59f0$@com> Message-ID: <4CB62325.7030501@joaquinferrero.com> El 13/10/10 23:03, mipassa escribió: > Cierto todo lo que dices. Pero mi problema podría tratar por ejemplo de > sondear estado de 100K equipos, que mientras llegas o no, te da timeout, y > demás tiempo muertos, estas pasando a los otros 99.999. La cosa es llenar > esos tiempos muertos con algo/thread ocioso y que no haya que estar creando > continuamente costosos hijos/forks/procesos > > Thanks again por vuestras sabias opiniones > Que casualidad, entonces, que es parecido al ejemplo que hay en la página de manual de Parallel::ForkManager :) use LWP::Simple; use Parallel::ForkManager; #... @links=( ["http://www.foo.bar/rulez.data","rulez_data.txt"], ["http://new.host/more_data.doc","more_data.doc"], #... ); #... # Max 30 processes for parallel download my $pm = new Parallel::ForkManager(30); foreach my $linkarray (@links) { $pm->start and next; # do the fork my ($link,$fn) = @$linkarray; warn "Cannot get $fn from $link" if getstore($link,$fn) != RC_OK; $pm->finish; # do the exit in the child process } $pm->wait_all_children; -- JF^D From rodrigolive en gmail.com Wed Oct 13 16:10:29 2010 From: rodrigolive en gmail.com (Rodrigo) Date: Thu, 14 Oct 2010 01:10:29 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <000801cb6b1a$24347350$6c9d59f0$@com> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> <002c01cb6b08$c5ec01c0$51c40540$@com> <4CB61C27.6070605@joaquinferrero.com> <000801cb6b1a$24347350$6c9d59f0$@com> Message-ID: 2010/10/13 mipassa > Cierto todo lo que dices. Pero mi problema podría tratar por ejemplo de > sondear estado de 100K equipos, que mientras llegas o no, te da timeout, y > demás tiempo muertos, estas pasando a los otros 99.999. La cosa es llenar > esos tiempos muertos con algo/thread ocioso y que no haya que estar creando > continuamente costosos hijos/forks/procesos > > Más que Perl o Java, creo que 100K threads es una misión para Erlang! :) En todo caso, crear 100K threads, forks, o lo que sea, simultáneos es una barbaridad en cualquier lenguaje conocido. Incluso Erlang. En Perl, yo optaría por un pool de x workers utilizando alguno de los excelentes paquetes ya mencionados en esta conversación. O incluso Gearman, que tiene excelente integración con Perl, es muy eficiente y muy escalable, y así repartes el trabajo entre varios nodos. Repartir el trabajo entre servidores y levantar workers es, IMHO, la única forma eficiente de hacer 100K "cosas" a la vez. Por supuesto, los workers van siempre en proporción a la capacidad de la máquina. -r ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From jlmartinez-lists-bcn-pm en capside.com Thu Oct 14 00:24:25 2010 From: jlmartinez-lists-bcn-pm en capside.com (Jose Luis Martinez) Date: Thu, 14 Oct 2010 09:24:25 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <000801cb6b1a$24347350$6c9d59f0$@com> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> <002c01cb6b08$c5ec01c0$51c40540$@com> <4CB61C27.6070605@joaquinferrero.com> <000801cb6b1a$24347350$6c9d59f0$@com> Message-ID: <4CB6B029.6050207@capside.com> El 13/10/2010 23:03, mipassa escribió: > podría tratar por ejemplo de > sondear estado de 100K equipos, que mientras llegas o no, te da timeout, y > demás tiempo muertos, estas pasando a los otros 99.999. La cosa es llenar > esos tiempos muertos con algo/thread ocioso y que no haya que estar creando > continuamente costosos hijos/forks/procesos > En vez de lanzar 100K hilos con muy pocos haciendo trabajo real, porque no construyes un planificador que calcule cuando se tendrán que ejecutar las tareas y lanzarlas en el momento oportuno? Jose Luis Martinez jlmartinez en capside.com From sfandino en yahoo.com Thu Oct 14 02:24:56 2010 From: sfandino en yahoo.com (Salvador Fandino) Date: Thu, 14 Oct 2010 02:24:56 -0700 (PDT) Subject: [Madrid-pm] perl threads In-Reply-To: <000801cb6b1a$24347350$6c9d59f0$@com> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> <002c01cb6b08$c5ec01c0$51c40540$@com> <4CB61C27.6070605@joaquinferrero.com> <000801cb6b1a$24347350$6c9d59f0$@com> Message-ID: <837735.85036.qm@web52606.mail.re2.yahoo.com> ----- Original Message ---- > From: mipassa > To: Lista de correo de Madrid Perl Mongers > Sent: Wed, October 13, 2010 11:03:51 PM > Subject: Re: [Madrid-pm] perl threads > > Cierto todo lo que dices. Pero mi problema podría tratar por ejemplo de > sondear estado de 100K equipos, que mientras llegas o no, te da timeout, y > demás tiempo muertos, estas pasando a los otros 99.999. La cosa es llenar > esos tiempos muertos con algo/thread ocioso y que no haya que estar creando > continuamente costosos hijos/forks/procesos En un sistemas operativo decentes, hoy en día crear procesos nuevos no es una operacion tan costosa. Por ejemplo, el siguiente programa en C, en mi PC de hace algunos años con Linux se ejecuta en 13 segundos. #include #include #include int main(int argc, char *argv[]) { signal(SIGCHLD, SIG_IGN); for (int i = 0; i < 100000; i++) { if (fork() == 0) exit(0); } } Osea, que es capaz de ejecutar casi 10.000 forks por segundo (aunque hay que tener en cuenta que el coste del fork es proporcional a los recursos de memoria, ficheros, etc. que estan siendo utilizados por el proceso, por lo que en la practica, con programas reales no va a ser tan rapido). Un programa similar en Perl tarda 1m 45s, unos 1000 por segundo, que tampoco esta nada mal. Si realmente necesitas ejecutar tantas cosas en paralelo yo investigaria la posibilidad combinar dos niveles de paralelismo. Por un lado tener varios procesos para ocupar todas las CPUs que tengas disponibles y luego dentro de cada proceso varios hilos de ejecucion, ya sea utilizando Coro o programacion orientada a eventos con algo como POE. En cualquier caso, no uses los ithreads!!! - Salva From diego en kuperman.com.ar Thu Oct 14 02:42:09 2010 From: diego en kuperman.com.ar (Diego Kuperman) Date: Thu, 14 Oct 2010 11:42:09 +0200 Subject: [Madrid-pm] perl threads In-Reply-To: <000801cb6b1a$24347350$6c9d59f0$@com> References: <000f01cb68a2$3d11abb0$b7350310$@com> <4CB22232.9040902@joaquinferrero.com> <4CB2FDB5.5060109@kuperman.com.ar> <002c01cb6b08$c5ec01c0$51c40540$@com> <4CB61C27.6070605@joaquinferrero.com> <000801cb6b1a$24347350$6c9d59f0$@com> Message-ID: <4CB6D071.6000702@kuperman.com.ar> Hola!, On 10/13/10 11:03 PM, mipassa wrote: > Cierto todo lo que dices. Pero mi problema podría tratar por ejemplo de > sondear estado de 100K equipos, que mientras llegas o no, te da timeout, y > demás tiempo muertos, estas pasando a los otros 99.999. La cosa es llenar > esos tiempos muertos con algo/thread ocioso y que no haya que estar creando > continuamente costosos hijos/forks/procesos > Mi recomendación es que uses AnyEvent::Gearman :) Es decir, que montes un server de gearman, que separes los tipos de tareas por workers (o pongas todas en uno solo) y que levantes mas workers segun vas necesitando en cada tarea. Cada worker a su vez funcionaria con eventos y podria hacer "mas de una cosa a la vez cuando toca esperar sondas y esas cosas". Es lo que yo uso para hacer peticiones http y va MUY bien. Esto es un ejemplo de un worker que trae datos de usuarios en twitter: use AnyEvent::Gearman::Worker; use AnyEvent::HTTP; my $worker = AnyEvent::Gearman::Worker->new( job_servers => [ '127.0.0.1' ], ); $worker->register_function( twitter_user_info => sub { my $job = shift; my $screen_name = $job->workload; print STDERR "Getting info for $screen_name\n"; http_get( "http://api.twitter.com/1/users/show.json?screen_name=$screen_name" => sub { my ( $body, $header ) = @_; print STDERR "Info for $screen_name received\n"; $job->complete( $body ); } ); }); AnyEvent->condvar->recv; ---- Tiene la ventaja, como decia Rodrigo, que si necesitas mas músculo, pues es solo poner mas maquinas y levantar los workers que hagan falta. -dk > Thanks again por vuestras sabias opiniones > > -----Mensaje original----- > De: madrid-pm-bounces+mipassat=gmail.com at pm.org > [mailto:madrid-pm-bounces+mipassat=gmail.com at pm.org] En nombre de Joaquín > Ferrero > Enviado el: miércoles, 13 de octubre de 2010 22:53 > Para: Lista de correo de Madrid Perl Mongers > Asunto: Re: [Madrid-pm] perl threads > > El 13/10/10 20:59, mipassa escribió: >> Hola, >> >> Mi pega es que mientras que con perl lanzo 10 procesos (por poner un > número) >> para hacer 10 "cosas" en un intervalo de tiempo, aprovechando al máximo > los >> recursos de la máquina, para ese mismo periodo con Java en esa misma >> máquina, me creo que puedo lanzar 100K threads que me hacen 100mil "cosas" >> :( > > ¿Cien mil "cosas"? > > ¿Es que, acaso, tienes, "cien mil" núcleos de procesador? > > ¿Qué sentido tiene arrancar un montón de threads si tienen que esperarse > unos a otros para que les atienda el procesador? > > Al final, con tanto cambio de contexto, tienes menos rendimiento que si lo > hicieras de forma secuencial. > > Yo, como máximo, monté un "cluster" que sumaba 32Gb, 8 procesadores con dos > núcleos cada uno, así que, por mucho que yo quisiera, nunca habría más de 16 > procesos activos de forma simultánea (y uno de ellos, al menos, atendiendo > al sistema operativo). > > Mi problema era procesar ficheros muy grandes, que, de forma normal (en un > solo procesador), tardaba 100 minutos. Pero como el problema se podía > dividir, lo hice en 16 partes cada uno. Al final, el tiempo final no era > exactamente 1/16, sino mayor, algo así como 1/10 del tiempo inicial. > > usé Parallel::ForkManager; # nada más, algo muy sencillo > > En los problemas en los cuales hay "cien mil" elementos, queda muy bonito > modelizar el problema en torno a objetos que tienen su "vida propia" (estoy > pensando en los MMORPG), pero eso mismo se puedo hacer de otras formas, que > reparta mejor la carga entre los procesadores disponibles. > > IMO, por supuesto. > From luismottacampos en yahoo.co.uk Fri Oct 22 02:13:17 2010 From: luismottacampos en yahoo.co.uk (Luis Motta Campos) Date: Fri, 22 Oct 2010 11:13:17 +0200 Subject: [Madrid-pm] =?iso-8859-1?q?En_Espa=F1a?= Message-ID: <4CC155AD.1090601@yahoo.co.uk> Caballeros (y dónde quedan-se las señoritas?) Yo y mi señora vamos a Barcelona (bueno, en verdad a Sitges, 30 kilómetros para el sur), entre el 25 y el 29 de Octubre. Ella, para una conferencia de neurociencia; jo, por las vacaciones. :) Como no tengo lo que hacer por los días, pensé que pondría encontrarme con los Perl Mongers de Barcelona para tomar un bocadillo por la tarde (o a cualquier horas que se van a almorzar). Hay acá algún Perl Monger interesado? Mi contactos: +31 64 653 2726 (mi teléfono en los Países Bajos). Tendré acceso a mi emails prácticamente todo el tiempo. Muchas gracias, y hasta pronto! Saludos, -- Luis Motta Campos is a DBA, Perl Programmer, foodie and photographer.