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.

PyCon 2008 - Viaje

Python — Viernes 14 de Marzo de 2008, 13:18

Viajé a Chicago con Lucio. Iba también Riq, pero aunque nos lo encontramos en Ezeiza, él tenía otro vuelo.

El primer viaje, el más largo, no estuvo del todo mal (aunque llegó una hora y media antes, y tuvimos que esperar una hora en el avión hasta que abrió la Aduana, a las 6am). El segundo fue una porquería: esperamos como una hora porque faltaba un tornillo en la puerta de la cabina, luego cuando bajamos nos cambiaron la puerta (así que el avión tuvo que rodar hasta otro lado), y luego nos hicieron esperar las valijas en una cinta transportadora, y veinte minutos después nos avisaron que teniamos que ir a otra.

Pero luego salimos, nos tomamos el colectivo hasta el hotel (cortesía del mismo). Llegamos al hotel, nos registramos, y subimos a la habitación, en la cual ya estaba Riq, que habiendo salido después, había llegado antes...

Luego de desenvalijarnos, arreglamos con el hotel que nos agreguen una tercer cama, y fuimos a comer algo. Dudábamos si irnos hasta el centro de Chicago a pasear un poco o quedarnos a ayudar. Finalmente decidimos quedarnos, y estuvimos doblando remeras, armando bolsitas, apilando papeles, saludando gente, etc.

Cadena de producción agarrando cosas y metiéndolas en las bolsitas

Luego de como tres horas ya habíamos terminado todo (nosotros y un montón de gente que también ayudó), y la gente que coordinaba compró unas pizzas y gaseosas, así que cenamos ahí.

No hicimos mucho más, y nos acostamos tipo 11, que el primer día de las conferencias arrancaba temprano...

Vigésimo sexta de PyAr

Python — Viernes 07 de Marzo de 2008, 09:43

El miércoles pasado tuvimos la reunión nro 26 de PyAr. Aprovecho que hice la minuta (gracias Achuni por las anotaciones tomadas), y la reproduzco acá.

Tuvimos un nuevo record de asistencia, 23 personas de las cuales 5 fueron nuevos (ver el listado en la página de la minuta). Incluso tuvimos un invitado (Eric), que viene del lado de Ruby, y se acercó a la reunión para ver como era esto de tener un grupo humano, una comunidad alrededor del lenguaje, porque no lo encuentra en otros lados.

Hablamos bastante del framework LosCocos. Riq nos contó que hicieron y por qué. Tenemos cuatro features importantes, a groso modo: Escenas, Transiciones, Efectos, y Acciones para los sprites.

Con motivo de que algunos chicos se van al FISL Brazil, surgió el tema de la segunda edición de la remera. Alecu contó como había sido el proceso de selección del diseño para la Bandera, y luego de mucha discusión llegamos a la conclusión de como encarar este proceso.

Se van a poner páginas en el wiki de PyAr, una página para cada diseño que propongan, y en estas páginas se podrán recibir comentarios. El autor podrá aceptar (o no) estos comentarios e ir mejorando los diseños. Para no tener una barrera de entrada, también se podrá mandar un mail con el diseño, nos encargaremos de colgar eso en el wiki nosotros. En un momento determinado se hace un corte, y se toma una foto de esos diseños, luego del cual no se pueden hacer más cambios. Sobre estos diseños se hace la votación.

Leito sugirió de manejar compras con DineroMail, y hacer el delivery. También lo podemos hacer con PayPal.

PyCamp, Córdoba 2008. Se comentó un poquito del lado de los usuarios y del lado de los organizadores cómo había sido la experiencia, para los que no habían ido. Estuvimos todos de acuerdo en que fue un éxito rotundo. Es por este suceso que a todos nos gustaría que se vuelva a repetir, no sólo en Córdoba sino también en otras provincias. Incluso sugirieron de hacer un PyCamp de invierno.

Surgió una vez más el tema de si PyAr debería ser una ONG. Estuvimos todos de acuerdo en que no, es mucho quilombo, y los pocos beneficios que nos traería pueden ser logrados a través de varias organizaciones amigas siempre dispuestas a apadrinarnos (ya que estamos, ¡gracias!).

Siguiendo con el hilo de detalles organizativos, se empezó a gestar la idea de que en el 2009, ya que PyAr cumple 5 años, podríamos hacer el primer PyCon Argentina; estuvimos todos de acuerdo en que ya tenemos masa crítica.

