Scripteando la nave espacial con Python

Python — Sábado 20 de Septiembre de 2008, 06:28

Casi dos años atrás (14 de Noviembre del 2006), Nicolás Giorgetti comentaba en la lista de PyAr que iba a "...ver como paso las fórmulas (quiero calcular Pi desde varias fórmulas posibles) a python.... espero q me ande! (y no queme el micro en el proceso :P)".

A ese mail, yo contesté con algo que titulé como está titulado este post, y quedó ahí. Hoy estuve viendo este post de Luciano Bello, y tuve la idea de rescatar ese mail mio, y ponerlo acá. Va casi sin modificaciones, lo único que hice fue agregarle una parte en bastardilla que indica qué fórmula usé.

Disfrútenlo, :)


Bueno, esto me gusto, :p

Me puse a verlo, e hice el programita que adjunto, usando Decimal, ;)

Si al programa le pasamos un parámetro, setea la precisión del contexto con ese número, si no le pasamos nada, deja el default.

Lo interesante es que me puse a ver con qué precisión calculábamos el perímetro de la galaxia (sí, de la galaxia), teniendo el radio de la misma, en función de la precisión de Decimal usado. El radio de la galaxia es aproximadamente cien mil años luz (el año luz es la distancia que recorre la luz en un año; teniendo en cuenta que la luz hace casi trescientos mil kilómetros por segundo, un año luz es mucho).

Busqué un algoritmo, lo codeé, usando unas fórmulas derivadas de una teoría de multiplicaciones complejas de curvas elípticas descubiertas por S. Ramanujan, aunque la fórmula usada en particular aquí fue descubierta por los hermanos Chudnovsky.

El programa basicamente calcula pi *muchas veces*. Lo calcula con una pasada, lo calcula con dos, con tres, con n, hasta que al aumentar una pasada, para la precisión dada, no hay diferencia. Tener en cuenta de que esto lo puedo hacer porque tarda poco, :)

De los tanto que probé, resultado interesante:

- Precisión de Decimal: 100 (si, cien digitos de PI)

- PI calculado:
3.141592653589793238462643383230971619092801162306759501384170438505849206906727811645883901478701687

- Error al calcular el perímetro de la galaxia: 4e-78 metros

Teniendo en cuenta de que un electron mide aprox 5e-11m, la precisión es considerable

Y el tiempo de cálculo, para los 100 dígitos en la última pasada de N vueltas, es de 74 milisegundos. Eso es para los que dicen que Decimal es lento, :D

Es por eso que digo que podemos scriptear la nave espacial para hacer los saltos en el espacio usando Python, y Decimal, :D.

Se fué otro PyWeek

Python — Lunes 15 de Septiembre de 2008, 11:50

Este fin de semana terminó otra edición de la competencia mundial semestral de hacer un juego en Python en 7 días.

El objetivo de mi equipo fue, con la excusa de hacer el juego, explorar dos técnicas/conceptos. El primero era armar un diseñador de animaciones de esqueletos, y el segundo era construir un motor de inteligencia artificial para jugar contra la máquina.

Con Lucio, la noche del sábado, madrugada y domingo, armamos una versión completa del animador de esqueletos. Luego él le agregó en la semana un editor para superponer skins a ese esqueleto, pudiendo armar animaciones completas de personajes, con sólo ponerlos en distintos tiempos, en distintas formas. La verdad, quedó buenísimo, espero que eso pase a formar parte de Cocos en algún momento...

El editor en acción

Como el tema del juego involucraba cuerdas, lo que hicimos fue una pelea de marionetas. A nivel de AI (artificial intelligence), el juego se basaba en entrenar a un aprendiz peleando contra él, y luego mandarlo a pelear contra nuestros enemigos.

La temática del juego era gauchesca: el Maestro Titiritero es el Gauchito Gil, y tiene que entrenar al aprendiz para que pelee con distintos gauchos, finalizando con el diablo mismo (¿se terminaría la "luz mala"?):

Nuestro aprendiz peleando contra el Diablo

Más allá de esos dos grandes features del juego, volvimos a tener gente importante laburando en arte, tanto gráfica como sonidos. Les dejo, como ejemplo, el fondo de pantalla del menú del juego, pero igual hay muchas otras perlas, como la secuencia semianimada inicial, el malambo vocalizado por Leíto, y cosas así...

Fondo del juego

El juego, más allá de todo lo aprendido, está bien. Veremos qué sucede en un par de semanas, cuando se terminen las votaciones. Les dejo el enlace al juego, para que lo prueben...

8vas. Jornadas Regionales de Software Libre

Python — Domingo 24 de Agosto de 2008, 18:34

Miércoles

Llegué a las 9, media hora más tarde de lo que quería, y elegí el lugar para poner el stand de PyAr en el único lugar que quedaba libre, :p.

Me puse a preparar un poco el stand, y a darle una mano a Gacq con las remeras de Organización. Estuvimos laburando bastante con Alecu, quien llegó tempranito, para armar todo el stand: poner la bandera, armar la cartelera de trabajos, desparramar los folletos, poner los avisos del sorteo de libros, etc...

