Manuel Kaufmann (Humitos): Hablemos de Errante

Como todos saben, Errante es nuestro auto estrella. Sin él, las cosas serían muy diferente y el proyecto Argentina en Python probablemente no existiría. Nos ha acompañado durante más de dos años y con muy pocas intervenciones de mecánicos desconocidos en su cuerpo. Lo habitual, tareas de mantenimiento nada más y alguna que otra cosa que se ha cambiado por desgaste del mismo uso.

Ya en Abril de 2015 desde Paraguay, hicimos una campaña de donaciones que resultó ser un éxito y, no solo pudimos arreglar a nuestro querido Errante aquella vez, sino que juntamos más de lo necesario y utilizamos ese dinero para poder seguir adelante por los otros países que hemos pasado.

En esta oportunidad, nos encontramos en Trujillo, Perú y queremos aprovechar a arreglar a nuestro querido Errante aquí ya que hay un taller oficial de Peugeot -no queremos volver a experimentar lo vivido en Bolivia llevándolo a un mecánico no oficial y que finalmente nos provoque más inconvenientes. Sí, lo sabemos, llevarlo al taller oficial puede ser más caro por lo general, pero creeme que tiene mucho sentido y que al final, no hay mucha diferencia económica. Estando fuera de tu país hay que ser mucho más cuidadoso con las decisiones, las aventuras y los inconvenientes. Creeme.

Aquí en Trujillo visitamos el taller mecánico ayer por la mañana y nos dieron un presupuesto para cambiar filtro de aire y gasolina, además de hacer alineación y balanceo. Además, a eso teníamos que sumarle el presupuesto para arreglar la ventilación del habitáculo interno, ya que el ventilado no gira en absoluto -está muerto.

Hoy lo llevamos para salir a mostrarle un ruido que hacía la cubierta delantera del acompañante para que nos den un diagnóstico y un presupuesto. Lamentablemente, nos encontramos con que hay que cambiar un repuesto ya que suponen que el tiene puesto (no original por que en Argentina no se conseguía en aquél tiempo) no es el correcto, sino que le han puesto el mismo del lado del conductor y del acompañante, pero deberían ser diferentes. Por eso, nos dicen que el amortiguador quedó descentrado y hace ese ruido al pasar por un lomo de burro / rompe muelles.

IMG_20160116_095811.thumbnail.jpg

Amortiguador y soporte lado conductor visto de abajo

IMG_20160116_100730.thumbnail.jpg

Amortiguador y soporte lado acompañante visto de abajo (se puede ver claramente que no está ubicado en el centro)

Lamentablemente ese repuesto no lo tienen en stock y hay que pedirlo a Lima que estaría llegando el Martes. Además, otro problema, es que hay comprar las dos piezas (conductor y acompañante) sí o sí y suman unos USD ~200. Sin embargo, me dicen que "no es para preocuparse y que podría hacerlo cuando llegue a Guayaquil o Quito en Ecuador que también hay servicio oficial". Decidimos tomar esa opción y quedar en contacto con ellos por cualquier respuesto o asistencia que necesitemos.

IMG_20160116_155853.thumbnail.jpg

Despiece del amortiguador

