miércoles, 28 de marzo de 2012

PyCon US 2012 ("lo que nunca te contaron...")

El siguiente texto nació como una especie de rant escrito en una madrugada de insomnio (tratando de escribirlo antes de olvidarme la mayoría de las cosas), pero ya está más depurado. Sepan disculpar los inconvenientes.

La Previa

Envío de Propuestas

Para 2011 había enviado dos propuestas, una charla sobre factura elctrónica (pdf, webservices, etc.) y un poster sobre "pyreplica" (replicación para postgresql con python). 
El poster fue aceptado, la charla no tuvo la misma suerte, pero recibí un correo de notificación explicando los motivos (resumido: la facturación es un nicho, y hay charlas mejores). Lo mismo me paso en 2009 en la primer Conferencia de Python Argentina, por lo que posiblemente la redacción de la propuesta no fue lo suficientemente clara y adecuada para este evento, dado que a mi humilde entender, la charla trataba sobre otros temas más generales como servicios web, pdf, cli/gui, rpc con otros lenguajes legados, bases de datos, etc.

Charla "Python Caveats: Fixing Broken Windows"

Para este año intenté mejorar la descripción de la charla, con un abtract abarcativo y un bosquejo detallado, citando referencias, links a código fuente, estadísticas, etc. Estaba inspirado por el cuasi-panel "Python Apesta" de PyConAr 2011.
Al día de hoy desconozco puntualmente el motivo de rechazo, pero seguramente este año hubo charlas mejores (de hecho las propuestas superaron en 4 veces la cantidad de espacio disponible para charlas).
Ver más adelante en la sección revisión algunos temas "no del todo documentados" relacionados con la selección de charlas. 
Posiblemente haga una entrada de este blog para ir refinando el tema.  

Poster "RAD2PY: platform+IDE for solid & predictable Rapid Application Development"

Basado en mi trabajo de tesis de licenciatura, prepare un poster para presentar:


Como toda la propuesta no entró en el poster principal, arme dos carteles complementarios (web2py y gui2py):



Felizmente el poster fue aceptado: https://us.pycon.org/2012/schedule/presentation/147/

El poster tenía contenidos similares a los de la charla, resumiendo las 200 hojas de investigación.
Un consejo: si desean presentar algo en PyCon, por las dudas, preparen un póster (hasta tienen más posibilidades que una charla relámpago, ver más adelante...)
Además, los posters se aprueban a medida que llegan (con una demora de 1 mes aproximadamente), por lo que es útil para solicitar una Carta de Invitación para ir tramitando la Visa.

Por el presente agradezco públicamente a JuanBC que me ayudó con la tipografía y temas de diseño (y lo más importante, diseño el logo de rad2py).

Revisión de Charlas

Como voluntario, participe en algunas etapas de la selección de charlas. 
Comenzar es sencillo, un email introductorio al Comité de Programa (indicando nombre de usuario del sitio web y una breve biografía) y te habilitan el acceso a todas las charlas, con la posibilidad de hacer comentarios y la correspondiente revisón. 

La revisión se basa en la técnica Identify the Champion, básicamente un puntaje entre +1, 0, -1, para literarmente defender u oponerse en alguna medida a cada charla. 
Traté de revisar algunas, revisar todas era físicamente imposible y además uno debería tener conocimientos en la materia, por lo que me limité a charlas de web, gui, postgresql, educación, etc.

Hasta donde recuerdo, como reglas generales, se debía priorizar proyectos reconocidos con una base de usuarios considerable, con código funcionando, documentación, etc. (de lo contrario, sugerían poster). Las charlas de comunidad fueron casi todas rechazadas (ver más adelante charlas relámpago). La biografia del autor era muy influyente (haber dado una charla previamente y ser experto en la materia era casi excluyente). Las propuestas poco detalladas serían rechazadas si el autor no contestaba los comentarios o no proveía más información (con algunas excepciones de autores reconocidos o temas puntuales).
En teoría se debía calificar respecto a la propuesta concreta, no sobre la hipotética charla que nos gustaría ver.

Si mal no recuerdo, las charlas con todos los votos negativos se descartaron directamente. Las que no tenían algún +1 quedaban en el limbo como dudosas. Las que tenían exclusivamente +1 se aceptaban casi automáticamente, pero fueron las menos (IIRC). El esquema es parecido al que se usó en PyConAr los primeros dos años.

