PyCon 2005, día 2

Python — Viernes 25 de Marzo de 2005, 06:31

La charla de la mañana hoy la dió Guido Van Rossum, creador del lenguaje y BDFL de Python (BDFL es Benevolent Dictator For Life, algo así como Dictador Benevolente de Por Vida). Estuvo muy bien, porque mostró algunas estadísticas sobre como está Python en este momento en el mundo, y luego habló sobre el futuro de Python, desarrollando algunas ideas que se estuvieron hablando los últimos meses sobre cómo y cúando se ejecutarán los pequeños pasos que marcan la evolución del lenguaje (esté es uno de los puntos fuertes de Python: evoluciona lo suficiente como para nunca quedar atrás, pero lo hace al mismo tiempo lo suficientemente despacio y de forma controlada como para no complicarle la vida a los desarrolladores).

Luego Steve Holden presentó a la Junta de Directores de la PSF, los cuales contestaron preguntas del público. Estuvo interesante, porque mostró un poquito sobre la organización que está atrás del lenguaje.

Tuvimos un break, y no fuí a la primera charla: no había nada que me gustase lo suficiente y me quedé preparando una Charla Rápida sobre Money. Sí fui a las otras dos charlas antes del mediodía: una explicaba como desarrollar aplicaciones para distintas plataformas, y no estuvo muy interesante. La otra mostró PythonCard, una aplicación para la construcción de intefaces gráficas. Está última me dio ganas de probar el producto, porque más allá de la construcción misma de la aplicación, que no me gusta, tiene algunas utilidades integradas muy piolas, como un intérprete interactivo que te permite jugar con los widgets de la aplicación que está corriendo en ese momento o una ventana donde te muestra todas las señales que se van generando (como que se movió el mouse, o se apretó alguna tecla, etc.).

Luego del almuerzo comenzaron las Charlas Rápidas. Son presentaciones que duran cinco minutos nada más. La idea es mostrar algo que no es grande y que no lleva más que ese tiempo, y son interesantes, porque en una hora se ven muchos temas distintos. Hubieron varios muy divertidos. Yo expuse la de PyAr y la de SiGeFi.

Me sorprendió lo bien que fue recibida la de PyAr. Por un momento dudé si a alguien le iba a interesar un grupo en otro pais, pero en la parte que decía que ya teníamos 37 miembros, aplaudieron todos. Y al final, cuando mencioné de que todavía teníamos que hacer remeras, hubieron varios que dijeron "yo quiero una!", así que cuando reveamos el tema de hacerlas, debemos tener en cuenta que varias serán "for export", :D. La de SiGeFi gustó tambien, e incluso "recluté" algunos colaboradores.

El próximo bloque de charlas lo pasé en el mismo sitio (el anfiteatro del primer piso), con las charlas de Alex Martelli sobre descriptores, decoradores y metaclases, la de Mike Fletcher (que se le complicó con la laptop y no estuvo muy buena), y nuevamente una de Alex sobre iteradores y generadores que estuvo fantástica.

Ahi terminaron las charlas del día, pero como Anna me había dicho de ir a comer los tres (con Alex), me quedé esperando que él saliera de la reunión de miembros de la Fundación. Cuando terminó, fuimos al mismo local de comidas mexicanas que fui yo la otra vez, pero esta vez pedí un "Fajita Burrito": rico.

Voy a subir esto a la BdV mañana, no tengo red (realmente sí tengo, route -n me indica que apunta todo a un gateway, como corresponde, /etc/resolv.conf tiene los datos correctos, y un ping al gateway funciona pero no a los DNSs, por lo que no puedo resolver un puto nombre). Son las diez y media de la noche, es temprano y podría esperar a ver si "vuelve la interné" pero el ritmo acelerado de estos últimos días me dejó muy cansado, así que me voy a dormir.

PyCon 2005, día 1

Python — Miércoles 23 de Marzo de 2005, 19:35

Laaaaaaargaron!

Llegué tempranito, la verdad es que me desperté a las 6 y no me pude volver a dormir. ¡Y eso para mí es un montón!. Hasta para afeitarme tranquilo tuve tiempo, :). La verdad es que estaba un poco nervioso, pero es ese nerviosismo disfrutable, como antes de dar un final en la Universidad (o sea, es como andar en montaña rusa, es una sensación horrible, pero uno aprende a que le guste).

Me registré y me dieron una remera, una bolsita con un par de papeles, un pin, etc. El kit básico del conferencista. Desayunamos y bajamos a el primer piso, al teatro, donde se abría formalmente la conferencia. Primero habló Steve Holden, chairman de la PSF, donde contó algunas novedades interesantes y otros formalismos.