No llegué casi a terminar de sentarme en el stand, que tuve que salir corriendo al aula 3.5, porque daba mi primer charla ("Entendiendo Unicode"), y porque estaba a cargo del aula para mi charla y la próxima. El aula era chica, y el proyector apareció enseguida, pero el cable de energía era corto y no llegaba al tomacorriente de la pared. Esperé un rato, pero como no me conseguían un alargue, bajé corriendo y saqué mi zapatilla (que la tenía en el stand), y usé eso.

Mi charla estuvo buena. Era la segunda vez que la daba, pero había incorporado un montón de mejoras que me había pasado Achuni, así que fue más coherente internamente, expliqué de entrada dudas que podían surgir, y llené bien la hora de charla, con preguntas y todo. No se cuanta gente vino, pero el aulita estaba llena, :)

Al terminar, me quedé ahí esperando que venga el próximo disertante, pero enseguida vino José (que era el coordinador del piso), a avisarme que el disertante se había equivocado de sede de la Universidad, e iba a llegar al rato. Así que nos quedamos charlando con la gente, pero a los cinco minutos el proyector, sin avisar ni nada, dejó de emitir luz, y no logramos que volviera a funcionar correctamente. Supusimos que se había quemado, o algo, especialmente porque escuchamos un ruido feo y uno de los chicos dice haber visto un fogonazo en el interior del aparato...

Lo llamé a José, los chicos se movieron con la eficiencia acostumbrada, y a los pocos minutos ya teniamos un reemplazo del proyector, incluso antes que llegara el disertante, el cual finalmente llegó unos 25 minutos tarde. Conectó su laptop, y luego de 10 minutos decidió que su máquina no iba a funcionar correctamente con ese proyector, y yo decidí prestarle la mía... para lo cual me tenía que pasar su charla, tarea en la que se demoró 5 minutos, también. Terminó arrancando menos veinte, pero un organizador nos avisó que podíamos extendernos hasta y cuarto, así que finalmente pudo dar algo de contenido.

Yo bajé luego al stand, y estuve ahí charlando con gente, entregando folletos, haciendo preguntitas Python para entregar los números del sorteo de los libros... bah, todas esas tareas que uno hace cuando está en un stand. La cuestión es que antes de que me diera cuenta era la hora para mi próxima charla, y me había perdido el almuerzo.

Subí al piso diez, donde tuve la buena sorpresa de que el aula era bastante grande (menos mal, porque metí 80 personas, :D ). El problema, en este caso, fue que no apareció un proyector hasta luego de media hora, así que estuve charlando generalidades primero, y dando la charla rápido después, pero estuvo todo bien, y la gente se fue contenta. Incluso me quedé como media hora de más charlando y contestando preguntas en el pasillo.

El público de mi charla, antes de que sigan llegando...

Más allá de que estuvo Raymond Hettinger en mi charla, :), tuve una experiencia loca: en la charla genérica que tuve en la primera hora, me preguntaron cómo había conocido Python. Estaba contestando la pregunta, y justo en el momento en que digo "...y entonces, luego de mi mala experiencia con Perl, viene un compañero de trabajo y me pasa el Tutorial de Python...". En ese *exacto* momento, entra por la puerta Ramón Franco, *ese* compañero de trabajo. Fue tanta la casualidad, que juro que busqué la cámara oculta...

Luego bajé al stand, me relajé, hice un mate como para almorzar algo (sí, a eso de las cuatro), y me quedé ahí charlando y leyendo algunos mails hasta que se hizo la hora de irnos, y tuvimos que despejar todo.

Me comentaron que se juntaban en una pizzería cercana, así que luego de una pequeña reunión entre los organizadores, arranqué para allá. La idea era quedarme diez minutos, porque estaba filtrado, pero me senté, trajeron cerveza y comida enseguida (después me enteré que era un menú fijo), se armó la charla y me terminé quedando como dos horas. Igual llegué a casa apenas pasadas las diez, lo cual estuvo muy bien porque estaba bastante agotado.


Jueves

Arrancamos temprano, pero más tranquilos. Fuí el primero del stand en llegar, así que luego de acomodar un poco las mesas me puse a ayudar a los chicos de Organización, llevando algunas cajas, preparando la mesa de registración, etc.

Como a las nueve y media ya me senté en el stand, porque empezó a entrar el público, y ya al toque comenzaron a caer todos los del grupete de Python. Tomamos unos mates, charlamos mucho entre nosotros y con los que se acercaban, y la pasamos bien un rato.

A las 11 nos metimos en la primer charla de Raymond: "Python 3000", la cual estuvo muy buena. Lástima que tuvo que arrancar 15 minutos tardes por problemas con el equipo de audio de las traductoras, y no le alcanzó el tiempo para los últimos tres slides.