Luego vino el thunderdome, un "campo de batalla virtual" por chat para "luchar" a favor o en contra de cada charla (generalmente divididas en grupos de a 3-4, por afinidad, donde se debía aceptar, separar y descartar las propuestas). En mi caso no pude seguir el rítmo (perdí la cuenta de la cantidad de reuniones por IRC, a veces dos por día) y no llegué a comprender del todo algunos argumentos (en ocasiones parecieran bastante intuitivos en los escasos minutos que había disponibles para tomar una decisión sobre cada charla).

Por último, quedaron algunos espacios vacantes por lo que se resucitarón algunas charlas (aquellas separadas en el thunderdome) a criterio del coordinador de programa, que solicitó previamente algunos comentarios no vinculantes.
En mi humilde opiñon, este sistema es bueno para conferencias científicas/académicas donde uno tiene el artículo (paper) por anticipado y realmente hay pares expertos. Para conferencias comunitarias, creo que es mejor un sistema de voto alternativo por preferencias ponderadas (similar al sistema de Python Brasil y PyConAr en las últimas ediciones, incluyendo en ciertos casos una consulta al público que en definitiva es el que va a ver las charlas, como en EuroPython y PyConAr). 

Asistencia Financiera

Una de las principales barreras para asistir a PyCon US es el costo de los pasajes, estadía y entrada al evento (no es gratuito). Si bien no es algo impagable, los importes y el tipo de cambio son considerables para ir desde Argentina (desde 300 dólares la inscripción individual, 190 dólares la noche de alojamiento, 150 dólares cada tutorial, 1400 dólares el pasaje de avión, sin contar los costos de tramites visa, seguros, etc.).

El año pasado, luego de completar el formulario,  dado la gran cantidad de solicitantes, me ofrecieron la entrada sin costo y 1/5 del pasaje. Finalmente luego de algunos días de espera para ver si se podía conseguir fondos adicionales, lo decliné para dejarle lugar a otra persona a la que le cierren mejor los números.

Este año me ofrecieron algo similar (esta vez incluyendo noches de alojamiento, pero solo 50% de descuento en la registración bonificada). Luego pudieron ampliar la beca un poco y gracias a que pude sacar el pasaje con anticipación (bajo una promoción) y una mejor situación financiera personal, decidí emprender el viaje.

La Conferencia

Tutoriales

Tomé dos tutoriales:
  • Faster Python Programs through Optimization
  • How to get the most out of your PyPy
Para decirlo en criollo, tuvieron gusto a poco. En el primero tuve que compilar una herramienta (otras directamente no estaban soportadas) y en lineas generales no tuvo la profundidad esperada. En el segundo, termine encontrando un bug (feature no implementado) que me imposibilitó seguir.

Parece que no fue algo aislado, el día previo ayude a una señora que tenía problemas para instalar Qt en su Mac, y luego al cruzarmela en la registración habiendo tomado el tutorial, no lo pudo instalar ni con la ayuda del instructor (por el tiempo que requiere), por lo que lo tomo con humor decidiendo que no era para ella, a lo que le recomendé wxPython como alternativa antes de Tkinter, que estaba por empezar a ver.

Seguramente tuve mala suerte al elegir tutoriales que no eran para mi, ya que luego hablando con Tatiana Alchueyr, me comento que había asistido a un tutorial que estuvo muy bueno.

WebDev Summit

De lo mejor que vi en la conferencia. Un día entero dedicado al desarrollo web, con varios paneles tratando las distintas problemáticas:

Me tocó reemplazar a Massimo Di Pierro como disertante en el panel "Factoring Code for Reuse", ya que por tema de horario él no podía asistir. Espero haber cumplido, lamentablemente mi Inglés no es perfecto pero viendo al moderador y charla informal posterior, entiendo que el mensaje llegó satisfactoriamente.

Lo interesante fue ver como web2py encara satisfactoriamente algunos temas planteados, que no fueron considerados (calculo por desconocimiento) en la mayoría de ocasiones, como el despliegue simil .WAR con un paquete todo-incluido; reuso de otros modelos/componentes intercambiable entre bibliotecas; y promoción de Python para la Web (windows, educación, diseñadores y no programadores, etc.).

Afortunadamente Massimo llegó luego del almuerzo y pudo dar una charla relámpago mencionando el modo en que web2py esta afrontando estos temas, espero que sirva para hacer de Python realmente una comunidad más diversa...