Luego habló Jim Hugunin, de parte de Microsoft, sobre Python en la plataforma .NET. Realmente estuvo interesante la charla, ya que mostró ejemplos, y hasta se animó a echarse un código ahí en vivo. Un programita corto, pero complicado, donde compilaba en .NET una clase genérica y luego creaba una función en IronPython y se la pasaba directamente (o algo así, no se nada de .NET). El punto es que el público se la complicó a propósito, pero al pibe le anduvo (aunque él no estaba muy seguro, ¡les juro que transpiraba!), y el anfiteatro aplaudió a rabiar.

Luego se hizo un break, antes de empezar con las charlas. Ahí conocí a Guido van Rossum y a Raymond Hattinger, que eran dos de los que me quedaban por conocer. Ah! Y en el desayuno me encontré con Anna Ravenscroft (para ser exactos ella me encontró a mi), coautora del Python Cookbook y contribuidora a Python en general (y también es la esposa de Alex, ya que estamos).

Mientras se daban las charlas de la mañana estuve contestando algunos mails y revisando la presentación, para ver principalmente cuanto tiempo me llevaba darla. Me dió un total de 28 minutos, lo que ayer hubiese pensando que estaba bien (después de todo la charla tiene asignado un espacio de media hora). Pero hoy a la mañana, en la presentación de Steve, me enteré de que la idea cuando dicen media hora, es que sean 20 minutos para la charla, 5 para preguntas, y 5 para permitir a la gente moverse de un lugar a otro. Así que de alguna manera voy a tener que achicar los tiempos...

Comí algo de lo que había al mediodía (cuando llegué ya se había acabado todo lo bueno, así que me conformé con algo que era mozzarella, tomate, lechuga y fideos, pero no comí los fideos), y me fuí a la sala donde era mi charla para conectar la notebook y ver que todo estuviese bien. El proyector que había ponía los colores feos, y luego dejó de andar. Entonces Michael (Chermside, que daba la parte para principiantes de Decimal antes que yo) fue a buscar otro proyector. Este estaba mucho mejor, muy muy bien.

Al final arrancamos, con alrededor de cuarenta personas en la sala. Michael dió su charla muy bien, y luego me dejó a mi la posta. En los tres o cuatro minutos de cambio de charla llegaron más personas. Cuando empecé, el público llegaba a sesenta personas. Encima, estaban todos: Raymond, Alex, Anna, Brett, Tim... ¡hasta Guido! Como para ponerse nervioso, ¿no?

Pero lo sobrellevé bastante bien, e incluso fue divertido, porque cuando no me salía una palabra en inglés, se la preguntaba al público, :D. Luego de la charla, esa sala estaba vacía, por lo que aprovechamos para una sesión de preguntas y respuestas más distendida. Estuvo muy bueno. Y parece que realmente estuvo bien, porque varios me felicitaron, :D

Luego fui a la charla de Alex sobre Patrones de Diseño, y me quedé a la de Bruce Eckel, que habló sobre cómo el lenguaje que uno usa para programar realmente cambia el enofoque que uno aplica a los problemas, todo desde el punto de vista de programación orientada a objetos. Estuvo muy buena. Al terminar esa, fui a la charla de Anna, pero la había reprogramado para el otro día. Por lo tanto, estuve haciendo un poquito de sociales por aquí y por allá y luego me puse a armar algunas ideas para el Espacio Abierto que tuve sobre Money. A las seis fuí a la charla de Brett sobre Inferencia Localizada de Tipos, charla que estuvo piola.

Cuando finalizó, fuí directamente a la sala donde tenía el Espacio Abierto. Basicamente fue una reunioncita donde nos juntamos Anna, Alex, tres personas más que no conocía, y yo, y estuvimos tirando las primeras ideas para Money. Lo encuadramos bastante en lo que queríamos, pero la media hora se acabó enseguida, por lo que supongo que armaré otro Espacio Abierto mañana o pasado, y quizás arme también una Charla Rápida (como las que voy a dar de SiGeFi y PyAr). Veré.

Al terminar esta reunión ya eran más de las siete y cuarto, así que enfilé para casa, ¡era tardísimo!


Fueron los Sprint de PyCon 2005

Python — Martes 22 de Marzo de 2005, 18:02

Hoy fue el último día de Sprint. Mañana ya empieza la Conferencia propiamente dicha.

Sí me estaba olvidando de alguien a mencionar los más conocidos aquí: Martin von Löwis, Michael Chermside y Armin Rigo. Y ayer vino Steve Holden, que no es otro que el Chairman de la PSF (Python Software Foundation).

Estos dos días fueron muy similares a los otros a nivel trabajo. Realmente es muy lindo poder dedicarle varias horas seguidas a los proyectos que uno tiene, sin estar cansado de trabajar todo el día. Y es muy productivo trabajar en conjunto aunque sean cosas por separado, ya que cuando uno normalmente se distrae, lo hace para engancharse en otra conversación y aprender algo nuevo.