Luego del problema de la ventilación me dicen que es "el módulo" de esa parte del circuíto eléctrico y que sería simplemente cambiarlo por el repuesto nuevo. Tampoco afectaría a ninguna otra parte de la electrónica y se puede seguir viajando sin problemas. Al igual que el otro repuesto hay que hacerlo importar; serían 30 días y no saben el precio aún. No podemos esperar ese tiempo ya que la semana que viene es el taller en Piura. Decidimos seguir adelante sin ventilación -nos estamos muriendo en la ruta :(

Por todos estos pequeños inconvenientes que estamos teniendo con Errante, porque lo queremos, porque queremos seguir adelante visitando más países y compartiendo Python, Software Libre y su filosofía es que te pedimos una mano con donaciones económicas. ¡Gracias a tu ayuda va a haber muchos más talleres de Django Girls, Python y muchas cosas más!

Juanjo Conti: 2 libros de cuentos disponibles para bajar en ePub

Mientras termino la edición de un nuevo libro de cuentos que se va a ir a la imprenta, publico en formato ePub, de forma gratuita y sin DRM los dos últimos libros de cuento que edité/publiqué con Automágica. Espero que los disfruten! Ideales para leer en el celular mientras hacés cola, en el subte o el colectivo:

Santa Furia (.epub)

La prueba del dulce de leche (.epub)

PS: si algo no se ve bien, avisen! Comentarios, correcciones y críticas son siempre bienvenidas!

Nota técnica

Los archivos fueron generados en base a las fuentes Latex utilizando pandoc.

Juanjo Conti: Cuentos leídos

Después de una entrevista en la radio, le propuse a los conductores que pasen un cuento mío por programa y aceptaron.

Ese mismo día pregunté en Twitter si había algún locutor/a que quiera hacerme el favor de leer algunos textos míos porque yo leo falta. Seis segundos después obtuve una respuesta. Alguien que no conocía, alguien con quien nos seguíamos desde hacía solo un día, se ofrecía para el trabajo.

Estos son los cuentos leídos que se transmitieron antes de que termine el año:

PD: estoy preparando un nuevo libro de cuentos para imprimir en febrero y ya se puede precomprar http://booklaunch.io/jjconti/carne-de-los-dioses

Manuel Kaufmann (Humitos): El subtítulo correcto sin hacer ni un click

¡Me cansé! Siempre me hichó un poco las bolas tener que ir a subdivx para buscar el subtítulo correcto para el video que quería ver, bajar ese .rar horrible, descomprimirlo y probarlo para ver si estaba bien sincronizado. Eso, no solo que llevaba un rato, sino que encima a veces estaban mal sincronizado y puteaba.

Hoy, en primer lugar uso Kodi para reproducir videos en un TV y también en la notebook. Además, de ser re-cool, me permite utilizar mi celular con Yatse como control remoto y lo veo chocho tirado desde la cama. Además, en 2 o 3 swipes me permite bajar el subtítulo del video que estoy viendo desde un par de sitios en la web.

Así y todo, todavía eso me parece engorroso. Por eso es que encontré algo más fácil y mejor aún: subliminal. Así lo uso:

fades -p python2 -d subliminal==1.1.1 -x subliminal download -v \
  -p addic7ed -p opensubtitles -p podnapisi -p thesubdb -p tvsubtitles \
  -l en -l spa <ejemplo.mp4>
-v: para que me muestre el debug del subliminal y ver si algo falló
-p: indica desde qué fuentes bajará los subtítulos
-l: lenguaje del subtítulo

Le pongo en Español e Inglés porque muchas veces no encuentra ningún subtítulo en Español y entonces, ante la necesidad, prefiero verlo con subs en Inglés. De paso cañazo, aprendo algo nuevo.

Pero otra vez, para cada archivo del que quiero un sub tengo que ejecutar este comando: ¡eso suena a script!

#!/bin/bash

# Download subtitles from all movies in a directory
MOVIE_TYPES="*.mp4 *.avi *.mkv"
FADES_BIN=/home/humitos/fades/bin/fades
PATH_MOVIES_1=$1

for MOVIE_TYPE in $MOVIE_TYPES; do {
  find "$PATH_MOVIES_1" -name $MOVIE_TYPE -type f -print | \
  xargs -I '{}' $FADES_BIN -p python2 -d subliminal==1.1.1 -x subliminal download -v \
   -p addic7ed -p opensubtitles -p podnapisi -p thesubdb -p tvsubtitles \
   -l en -l spa \
   '{}'
}; done

Y lo utilizo así:

download_subtitles.sh /media/Toshiba/series

Esto lo que hace es buscar en el PATH que le paso como primer argumento todos los archivos .mp4, .avi y .mkv de forma recursiva y para cada uno de los archivos ejecuta el comando que descarga el subtítulo.

¿Cómo funciona? ¡Ni puta idea, pero rockea!

Facundo Batista: Python y el manejo de dependencias


(there is an English version of this post, here)

Python tiene una biblioteca estándar muy extensa ("viene con las pilas incluídas"), pero es frecuente la necesidad de usar otros módulos que están afuera de la misma, casi siempre desde el Índice de Paquetes de Python (PyPI).

La manera original de instalar esos módulos es a "nivel de sistema" (sudo pip install foobar), en el sistema operativo de forma general, habilitándolos para ser utilizados por cualquier programa que se ejecute.

Más allá de necesitar permisos de root o administrador para instalar las dependencias de esta manera, el primer problema con el que nos encontramos es el de conflictos: el caso típico de dos programas que necesitan la misma dependencia pero en versiones distintas, lo cual no puede lograrse al instalar las dependencias en forma global.

Por eso es que es tan normal en el mundo de Python usar "entornos virtuales". Se crea un entorno virtual para cada programa, se instala las dependencias necesarias para cada programa en cada entorno virtual, y como lo que instalamos en ese entorno es sólo accesible desde dentro del entorno, no hay más conflictos.

En este punto, sin embargo, aparece el problema de la administración de los entornos virtuales: crearlos, instalarles cosas, activarlos para usarlos con cada programa y desactivarlos luego, recordar los nombres de cada entorno para cada programa, etc.

Para automatizar esto nació fades.

fades les permite utilizar todo el poder de los entornos virtuales sin tener que preocuparse por ellos.

¿Quieren ejecutar un script que necesita la dependencia foobar?

    fades -d foobar script.py

¿Quieren un intérprete interactivo teniendo foobar instalado como dependencia?

    fades -d foobar

¿Necesitan ejecutar el script pero con varias dependencias, alguna en una versión específica?

    fades -d foo -d bar -d baz==1.1 script.py

¿Tienen todas las dependencias en un archivo de requerimientos?

    fades -r requirements.txt script.py

Esto es sólo lo más sencillo que podés hacer con fades. Los entornos virtuales son una herramienta poderosísima, y automatizar y simplificar su uso hace que fades tenga bastantes opciones, algunas que usarán todos los días, y otras que les van a resultar muy útiles en casos puntuales.

Empiecen a usar fades de a poco (acá tienen toda la documentación) y van a encontrar que van a tener resuelto el tema de la administración de dependencias en programas y scripts, usando entornos virtuales pero sin la complejidad de tener que hacerlo directamente y a mano.

GiLgAmEzH: Regalo estos libros

Hoy me puse a ordenar/tirar papeles. Esta vez le tocó a mis cosas de estudio. Tiré un montón de libros, tuve que darle rosca de lo lindo a la destructora de papel, me divertí con diagramas de diseño, apuntes y cosas viejas y tengo un montón de libros para regalar.

OJO leer bien, son casi todos impresos en laser o fotocopias

  • Managing and Maintaining a MS Windows server 2003 environment.
  • Administering a MS SQL Server 2000. (estos dos estoy pensando en tirarlos directamente)
  • Access 2000 (para IBM y compatibles). Carlos Boqué. (que feo!!)
  • Manual de administración de Windows 2000 server de Compumagazine.

Estos ya encontraron nuevo dueño: UPDATE: 17/2/2015

  • Dictadura del diseño. Notas para estudiantes molestos. Carlos Carpintero.
  • Thinking in java (fouth edition), Bruce Eckel. tomos 1 y 2 (enormes).
  • Python para todos. Raúl González Duque.
  • Object oriented Analysis and Desing with applications, third edition. Boch, jacobson, Rumbaugh.
  • Probabilidad y estadística aplicadas a la ingenieria. Douglas Montgomery.
  • Estructura y diseño de computadores. David A. Patterson, John L Hennessy.
  • Métodos orientados a objetos: consideraciones prácticas. James Marin, James J Odell.
  • Matemáticas Discretas, cuarta edición. Richard Johnsonbaugh.

Creo que los de MS van a ir a la basura como corresponde ;)

