From srua en esware365.net Thu Feb 7 11:04:19 2002 From: srua en esware365.net (Sergio Rua) Date: Thu, 7 Feb 2002 11:04:19 +0100 Subject: alguien me lo explica? Message-ID: <20020207100419.GA18519@esware365.net> Hola, Tengo un programa en el que uso una clase para almacenar información sobre las particiones de cada uno de los discos duros de un equipo. El caso es que según el orden de inicialización de la clase, me funcionaba o no y no sé por qué. Os pongo el código y a ver si algún buen samaritano me lo explica. class Partitions: start=-1 end=-1 type=None fs=None mp=None changed=0 size=0 class HardDisk: """ Contenido del disco duro. Chapuza: está puesto un máximo de 15 particiones """ device=None nparts=0 free=0 partition={} def __init__(self): i=0 while i < 16: self.partition[i]=Partitions() i=i+1 ############## Así funciona hds={} hdlist=[] hds['/dev/sda']=HardDisk() hds['/dev/sdb']=HardDisk() hds['/dev/sda'].partition[0].fs="primero" hds['/dev/sda'].partition[1].fs="segundo" hds['/dev/sdb'].partition[2].fs="tercero" hds['/dev/sdb'].partition[3].fs="cuarto" print hds['/dev/sda'].partition[0].fs print hds['/dev/sda'].partition[1].fs print hds['/dev/sdb'].partition[2].fs print hds['/dev/sdb'].partition[3].fs ############## Así NO funciona hds={} hdlist=[] hds['/dev/sda']=HardDisk() hds['/dev/sda'].partition[0].fs="primero" hds['/dev/sda'].partition[1].fs="segundo" hds['/dev/sdb']=HardDisk() hds['/dev/sdb'].partition[2].fs="tercero" hds['/dev/sdb'].partition[3].fs="cuarto" print hds['/dev/sda'].partition[0].fs print hds['/dev/sda'].partition[1].fs print hds['/dev/sdb'].partition[2].fs print hds['/dev/sdb'].partition[3].fs Un saludo, Sergio Rua Departamento de Desarrollo http://esware365.net/~srua From rapto en arrakis.es Thu Feb 7 12:03:57 2002 From: rapto en arrakis.es (rapto) Date: Thu, 07 Feb 2002 11:03:57 GMT Subject: alguien me lo explica? Message-ID: <5078b4eae4.4eae45078b@atenea.melange.net> Queda todo mucho más claro si a las variables de instancia les pones el self. delante siempre. Las inicializaciones, siempre en el __init__ y no a nivel de clase. Queda así, si me he enterado de lo que quieres: class Partitions: def __init__(self): self.start=-1 self.end=-1 self.type=None self.fs=None self.mp=None self.changed=0 self.size=0 class HardDisk: """ Contenido del disco duro. Chapuza: está puesto un máximo de 15 particiones """ def __init__(self): self.device=None self.nparts=0 self.free=0 self.partition={} for i in range(16): self.partition[i]=Partitions() Saludos al Syvic From srua en esware365.net Thu Feb 7 12:50:19 2002 From: srua en esware365.net (Sergio Rua) Date: Thu, 7 Feb 2002 12:50:19 +0100 Subject: alguien me lo explica? In-Reply-To: <5078b4eae4.4eae45078b@atenea.melange.net> References: <5078b4eae4.4eae45078b@atenea.melange.net> Message-ID: <20020207115019.GA21206@esware365.net> Hola, El día Feb/07/2002, rapto escribía: > Queda así, si me he enterado de lo que quieres: Vale, ya queda más bonito. Lo mio no es el python como podeis apreciar :) Syvic te devuelve el saludo. Un saludo, Sergio Rua Departamento de Desarrollo http://esware365.net/~srua From chemacortes en wanadoo.es Sat Feb 9 01:36:49 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Sat, 9 Feb 2002 01:36:49 +0100 Subject: Python dentro de Apache Message-ID: <200202090036.g190anG05269@bosbovum.ch3m4.org> Saludos, He estado últimamente interesado por los diversos sistemas que hay para integrar python dentro del servidor web Apache. Mi intención es crear webs dinámicas en las que se pueda separar por un lado el diseño (html) de lo que sería el código (python). Hasta ahora estaba usando PHP, pero he estado mirando un poco cómo funcionaría con python. Ahora mismo estoy utilizando mod_python, que va bastante bien. Le he añadido el módulo PyHP que permite crear páginas webs incrustando código python dentro del código html, muy similar a cómo se hace con PHP ó ASP. He visto que hay algunos módulos más como el mod_snake, PMZ (Poor Man Zope), el PyArchitec, etc. ¿Habéis probado algunas de estos módulos? ¿Qué ventajas y desventajas tienen usar estos módulos en Apache frente a usar un Zope completo? PD: Para usuarios de SuSE Linux, en http://zaralinux.org tengo un artículo en el que explico cómo hacer funcionar mod_python y PyHP, y otras mejoras. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 7.3 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" From chemacortes en wanadoo.es Sat Feb 9 01:22:47 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Sat, 9 Feb 2002 01:22:47 +0100 Subject: alguien me lo explica? In-Reply-To: <20020207100419.GA18519@esware365.net> References: <20020207100419.GA18519@esware365.net> Message-ID: <200202090022.g190Mmd05246@bosbovum.ch3m4.org> El Jue 07 Feb 2002 11:04, Sergio Rua escribió: > Tengo un programa en el que uso una clase para almacenar > información sobre las particiones de cada uno de los discos > duros de un equipo. El caso es que según el orden de > inicialización de la clase, me funcionaba o no y no sé por qué. > Os pongo el código y a ver si algún buen samaritano me lo > explica. Marcos ya te ha dicho cómo es correcto hacerlo. Ahora te diré porqué te ha fallado el código. Para comprenderlo, debemos pensar cómo se realiza la inicialización de variables. Cuando en tú código pones: class HardDisk: ..... partition={} El intérprete crea un diccionario vacío y asigna la referencia a este diccionario a la variable instancia 'partition'. La pega es que siempre que crees un objeto de esta clase, siempre utilizará la misma referencia para inicializar la variable instancia 'partition', nunca creará una referencia nueva de este código. Lo que quiere decir que todos los objetos de esta clase compartirán el mismo diccionario. Cuando haces en tú código: hds['/dev/sda']=HardDisk() hds['/dev/sda'].partition[0].fs="primero" hds['/dev/sda'].partition[1].fs="segundo" hds['/dev/sdb']=HardDisk() Ambos objetos HardDisk comparten el mismo diccionario 'partition'. Durante la creación del segundo HardDisk vuelves a reinicializarlo, perdiendo lo que habías introducido. De tu código de prueba, haz lo siguiente: print hds['/dev/sda'].partition[0].fs print hds['/dev/sda'].partition[1].fs print hds['/dev/sdb'].partition[2].fs print hds['/dev/sdb'].partition[3].fs print hds['/dev/sda'].partition[2].fs print hds['/dev/sda'].partition[3].fs Estas dos últimas líneas te indican claramente que ambos objetos tienen el mismo diccionario. Para arreglar el código, tienes que "provocar" la creación de nuevas referencias a diccionarios, lo que se consigue inicializando dentro del método __init__. No es necesario que inicialices todas las variables instancia dentro de este método pero sí al menos todas las secuencias mutables (listas y diccionarios) y los objetos. El código quedaría así: class Partitions: start=-1 end=-1 type=None fs=None mp=None changed=0 size=0 class HardDisk: """ Contenido del disco duro. Chapuza: está puesto un máximo de 15 particiones """ device=None nparts=0 free=0 def __init__(self): self.partition=[None]*16 for i in range(16): self.partition[i]=Partitions() He preferido que 'partition' fuera una lista en lugar de un diccionario. Es lo que más le pega, a parte de que así tienes controladas las salidas de rango. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 7.3 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" From srua en esware.com Wed Feb 20 16:28:38 2002 From: srua en esware.com (Sergio Rua) Date: Wed, 20 Feb 2002 16:28:38 +0100 Subject: variables globales Message-ID: <20020220152838.GA22984@esware365.net> Hola, Ante todo, gracias a todos por las respuestas en mi anterior mensaje. Ya sé que algunas de mis preguntas son un poco idiotas (en especial la de hoy) pero a veces el programar en muchos lenguajes proboca equivocaciones graves. En fin, que mi problema de hoy es que en el programa que estoy haciendo necesito usar una variable global que no siempre me funciona. Os pongo un ejemplo de cómo las uso: #!/usr/bin/python n=0 def A(): print n n=n+1 def B(): print n print n A() B() Si mi variable es "n", cómo tendría que definirla para que la reconozcan las funciones A y B? Un saludo, Sergio Rua Departamento de Desarrollo http://esware365.net/~srua From rapto en arrakis.es Thu Feb 21 11:21:33 2002 From: rapto en arrakis.es (rapto) Date: Thu, 21 Feb 2002 10:21:33 GMT Subject: variables globales Message-ID: <6386667e2c.67e2c63866@atenea.melange.net> Python considera una variable local siempre que se le asigne un valor dentro de un bloque de visibilidad o ámbito. Si quieres modificar este comportamiento, puedes declarar la variable global. #!/usr/bin/python n=0 def A(): global n #Se fuerza a que sea global print n n=n+1 def B(): print n #Como no se asigna n, es global print n A() B() ----- Mensaje Original ----- Remitente: Sergio Rua Fecha: Miércoles, Febrero 20, 2002 4:28 pm Asunto: [python-es] variables globales > Hola, > > Ante todo, gracias a todos por las respuestas en mi anterior > mensaje. Ya sé que algunas de mis preguntas son un poco > idiotas (en especial la de hoy) pero a veces el programar > en muchos > lenguajes proboca equivocaciones graves. > > > En fin, que mi problema de hoy es que en el programa que estoy > haciendo necesito usar una variable global que no siempre me > funciona. Os pongo un ejemplo de cómo las uso: > > #!/usr/bin/python > > n=0 > > def A(): > print n > n=n+1 #Esta asignación convierte a n en local > > def B(): > print n #Ésta es global, por que no se asigna dentro del bloque > > > print n > A() > B() > > > > Si mi variable es "n", cómo tendría que definirla para que la > reconozcan las funciones A y B? > > > Un saludo, > > Sergio Rua > Departamento de Desarrollo > http://esware365.net/~srua > > From floro en aditel.org Thu Feb 21 22:24:33 2002 From: floro en aditel.org (Pedro Floro) Date: Thu, 21 Feb 2002 22:24:33 +0100 (CET) Subject: Traduccion de documentacion Message-ID: Hola, Tengo un amigo que necesita hacer un trabajo para su carrera, traduccion e interpretacion, y necesita traducir algo. Bueno, el tema es que como en python casi toda la documentacion esta en ingles, pues podria colaborar con alguna parte. Asi que agradeceria que me dierais ideas para transmitirselas a el y a ver si le sirve algo. Eso si, no me pidais que traduzca todaa la documentacion, decirme cosas puntuales, cosas mas largas... tampoco se cuanto de extenso debe ser el trabajo. Asi que si teneis mas de una idea darme una lista de prioridades. Saludos. ---- ** ---- Aditel.org WeBMaSTeR floro en aditel.org ---- ** ---- From rapto en arrakis.es Thu Feb 21 22:57:41 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Thu, 21 Feb 2002 22:57:41 +0100 Subject: Traduccion de documentacion References: Message-ID: <3C756D55.6000401@arrakis.es> En el cvs está lo que ya hay traducido y lo que no; su majestad escoja. http://sourceforge.net/cvs/?group_id=9845 Y ya pasado a HTML (no tan actualizado como el cvs) en: pyspanishdoc.sf.net Muy agradecido, de parte de todos los pitones. Pedro Floro wrote: > Hola, > > Tengo un amigo que necesita hacer un trabajo para su carrera, > traduccion e interpretacion, y necesita traducir algo. Bueno, el > tema es que como en python casi toda la documentacion esta en > ingles, pues podria colaborar con alguna parte. Asi que > agradeceria que me dierais ideas para transmitirselas a el y a > ver si le sirve algo. Eso si, no me pidais que traduzca todaa la > documentacion, decirme cosas puntuales, cosas mas largas... > tampoco se cuanto de extenso debe ser el trabajo. Asi que si > teneis mas de una idea darme una lista de prioridades. > > Saludos. > > ---- ** ---- > Aditel.org > WeBMaSTeR > floro en aditel.org > ---- ** ---- > > From manueltrujillo en dorna.es Fri Feb 22 09:13:01 2002 From: manueltrujillo en dorna.es (Manuel Trujillo) Date: 22 Feb 2002 09:13:01 +0100 Subject: Traduccion de documentacion In-Reply-To: References: Message-ID: <1014365581.784.3.camel@klingon> On Thu, 2002-02-21 at 22:24, Pedro Floro wrote: > Hola, > > Tengo un amigo que necesita hacer un trabajo para su carrera, > traduccion e interpretacion, y necesita traducir algo. Bueno, el > tema es que como en python casi toda la documentacion esta en > ingles, pues podria colaborar con alguna parte. Asi que > agradeceria que me dierais ideas para transmitirselas a el y a > ver si le sirve algo. Eso si, no me pidais que traduzca todaa la > documentacion, decirme cosas puntuales, cosas mas largas... > tampoco se cuanto de extenso debe ser el trabajo. Asi que si > teneis mas de una idea darme una lista de prioridades. Pues si mal lo recuerdo, en la misma página "oficial" de Python, sección documentación, existe un apartado en otras lenguas distintas del inglés, y ahí existe documentación en castellano. Si preguntas en cualquier sitio relacionado con el Open Source (Linux o *BSD), seguro que te dirán alguna cosa al respecto (por no mencionar que seguro que ya existe algún equipo de traducción trabajando en ello). Have a nice day ;-) TooManySecrets -- Manuel Trujillo manueltrujillo en dorna.es Technical Engineer http://www.motograndprix.com Dorna Sports S.L. +34 93 4702864 From kmilo0 en hotmail.com Fri Feb 22 13:44:32 2002 From: kmilo0 en hotmail.com (Camilo) Date: Fri, 22 Feb 2002 07:44:32 -0500 Subject: Exposicion Message-ID: voy a hacer una exposicion en mi universidad sobre Python y me gustaria saber, de que les parece que debo hablar en ella ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: From chemacortes en wanadoo.es Fri Feb 22 22:16:15 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Fri, 22 Feb 2002 22:16:15 +0100 Subject: Exposicion In-Reply-To: References: Message-ID: <200202222116.g1MLGGN02631@bosbovum.ch3m4.org> El Vie 22 Feb 2002 13:44, Camilo escribió: > voy a hacer una exposicion en mi universidad sobre Python y me gustaria > saber, de que les parece que debo hablar en ella Dependerá un poco del público que vaya a ir. Si es ambiente científico, tal vez iría bien hablar de las Python Numeric, y del libro en pdf "How to think like a computer scientist in python" Si es orientado a programación, podrías hablar de comparativas con otros lenguajes (C, Java, perl, ruby, etc) y hablar de algunos de los "ports" a java (jython), .net (visual python), etc., e incluso del parrot como máquina virtual para perl y python. Aprovecharía la oportunidad para hablar sobre los objetos en python, y de las novedades de la versión 2.2 como accesores, iteradores, secuenciadores, métodos de clase y estáticos, unificación de tipo y clase, etc. Sobre el futuro se podría comentar el objetivo Python3000, del "python stackless" y de los continuadores, etc. Esto último quizás sería demasiado. Pero sobre todo hablaría de lo fácil que es aprender python, y a usarlo desde el primer momento. Si el ambiente es de desarrolladores de aplicaciones, conviene hablar de las herramientas multiplataforma como tkinter, wxWindow, anygui, etc. Cómo maneja python las herramientas de acceso a bases de datos y para comunicaciones. No hay que olvidar comentar cosas como el Zope o el mailman. En fin, creo que demasiadas cosas para una simple exposición ;-) Saludos, - -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 7.3 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" From chemacortes en wanadoo.es Fri Feb 22 22:35:44 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-15?q?Cort=E9s?=) Date: Fri, 22 Feb 2002 22:35:44 +0100 Subject: Proyecto pytando Message-ID: <200202222135.g1MLZj202672@bosbovum.ch3m4.org> Hola a todos: Desde hace tiempo que estoy recopilando información para crear una serie de cursos sobre python (introducción, tkinter, wxpython, xml, ...) englobado todo en un proyecto personal que he denominado "Proyecto Pytando". Como primer resultado, esta semana daré inicio un curso de "Introducción a la Programación de Python" cuyas entregas serán semanales (cada viernes, así lo espero). Este curso lo iré publicando a través de una lista de correo para, posteriormente, ir confeccionando una página web lo más completa posible en http://pytando.sourceforge.net. He creado tres listas de correo: pytando-curso: donde se publicarán los cursos, y la gente podrá plantear sus dudas sobre cada lección. pytando-codigo: dedicada al estudio de ejemplos, donde se podrán realizar desde peticiones de código hasta solicitar explicaciones sobre el funcionamiento de un código determinado. pytando-propuestas: consejos y pequeños trucos para emplear en nuestras aplicaciones Para subscribirte a estas listas aquí tienes las uris: Intentaré que toda la información "útil" vaya a parar a la web en un formato apropiado. Tan sólo indicar que el Proyecto Pytando es un proyecto personal que intentaré sacar adelante con todo mi empeño, dando salida a cuantas consultas se me vayan haciendo sobre los cursos. Pero agradecería que para cualquier otro tipo de consulta se utilizaran el resto de listas en español (python-es en Aditel, python-es en Yahoo, e Hispapyzope-python). Por cierto, que ya podríamos unificar las tres lista de una vez, ¿no? Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 7.3 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" From fernand0 en hotpop.com Sat Feb 23 10:27:23 2002 From: fernand0 en hotpop.com (fernand0 en hotpop.com) Date: Sat, 23 Feb 2002 10:27:23 +0100 (CET) Subject: Exposicion In-Reply-To: <200202222116.g1MLGGN02631@bosbovum.ch3m4.org> References: <200202222116.g1MLGGN02631@bosbovum.ch3m4.org> Message-ID: Hola, On Fri, 22 Feb 2002, Chema Cortés wrote: > Sobre el futuro se podría comentar el objetivo Python3000, del "python > stackless" y de los continuadores, etc. Esto último quizás sería demasiado. ¿Podrías hablar un poco de los continuadores o dar algún enlace? He leido lo del stackless Python y los nombra, pero no encontré más información. Gracias, -- Fernando From juanjux en yahoo.es Sat Feb 23 10:41:17 2002 From: juanjux en yahoo.es (Juanjo Alvarez) Date: Sat, 23 Feb 2002 10:41:17 +0100 Subject: Exposicion In-Reply-To: References: <200202222116.g1MLGGN02631@bosbovum.ch3m4.org> Message-ID: <20020223094116.GA3140@Juanjo> On Sat, Feb 23, 2002 at 10:27:23AM +0100, fernand0 en hotpop.com wrote: > Hola, > > On Fri, 22 Feb 2002, Chema Cortés wrote: > > > Sobre el futuro se podría comentar el objetivo Python3000, del "python > > stackless" y de los continuadores, etc. Esto último quizás sería demasiado. > > ¿Podrías hablar un poco de los continuadores o dar algún enlace? > He leido lo del stackless Python y los nombra, pero no encontré más > información. Cierto, yo sólo he encontrado referencias sobre la implementación internas, pero nada sobre continuadores y demás. From rapto en arrakis.es Sat Feb 23 11:04:53 2002 From: rapto en arrakis.es (Marcos =?ISO-8859-1?Q?S=E1nchez?= Provencio) Date: Sat, 23 Feb 2002 11:04:53 +0100 Subject: Exposicion References: Message-ID: <3C776945.7030402@arrakis.es> Y, por curiosidad, ¿Dónde está dicha Universidad? Camilo wrote: > voy a hacer una exposicion en mi universidad sobre Python y me gustaria > saber, de que les parece que debo hablar en ella > From chemacortes en wanadoo.es Sat Feb 23 14:43:04 2002 From: chemacortes en wanadoo.es (Chema =?iso-8859-1?q?Cort=E9s?=) Date: Sat, 23 Feb 2002 14:43:04 +0100 Subject: Exposicion In-Reply-To: References: Message-ID: <200202231343.g1NDh5O02042@bosbovum.ch3m4.org> El Sáb 23 Feb 2002 10:27, fernand0 en hotpop.com escribió: > On Fri, 22 Feb 2002, Chema Cortés wrote: > > Sobre el futuro se podría comentar el objetivo Python3000, del "python > > stackless" y de los continuadores, etc. Esto último quizás sería > > demasiado. > > ¿Podrías hablar un poco de los continuadores o dar algún enlace? > He leido lo del stackless Python y los nombra, pero no encontré más > información. En la documentación del www.stackless.com tienes la conferencia que presentó Christian Tismer en el 8º Congreso Internacional de Python: Ahí te habla de los continuadores, y del porqué era necesario crear un python stackless. Es una lectura muy recomendable. Un continuador almacena el entorno de ejecución en un punto de modo que siempre puedes volver a él más adelante. Es un "goto" encubierto que se usa en programación funcional como mecanismo para alterar el flujo de ejecución de un programa. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 7.3 ZARALINUX http://www.zaralinux.org | "La ignorancia se apodera de quien PYTANDO http://pytando.sf.net | se contenta con lo que sabe" From hernan en orgmf.com.ar Sat Feb 23 14:53:24 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Sat, 23 Feb 2002 14:53:24 +0100 Subject: Exposicion In-Reply-To: <20020223094116.GA3140@Juanjo> References: <20020223094116.GA3140@Juanjo> Message-ID: > > > Sobre el futuro se podría comentar el objetivo Python3000, > > > del "python stackless" y de los continuadores, etc. > > > Esto último quizás sería demasiado. > > > > ¿Podrías hablar un poco de los continuadores o dar algún enlace? > > He leido lo del stackless Python y los nombra, pero no encontré más > > información. > > Cierto, yo sólo he encontrado referencias sobre la implementación > internas, pero nada sobre continuadores y demás. Tismer, el desarrollador que creo el Stackless Python, anuncio hace poco una nueva versión. SP nunca estuvo ausente de las polémicas. De hecho, GvR nunca quiso incorporar las modificaciones de Tismer en el core. Las dos críticas principales que se le hacia a SP eran: - aprovechando que había liberado al core de Python de la pila de C, el autor original comenzo a incluir demasiadas funcionalidades nuevas que no habían sido discutidas en la comunidad. - todo el código de SP está lleno de microptimizaciones. - cada nueva versión de Python implicaba muchos cambios en SP, aumentando las posibilidades de incluir nuevos fallos. - imposiblidad de emular esas funcionalidades en Jython. - a pesar de que varios genios de Python Labs analizaron el SP, el unico que entendía el código era Tismer. La nueva versión de SP es mucho mas reducida, abandona la petensión de incorporarse al core presentándose a partir de ahora como un paquete que se "agrega" a la distribución de Python. El mantenimiento se reduce al minimo al ser SP muy independiente de la distribucion de Python. Incluye algunas rutinas en lenguaje ensamblador por lo que será necesario un port para cada plataforma. Tismer mantendrá las versiones de Intel. Las funcionalidades que implementa SP son: microhilos y corutinas. Hace poco hizo algunas mediciones y contó 1.000.000 de cambios de contexto en 0,6 segundos en un AMD Athlon. En otra medición 100.000 hilos simultáneos ocuparon 80 MB (800 bytes por hilo.) En cuanto a las preguntas específicas, trataré de dar una pequeña explicación rápida basada en memoria y en "cositas" que me quedaron guardadas por ahí. ¡Ala los profesores de C.C. que leen la lista! ¡Mejoren o corrijan estas explicaciones! :-) continuación: la continuación de una computación es lo que sigue a esa computacion expresado como funcion del resultado de esa computacion. [ ¿por qué traducen "continuation" como continuador? yo lo entiendo como estado mas que como mecanismo. lo pregunto por saber no por polemizar ] Conceptualmente imaginen a una continuación como un lugar en un programa. No solo una etiqueta o una dirección, es todo el estado MAS el código que resta ejecutar. En términos prácticos es como un breakpoint en un debugger. Cuando un Sistema Operativo hace un cambio de contexto entre diferentes procesos, internamente está resguardando la continuación del proceso suspendido y recuperando la del proceso reestablecido. Junto con definiciones, comandos, y otros, la continuación (uso la traducción a la que estoy acostumbrado) es una abstracción que todos los lenguajes de programación poseen. La diferencia es si es explícita ("disponible" para el programador) o no. Y aún así dependerá de "cuanto" se implemente. A no ser que alguien quiera crear un lenguaje donde el programador pueda hacer una vuelta (rollback) a cualquier estado anterior del proceso, no es necesario implementar un mecanismo de continuaciones completo. La pareja setjmp/longjmp sería una implementación de continuaciones explícitas en C si setjmp() resguardara, y longjmp() restableciera, la pila interna de C en forma completa. La primera versión de SP reescribía todo el corazón de Python para que ninguna porción del estado de ejecución estuviera en la pila de C. La nueva versión de SP modifica la pila interna de C (de ahí la necesidad de usar ensamblador) haciéndole "creer" al corazón de Python que sigue usando dicha pila. Las continuaciones explicitas como mecanismo en un lenguaje son muy poderosas. Es la abstracción básica con la que se puede construir corutinas, hilos, objetos, generadores y todo tipo de gestionador de excepciones. Es el GOTO en los bucles :-) corutinas: pieza de código con nombre que puede ser reiniciada por otra corutina y viceversa. ¡Si un lenguaje dispone de continuaciones explícitas es posible implementar las facilidades mencionadas dentro del mismo lenguaje! Pero tienen similares limitaciones que el GOTO, si algun desarrollador decide programar un servidor multihilos utilizando las continuaciones que le brinda el lenguaje, es muy probable que el resultado final sea inmantenible. En mi opinión fuera del ámbito de la investigación en la práctica un programador nunca usa continuaciones para implementar un algoritmo. Bastarían con construcciones como corutinas, hilos, generadores y manejo de excepciones. Saludos, -Hernán. From peralta en aditel.org Mon Feb 25 10:37:53 2002 From: peralta en aditel.org (Luis Peralta) Date: Mon, 25 Feb 2002 10:37:53 +0100 Subject: Proyecto pytando In-Reply-To: <200202222135.g1MLZj202672@bosbovum.ch3m4.org> References: <200202222135.g1MLZj202672@bosbovum.ch3m4.org> Message-ID: <20020225093753.GA13773@spisa.act.uji.es> On Fri Feb 22, 2002 at 10:35:44PM +0100, Chema Cortés wrote: [...] > en Aditel, python-es en Yahoo, e Hispapyzope-python). Por cierto, que ya > podríamos unificar las tres lista de una vez, ¿no? No creo que falte mucho. En aditel estamos probando la estabilidad de mailman. He hablado con Marcos y estaba de acuerdo en la unificación. Así que espero que en menos de un mes lo tengamos listo. Un saludo, -- luis peralta / jaxp =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= CS Student | peralta at aditel dot org | http://www.aditel.org/~peralta/ From kmilo0 en hotmail.com Wed Feb 27 01:15:57 2002 From: kmilo0 en hotmail.com (Camilo) Date: Tue, 26 Feb 2002 19:15:57 -0500 Subject: Exposicion References: <3C776945.7030402@arrakis.es> Message-ID: > Y, por curiosidad, ¿Dónde está dicha Universidad? Universidad Nacional de Colombia www.unal.edu.co Departamento de Ingenieria de Sistemas http://dis.unal.edu.co Grupo de usuarios Linux NO oficial de la Universidad Nacional de Colombia (LUGUNAR) http://dis.unal.edu.co/~lugunar la exposicion es para este grupo en el evento DLL IV ( Dia Linux Lugunar ) el cual tiene como tema "Alternativas GNU/Linux viables para el desarrollo informático de la Universidad", y aunque me parece que estoy un poco fuera de contexto a la gente del grupo le parecion bien que expusiera sobre Python Creo que lo voy a orientar la exposicion a programación, como recomienda Chema y una hacer una pequeña descripcion de los diferentes modulos de Python Tkinter Pygames PyGTK PyQT PygreSQL mod_python Python-curses Pyxml Python Imaging Library jython .net (visual python) Parrot >Si es orientado a programación, podrías hablar de comparativas con otros >lenguajes (C, Java, perl, ruby, etc) y hablar de algunos de los "ports" a >java (jython), .net (visual python), etc., e incluso del parrot como máquina >virtual para perl y python. voy a recomendar el Proyecto Pytando y la lista python-es en Aditel. Como la propuesta debe ser por escrito con los objetivos y si es posible un resumen de la exposición, la voy mandar aqui y tambien las diapositivas de la exposicion a ver que le parece. ----- Original Message ----- From: "Marcos Sánchez Provencio" To: "Python" Sent: Saturday, February 23, 2002 5:04 AM Subject: Re: [python-es] Exposicion > Y, por curiosidad, ¿Dónde está dicha Universidad? > > Camilo wrote: > > > voy a hacer una exposicion en mi universidad sobre Python y me gustaria > > saber, de que les parece que debo hablar en ella > > > > > From chemacortes en wanadoo.es Wed Feb 27 09:54:48 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 27 Feb 2002 09:54:48 +0100 Subject: Exposicion Message-ID: > Creo que lo voy a orientar la exposicion a programación, como recomienda > Chema y una hacer una pequeña descripcion de los diferentes modulos de Python > > Tkinter > Pygames > PyGTK > PyQT > PygreSQL > mod_python > Python-curses > Pyxml > Python Imaging Library > jython > .net (visual python) > Parrot También incluiría algún comentario a "anygui" (http://anygui.sourceforge.net) en cuanto a unificación de interfaces gráficos, y a wxPython (wxWindows/wxGTK) como una solución multiplataforma. Todo depende del tiempo y las ganas que quieras echarle. > voy a recomendar el Proyecto Pytando y la lista python-es en Aditel. > > Como la propuesta debe ser por escrito con los objetivos y si es posible un > resumen de la exposición, la voy mandar aqui y tambien las diapositivas de > la exposicion a ver que le parece. Por aquí estaremos para lo que podamos ayudar. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) Linux User #142755 - SuSE Linux 7.3 ZARALINUX http://www.zaralinux.org _____________________________________________________________________ !REGALO GRATIS sólo por participar¡ Gana un premio seguro y exóticos viajes participando en el Rallye Wanadoo en http://www.wanadoo.es/animacion/rallye From rapto en arrakis.es Wed Feb 27 10:10:19 2002 From: rapto en arrakis.es (rapto) Date: Wed, 27 Feb 2002 09:10:19 GMT Subject: Exposicion Message-ID: <8c13d8967e.8967e8c13d@atenea.melange.net> Por si se puede sacar algo, os recuerdo que mi charla en Hispalinux está en: http://congreso.hispalinux.es/actividades/ponencias/sanchez/ El extracto: Interfaces múltiples en Python Marcos Sánchez Provencio rapto en arrakis.es Este artículo es una breve introducción a las posibilidades dinámicas de Python. Generaremos rápidamente módulos intercambiables de interfaz para un sencillo servidor de datos. En concreto, veremos una interfaz interactiva (con tkinter) y un servidor de aplicaciones HTTP. El código funciona sin modificación alguna en cualquier plataforma en la que funcione Python, ya que se han utilizado sólo las bibliotecas estándar de Python. From chemacortes en wanadoo.es Wed Feb 27 14:56:19 2002 From: chemacortes en wanadoo.es (Chema Cortes) Date: Wed, 27 Feb 2002 14:56:19 +0100 Subject: (unknown) Message-ID: Hola a todos: Creo que he descubierto un fallo, y me gustaría que me ayudárais a tipificarlo por si conviene notificarlo a los desarrolladores del python: Con un fichero de una línea tan simple como: print "ñ".isalpha() Si lo "importamos" desde el shell interactivo de python funciona bien (resultado 1). Si lo ejecutamos desde la línea de comandos va mal (resultado 0). Después de estudiar un poco el código C del python, veo que las cadenas codificadas en ascii usan las funciones de la librería de C strings para determinar si un caracter es alfanumérico, mientras que las cadenas codificadas en unicode usan su propia "base de datos" para ello. De ahí se podría explicar el diferente comportamiento que observo, deduciendo que en el entorno shell de python usa "siempre" la codificación "unicode" para las cadenas de caracteres, (algo que se supone será general para el python3000) pero sin más indicios que lo certifique (si se hace type("ñ") en el modo shell sale "tipo str", en lugar de "tipo unicode"). Antes de comunicar este fallo, ¿hay álguien que tenga más información que añadir? No sé si se entiende bien el problema. Todo me viene porque tengo un programilla que hace uso del isalpha y derivados (isalnum, islower, isupper) para comprobar si en la entrada tenemos un carácter en mayúscula ó minúscula, o es un símbolo. Desearía que considerara eñes, vocales acentuadas y otros caracteres similares como alfanuméricos, para lo que veo conveniente y más seguro usar la codificación 'unicode'. Creo que alguien (¿Marcos?) dijo alguna vez que recomendaba cambiar el site.py para poner como codificación por defecto "latin1" en lugar de "ascii". ¿Se podría hacer que codificara las cadenas de caracteres "siempre" como "unicode" dentro de un programa? A raiz de todo esto, he visto que el módulo locale no me reconoce mi configuración local "es_ES en euro", algo que supongo que habría que comunicar también a los desarrolladores para que lo añadieran. Saludos, -- Chema Cortes (chemacortes en wanadoo.es) Linux User #142755 - SuSE Linux 7.3 ZARALINUX http://www.zaralinux.org _____________________________________________________________________ !REGALO GRATIS sólo por participar¡ Gana un premio seguro y exóticos viajes participando en el Rallye Wanadoo en http://www.wanadoo.es/animacion/rallye From hernan en orgmf.com.ar Thu Feb 28 16:15:40 2002 From: hernan en orgmf.com.ar (Hernan Martinez Foffani) Date: Thu, 28 Feb 2002 16:15:40 +0100 Subject: In-Reply-To: References: Message-ID: > Creo que he descubierto un fallo, y me gustaría que me ayudárais a > tipificarlo por si conviene notificarlo a los desarrolladores del python: > > Con un fichero de una línea tan simple como: > > print "ñ".isalpha() > > Si lo "importamos" desde el shell interactivo de python funciona bien > (resultado 1). Si lo ejecutamos desde la línea de comandos va mal > (resultado 0). Entiendo que además de modificar el archivo site.py cambiando el encoding y activando el bloque de código que le sigue (Ver FAQ 4.102), todas tus constantes deberían incluir la u delante. Ej: >>> print u"ñ".isalpha() 1 >>> Eso cuenta para todas las cadenas de caracteres, incluso para aquellas que no contengan caracteres no ascii, para que las funciones y metodos de la biblioteca estándar retornen objetos 'unicode'. Ejemplo: >>> "c a ñ a".split(" ") ['c', 'a', '\xf1', 'a'] >>> "c a ñ a".split(u" ") [u'c', u'a', u'\xf1', u'a'] >>> Yo estoy usando Python 2.2 sobre Windows 2000 y las diferencias entre el entorno gráfico y el de comandos son debidas a los sets de caracteres de windows. En cuanto a que todas las cadenas de caracteres se consideren bajo una determinada codificación Unicode, creo que eso se hará cuando se implemente el PEP 263. http://python.sourceforge.net/peps/pep-0263.html Saludos, -Hernán From kmilo en softhome.net Thu Feb 28 22:20:03 2002 From: kmilo en softhome.net (kmilo) Date: Thu, 28 Feb 2002 16:20:03 -0500 Subject: test Message-ID: <00b601c1c09d$b16884e0$5339a741@n2y1t1> test de nuevo mail ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: