Novedades: actualmente estoy impulsando el proyecto Argentina en Python, desde aquí (ver mapa)

Modifying a Django setting could be a nightmare

I've been working at Read the Docs for four months more or less at this time. Although I've been using Django for a decade now, there are many things that I never used, forget or don't know how they work internally.

During the last three or four weeks I worked in a new feature for the corporate site of Read the Docs (https://readthedocs.com/) and I had a lot of different problems: mainly because I didn't know the full codebase, but also because I never used some pieces of technology involved to make this feature.

So, what do you do when you are afraid of breaking everything? You write many test to cover your ass! That's what I did and I felt very comfortable when I started writing the logic of the feature itself --of course, to write the tests I had to ask many questions to my team to be sure the tests were accurate regarding what they were testing.

Finally, the PR was tested for some members of the team, everything worked as expected, the code was merged and deployed. Successful story, right?

One of two days later, I started seeing one of my tests related to that PR failing locally. I did a simple PR to run the test in CircleCI and it also failed there. "WTF? This doesn't make sense" -I thought. I did the manual QA locally and the code worked as expected but the test were failing but... It didn't make sense because the initial tests under CircleCI before merging the PR were passing and now without any change at all this specific test wasn't passing. I was very confused.

Seguir leyendo…


Diversidad, inclusión y todo eso

Atención, este artículo puede ser difícil de leer y fácil de juzgar. Sin embargo, me gustaría desahogarme y que podamos hablar de "lo prohibido" para que entre todos podamos construir una sociedad/comunidad mejor, sin prejuicios y en el que todos podamos hablar libremente sin ofender a los demás: entendiendo a todas las partes involucradas.

Como muchos sabrán, hace tiempo que venimos trabajando en "todo esto de la diversidad e inclusión" en el mundo de la programación. Sin embargo, yo, quien fue uno de los que empezó a impulsar esta idea entre mis conocidos (incluso antes de que Django Girls existiese) tengo un montón de dudas y problemas con este tema que es tan sensible.

Sí, dudas y problemas.

Luego de la PyConBr 13 hablé bastante con @turicas, a quien considero una persona sumamente abierta con la que se puede hablar sin problemas de los temas que nos molestan y de los problemas que tenemos. Él, luego de su charla en la que mencionó "Género y Número", me ayudó muchísimo a reflexionar sobre todo esto y a tratar de comprender un poco más la situación.

Es por eso que hoy me gustaría escribir todo lo que me quedó dando vueltas en la cabeza.

Me gustaría remontarme un poco a mi infancia, al lugar en el que fui criado y que me ayuden a entender un poquito porqué yo, entre tantas otras personas que queremos cambiar este mundo, tenemos estos problemas.

Nací en un barrio "normal" de Paraná, Entre Ríos, Argentina a una cuadra del río Paraná y rodeado por el mismo. El barrio tenía una única salida hacia "el centro" y había que caminar 5 cuadras para llegar a "la civilización" donde pasaban los buses, taxis y cualquier medio de transporte. En fin, yo pagaba $5 (en ese entonces ~USD 5) de taxi para llegar a ese lugar en vez de ir a pie por el miedo que tenía a que algo me ocurriese en el camino. El barrio, estaba "bien" en mi cuadra, pero esas otras 5 eran muy desoladas y rodeadas de "villas".

Seguir leyendo…


Navegar en internet en aeropuertos

Una de las mejores cosas de saber cómo funcionan las cosas es que "a veces" podés utilizar ese conocimiento para tomar atajos.

Hoy tengo un ejemplo concreto de esto. En mi viaje por sudamérica creé un proyecto llamado PyFi Spot que básicamente es un portal cautivo escrito en Python que ejecuta comandos de iptables para permitir o denegar el acceso a internet de las personas que se conecta a una red abierta.

¿No les suena familiar? Esos bares, restaurantes o aeropuertos que te dicen que tenés 30 minutos gratis para navergar y luego se termina. OK, algunos aeropuertos te permiten pagar (nunca entedí dónde se compra ese usuario/contraseña que te pide al web) y podés seguir navegando durante el tiempo que has pagado. Pero hay otros, que ni siquiera tienen esa opción y entonces en una espera de 5 horas (como la mia de hoy) solo tenés 30 minutos y te querés matar.

Acá entran en juego macchanger y NetworkManager.

"Mmm... macchanger, eso me suena a algo", estarás pensando. Sí, la posta de este tipo de servicios es que bloquean a los dispositivos (teléfonos, laptops, etc) por el número de MAC de la placa de red de ese dispositivo que es único en el mundo. Entonces, esta es la forma que los portales tienen de saber quiénes están accediendo a su red y filtran el acceso a internet por ese número (que va incrustado en los paquetes de red).

Claro, ¿porqué sé esto? Porque me hice un programa que hace exactamente eso y le dediqué un par de semanas a estudiar como funcionaban estos bichos.

¿Entonces? ¿Cuál es la solución? Y claro, cada 29 minutos cambiar la MAC de tu placa de red y volverte a conectar utilizando la nueva MAC. El portal cautivo cree que sos una persona totalmente nueva y... ¡ADELANTE!

¿Cómo hago para cambiar la MAC? Utilicé Network Manager que hace todo esto sea muy fácil:

  • Click derecho en el ícono del systray
  • "Editar las conexiones..."
  • Elegís la conexión que tiene el nombre de la red del aeropuerto
  • Vas a la pestaña "Inalámbrica"
  • Y donde dice "Dirección MAC clonada", le ponés "Aleatorio"
  • Guardás todo, cerrás, volvés a conectar y listo!

Cookies en juego

Te recomiendo iniciar la sesión en el portal cautivo utilizando una pestaña privada, para así evitar que se guarden las cookies en tu máquina y que luego el sistema nos reconozca como que hemos vencido nuestro tiempo.

Si ya "la has cagao", borrando las cookies del navegador solucionás este problema.

Note

A "macchanger" no lo usé al final, ya que si bien funcionó, al volverme a conectar a la red mediante "network manager" este me volvía a poner la MAC de mi placa de red original.


Embajador de Python de la Python Software Foundation

Lo que comenzó hace más de tres años como una locura, como un sueño de adolescente, como un viaje muy arriesgado, como un proyecto en el que nadie creía... Llegó a lo más lejos que alguna vez podría haber llegado e incluso cruzó esa frontera ficticia impuesta por nosotros mismos y fue más allá.

El pasado 19 de Diciembre de 2016 -casualmente el día de mi cumpleaños, la Python Software Foundation, me declaró Emabajador de Python en Latino América. Un título que me queda grande por donde lo mires. Sin embargo, luego de todo el esfuerto que hemos venido realizando durante los últimos años, esta noticia me pone muy contento y hace nuevamente que me vuelva a lenvantar de las cenizas. Si siguen la historia de este proyecto, sabrán que hemos tenido momentos muy feos y la hemos pasado muy mal. Así y todo, son estas cosas -y otras mucho más pequeñas también, las que nos hacen seguir adelante y nos demuestran que la gente cree, confía, apoya y valora nuestro esfuerzo.

RESOLVED, that the Python Software Foundation approve the Python Ambassador program for South America as outlined https://mail.python.org/mailman/private/psf-board/2016-November/041096.html

Este título que me han asignado me pone muy contento, pero más contento aún me hace sentir que "no soy yo solamente" sino que estamos abriendo la puerta dentro de la misma Python Software Foundation para que esto sea un rol nuevo dentro de la fundación y que haya más personas en el mundo que puedan ser Embajadores de Python en su región y así ayudar en que las comunidades que tienen cerca crezcan y desarrollen, además de colaborar y empujar la creación de las mismas.

A principios del 2016, la misma PSF, me declaró Emabajdor de Python "en prueba" por un período de 3 meses para probar, justamente, como sería la dinámica, el manejo del dinero, los objetivos del rol -que tenían que definirse, y luego de ese período junto con Nick Colghan y Ewa Jodlowska escribimos un reporte sobre esta experiencia, qué creíamos que significa ser Embajador de Python, cuáles las expectivas, los objetivos a cumplir, cómo debería ser el seguimiento, varias cosas relacionadas al manejo del dinero y demás. Fue una tarea bastante compleja y llevó varios meses, incluso una vez terminado ese período de prueba. ¡Ese esfuerzo valió la pena!

Ahora, durante todo el 2017 el loco que en PyCon Argentina 2013 dijo:

Yo, humitos, voy a recorrer toda la Argentina en mi auto y voy organizar un evento de Python en cada una de las ciudades que visite con la idea de descentralizar el conocimiento.

cuenta con un presupuesto pre-autorizado por la Python Software Foundation para desarrollar actividades de educación, inclusión, diversidad, empoderar las pequeñas comunidades, difundir, motivar a la gente a estudiar y desarrollarse en el mundo de la tecnología. Además, con la idea de dejar asentado el trabajo realizado durante todo este año y proponer la apertura oficial del rol Embajador de Python al resto del mundo.

Recordá que vos también podés cambiar el mundo de a poquito. Recordá que tu mínima colaboración en la comunidad puede cambiar el mundo. Recordá que aunque creas que tu aporte es mínimo, no lo es. Recordá que tu conocimiento es muy valioso y que podés transmitirlo a otros. Recordá que no estás solo y que has aprendido mucho de los demás. Valorá eso, y ayudá a devolverlo.

Hoy hiciste la traducción de un párrafo, que leyó un niño que en el futuro uso para escribir el software que nos llevó a otro planeta.

Gracias por leer.