Decimal en PyCon 2005

Python — Jueves 24 de Febrero de 2005, 09:13

Finalmente todas los pequeños detalles que tenían que encajar justo lo hicieron.

La Fundación de Software de Python (PSF) me invita a Washington, USA, para exponer en la Tercer Conferencia Internacional de Python (PyCon 2005).

La charla será sobre los aspectos avanzados de Decimal (un módulo agarré empezado, pero que coordiné, impulsé, programé, y ahora está en Python 2.4).




Dos sitios y noticias

Python — Martes 25 de Enero de 2005, 07:07

Los dos sitios:

Bilo y Nano se lo montan: Espectacular página donde todas las semanas sacan una historieta nueva: Las peripecias de tres amigos, uno fanático de Debian, otro de Mandrake y otro de Windows. Tiene más cosas, voy descubriéndolas de a poquito.

BCP Development: Empresa dedicada al control de edificios inteligentes. He visto demostraciones del producto y la conclusión es sencilla: si pudiera tener una casa con las últimas tecnologías en Domótica, tengo muy claro que empresa contrataría para ello (actualización 07-Nov-2007, este sitio parece no existir más...)

Bueno, algunas noticias. No se si 100% oficial, pero está bastante aceptado el logo que hice de PyAr:



El diseño original no es mío, sino de Pablo Ziliani que se mandó un espectacular .gif aplaudido y designado por unanimidad como logo oficial de la organización. Yo lo único que hice es rehacer el dibujo de Pablo pero en vectorial, para que se pueda redimensionar sin perder la calidad del mismo.

Tengan en cuenta que la imagen que pegué acá es un PNG con transparencias. Si usan Internet Explorer, no lo van a poder ver bien: después de todo, ¡el PNG es un formato re-nuevo! (Es de 1995, Microsoft no tiene tanta plata como para mantenerse al tanto de tooodas las nuevas tecnologías). Ahora, en serio, dejen de usar esa bosta e instalen Firefox.

La otra noticia es que este sábado estoy partiendo a Holanda, por un curso de SMS que dura una semana y media (luego me quedo tres días en Madrid, que es la escala del avión, así que estoy afuera dos semanas). Quizás postee algo desde allá, pero tengo que ver cuán caro salen los locutorios internéticos.

Quinta reunión de PyAr

Python — Miércoles 19 de Enero de 2005, 06:40

Se llevó a cabo la quinta reunión de PyAr con total éxito. Como Mariano (escriba oficial) estaba de vacaciones, recayó en mí la tarea de contarles qué hicimos.

- Charlamos con los nuevos participantes, Leonardo, Octavio, David y Santiago, conociendo lo que hacen, qué hacen en Python, etc. Como nota de color, tuvimos el primer participante que no viene del área de sistemas, sino que es biólogo (Octavio, y usa Python para procesar datos).

- Discutimos el mejor framework para crear un sistema administrativo con interfaz web, tema introducido por Leonardo, cuya necesidad es práctica y surge de su contexto laboral.

- Definimos una cuestión administrativa que teníamos pendiente: ¿qué vamos a hacer con nuestra lista de correo? La decisión final es encontrar una lista que cumpla con nuestras expectativas (que pueda tener nuestro dominio y que tenga archivo) y migrar a ella. Pero antes, nada. Al respecto, yo me llevé como pendiente averiguar que características tienen las listas que puedo hostear en mi sitio.

- Expuse Decimal. Estuvo muy interesante, porque nos poníamos a discutir sobre la curvatura del círculo, que los complejos tienen infinitos todo alrededor, sobre el pelo del gato y la quinta pata del huevo. ¡Y hasta les pude contar como usar el módulo! Realmente me encantó. Ah, de paso:

>>> from decimal import *
>>> Decimal("-0")
Decimal("-0")
>>> Decimal("0")
Decimal("0")
>>> Decimal("0") == Decimal("-0")
True

- Definimos el tema del Primer Sprint PyAr: vamos a hacer el Administrador de Colas de Mensajes (nombre no oficial), con interfaces SMTP (mail), SMPP (SMSs o mensajes cortos) y MM7 (MMSs o mensajes multimedia). La primer reunión será el Jueves 27 de Enero en el mismo lugar que hicimos la reunión, ya que comenzaremos con el diseño del sistema, y no necesitamos más que papel, lápiz, y buenas ideas (y, por supuesto, cerveeeeza).