Más alla de esto, fue muy interesante la jornada, viendo un poco cual es la tendencia actual, cuales son los problemas que enfrentan otros frameworks y buscar formas de colaborar (que discutimos luego en los sprints).

Backstage, Registración y Desayuno

La noche del Jueves se realizó el armado de bolsas (todavía no entiendo como se llenaron 2000 bolsas en un par de horas, teniendo en cuenta que incluía bastantes materiales e incluso otra bolsa). No tengo la cuenta, pero todos fueron voluntarios, tanto disertantes como organizadores y participantes ayudaron por igual.


Por la mañana del viernes fue el grueso de registración (pasabas el código de barras impreso en la hoja, te entregaban otra hoja troquelada para hacer origami y armar el identificador con el colgante, a lo que se le pegaban las cintas según el tipo de participación):


Ayude en lo que pude en ambos, fue útil para conversar y conocer gente, por ej. le entregue la remera a Armin Ronacher, y de paso le pregunté si quería venir a Argentina.

El desayuno en el lugar también fue útil para charlar con gente y aprovechar mejor el día, lo que se complementaba con el almuerzo también en el lugar, donde por ej. nos juntamos con Tatiana para conversar temas de PyConAr 2012 y PythonBrasil 2012, y de casualidad me sente en la misma mesa que Brett Cannon, asique aproveche para comentarle sobre PyConAr (Ricardo Kirkner había hablado algo con él previamente).

Charlas 

El Viernes, Sábado y Domingo fue el evento principal. Más de 100 charlas llenaron el cronograma:

Apertura, Keynotes y Plenarias


La apertura fue muy entretenido, con un show de robots comandados por python (hubo una mínima demora esperando que la mayoria apague sus notebooks por la interferencia). Luego en el stand se pudo apreciar de cerca (ver abajo).

La primer keynote, Stormy Peters de Mozilla, no tuvo mucho que ver con Python pero si con la comunidad, el open source. Si mal no recuerdo, arrancó como la web influye hoy por hoy nuestras vidas, habló de no maltratar ni espantar a los nuevos usuarios, no imponer el software libre a toda costa, etc.
Para la segunda keynote estaba ayudando en la registración, pero por lo que escuche, fue más orientada a startups.

La plenaria del Sábado (David Beazley) fue mucho más interesante y orientada a python (anunciada como técnica y diabólica), pero me quedo un sabor agridulce al ver la conclusión final sobre el futuro (no quiero faltar a la verdad con mi mala memoria, les recomiendo que la vean ya que es muy llevadera, tiene el estilo de Roberto Alsina).
La plenaria del Domingo (Guido) obviamente fue 100% python, con un mensaje sobre el GIL y Android para pensar. En general, los consejos fueron interesantes, y el panorama del mundo Python creo que lo dejo en claro.

Charlas Programadas

Hubo charlas muy interesantes para mí como la de Armin Ronacher ("Code Generation in Python: Dismantling Jinja") y en menor medida, "Stop Writing Classes", "Web Server Bottlenecks And Performance Tuning", "RESTful APIs With Tastypie", "How CherryPy supports Python 2 and 3", "Spatial data and web mapping with Python", "Deep Freeze: building better stand-alone apps with Python". 
Si bien ninguna tuvo la verdad revelada (dificil para 30 o 40 minutos), me llevé consejos utiles de ellas para procesar luego con más tranquilidad (que todavía no tuve).

A la de Raymond Hettinger ("The art of subclassing") no pude entrar porque estaba llenno, pero aparentemente también fue muy buena.
Otras, como "Putting Python in PostgreSQL" y "web2py: ideas we stole and ideas we had", me fueron útiles desde otra perspectiva, mas que nada, el modo de presentación, la interacción y preguntas.


Una frase que me quedo dando vuelta fue "For the questions I warn you: I'm an architect so I don't know the details". Me pareció raro en una conferencia de este tipo (dado el tipo y descripción de charla). En estos casos, creo que tener de antemano el borrador de la presentación o un articulo/paper ayudaría a que no haya malos entendidos. 

También me llamó la atención que la mayoría de las charlas terminaban con un mensaje tipo "Tenemos un startup, estamos reclutando empleados!", algunas llegando al punto de sobrevolar los temas técnicos para directamente recomendar contratar la solución comercial que ofrecían. 
No digo que este mal, de hecho me parece útil conocer todas las opciones, solo que algunas me tomaban desprevenido.