Estoy a punto de directamente tirarlos. Pero tal vez alguno sirve y tal vez hay algún que otro caso raro que quiere uno de esos. Por ejemplo los de MS serían unas excelentes patas de cama.

Todos excepto los de MS son fotocopias. Si te interesa alguno escribime a mail at gilgamezh.me.

ramen!

Juanjo Conti: Estoy trabajando para imprimir un nuevo libro de cuentos

El título es Carne de los dioses, como uno de los cuentos. Y esta es la primera versión de la tapa:

carne_de_los_dioses.thumbnail.jpg

Algunos cuentos que va a incluir:

  • El viajero del cielo
  • El primer romántico
  • Carne de los dioses
  • El restaurador
  • El asado de los Reyes (no se sabe)
  • Los Lavalle Menéndez (no se sabe)
  • Fanáticos del matecocido (no se sabe)
  • La maravillosa vida de Henry Dijkstra

Pueden reservar un ejemplar dejando un comentario!

Manuel Kaufmann (Humitos): Crear lista de thumbnails bonitas

Tenía ganas de cambiar la presentación de los artículos de la sección de prensa en el sitio de "Argentina en Python" ya que eran simplemente una lista con la fecha y los links a la página y se veía horrible.

Esto tenía dos objetivos claros:

  1. Que se vea bonito, claro
  2. Tener un backup en imágenes de los sitios donde salió la nota