Python 2.4

Python — Martes 30 de Noviembre de 2004, 09:58

La última versión de Python ya está en la calle. Esta es una release final y estable, y se recomienda a los usuarios que actualicen a esta versión.

Python 2.4 es el resultado de casi 18 meses de trabajo sobre la versión anterior, Py2.3, y representa otra etapa en la cuidadosa evolución del lenguaje. Se mantuvieron al mínimo las nuevas características de Python, se corrigieron muchos bugs y se realizó una importante variedad de mejoras.

Entre los cambios más importantes tenemos decoradores de funciones, expresiones generadoras, mejoras al importar los módulos, y bastantes nuevos módulos (incluyendo subprocess, decimal y cookielib).

Para seguir investigando mire el What's New In Python de Andrew Kuchling, los puntos sobresalientes de esta versión, y las notas detalladas sobre Python 2.4.

Para más información y bajar los instaladores, vaya a la página oficial.

Aritmética Decimal

Python — Martes 23 de Noviembre de 2004, 17:03

Puse disponible en la web, accesible facilmente las instrucciones de cómo bajar e instalar en Python 2.3 el módulo decimal.py (en castellano y en inglés).



¿Referencia o valor?

Python — Lunes 25 de Octubre de 2004, 07:40
Lo siguiente es una respuesta mía (levemente modificada, por el contexto) a una pregunta sobre si en Python los objetos se pasan por referencia o por valor:

Python, a decir verdad, ¡no pasa los objetos!. Los objetos están en memoria, y lo que se hace es reasignarles un nombre.

Por ejemplo:

1 def func(a):
2 print a
3
4 b = "blah"
5 print b
6 func(b)

En la línea 4 se crea un objeto en memoria, tipo string, y con un contenido determinado. A este objeto se lo relaciona con el nombre "b". A partir de ese momento, cuando hablemos de "b" en este espacio de nombres, estaremos haciendo referencia a ese objeto en memoria (que es lo que hacemos justamente en la linea 5).

En la linea 6, llamamos a una función, con el nombre "b" como primer parámetro. Según la definición de la función, llamaremos "a" al primer parámetro. Dentro del espacio de nombres de esa función, cada vez que usemos el nombre "a", nos referiremos al mismo string que indicamos antes, al mismo objeto en memoria.

Resumiendo, el objeto no se copia, y no se pasa un puntero al mismo, simplemente se le asigna otro nombre en otro espacio de nombres.

>> def f(a):
print id(a)

>>> b = 5
>>> id(5)
9065408
>>> f(b)
9065408

Pensarlo de esta forma (que es lo que realmente sucede) nos simplifica la vida cuando tenemos distintos comportamientos con los objetos mutables e inmutables. Por ejemplo:

>>> def f(a,b):
print id(a), id(b)
a = 7778
b.append('?')
print id(a), id(b)

>>> c = 56
>>> d = ['pp', 11]
>>> c, d
(56, ['pp', 11])
>>> id(c), id(d)
(9064796, 11094976)
>>> f(c,d)
9064796 11094976
10047164 11094976
>>> c, d
(56, ['pp', 11, '?'])
>>>

Como vemos, al comienzo de la función, "a" apunta al mismo objeto que "c" fuera de la función, y lo mismo sucede con "b" y "d".

Y aquí es donde paga no pensar como "variables clásicas": en la primer linea NO estamos modificando una variable "a", sino que llamamos "a" a otro objeto en memoria, que no tiene nada que ver con el anterior. El nombre "b", en cambio, no es reasignado a otro objeto. Al final de la función vemos lo que acabo de explicar: "a" apunta a otro objeto en memoria y "b" todavía al mismo.

Cuando volvemos al cuerpo principal de la función encontramos que el objeto al que apunta "c" sigue estando igual (nunca se modificó), y el objeto al que apuntamos con el nombre "b" sí sufrió una modificación.

Hay un excelente artículo de Alex Martelli sobre este asunto, gentilmente traducido por Hernán Martínez Foffani.
«Anterior   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Powered by LifeType