Hablando de crítica... alguien contó que había comprado la matrícula en el Colegio de Ciencias Informáticas de La Plata, aunque no tenía título (está cerca de tenerlo, pero conoce casos mucho, mucho peores); estuvimos un rato charlando de cómo los colegiados son todo un negociado.

Luego, a pedido popular, PabloZ comenzó a hablar sobre la CDPedia. Nos contó que es muy importante para PyAr, porque es un proyecto de PyAr para la comunidad, y no tanto sobre mirarnos el ombligo, ya que los objetivos son altruistas. El proyecto CDPedia viene de como hace 3 años, y avanzó mucho durante PyCamp. Se había hecho bastante para relativizar los links, para que se pueda usar offline, pero era demasiado grande. Existe la posibilidad de clasificar artículos, y se armó un seleccionador de contenido que baja todos los artículos, marca los que tienen que ir, otros como que no, y te deja clasificarlos. Alecu nos contó el recorrido entero, en el estado actual, que te termina generando un .ISO. Hablamos también de que hace falta un texto que explique cómo replicar todos esos pasos, para que los que quieren ayudar puedan hacerlo.

También hablamos de PyWeek, como siempre. Humitos nos contó que en Santa Fe hubieron algunas internas sobre el contenido, especialmente porque el mismo creador de contenidos no estaba contento con su trabajo, aunque el resto sí y querían avanzar. Alecu contó que en teatro hay una regla para improvisar, que implica aceptar lo que hace el otro, y construir sobre eso, sin mayor crítica. Enfocándonos en los juegos, Humitos nos comenta que no son juegos para que los bajen de internet y los jueguen todos, sino para que un programador se divierta 15 minutos. Hay muchos problemas interesantes de dinámica de grupo que resolver.

Hablando de dinámica de grupo, el wiki del sitio de PyAr volvió a ser tema de conversación, con la queja de que no está suficientemente editable. PabloZ dice que si, pero el consenso general es que de hecho no se edita. Cuando tengamos server propio (nos van a regalar uno), tendríamos que poner un Trac + SVN (hay que organizar un sprint de instalación de python.com.ar; que la instalación no la hagan los mismos de siempre, así hay más gente que sabe cómo funciona la cosa). Obvio, primero tenemos que poder instalar el server, y para eso necesitamos que alguien nos done housing (un par de unidades de rack, energía, conexión a internet, y algún humano eventualmente disponible para ir a apretar un botón).

Tres horas después de comenzada, y con un promedio de un litro de cerveza por persona (teniendo en cuenta que había mucha gente que no tomaba alcohol, con lo que el resto tomó bastante más que eso...), dimos por cerrada la reunión y se armaron algunos grupos para jugar al Fluxx y a las Pirámides.

Python releases

Python — Lunes 03 de Marzo de 2008, 04:35

En los últimos días se han realizado varias liberaciones de Python.

De las ramas viejas se sacaron versiones con correcciones de seguridad: 2.3.7c1 y 2.4.5c1 (ambas release candidate (última versión antes de la liberación final)).

De la rama actual, salió final la 2.5.2, esta es la versión de producción (o sea, la recomendada para trabajar en el día a día).

Con respecto al futuro, salieron 2.6a1 y 3.0a3 (ambas alpha), para que se vaya experimentando.

Todas las versiones las pueden obtener de las páginas de descargas de Python (excepto las liberaciones de seguridad, sobre las cuales ya no se producen precompilados).

Todo este laburo salió en fecha, ya que estaba planeado para antes de PyCon 2008, en Chicago, en diez días.

PyCon 2008: Chicago

PyCamp, pendientes

Python — Jueves 28 de Febrero de 2008, 06:52

Aunque ya pasó más de una semana del PyCamp, hay un par cosas que no quería dejar de incluir acá (y que no tenía antes porque no fueron fotos sacadas con mi cámara).

Como ya había comentado, en un esfuerzo sin precedentes PyAr se puso a caminar al mástil ese que veíamos desde lejos. Obviamente, llevamos la bandera y nos sacamos una muy linda foto (el de los pelos revueltos no es Slash, es Marcos Dione, ¡es que habia mucho viento!).

Al infinito y más allá

Y como si fuera poco, el esfuerzo no era sólo de nuestras piernas, sino también de producción. La siguiente es la misma foto, sólo que es desde donde estábamos parando:

Que bueno el zoom

Y por último, no quería irme sin dejarles la foto del evento:

Todos los que fuimos

Nos costó coordinar, pero ahí estuvimos todos los presentes, :)

PyCamp 2008, Los Cocos, Córdoba

Python — Viernes 22 de Febrero de 2008, 13:45

Viernes

Salimos desde retiro a eso de las 10 de la noche, Alecu, Riq, Lucio, Ricardo y yo. Estuvimos charlando como tres horas, hasta que decidimos dormir un poco. La verdad, que el viaje se pasó volando, porque me desperté ya pasando Córdoba Capital... a la hora ya habíamos llegado.

Teoricamente llegábamos 9:40, pero 7:40 ya estábamos abajo del micro. Preguntamos para dónde quedaba el centro, y empezamos a caminar para el mismo. En el camino nos encontramos con otro chico, Sebastián, que había venido de Santa Fe. Cuando llegamos al centro no había nadie, pero nos quedamos alrededor de un fogón (apagado), tomamos unos mates, y esperamos que llegue la gente.

Al rato nomás cayeron todos. Entramos, desayunamos, acondicionamos las instalaciones (computadoras, bandera, wifi, etc.), y nos pusimos a organizarnos un poquito.

Con la ayuda de un pizarrón, Darni lideró el consenso grupal de cómo íbamos a encarar los cuatro días. Terminamos pasadas las 12, listos para la primer actividad (presentación y contar qué está haciendo cada uno), y esperando el almuerzo, :)

Todo lo que íbamos a hacer

Como terminamos antes de lo previsto, decidimos arrancar con la parte en que cada uno contaba un poco quién era, cómo había conocido a Python, y qué estaba haciendo ahora con Python. Lo hicimos afuera, apretujados en el borde del mismo fogón que antes, pero enseguida comenzaron a caer unas gotas, y tuvimos que volver al salón. Seguimos contando quienes éramos, incluso mientras comíamos (unos fideos con boloñesa muy ricos), y así ya entramos en la tarde.

Estuvimos un rato boludeando, mientras terminaban de configurar la red, pero como esto se estiraba demasiado, yo di una pequeña charlita sobre la Wikipedia Offline, y cómo estábamos con eso. Nos pusimos un poco a trabajar, y así se pasó la tarde en general.

En la cena (milanesas con puré de papa), John Lenton dió una linda charla sobre Responsabilidad Regional, que basicamente versó en ser responsables en como "elegimos" con nuestro dinero. Si, por ejemplo, se lo damos a una multinacional que fabrica el puré de papa explotando gente en Nueva Guinea, en lugar de a una cadena chica local, solamente porque el puré de papas sale 8 centavos más barato (o sea, obvio que no vale la pena, pero normalmente ni nos fijamos).

Luego de comer llegó el tiempo de esparcimiento. Con Javi, John y Riq nos pusimos a jugar al FreeCiv en red, ¡buenísimo! Nunca había jugado a esto en red antes, y la verdad es que es muy divertido. A eso de las dos de la mañana, claudicamos y nos fuimos a dormir.


Sábado

A las 9 de la mañana ya estaba despierto. Luego de un lindo baño, y desayunar, me puse a trabajar. Pero diez minutos, nada más, porque luego comenzó una charla muy interesante.

Mauricio Rumboll, naturista y ornitólogo, quien habló sobre el cuidado del medioambiente, las especies en extinción. Hay que prestar más atención a Vida Silvestre, más de la que prestamos normalmente.

El día se desarolló luego normalmente: comimos, comimos, y comimos (almorzamos arroz con carne, muy rico). Ah, en el medio seguimos trabajando (yo incluso llegué a una conclusión importante, con ayuda de Alecu, Chipaca y Tuute, que generó este post), hubo un evento "Web Frameworks Deathmatch", que basicamente era una charla comparativa de Django, Turbogears, Zope y Plone, y una charla de NetHackAI, que es la forma de automatizar y poder hacer bots que jueguen solos a un juego muy interesante llamado Nethack.

Ya entrada la tarde, decidimos ir a comprar unas cervezas para hacer la reunión de PyAr. Debo decir que estuvo muy buena. Aunque eramos muchos (muchos, creo que el record), y el nivel de dispersión era alto, pudimos tratar algunos temas muy interesantes. Encima, teníamos algunos detalles que arreglar, y la gente de GrULiC ya había pasado por los mismos problemas, y tenía experiencia que aportar. Incluso, tengo que admitir que llegamos a conclusiones en las discusiones (mmm... quizás faltaba más cerveza... :).