En algunas charlas trate de ayudar como session runner, no sin los sobresaltos típicos (el disertante no aparecía en una charla, el session chair no aparecía en otra, el session runner -yo- llegaba tarde y temas menores), igualmente fue enriquecedor y sirvió para romper un poco la rutina. La "green room" donde se reunía a los disertantes antes de la charla y se los obligaba a terminar (grabar en el pendrive) y probar la charla en el proyector fue bastante útil. 

Charlas Relampago

Las charlas relámpago de 5 minutos que ví fueron muy interesante, lastima que el video de PyAr que habíamos hecho (JuanBC principalmente, con la colaboración de todos) no fue seleccionado...


Este año cambiaron las reglas y la selección en vez de ser por orden de llegada fue aleatoria (y el cronograma era bastante rígido, al punto de no poder cambiar el contenido de los slots que fueron adjudicados a otros miembros de PyAr). De haberlo sabido, quizás hubiera armado un poster o pedido  un stand comunitario. 


Particularmente no se si es el mejor método para elegir charlas relámpago, ya que las hojas se llenaban estando hasta dos días disponible sin limite práctico (o sea, se anotaron 2 o 3 veces más propuestas del tiempo disponible). Creo que de este modo se pierde un poco la mística, en cambio, limitar a 10 charlas + backups me parece que le da más entidad, obligando a preocuparse y negociar un poco más con otros disertantes y el coordinador  (salvo que falle la interfaz humana, como en este caso).

De hecho, este tema (expresado en un email de "feedback" en la lista de organización por quien escribe), sumado a que se rechazaron la mayoría de charlas de comunidad, quizás dé nacimiento a un track "comunidad" valga la redundancia, para agrupar las charlas que no cumplen los criterios de "notoriedada" y "audiencia" necesarios para las charlas generales.

Espacios Abiertos

Prácticamente me los perdí, estaban un poco alejados y no estaba muy atento a los temas que se presentaron. 
De hecho, con Massimo armamos un espacio abierto de web2py al que no asistí porque se me superpuso con una charla y al llegar ya era tarde (en realidad me olvidé...). 
Todavía me arrepiento ya que la charla no estuvo muy buena y me perdí de hablar con Guido, que estaba interesado en el depurador web (si, leíste bien, aparentemente GvR fue al OpenSpace de web2py...).

El Testing BOF lleno mucha gente, no me pude quedar porque ya estábamos cansados, pero tenían proyector y todo, también me queda como asignatura pendiente para la próxima.

Salón de Exposición

Expositores

El Viernes y Sábado armaron los stands de los expositores (Sponsors) y comunidad (PyLadies, Women Who Code, Pyramid). Eran varios stands, la disposición se asemeja mas a una evento comercial de TI (a diferencia de los eventos de software libre que he visto regionalmente).

Más allá del merchandising, no alcanzaban los intervalos para recorrerlo completamente e interiorizarse con cada Stand, lo que le aportaba mucho a la conferencia.   
Incluso cada tanto en el stand de NAO, los robot bailaban bajo la influencia pythónica:

 

(perdonen la calidad de la foto, la camara tenía problemas con poca luz, por suerte la perdí...)

Posters y Feria de Empleos

Los posters fueron otro punto fuerte de la conferencia a mi entender. Del hall de esposiciones levantaron los stands y cada uno armo su poster. Durante una hora y media la gente se mostró muy interesada en los más de 40 posters, incluso el mismo GvR recorrió algunos y converso con los expositores. 


El pizarron con mi poster (en ocasiones, flanqueado por Massimo en el poster secundario de web2py)


En el fondo se ubicó la  Feria de Empleos, un lugar con mesas para que los Sponsors pudieran realizar entrevistas laborales y hablar con los interesados.

Sprints de desarrollo

Las reuniones de desarrollo fueron otro punto considerable de la conferencia. Según los organizadores, se lograron juntar alrededor de 700 desarrolladores el primer día.

Si bien había proyectos para todos los gustos, estuve organizando un sprint de web2py, con varios interesados, principalmente:
  • Discutiendo temas surgidos del summit como gluino (un mini web2py que corre sobre flask, bottle, e incluso django) 
  • Implementando nuevos features, como el editor Ace para web2py, soporte para toscawidgets, coffeescript, etc.
  • Resolviendo algunos bugs y recibiendo feedback de los usuarios
