PyConEs 2017 Cáceres

Quizá llegues aquí de rebote y no sepas lo que es PyConEs, así que voy a hacer un breve resumen. PyConEs es la conferencia del lenguaje de programación Python más importante de España. Se celebra una vez al año en una ciudad distinta y en ella se juntan amantes de este lenguaje. La comunidad de Python, además de ser enorme y estar llena de apasionados pythonistas, es una comunidad inclusiva y abierta. Es un evento totalmente recomendable repleto de charlas interesantísimas.

Es mi tercera PyConEs. Por lo visto, y sin buscarlo, sólo asisto a las PyConEs impares, así que asistí a la de 2013 en Madrid, a la de 2015 en Valencia y a la de Cáceres este año, del 22 al 24 de septiembre de 2017. En la primera a la que fui, en mi universidad, no tenía ni idea de python. Acababa de ponerme con el lenguaje y apenas sabía algo de su sintaxis y bondades. Pero había algo en él que me atraía poderosamente. Me pagaban por trabajar en otro lenguaje de programación, con otras tecnologías bastante más antediluvianas. Hoy, 5 años después, puedo decir que tengo un trabajo python-based, así que quizá PyConEs fue el punto de ruptura que me hizo decir «Eh, yo quiero trabajar en esto«.

Y ahora, llega el momento del despelleje. Esta vez no me voy a extender mucho sobre cada punto, sólo haré un breve repaso sobre los pros y contras que he encontrado en esta edición. Todos los comentarios son hechos desde el respeto y desde mi opinión personal.

Lo bueno

Casi todo. Cáceres es una ciudad preciosa, que pude disfrutar un poco al salir de las charlas (¡Con concierto de rock incorporado!). El complejo cultural San Francisco es un sitio bien dotado para las charlas. Estaba cerca del centro, así que pudimos ir andado, pero además tenía un parking amplio por si el alojamiento estaba más lejos.

Los temas de las charlas y la cantidad de ellas entre las que elegir estuvieron muy bien. Mucha variedad de una comunidad que se ve que cada vez está más madura. Sobre los talleres del viernes no puedo opinar, ya que no llegué a tiempo: cosas de hacerse el mismo día el viaje Viena-Madrid-Cáceres…

Hubo tanta variedad y calidad que tengo apuntadas un montón de charlas a las que no pude ir porque estaba en otro track.

Y como no, lo mejor, la gente. Siempre. Como dijo acertadamente Naomi Ceder en la apertura «Vine por el lenguaje, me quedé por la comunidad«. Yo no soy persona de comunidades, pero en esta me siento muy a gusto. Y eso es un gran avance son respecto a otras convenciones a las que he ido una vez y no repetiría ni como proyecto sociológico.

Lo no tan bueno (Polite mode ON)

Desde mi punto de vista lo peor ha sido el nuevo formato de charlas de 25 minutos. Se mascaba cierto estrés en ponentes que no estaban acostumbrados a un formato tan corto. Aunque algunos ponentes usaron su tiempo de forma muy eficiente, no fue el caso de la mayoría. En el momento en que había un problema técnico y se atrasaba la charla 5 minutos, era imposible recuperarse y había que robarle tiempo al coffee break o a la hora de la comida. Es una opción para acomodar más charlas en el mismo tiempo, pero sé de primera mano que ponentes lo pasaron mal con el tiempo, iban atropellados, casi hablando concurrentemente. A mí no me gustó, me quedo con un formato más largo, aunque haya menos charlas. ¿Se podría votar esto para el año que viene? Yo lo dejo ahí por si este artículo cae en manos de alguien que pueda hacer algo para cambiarlo. 🙂

La comida fue otro punto flaco de PyConEs Cáceres. No hubo variedad suficiente para atender las necesidades alimentarias de la gente. Y no sólo eso, sino que el catering me pareció excesivo. Prefiero que me entreguen una cajita con un bocadillo, postre y bebida, que tener que esperar a que me sirvan el rancho en un bol minúsculo para guarnición y tener que comer de pie algo que no está preparado para ello. El segundo día sí dieron más variedad de comida, pero igualmente no me pareció la mejor opción. Para un picoteo, sí, para comer, definitivamente no.

Como detalles menores hubo una charla en la que tuvimos que ir al coro de la sala principal y no se oía nada de nada. No nos dejaron entrar por abajo, y entre la lejanía, los barrotes y la mala acústica, fue una charla perdida que veré en vídeo. Y algún que otro caos organizativo (bolsas, emplazamiento de los stands), pero nada reseñable.

Conclusión

Un año más he disfrutado muchísimo de la PyConEs. Las otras dos veces fui por amor al lenguaje, esta vez he ido, además de por placer, por trabajo (¡Gracias Openshine!). Bueno «por trabajo» no es la mejor frase, he ido por placer con gente del trabajo. Como punto personal me faltó mucha gente con la que suelo ir. Espero el año que viene reencontrarnos de nuevo.