Reunión al aire libre

Luego, a comer (carne al horno con papas y cebollas), y para terminar el día, como corresponde... ¡a jugar! Antes de que se larguen los juegos de mesa hicimos una actividad muy piola: un karaoke de charlas, donde por sorteo fuimos pasando todos y en cinco minutos teníamos que explicar la charla de otra persona... algunas charlas estuvieron más o menos, pero otras estuvieron muy divertidas, :)

Jugué un rato a un juego de cartas que se llama FLuxx, en el que las reglas mismas del juego van cambiando según uno tira las cartas, lo cual lo hace bastante atractivo (pero por esta misma razón a veces se gana de muy pura casualidad... y esto no está tan bueno). Después de dos partidos de esto ya estaba listo para irme a dormir, pero vi que unos chicos estaban jugando al tenis: era un dobles, cuatro jugadores, desde cuatro laptops separadas, por red. Estuve mirando un ratito y luego incluso jugué. Ya después de esto, me fui a dormir, apenas pasadas las cuatro de la mañana.


Domingo

Sin importar la trasnochada, a las 9 ya estaba desayunando. La mañana se pasó entre un pequeño "python bug morning" que hicimos, donde se cerraron algunos bugs de Python, y el trabajo en la Wikipedia Offline.

Ambos trabajos siguieron luego del almuerzo. En un momento se nos complicó con la red, y como yo dependía de la misma justo para lo que estaba haciendo, me empecé a embolar. Para no quedarme dormido, hice unos mates y me puse a jugar con los chicos a la versión electrónica de Pioneers, un juego bastante interesante.

Igual lo cortamos antes, porque se estaba haciendo tarde y queríamos salir a caminar un rato. Subimos a una sierra cercana, donde había un mástil, y nos sacamos algunas fotos allá arriba. Entre que subimos y bajamos caminamos unas buenas dos horas y media, fue un lindo ejercicio. Al volver, nos tiramos un rato en la pileta, y luego ya vino un espectacular asadito.

A un 80% del viaje

Durante los ratos libres seguí trabajando con los bugs de que habían corregido los chicos. Hice el commit de uno de John Lenton y uno de Javi Mansilla, y me quedó para después uno de Anthony Lenton. Ah, y aproveché también para cerrar uno que tenía asignado desde hace tiempo.

Ya luego de comer, como es costumbre, jugar jugar y jugar, aunque no me terminé acostando tan tarde, porque estaba realmente cansado.


Lunes

Amaneció super nublado, y con viento de lluvia cercana. Teníamos un paseo a la mañana, pero no nos decidíamos a salir después de desayunar por cómo estaba el cielo. Menos mal, porque un rato después se largó una tormenta muy grande: una lluvia torrencial por bastante tiempo, con truenos y todo.

Con la tormenta se vinieron cortes de internet, y en el peor momento de los rayos también desenchufamos todo por seguridad (lo bueno de tener laptop es que pudimos seguir trabajando, :)).

Durante la primera parte de la mañana terminé de trabajar con el bug que había corregido Anthony, y luego ya me puse a full con la Wikipedia Offline. Estuvimos un buen rato discutiendo arquitecturas y soluciones, y luego hicimos el mapa de todos los pasos del proceso general de construcción del producto final.

Ambiente de trabajo

En el medio comimos (un pollo al horno con ensalada rusa y tomate, más arroz con atún, todo muy rico). Y luego ya me metí a codear la parte que había elegido: el índice para los títulos. Con esto estuve trabajando pila y pila hasta las siete de la tarde, donde ya habíendo logrado algo funcional (aunque todavía ineficiente), commiteé todo y me fuí a bañar y a preparar el bolso.

Luego saludamos a todos, caminamos hasta la parada, esperamos el micro, y ya comenzamos el viaje de vuelta. Todas las fotos, acá.

Como conclusión de estos cuatro días, quiero destacar lo bueno que es juntarnos programadores de distintas provincias, para no sólo programar sino también jugar, comer juntos, charlar, etc. Trabajamos, nos divertimos muchísimo, y todo esto une más aún a la comunidad, no sólo de Python o de Software Libre, sino de, aunque parezca redundante, personas.

Wiki XML a HTML, no way

Python — Sábado 16 de Febrero de 2008, 11:40

El otro día comenté sobre la Wikipedia Offline, y en el sexto comentario apuntaron a unos parsers de terceros para pasar de XML a HTML.