El resultado fue positivo, si bien Massimo tuvo que partir temprano, estuvimos trabajando varios días y la interacción con otros desarrolladores fue muy buena, abriendo un camino para que el año que viene otro desarrollador de web2py tome la posta y continuemos expandiendo nuestra comunidad.


web2py sprint

Hallway track, cenas y Party Nights

Los pasillos en los intervalos fueron el mejor lugar para conocer gente, charlar y coordinar otras actividades, como las cenas y salidas (por cierto, no había muchos lugares cerca y encima casi todos cerraban a las 8pm por ser zona comercial, y como el transporte público existe y es regular -cada 1 hora-, conviente alquilar un auto o quedarse en el hotel).

También conversé con Josh Berkus (core de PostgreSQL) acerca de que quizás sea interesante armar un PgDay en paralelo/cerca de la PyCon y aprovechar speakers en común (me vino a la mente Hannu Krosing, quién fue DBAs de Skype y miembro del proyecto SkyTools: replicación + python, ha dado charlas en otras PyCons, etc).

Me encontré con usuarios de web2py de diversas partes del mundo (España/Finlandia, Brasil, India, Canada y por supuesto de EEUU). También me cruzé y con gente de Reino Unido, Austria, Singapur y otros países que ya no recuerdo.


Algunos días hubo fiesta, PyCon Party y PyLaydies. A la primera, si bien tenìa la entrada, no fui ya que estabamos reunidos con gente que no tenía entrada. A la segunda, fuimos y ahí con Massimo nos encontramos con Tatiana, donde lo invitamos a ambas conferencias.

Cerrando la reseña, en el lobby del Hyatt había un Pizarrón para grafitis lleno de mensajes, como ejercicio se puede comparar el  antes y después (¿por que es la progamación tu pasión? qbasic rules!): 


Yapa

Santa Clara esta en el medio del Silicon Valley, asique había cerca varios museos, incluyendo el de Intel (con su frase inspiradora: "Don't be encumbered by history. Go off and do something wonderful") y el Museo de la Historia de la Computadora (donde se exhibe el libro "The Mythical Man Month", referencia inicial de mi tesis y del póster):


 

También se puede observar el botón "Steal From Your Friends" de la comunidad DECUS, y un recordatorio sobre "Sharing Software and Advice", como muestras de cooperación de hace más de 50 años.

Post-Conferencia

Aprovechando que estabá alla, como mini vacaciones me tome unos días para recorrer San Francisco y los Parques Nacionales de la zona.

En el Sprint conocí a Ramiro da Luz, miembro de Python Brasil y organizador de varios eventos, asique pasamos el fin de semana conociendo California y entre las sequoias conversamos sobre Python, web2py, PyConAr, PythonBrasil, PyAr, APyB, el trabajo y la familia.

 
 

"La fiesta termino ... y todo sigue igual", es hora de arrancar con la organización de PyCon Argentina 2012, cualquier cosa nos vemos en la próxima reunión. Traje merchandizing para repartir!

YMMV

2 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. hola soy muy nuevo en el mundo de python y web2py .donde puedo conseguir tutoriales en español completo por que no hay mucho

    ResponderEliminar

Licencia y Aviso Legal

CC BY-SACopyright (C) 2009 - 2013 Mariano Reingart reingart@gmail.com - Visite el sitio http://reingart.blogspot.com/ para novedades. Salvo indicación contraria, el texto de esta página está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0 Unported; podrían ser aplicables cláusulas adicionales.

Se solicita mantener el aviso de copyright (enlazando al texto original), compartir las obras derivadas bajo la misma licencia, y si es, posible comunicando al autor cualquier mejora. No utilizar logotipos ni marcas sin la debida autorización de sus titulares.

Toda información es proporcionada a Titulo Informativo y se entrega como está, sin garantías explícitas ni implicitas de ningún tipo, incluyendo sin limitación, pérdida de ganancias, interrupción de negocios, pérdida de programas u otros datos en sistemas de computación o cualquier otro reclamo. Al usarla acepta hacerlo bajo su propia responsabilidad, conociendo la normativa y reglamentaciones existentes. En caso de controversias respecto del presente, usted acepta presentarlas y resolverlas exclusivamente en la jurisdicción de los Tribunales Ordinarios Civiles y Comerciales del Departamento Judicial de Morón, Provincia de Buenos Aires, Argentina, renunciando expresamente a cualquier otro fuero que pudiere corresponder.