Yo ya estoy esperando PyConEs Málaga 2018, además de porque Málaga es una de mis ciudades favoritas del mundo mundial, junto con mi Madrid natal, porque me lo paso muy bien y aprendo mogollón.

Por último quería agradecer a toda la gente que forma parte de esta comunidad (sí, a ti que me estás leyendo) que exista algo tan fabuloso como PyConEs. ¡Gracias! Nos vemos el año que viene, porque espero romper el hechizo que sólo me deja ir en años impares.

Si tienes algo que decirme, puedes hacerlo en los comentarios o a través de mi twitter @davyria.

PyConEs Valencia 2015 desde el patio de butacas

Este fin de semana he asistido a la edición PyConEs 2015 en Valencia. Daré mi opinión sobre la organización, charlas y talleres, desde un punto de vista totalmente subjetivo y sesgado 🙂

PyConEs Valencia 2015

Es mi segunda PyConEs. La primera, en 2013, fue en mi universidad: la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid. En 2014 no pude asistir a Zaragoza, así que no puedo comparar las tres.

Organización y Ñam-ñam

Lo primero, la organización: Brutal. De buena. Han sabido llegar al público objetivo, mantenernos informados en todo momento y han hecho un gran trabajo. Es difícil como asistente saber todo el esfuerzo que hay detrás. Los asistentes sólo percibimos que todo ha funcionado bien, como una máquina bien engrasada. Normalmente la gente se queja sobre las cosas malas, pero cuando no hay nada malo y todo es como debería ser, no se dice nada. En este caso, enhorabuena por el trabajo bien hecho.

Personalmente agradezco a la organización de PyConEs y a los patrocinadores porque sin ellos este año no podríamos haber asistido. Y es que hacen mucho porque las diferentes brechas sean mitigadas para que todos podamos asistir.

La Escuela Técnica Superior de Informática de la Universidad Politécnica de Valencia es un sitio bien dotado y bastante cómodo para asistir a un evento como PyConEs. El welcome pack estuvo bien, bolis, regalitos, bolsas de tela y camisetas!

La comida en la cafetería fue variada. Alguien dijo que había demasiado dulce en los coffee breaks y poca comida sana. Por el precio de la entrada, esa cantidad de charlas, comida y dos coffee breaks creo que son más que suficientes.

Charlas plenarias, el sandwich perfecto.

Los oradores plenarios, Yamila en la apertura y Víctor en el cierre, dieron dos grandes charlas, cada uno con su estilo particular. Ambos se merecen todo el respeto y un aplauso virtual por subirse al escenario y contarnos una historia.

Python, Plutarco y Yamila

Yamila Moreno, en su charla de apertura nos habló sobre Plutarco, Python, la diversidad y, básicamente actuó como defensora de la inclusión de minorías para heterogeneizar un mundillo ampliamente representado por el hombre blanco cisgénero entre 20 y 40 años. Toma frase.

Si bien me gustó mucho lo que contó y cómo lo contó, con su historia de su amiga inmigrante Roxana, y la sorpresa que nos dio al final sobre que no todo es lo que parece, no estuvo exenta de polémica. Mucho se habló esa noche sobre el tema en las PyBirras en el bar Olhöps. Por supuesto, al yo ser parte de una de esas minorías como mujer, tuve que dar mi opinión unas cuantas veces. No es que mi opinión sea más o menos importante, simplemente es la mía. Creo que hay que cambiar las cosas desde el principio, con la educación. A día de hoy, cuando en informática ya hay menos tituladas que titulados, menos inmigrantes que españoles, menos personas con recursos que personas con ellos, no se puede pretender que haya por ejemplo equipos técnicos de 50% mujeres y 50% hombres, porque no se acerca a la cifra en el mundo real, es decir, hacer discriminación positiva no es una buena idea. Pero tampoco es buena idea tener que convertirte en algo que no eres para mimetizarte con el entorno.

Como ella, soy también de la opinión de la guerra de guerrillas. Quizá yo sola no pueda cambiar la sociedad, pero sí podré ayudar a cambiar mi entorno. El detalle de la Pepa y cómo nos dio un pequeño toque de lo mucho que nos queda aún por mejorar, me encantó. Pero curiosamente el problema no somos nosotros, un colectivo bastante tolerante. El problema, como digo, creo que viene de antes, de la educación y de la propia sociedad.

Sobre Víctor Terrón (Pyctor) decir que me pareció un gran ponente. Hizo una charla muy amena, divertida y a la vez educativa. Y eso para la charla de cierre, cuando ya estábamos todos cansados, es genial. Habló sobre Dijkstra, la complejidad de los algoritmos y el uso del heap para calcular distancias en un grafo, entre otras cosas. Casi nada.