Luego salimos corriendo a la charla de Naty Bidart, sobre PyGTK y Glade. A PyGTK lo tengo, pero ultimamente estaba dudando si me convenía aprender Glade o no, así que fui a verla. La charla estuvo interesante, y bien dada, pero era bastante básica, así que aproveché mis privilegios de "comunidad", y nos fuimos a comer todos juntos (fuimos Naty, Mariano y yo a un lugar donde estaban otros "compañeritos", y justo se sumó Javi (sí, El Principito) que había llegado a la zona por la conferencia), me senté al lado de ella, y me saqué todas las dudas "más avanzadas"...

Almorzando en un lugar donde tardan bastante en traerte una tarta...

Comimos rápido porque tuvimos que esperar bastante la comida (yo una simple tarta, aunque estaba muy rica), y volvimos rápido a la segunda charla de Raymond, "Descriptor Tutorial", la cual estuvo muy, muy buena, no sólo porque los conceptos eran super interesantes (aprendimos como manejar una maquinaria de muy bajo nivel de Python), sino tambien porque Raymond es muy pedagógico.

Ya terminada esta charla, volví al stand donde nos quedamos haciendo sociales hasta que se hicieron las seis y cuarto, hora a la que partimos un grupito para el bar donde se hacía la reunión de Python Argentina. Caminamos una doce cuadras, charlando animadamente, y al llegar, subimos al primer piso y nos empezamos a acomodar, y a rediseñar la disposición de las mesas, porque no entrábamos los que ya habíamos llegado.

Encima luego siguió llegando gente, y ya tuvimos que distribuir las mesas como pudimos, porque directamente no entrábamos en el lugar mismo. Pero el corazón es grande, y se resolvió todo bien.

Apenas entramos, cuando nos servían las mesas como estaban

Fuimos 41, lo cual es un record absoluto, y ya al ver la cantidad que éramos, y lo complicado que íbamos a estar, se adivinaba que mucho no íbamos a poder charlar. Pero hablamos un poquitito de PyCon 2009, PyCamp 2009, el próximo PyWeek, y sobre las remeras 2.0. Más info, en el log de la reunión.

Después me puse a vender las remeras que había llevado y se armaron distintas charlas. Estuve un buen rato con esto, porque no sólo es venderlas, sino también controlar lo que son los preanotados, analizar si hay excedentes, cobrar, marcar la venta, y todo complicado porque hay 14 tipos de remeras distintas (entre los distintos tamaños y colores). Pero estuvo todo bien.

Luego Marcelo Fernandez sacó el tema de las Certificaciones de Python, sobre lo cual hubo un thread hace poco en la lista de PyAr, y pegué un par de gritos para que los que se interesaban en el tema nos juntaramos a un costadito para poder hablar. Igual la gente estaba en otra, y no se cuanto me escucharon, pero se armó una charla piola en un grupito de unas diez o doce personas. En general, no nos terminamos decidiendo si las certificaciones eran algo bueno o malo, pero sí entendimos que es un tema muy complejo.

Luego vendí un par de remeras más, charlé con algunos, y luego me fui a casita a desmayarme, :p


Viernes

Llegué tempranito, como siempre, armé el stand y un buen mate, dí una mano en la Organización y me puse a escribir el blog hasta que se hicieron las diez menos cinco, cuando me fuí a ver la charla de Humitos, Alecu y Karucha.

La charla era sobre OLPC y haciendo juegos con PyGame para esa plataforma. Estuvo buena, porque revisaron muchos conceptos... pero lástima que estaba originalmente planeada como taller, pero luego se cancelaron los talleres porque la Universidad de Belgrano no proveyó laboratorios, sólo aulas, así que no se lució tanto...

Esta vez, en lugar de salir, comimos en el stand, ya que no había suficiente tiempo entre charlas como para salir a almorzar por ahí. Luego vino la charla de Humitos, sobre "Colaborando en Python". Estuvo bien, pero la tiene que rellenar con más info, y estar menos nervioso, :).

Humitos dando la charla

Como se quedó un poco corto, tuve unos minutos para bajar, y llegué bien a la charla de Raymond sobre los tipos de datos core de Python. Esta charla ya la había visto en Chicago, pero saqué más cosas nuevas, ya que es muy interesante.

Salí tarde, y me hicieron un tackle para comprar remeras, así que no llegué a ir a la charla de Achuni sobre cómo integrar información de localización con los mapas de Google, la cual me interesaba bastante. Supongo que tendré que buscar los slides por ahí, y preguntarle directamente, :)

A las cinco de la tarde estaba la plenaria de Rik van Riel (desarrollador del kernel de Linux, trabajando en RedHat), sobre por qué las computadoras se están volviendo cada vez más lentas y qué podemos hacer con eso, la cual estuvo sólo medio interesante: el tema estaba muy bien, pero el muchacho este lo hizo bastante aburrido.

Luego, la ceremonia de cierre. Habló Dax, le pasó los elementos ceremoniales a la gente de Chile para que haga la conferencia el año que viene (se hace en dicho vecino pais), y PyAr regaló los libros de O'Reilly que habíamos llevado. Luego, la foto grupal de todos los organizadores:

Los Organizadores

Y ahí terminó, sólo quedaba la joda nocturna. Esta misma recién arrancaba a las 11 de la noche, por lo que algunos nos fuimos a comer algo a la misma pizzería a dónde habíamos ido el miércoles. Cenamos, hicimos algo de tiempo, y recién luego fuimos al bar El Clásico, mismo lugar de la reunión de PyAr del jueves.

Cerveza, algo de comida, bastante joda, mucha mucha charla, y la una de la mañana que arrancó el partido de Argentina por la medalla de oro de Beijing. Yo vi un rato, pero luego levanté a Moni, que estaba durmiendo una siestita, y partimos para casa.

Otro año, otra conferencia. Otro éxito.

Mis charlas

Python — Jueves 21 de Agosto de 2008, 12:59

Como muchos me preguntaban dónde están los slides de las charlas que doy, decidí armar en la sección Enlaces de la barrita de la derecha un agrupado para Charlas donde apunté a las más interesantes que tengo.

Por lo pronto, les dejó tambien acá los enlaces para las de Introducción a Python y Entendiendo Unicode, que dí en las Regionales.

Mañana, ¡las Regionales 2008!

Python — Martes 19 de Agosto de 2008, 04:40

Mañana ya arrancamos con las Octavas Jornadas Regionales de Software Libre, donde Python Argentina tendrá un papel importante.

Como ya es costumbre, vamos a tener un Stand, donde podremos colgar nuestra bandera, repartir folletos, mostrar algunas cosas lindas, etc...

Este año, como dos años atrás, traemos a un keynote: Raymond Hettinger. El dará tres charlas, las cuales recomiendo: "Python 3000", "Descriptor tutorial", y "Under the hood - core containers".

Más allá de esas charlas, tendremos muchas que damos distintos miembros de Python Argentina, miren, miren. Yo voy a dar "Introducción a Python" (mañana mismo a la 11hs, aula 3.5), y "Entendiendo Unicode" (también mañana miércoles, a las 14hs, aula 10.1).

El jueves tendremos la reunión de PyAr número 30 (¡¡30!!), a las 19hs. Tenemos el lugar hasta las 22, pero luego la podemos seguir en otro lado si tenemos resto físico y mental... Más info, acá (¡anótense!).

Tenemos por cortesía de O'Reilly algunos libros sobre Python para regalar. Vamos a hacer un sorteo en la ceremonia de cierre de la conferencia, recuerden pasar a buscar su numerito por el stand. Antes de pasar, recuerden repasar los libros de estudio, ya que para recibir el numerito van a tener que contestar una preguntita de Python (no se asusten, son super fáciles).

Si todo sale bien, hoy me entregan las remeras 2.0. No podemos venderlas dentro de la Universidad, pero no dejen de preguntarme por ellas. Seguramente las entregaré en el almuerzo, a la salida, y en la reunión de PyAr misma...

¡Los espero!

Remera PyAr 2.0, habemus diseñus

Python — Viernes 25 de Julio de 2008, 05:17

Estamos terminando el proceso de las Remeras PyAr 2.0 que les comenté acá.

Tenemos un diseño ganador (aunque no con fondo blanco, sino de colores).

Diseño ganador

La semana que viene ya las mando a hacer, así que estamos juntando órdenes de preventa en esta página. Para anotarse allí sólo necesitan estar registrados en el sitio, pero si la quieren hacer más fácil pueden mandarme un mail a mi y yo los anoto.

Creo que llegamos a las Regionales con remera nueva, :)

Remeras PyAr, segunda versión, arrancamos

Python — Jueves 03 de Julio de 2008, 09:14

Empecé a empujar en Python Argentina el proceso de creación de las Remeras 2.0.

Vamos a seguir un esquema parecido al que se usó en el diseño de la bandera, que fue por votación. En este caso, sin embargo, vamos a hacer que cada persona que proponga un diseño cree una página en el sitio de PyAr, ponga allí una imágen con el frente y el reverso de la remera, y adjunte en la misma página (para bajarlo, pero que no se muestre), el diseño original.

El resto de la gente podrá visitar esas páginas, y agregar comentarios abajo de los diseños, de manera que el autor pueda mejorar (si quiere) su diseño. La gente, también, podrá usar esos diseños como base para propuestas propias. En general, los diseños subidos serán de dominio público.

Luego de un tiempo, se congelarán los diseños, y se someterán los mismos a votación. El que gane tendrá el honor de recibir una remera gratis, o pagar una vuelta de cerveza a todos en la próxima reunión de PyAr, según elija, :)

La fecha límite para proponer diseños es el 11 de Julio... aunque arrancó lento, espero que la gente proponga ideas. Por lo pronto, yo acabo de subir tres diseños, que nos los pongo porque quedarían chicos acá, pero los pueden ver en sus respectivas páginas [-] [-] [-]. El que reproduzco aquí es el diseño de la cuartar remera, que es muy dificil de hacer por los colores y resoluciones que implicaría... pero que me gustó mucho:

Los juegos de PyAr

Pueden ver otros diseños, más las condiciones completas del concurso, en la página principal.

¡A crear!

Python Bug Weekend

Python — Miércoles 25 de Junio de 2008, 12:27

El sábado y domingo pasados ocurrió un nuevo evento de este tipo, como ya había anunciado. No tuvo mucha repercusión en el mundo, pero sí en Argentina, donde cerramos una cantidad de bugs parecida a lo que cerró el resto del mundo.

En Buenos Aires nos juntamos en oficinas de Livra, en Belgrano, alrededor de quince personas. Las oficinas, debo reconocer, están muy buenas. Los escritorios tienen una separación entre ellos, una pared de alrededor de 30cm arriba del escritorio, lo cual es mejor que lo que tenemos en Ericsson donde te tenés que parar para darle un mate a tu vecino. No sé como será con el ruido, pero en Movistar no había ninguna separación, y nos la arreglábamos (aunque en Livra están más como amontonados).  Igual la oficina tiene mucha onda... libros, un deck al aire libre, un proyector con info, una wii, etc. Debe estar bueno.

Anyway, cuando llegué solamente estaba Martín, Victoria (su novia), y Cuerty. Probé la laptop, pero no logré que el proyector funcione correctamente: tomaba mi salida, pero mostraba como un "problema en el vertical". No sé. Al final le pasé a Cuerty la presentación de Unicode, y utilicé su máquina para dar la charla.

Luego fue llegando más gente, y a las 10 arrancamos. Martín dió una charla sobre Dummia, un proyecto nuevo para el cual están buscando gente que programe Python, y luego yo di mi charla, la cual estuvo bien (y me traje dos sugerencias para mejorarle unos detalles).

Después de eso ya nos pusimos a trabajar, hasta el mediodía en que cortamos porque llegaron las pizzas invitación de Livra (como las facturas del desayuno). También teníamos una torta buenísima, hecha por Martín:

Torta con forma del logo de Python

Luego de tan arduo día de trabajo, nos fuimos con Sabri, Cuerty, Nubis y Achuni a por cervezas (Valeria, novia de este último, cayó más tarde). La pasamos rebien, a pura Stella y picadita, tanto que cuando nos quisimos dar cuenta habían pasado cuatro horas!! Lástima que Moni tenía un cumpleaños, no podía venir.

El domingo también laburé un poco en esto, pero ya más tranqui, cerrando algunos cabos sueltos, y sólo un tres o cuatro de horas. Los resultados finales a nivel de bugs son estos, pero los resultados a nivel de experiencia es que este tipo de actividad es buenísimo, uno se divierte, ¡y se aprende un montón!

Colaborando con Python

Python — Sábado 31 de Mayo de 2008, 05:00

El fin de semana del 21 y 22 de Junio se hará un Python Bug Day.

En Python Argentina nos vamos a juntar en distintos lados. En Buenos Aires, el 21 en oficinas de Livra, y parece que todo el finde, en Santa Fé, en casa de Humitos.

La idea es trabajar en los bugs de Python, e ir resolviéndolos. La coordinación entre todos los desarrolladores y participantes se hará por el canal de IRC #python-dev, en Freenode, pero seguro que localmente también discutiremos algo en #pyar (ya que ahi lo podemos hacer en castellano).

Para participar no hace falta más que ganas y algunos conocimientos mínimos. Tengan en cuenta que hay errores y detalles de todo tipo: unos que hay que programar en Python, otros en C, algunos que lo que falta es alguna prueba e incluso otros que ni siquiera hay que programar, sino corregir algo en la documentación. Para comenzar con algo sencillo, hay una lista de aquellos bugs que son fáciles.

La idea es participar, divertirse, y aprender.

¿Qué deberían tener instalado en sus máquinas para poder participar? En la página oficial del desarrollo de Python tienen muchísima información, pero para arrancar podrían leer este buen documento que preparó Humitos sobre cómo colaborar.

¡Los espero!

Colaborando, Cocos, estadística y reunión

Python — Miércoles 07 de Mayo de 2008, 10:03

Este sábado y domingo se hace un Global Python Sprint Weekend (ya se los había comentado acá). Para aquellos que quieran colaborar, la novedad es que Humitos escribió un documento que les permitirá estar productivo en un abrir y cerrar de ojos.

¡Felicitaciones (nuevamente) a los cerebros atrás de Cocos! No sólo se mandaron una linda página, sino que subieron dos videos a YouTube, uno mostrando los efectos y el otro usando Cocos de forma interactiva. Les recomiendo efusivamente que vean esos dos videos, ¡son buenísimos!

En función del incremento de tráfico que tuvo la lista de Python Argentina en los últimos meses, y que tenemos lectores de muchas partes del mundo hispanoparlante, quise hacer una estadística comparativa con la otra gran lista en español del planeta. Para ello recurrí a Gmane, que es el puente usado por ambas listas para tener un espejo en forma de News. Luego de pelearme durante media hora con esos números (que tienen agujeros, y están actualizados sólo hasta hace seis meses), saqué un grafiquito:

Ambas listas comparadas

Por último, ¡hoy hay reunión de PyAr! ¡Fiesta! :)

PyCon 2008 - Los Sprints

Python — Viernes 21 de Marzo de 2008, 00:49

En el último post sobre PyCon 2008 contaba que había pasado hasta que comenzó la etapa de los Sprints... acá continuamos desde ese punto, el domingo a la tarde.

Hubieron tres actividades al respecto. La primera fue una pequeña presentación de Brett Canon sobre qué es un sprint (esta fue buenísima... tendría que agarrar ese video, subtitularlo, y distribuirlo...). Luego se armó un pequeño panel con algunos líderes de sprint, donde el público hacía preguntas generales sobre los sprints y esta gente (entre la que estaba Lucio, ya que lideraba el sprint de PyPy-Flash) contestaba.

Luego toda la gente se separó en un grupo por sprint y se fueron a distintas habitaciones donde estuvieron haciendo un pequeño tutorial de cada sprint, así el lunes se podía arrancar ya andando.

Para mi el domingo estuvo bastante movido, porque como era el Coordinador general de los Sprints, estuve asignando las habitaciones para los tutoriales y para el resto de la semana, cerrando las necesidades de cada sprint (proyector, pizarrón, etc.). Pero también participaba en el sprint de Lucio, así que me fui con él y su grupo a empezar a laburar.

Y encima en el medio me fui dos horas a una reunión de los organizadores para sacar las primeras conclusiones y hacer un brainstorming sobre el cierre de la conferencia, qué pasó, que no pasó, que cosas tenemos que tener en cuenta para las próximas, etc.

A eso de las once, luego de comer con la gente, ya me fui a la habitación, porque estaba bastante cansado, aunque luego me quedé allí terminando algunas cosas y me terminé acostando a las doce de la noche, más o menos.

Del lunes al jueves se desarrollaron los sprints propiamente dichos. Yo participé en el sprint de PyPy-Flash (que lideraba Lucio), cuyo objetivo es poder escribir algo en Python (o mejor dicho RPython, que es muy parecido) y poder transformar eso en código ActionScript y que compile a Flash, para que se pueda ejecutar en cualquier navegador.

El grupito que se armó para trabajar juntos

El lunes comenzamos temprano, y estuvimos trabajando duro y parejo durante todo el día. A la noche Sean and Evelyn, de tummy.com, compraron 32 pizzas para todos los sprinters, más una gran bandeja de vegetales y fiambres. Asombroso. Después de eso seguimos trabajando, hasta las doce y media, que corté y me fui a dormir, totalmente cansado.

Al otro día nos levantamos un poco más tarde, trabajamos todo el día, y como a las seis de la tarde fuimos a comprar con Riq y Lucio algunas cosas a Microcenter, que quedaba a una hora y media de viaje. Yo compré una tableta graficadora Wacom, que todavía tengo que hacer funcionar en el Linux (en la laptop no anduvo), y dos o tres boludeces más. A la vuelta, nos quedamos a comer en un pequeño restaurant mexicano que encontramos. Volvimos no demasiado tarde, así que decidimos pedir prestado el Settlers of Catán, y jugarnos un partido.

El tercer día de sprint marcó un hito importante: logramos completar uno de los objetivos que nos habíamos puesto, el de crear una prueba de concepto que mostrara un juego con la tecnología que estábamos desarrollando. Para el ejemplo, tomamos un juego simple de PyGame, y lo armamos a nuestra manera, pueden ver el resultado acá.

Para festejar (?) fuimos los que estábamos trabajando juntos más otros que se agregaron a comer a un lugar mexicano que estaba cerca del hotel. Como correspondía, cuando volvimos jugamos un partidito de Settlers.

Jugando al Settlers of Catán

La verdad es que se armó un grupo piola, todos de puntas distintas del planeta, pero gente divertida.

El último día de los prints propiamente dicho arrancó más relajado, al punto que no hicimos nada del proyecto, :p. Estuvimos boludeando un rato hasta que Lucio y Riq dieron un tutorial de Cocos, el cual gustó muchísimo. La verdad es que ellos dos tuvieron más visibilidad por estar acá en PyCon, pero quiero felicitar también (aparte de ellos dos) a Ra y Darni que estuvieron trabajando en este proyecto.

Luego del tutorial almorzamos y nos fuimos a pasear Riq, Lucio, Evelyn, Guillermo, Richard y yo al centro de Chicago. El paseo estuvo muy bueno, sacamos unas fotos bárbaras, y hasta paramos en una gran librería a comprar libros. Obviamente, cuando volvimos, nos quedamos jugando un partidito de Settlers, y después nos quedamos trabajando hasta como las cuatro de la mañana...

PyCon 2008 - Las charlas