¿Qué pasa? Muchas veces esos sitios, blogs, links, lo que fuere; se caen o cualquier cosa y yo pierdo un material que para mí es importante. Entonces, quería tener una imagen completa del sitio web en dónde salió publicado. Para esto utilicé la extensión Full Page Screen Capture en cada uno de los sitios web.

Luego necesitaba hacer un thumbnail pequeño, pero que también se note algo de lo que era el sitio web. Aquí robé la idea de la presentación del sitio web de donaciones de Joac que no muestra el sitio web completo, sino solo la primera parte. Para hacer resize y cortar la imágen utilicé, obviamente, convert de ImageMagick:

for F in `ls *.png`; do {
    convert -resize 340x -crop 340x255+0 ${F} `basename ${F} .png`-340x255.png
}; done

Ese comando achica la imagen a 340px de ancho y a su correpondiente de alto, manteniendo el aspecto. Además, luego la corta a 340px x 255px y guarda el resultado con el mismo nombre que el archivo original pero le agrega -340x255 antes del .png

Una vez que tenía esto, utilicé el plugin meta_template de Nikola que hice hace unos días para incrustar los divs de Bootstrap3 como deseaba. Este es el template que utilicé:

<div class="col-md-4 col-sm-6 col-xs-12" style="min-height: 435px;">
 <div class="thumbnail">
   <a href="${href}">
    <img src="${src}" style="width: 340px; height: 255px;">
   </a>
   <div class="caption">
    <h3><strong>${title|h}</strong></h3>
    <p>${description}</p>
   </div>
 </div>
</div>

Y luego, dentro de mi archivo .rst de la página de Nikola:

.. template:: prensa-image
   :title: Blog de La Nación
   :description: Sexto encuentro nacional de Python Argentina
   :src: 2014_noviembre_1-340x255.png
   :href: http://blogs.lanacion.com.ar/data/argentina/sexto-encuentro-nacional-de-python-argentina/

El resultado en vivo: http://argentinaenpython.com.ar/historia/prensa/

prensa-section.thumbnail.png

Sección de prensa de Argentina en Python