Y por último, ponerse a programar ahí en frío para hacer el sorteo final es de ser un valiente. Todos en la soledad de nuestros escritorios somos capaces de hacer un par de ranges para seleccionar aleatoriamente dos números. Pero en un escenario, con un Mac casi sin batería y el efecto demo intentando atacar, creo que es toda una proeza. A ver cuántos pueden hacer un sorteo en 2 minutos con su lenguaje de programación favorito, sin anestesia ni nada.

El core: Las charlas

Charlas de PyConEs

Este es el alma de la PyConEs: las charlas. Para quien no pudo asistir, comentaré que había tres tracks: básico, avanzado y científico. En algunos casos me hubiera gustado tener un clon, porque había horarios en los que me interesaban dos e incluso tres charlas simultáneas. Por suerte podré ver los vídeos y presentaciones a las que no pude asistir. También hubo momentos en los que me pasó lo contrario, no podía elegir ninguna porque no sentía que ninguna fuera de mi interés, pero bueno, nunca llueve a gusto de todos…

La dificultad de las charlas a veces no tenía que ver con el track asignado: asistí a charlas básicas en el track avanzado y viceversa. Entiendo que ha sido un trabajo difícil seleccionarlas, casi de encaje de bolillos. Pero este podría ser un punto a mejorar en futuras ediciones.

Desde mi humilde posición pediría un esfuerzo mayor en la selección de las charlas, quizá permitiendo una votación abierta de los asistentes. Nadie mejor que nosotros para saber a qué queremos asistir ¿No? No por eso digo que estuvieran mal, pero me da mucha curiosidad saber cuáles se quedaron en el tintero.

Hubo algunas salas que se llenaron hasta el punto de tener que verlas de pie, hombro con hombro, donde no cabía ni un alfiler. Quizá si hubiera habido una consulta previa de asistencia, no vinculante, se hubiera podido dimensionar mejor.

Otra cosa a mejorar es la forma de dar las charlas en sí. Por ejemplo, el uso de colores con poco contraste en las presentaciones. Si no sabes si azul sobre verde se va a ver bien, utiliza negro sobre blanco, que siempre funciona y está de moda :D. Puede que no quede precioso, pero es preferible la legibilidad sobre tener una presentación cromáticamente rica, que no bonita. Otro punto a mejorar es evitar poner 100 líneas de código en la pantalla o mucho texto. No se lee, no se ve y en muchos casos no se entiende y no sirve para nada. Pero sobre todo y lo más importante es prepararse la charla. No es que todos tengamos que ser unos comunicadores excelentes recién salidos de TED. Pero si hay gente que viene a ver lo que tienes que decir, qué menos que se vayan con la sensación de que has dedicado un tiempo a prepararte la presentación. He de decir que esto último no pasó mucho, y que quizá los nervios nos hagan pasar malos momentos.

En todas las charlas he aprendido algo, puede ser una nueva herramienta, algo que desconocía de Python o simplemente cómo hacer o no hacer las cosas. Lo mejor ha sido la variedad de charlas y temas, que para tratarse «sólo de Python» es increíble. Ha habido mucho nivel. Muchas gracias a todos los ponentes por tener la valentía de subiros allí y contarnos cómo hacéis las cosas. ¡El mundo necesita a más gente como vosotros!

Asistentes, networking y sinergias

Asistentes en PyConEs 2015

Lo que más me gusta de PyConEs es el buen ambiente que se respira. Dos días de conferencias sobre algo que te gusta es el perfecto ecosistema para sentirte a gusto. Desde luego no sufrimos mucho. 🙂

Para mí PyConEs es una oportunidad de aprender y una inyección de positivismo.

Peeeeero… Aquí es donde me voy a dar un poco de cera a mí misma. Desde Madrid, Blazaid y yo ya sabíamos que nos íbamos a encontrar con antiguos compañeros de la universidad o ex-compañeros de trabajo (y fervientes amantes de Python), así que al llegar nos unimos a ellos. También nos relacionamos con gente desconocida, pero he de decir que sobre todo estuvimos con el mismo círculo. Con lo cual el networking fue escaso. Tampoco es que yo tenga un gran don de gentes (Blazaid sí, además de ser compositor de chistes), pero imagino que cuando alguien te ve en un grupo grande es más difícil acercarse a ti.

No pude entablar conversación con los 400 asistentes y no sé si los demás tendrán esa misma sensación de los inevitables mini-grupos. Cuando fuimos a las PyBirras seguimos con los conocidos y fuimos a cenar con ellos. Fue uno de los mejores momentos de todo el fin de semana, nos reímos mucho, a pesar del frío. Pero eso es otra historia… Casi un documental de National Geographic.