Python — Domingo 16 de Marzo de 2008, 17:42

Primer día

Nos levantamos temprano, bañamos, y llegamos tranqui a la apertura del evento. David Goodger, coordinador general de la conferencia este año, dijo algunas palabras, y le dejó el lugar a la primer keynote, que no me gustó mucho, y luego a Guido van Rossum, que habló de Python 3000.

Luego de un break, las charlas propiamente dichas. Buffer interface in Py3k (Travis Oliphant), donde me enteré un poco más de que iban los buffers; How import does its thing (Brett Cannon), contando la maquinaria del renovado import; y Running a succesfusful usergroup (Jeff Rush), que dió consejos generales y específicos sobre como armar un grupo de usuarios.

Luego, mientras el resto de la gente comía en los pasillos, los miembros de la Python Software Foundation nos juntamos en una habitación donde también comimos y tuvimos la reunión anual, donde se hablaron varios temas (si quieren la minuta seguramente aparecerá en unos días en el sitio de la PSF). Por  lo pronto yo pregunté como era el tema de la marca PyCon, y si la podíamos usar en Argentina (sí podemos), y clarifiqué un poco cuándo se necesita que la gente que envía correcciones de Python firme un papel contra la PSF cediendo el copyright.

Después estuve en un par de charla que no me gustaron mucho, excepto la de un filesystem distribuído robusto [-], y más tarde vinieron las Lightning Talks. Como siempre que voy a una conferencia afuera del pais, hablé sobre Python Argentina (pueden ver las filminas acá). Hubieron otras charlas interesantes, contando productos, herramientas o proyectos que tengo que investigar un poquito más: Una base de datos abierta con el conocimiento del mundo [-], una biblioteca con material cultural de todo el mundo [-], y un wiki con un montón de info sobre Python mismo para dar apoyo a grupos de usuarios, con material y todo [-].

El público desde el estrado dónde hablé

La charla que di trajo inmediatos frutos. Al toque se suscribió una nueva persona a la lista, Jeff Elkner me vino a preguntar si le podía dar una mano con unas traducciones para un grupo que estaba en San Salvador, que no tienen una comunidad armada y necesitaban ayuda, y en general varias personas se acercaron a hablarme sobre PyAr, incluso gente de Uruguay, Mexico, y Argentina mismo.

Un rato después de terminadas las charlas, me enteré que iba a haber una reunión con mentores y estudiantes del Google Summer of Code. Estuvimos como una hora haciendo un brainstorming acerca de cómo habían salido las últimas dos ediciones, qué deberíamos cambiar, que deberíamos dejar como estaba, etc. Luego Google nos invitó a los que estábamos ahí a comer y beber en un restaurante cercano. La cena duró bastante, pero así y todo a las once y cuarto estaba nuevamente en el hotel. Estuve un rato abajo, leyendo mails, y luego subí, tratando de no hacer ruido para no despertar a Lucio y Riq... pero ellos no estaban en la habitación, así que me acosté, para mañana no estar demasiado roto...


Segundo día

Nos levantamos bien temprano, desayunamos y nos metimos en la plenaria para ver las keynotes. La verdad, más menos que más, ya que estuvieron haciendo unos anuncios sobre el proyecto Twisted, todo medio desordenado, y la otra keynote fue sobre aspectos legales (que de por sí es interesante, pero la charla no tenía mucha estructura y aburría).

Luego de un break, venían tres charlas a las que yo quería asistir, por lo que me anoté para ser Session Chair (o sea, la persona que presenta al que va a hablar, lo ayuda con los tiempos, maneja al público con las preguntas, etc.). Las charlas fueron SQLAlchemy 0.4 and Beyond (Mike Bayer), que me gustó bastante... entre lo que me contaron en LosCocos y esto, lo voy a probar en la próxima aplicación que haga que utilice una base de datos de forma no trivial; Roll on your own data persistence in Python (Sean Tylor), que me dió algunas ideas y un panorama general en vista a la CDPedia; y Don't call us, we'll call you: callback patterns and idioms in Python (Alex Martelli), que estuvo bien, pero había muy pocas cosas que no sabía.

A la tarde, luego del almuerzo, había una sola charla que me interesaba: Sights and sounds with pyglet (Richard Jones), que mostró el estado actual de pyglet, una biblioteca que permite trabajar con animaciones, gráficos, videos, sonidos, y OpenGL en forma general, todo haciéndolo fácil y multiplataforma... ¿no está bueno? Felicitaciones a Cocos, la biblioteca sobre la que estuvieron trabajando varios de los chicos de PyAr y que arrancó en Los Cocos, y que en esta charla se mencionó primera entre las aplicaciones de terceros que usan pyglet, :)

Filmina de la presentación de pyglet

Pasaron luego un par de charlas más, mientras yo trabajaba en otras cosas, leía mails, y otros trámites. Y luego vino otra sesión de Charlas Rápidas. Las que más me gustaron: Naturally Speaking, un software de reconocimiento natural de voz, que por lo que mostraron en vivo funciona bastante bien; Lucio y Riq presentaron Cocos, la biblioteca que les comenté antes, y fue bien recibida. Después no pude seguir mirando charlas porque tenía que ver a alguien de los Organizadores afuera, así que hasta ahí llegué.