Por supuesto, hay de todo. Ayer estuve media hora fumando y charlando con Alex Martelli sobre pescado ahumado y salado, y las formas de conservarlo, para qué se usaba, y esas cosas. Muy pytónico, ¿no? :p

Una noticia interesante: ¡Me invitaron a EuroPython! (Suecia, fines de Junio). Todavía no definí las charlas que voy a dar. Seguro que iré por una de Decimal, pero tengo que decidir si voy a dar alguna sobre Money (un tipo de dato específico para manejar dinero), o dar una charla sobre cómo es desarrollar para Python sin ser yanqui (sugerida por la persona que me contactó, pero algo ya me había dicho Michael Chermside sobre que sería interesante que yo escriba algo de eso). O incluso podría dar ambas, pero tres creo que es demasiado...

Razonando mientras escribo, quizás sería interesante armar un Sprint sobre Money, en lugar de una charla, y que más o menos salga ese proyecto definido desde ahí. Podría ser.

Actualización: Estuve charlando con Alex Martelli, y llegamos a la conclusión que lo mejor es tener un Open Space (sería como una charla abierta sobre un tema; muy piola para discutir especificaciones) aquí mismo en PyCon, continuar el desarrollo de las especificaciones por la lista luego, y armar un Sprint para implementar Money en EuroPython.

Mi último trabajo de los Sprints fue armar la presentación de PyAr. Estoy viendo lo de pedir una URL piola, ¡quizás se nos de!

Primeros dos días en PyCon

Python — Lunes 21 de Marzo de 2005, 13:44

Comenzaron nomás los Sprint de PyCon 2005.

Basicamente un Sprint es un evento donde varias personas se juntan fisicamente a hacer lo que el resto de las veces realizan por separado: diseñarw, echar código, etc...

El ámbito físico de PyCon son dos salas del tercer piso de la GWU (George Washington University). En una sala se trabaja principalmente sobre Zope y Twisted. En la otra los temas son AST, PyPy, Distutils y un par más. Yo estoy en la segunda sala, tratando de aprender un poquito de AST, y ayudando a Brett Cannon a que el documento explicativo del compilador que está armando quede listo para que lo entienda cualquiera (aportando mi extremadamente útil punto de vista del ignorante total, ;). No es que haga eso solamente. Estoy preparando las charlitas de SiGeFi y PyAr, trabajando un poquito en SiGeFi y Decimal, y un montón de temitas varios más (ya que estamos, subí las presentaciones de SiGeFi y Decimal por si las quieren ver; están en .sxi, necesitan OpenOffice para verlas).

La sala no es nada especial, un montón de mesas y sillas, un proyector, etc. Tenemos WiFi y hay unos hubs para los que necesitan ethernet por cable. Enchufes por doquier, los pisos llenos de cables (tapados con cinta para no engancharlos), café, comida. Y mucha buena onda, para todo. Ese es el ambiente en general.

Hay momentos en que están todos callados trabajando, muy concentrados, y hay momentos en que la algarabía es total, todos charlando, riendo, etc. La verdad es que está muy bueno, porque te permite conocer a un montón de gente que antes sólo era un remitente en un mail. Alex Martelli, Tim Peters, David Goodger, Fred Drake, Brett Cannon, Andrew Kuchling, y me debo estar olvidando de alguien seguro. Fumarme un cigarrillo con Alex o Tim, o ir a comer con Brett o Andrew, no son cosas que se puedan hacer mucho por mail.

Los sprints comienzan a las 8 de la mañana (aunque los primeros dos días llegué tarde porque el subte se quedó parado veinte minutos en el medio del camino). Hay gente que se llevó una cafetera y hace café, yo hoy me fui a comprar un cafe con leche. Normalmente trabajamos hasta eso de las doce, doce y media, y vamos a comprar algo para comer (y nos traemos). Luego le pegamos hasta eso de las seis, por supuesto con las interrupciones normales para ir a buscar un café, etc. Todo muy distendido.

Dos cosas que me asombraron de Washington. La primera es la forma de manejar (autos, camiones, etc.). Cuando hay un cartel de stop, o incluso en la bocacalle de una avenida, ¡los tipos paran!. Si, detienen el vehículo, miran, y luego arrancan nuevamente. Aunque no venga nadie.

La segunda es que cuando uno va a comprar algo, el precio anunciado (o el que te dicen cuando les preguntás) no es el precio final. Por ejemplo, ayer fui a comer a un lugar de comidas mexicanas, y pedí una ensalada (basicamente el contenido del burrito pero sin la tortilla alrededor) y un agua. Según los precios, el total era $7.99. En la boleta, los precios suman $7.99. Pero después le meten el impuesto (en este caso $0.80) y te cobran eso. Resultado: es dificil saber cuanto vas a gastar. El problema realmente es que el impuesto no es el mismo en todos lados; cada estado tiene su impuesto, eso seguro, pero creo que también varía según la zona, o el tipo de local, etc.

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