Quizá se pueda fomentar de alguna manera conocer a otras personas allí, sin tener que darte de alta en un servicio y publicitarte a modo muro de facebook.

Conclusiones de PyConEs

Para resumir, la sensación que me ha dejado PyConEs ha sido positiva. Podría dar una nota de 1 a 10, con dos decimales incluso, pero creo que en este caso no sirve de mucho. Prefiero decir que me ha gustado y que repetiré, mientras pueda. La balanza se inclina hacia lo positivo. Si alguien que le guste python me pregunta si le recomiendo ir, le diría que sí. No porque sepa que le va a gustar, sino porque es mejor hacerse una idea de primera mano que hacerle caso a alguien que no sabes si tiene los mismos gustos que tú.

Siempre hay hueco para mejorar, y eso es lo que me gusta de esto, que el año que viene seguramente sea mejor.

Había empresas buscando talento pythónico, un montón de proyectos chulos y toneladas de información condensada en dos días y poco. Tengo una hoja llena de garabatos sobre cosas que tengo que mirar, ideas interesantes, para mí y para mis proyectos y charlas que tengo que ver o repasar cuando suban los vídeos. Eso creo que es el mejor cumplido para la gente que ha participado: inspirar a otros.

Y es que… ¡Python mola mucho!

¡Gracias a todos y espero veros el año que viene en PyConEs 2016!

Para cualquier cosa, no dudéis en dejar un comentario o preguntarme por twitter.

MySQL, Python, MacOSX Mountain Lion y sus problemas

Muy buenas a todos,

En esta entrada voy a hablar de una vendetta personal que tengo contra python: MySQL. No entiendo muy bien por qué siempre acabo teniendo problemas para instalar el conector y, como unas cuantas entradas más, esta es la solución que he encontrado por si alguien se encuentra en mi misma situación (incluido yo mismo).

Para ello partiremos de dos supuestos: el primero, que somos unos destroyers sin entornos virtuales y el segundo que no lo somos y tenemos cada entorno del proyecto en un entorno virtual aparte.

Sin entornos virtuales

Tanto si eres un amante del efecto dominó de la actualización de la librería X_v0.9.11 (sí, Tastypie, te estoy mirando a ti) como si sólo tienes un proyecto o directamente no te apetece configurar entornos virtuales, habrás llegado a un punto donde no hay manera de que se instale el puñetero mysql-python a golpe de pip en tu flamante MacOSX Mountain Lion. No desesperes y prueba esta otra receta a ver qué tal te va:

Primero debemos añadir al PATH de la consola el directorio de instalación de MySQL. Para ello editamos el fichero $HOME/.bash_profile añadiendo la siguiente línea:

export PATH=/usr/local/mysql/bin:$PATH

En nuestro caso la ruta es /usr/local/mysql/bin, así que echad un ojo por si acaso no es así y está instalado en cualquier otra ruta).

Segundo, para que no falle la instalación con pip, hay que enlazar el directorio de lib de MySQL así como la librería dinámica:

sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

De nuevo, hay que echar un ojo a las rutas para asegurarnos de que sean correctas. Finalmente, instalamos el módulo con pip:

pip install mysql-python

Y rezamos para que no nos dé de nuevo el temido error de mysql-config not found. Si algo ha salido raro, ahí están los comentarios para contar vuestros casos. Así, entre todos intentaremos solucionarlos.

Con entornos virtuales

Realmente habiendo hecho el cambio anterior, la instalación desde la línea de comandos en un entorno virtual debería funcionar exactamente igual. Sin embargo, si como es mi caso, usáis como entorno de desarrollo PyCharm os encontraréis con que no funciona, saliendo el mensaje del terror, mysql-config not found. Por lo que me he encontrado parece que al usar un entorno virtual por alguna razón no coge bien el PATH (por favor, si alguien sabe por qué que nos ilumine).

La solución que hemos encontrado es la de la edición del script de arranque del entorno virtual. Esto es, si tenemos el entorno virtual bajo la ruta ~/.venvs/virtual/, habrá que editar el fichero ~/.venvs/virtual/bin/activate, localizando las siguientes líneas:

_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH

Y modificándolas para que queden como sigue:

_OLD_VIRTUAL_PATH="$PATH"
PATH="$PATH:/usr/local/mysql/bin/"
PATH="$VIRTUAL_ENV/bin:$PATH"
export PATH

Una vez hecho esto existen dos opciones, o reiniciar PyCharm e intentar instalar desde el propio entorno o bien entrar en el entorno virtual e instalar mysql-python a golpe de pip:

source ~/.venvs/virtual/bin/activate
pip install mysql-python
deactivate

Y eso es todo por hoy. Cualquier duda, aclaración o lo que queráis, ahí están los comentarios. Cualquier modificación o mejora es bienvenida. Buen día!