Si uno pudiera tener un xml2html.py que armara el HTML a mostrar al usuario a partir del XML original, los volúmenes de datos a manejar en todas las etapas del proyecto serían bastante menores.

Me alegré bastante cuando encontré mwlib, una biblioteca hecha en Python para parsear los artículos XML y generar el HTML. El primer día de trabajo en PyCamp 2008 lo pasé tratando de usar esto.

El XML que publica Wikimedia, con sólo los artículos, templates y etcéteras en la última versión (y no todas las discusiones, ni todo el historial) pesa 1.7GB, con lo cual era imposible abrir el XML con herramientas de fácil uso como ElementTree. Pero Chipaca hizo un parseador en SAX (que va recorriendo el XML gradualmente, y no tiene que cargarlo entero en memoria), que yo luego modifiqué un poco y dejé en articleExtractor.py.

Ya pudiendo separar el artículo, me puse a jugar con la biblioteca mwlib en si, para convertirlo a HTML. Acá me encontré con algunas sorpresas, pero luego de hacer algunos análisis durante un par de horas, las pudimos descartar.

Una era que teníamos la dependencia de latex, para transformar texto en formato MathML en una imágen con la fórmula matemática en si. Vimos sin embargo que en el XML teníamos el MathML, y como Firefox es capaz en sí de parsear esto y mostrarlo como corresponde, decidimos que no era un problema.

El otro punto era la dependencia en PIL, la biblioteca de manejo de imágenes de Python. Como el tratamiento de las imágenes, qué incluir y cómo era todo un tema aparte, decidimos no preocuparnos acá hasta que llegue el momento.

Y finalmente, teníamos una dependencia de perl, para crear unas imágenes de linea de tiempo. Tuute estuvo buscando un montón y realmente apenas hay de estas imágenes en la wikipedia en español. Encima, la utilización de esta capacidad en la biblioteca está complicada, porque necesita usar unos directorios en particular, y cosas así. Entonces, decidimos "tocar" la biblioteca para que directamente no use esto.

Finalmente, entonces, éramos capaces de traducir el XML a HTML. El proceso es bien simple, si se fijan el código de xml2html.py es bastante simple. ¡Y genera un HTML bastante piola! Sin embargo, dá algunos errores y me puse a ver qué pasaba.

Una de los primeros detalles es que no encontraba algunas categorías. Y esto era porque en el XML, al ser en español, están los tags como "categoría", y no como "category". Luego de revisar durante un buen rato como cambiarle el locale al parser antes de laburar, encontré que esto estaba bastante chancho: están hardcodeados en los programas estos tags para inglés y alemán, pero nada más. Feo, sucio. Pero agregué algunos en castellano y seguí experimentando. El HTML ahora se parecía más al original.

Otro gran detalle es que no encontraba unos templates. Nuevamente con la ayuda de tuute, encontramos que los templates están en el .xml grandote que teníamos: el template otrosusos era un artículo allí llamado "Plantilla:Otrosusos" (nótese el cambio de minúscula a mayúscula).

Acá me di cuenta que para más o menos poder seguir generando la info, tendríamos que extraer estas Plantillas de forma previa, para poder alimentársela al parser. Como el parser y el resto están preparados para conectarse a una base de datos como la de wikipedia, había que: o generar una base de datos similar, o seguir tocando la biblioteca para que acepte las cosas de otra forma.

En el mismo proceso, actualicé el archivo xml, ya que antes de venir para acá había bajado la última versión pero por error seguía usando la versión anterior. Y aparecieron nuevas categorías, lo que implicaría seguir modificando la mwlib a mano, no sólo ahora, sino en el futuro, :(.

En función de todos estos drawbacks y dependencias, entendimos que no podríamos pasar de XML a HTML en el momento de servirlos, en la máquina del usuario final, sino que debíamos generar una especie de htmls reducidos y más simples, de manera de procesar y guardar HTMLS de forma similar a la idea original del proyecto, pero con volúmenes más simples.

Pero luego estuvimos viendo como iba creciendo el HTML que estábamos generando (todavía faltaba incorporarle los templates), y consideramos los tamaños relativos con respecto a los HTMLs estáticos que la misma Wikipedia genera (y que eran la fuente de datos originalmente).

Entonces, luego de analizarlo, con Alecu y Tuute decidimos que este camino no nos llevaba a ningún lado, y decidimos que no valía la pena seguir explorándolo.

Powered by LifeType