Luego me junté con Jeff Rush, Catherine Devlin, y otra gente, para charlar un poco sobre grupos de usuarios. Resultó que Python Argentina es un caso de éxito dentro de Python mismo, y como tal estuve un rato tratando de transmitir experiencias, recomendaciones, etc. Un detalle interesante es que tenemos un modelo único: mientras que nosotros tenemos mucho tráfico en la lista hablando sobre Python, y las reuniones son más un evento social (con alguna parte administrativa), ellos tienen muy poco tráfico en la lista, y en las reuniones (que hacen una o dos veces por mes) hablan de temas puramente técnicos.

Al finalizar esa reunión busqué a los chicos para ir a comer algo. Decidimos salir, pero no ir hasta el centro, pero no tuvimos suerte: luego de ir a visitar a un restaurant que nos habían comentado decidimos volver al hotel. En el camino vimos que unos chicos estaban comiendo pizza, y decidimos hacer lo mismo: con la ayuda de la recepcionista del hotel pedimos una pizza por delivery.

Mientras esperábamos, subimos a la habitación y estuvimos jugando un rato a tener internet en las tres máquinas teniendo sólo una de ellas conexión real, y luego estuvimos viendo un par de jueguitos (en algún momento voy a poner un post sobre distintos juegos en Linux... aquellos que dicen que aquí no hay juegos no tienen idea).

Cuando llegó la pizza, bajamos a planta baja, compramos unas cervezas y cenamos. Y para terminar la noche, decidimos ir a la Open Session de juegos (de mesa), donde luego de ver un par decidimos quedarnos con uno que se llamaba Tigris y Eufrates. Pero era bastante complicado, y faltaban algunas piezas, así que lo cambiamos. Cuando volvimos a elegir, vimos que estaba el Settlers of Catán, y jugamos un partido del mismo, terminando como a la una y media de la mañana. Y de ahí, obviamente, a dormir...


Tercer día

Como siempre, arrancamos temprano, aunque cada vez menos, ;)

La primer Keynote, cortita, fue sobre como integrar mejor Python en las distintas plataformas, pero no me gustó: mucho bla bla, pero realmente no propuso nada nuevo, la única URL que dió daba error... La próxima keynote la dió Mark Hammond, y estuvo mucho mejor, habló de PyXPCOM, un componente que permite a Mozilla y Python trabajar juntos (algo que yo ya había escuchado, pero donde nunca me metí demasiado).La última keynote habló sobre el estado de la OLPC, las instalaciones en Uruguay y Perú, y las experiencias allí (estuvo más o menos).

En el break nos sacamos una foto con la bandera, que estuvo colgada en el atrio (donde estaban las registraciones) desde el inicio de la conferencia.

La Bandera, en Chicago

Y luego vino la última sesión de charlas. Fui primero a una que hablaba de Iteradores, la cual tenía algunas cosas interesantes, otras no tanto, y encima el flaco ponía 15 lineas con un algoritmo bastante complicado, lleno de pequeños detalles que justamente estaba mostrando (o sea, no podía esperar que la gente lo sepa), y sacaba la filmina a los 30 segundos, con lo cual no se llegaba a entender del todo. La segunda charla fue Core Python Containers -- Under the hood, por Raymond Hettinger, dando detalles técnicos sobre los contenedores built-in de Python; esta charla estuvo buenísima, una de las mejores de toda la conferencia. Para terminar, fui a una charla de Collin Winter, que hablaba de la herramienta de migración de Python 2.x a Python 3.x (la herramienta se llama 2to3), la cual estuvo bien, y de la que les quiero dejar la siguiente recomendación de migración para cuando quieran llevar vuestro producto o sistema de 2.x a Python 3000:
  • Mantener en 2.x
  • Corregir los warnings de 2.6 en modo -3
  • Correr 2to3
  • Ejecutar el conjunto de pruebas
  • Liberar la versión 3.x
Luego almorzamos los tres juntos por primera vez, más Daniel, un argentino que está viviendo en San Francisco. Y nuevamente, a la tarde, para cerrar la primer parte de la conferencia que son las charlas, se lanzó la última tanda de charlas rápidas. Las que más me llamaron la atención fueron una sobre el sitio Slide, que manejan billones de hits HTTP por día, guardan billones de fotos, tienen dos o tres millones de fotos nueva por día (etc, ¿van tomando la idea del tamaño?), y que manejan todo con Python; y la otra sobre concurrencia en Python, que mostraba la existencia de las bibliotecas SafeThread, PyProcessing, PProcess y Parallel Python.

Y acá terminamos con la primer parte de la conferencia, ya que después de un pequeño break arrancamos con la parte de los Sprints, pero sobre esto vendrá otro post.

Powered by LifeType