Alejandro Santos: tl;dr: Python 2 vs Python 3

$ cat main.py
print (u"Hello " + b"World!");

$ python2 main.py
Hello World!

$ python3 main.py
Traceback (most recent call ast):
File "main.py", line 1, in <module>
print (u"Hello " + b"World!");
TypeError: Can't convert 'bytes' object to str implicitly

Juanjo Conti: Borges y la metáfora

Durante el primer sábado de la feria, Santiago de Luca y Estanislao Giménez Corte dieron una charla titulada Charla al alimón, Borges y la metáfora.

Grabé con el celular el audio de pero el resultado no es tan bueno debido al ruido que hacía un foco que se estaba por quemar. Pero para alguien que quería asistir y no puedo, ¡es mejor que nada!

Parte 1:

Parte 2:

Preguntas y respuestas al final del misma:

borges_y_la_metafora.thumbnail.jpg

Juanjo Conti: El barrabrava que no fui

Hoy, después de mucho tiempo se vuelve a jugar un clásico en la ciudad de Santa Fe. En el último ganó Unión y luego descendió de categoría.

El viernes a la mañana llevaba a mi mujer al trabajo y escuché en la radio que empezaba la venta de entradas.

Nunca voy a la cancha. Me sobran los dedos de la mano para contar las ocasiones y no las recuerdo a todas, pero, en ese momento, no se por qué, me invadió una fiebre sabalera. Lo llamé a mi tío que suele ir y averigüe los pormenores. Manejé hasta la cancha, pregunté a uno que barría un enorme escudo pintado en el piso, me indicó que a la vuelta, llegué y estacioné.

La cola era de unas cincuenta personas y la venta no había comenzado. Faltaban cuatro horas.

Hasta ahí me duró la pasión. Me fui, mintiéndome que a la tarde volvería, o de última el sábado a la mañana.

Es domingo por la mañana y escucho en la radio que todavía siguen vendiendo entradas (al parecer exageraron un poco los que acamparon desde las tres de la mañana por su ticket). Ya se que no voy a ir a la cancha, me anoté para cubrir el turno de hoy en la feria del libro, pero no puedo dejar de imaginar al barrabrava que no fui: de lentes para distinguir algo en el campo de juego, flaquito, pálido, mal afeitado y sin peinar. De seguro, el terror de los policías de turno. Solo sería cuestión de escurrir el rumor sobre un loquito en la hinchada, científico loco o algo así, capaz de armarte una bomba con gas de gaseosa de segunda marca, trapo de bandera y el aceite que chorrean los chorigol.

Juanjo Conti: Hoy empezó la Feria del libro de Santa Fe

Hoy me levanté temprano y fui a la estación Belgrano a ayudar a armar el stand de editoriales independientes para la Feria del Libro. Buena oportunidad para reencontrarse con amigos: Kun y Flor.

La feria empezó a las 18 hs pero yo no pude ir hasta las 20. En realidad no tenía planeado pasar hoy, pero el cumple de un año al que fuí termino temprano y hubo un poco de suerte mágica.

Llegué a tiempo para saludar a más amigos: Sofía, Martina, Pilar, Gonzalo y Gaz.

Completé mi visita fugaz haciendo una compra, una venta y empezando a filmar mis ya clásicos videos de la feria del libro: poetas leyendo a otros poetas.

flyer_feria_stafe_2015.thumbnail.jpg

Juanjo Conti: Galerías de fotos en Nikola

Hubo una época, pre-Facebook, en la que los informáticos instalábamos programas de galerías de imágenes escritos en PHP en nuestros propios servidores y subíamos allí las fotos sacadas con nuestras nuevas cámaras digitales de 4 megapixeles.

El problema con estos programas (había realmente muchos para elegir) es que requiren que uno (el administrador de sistemas) los actualice (entre otros mantenimientos requeridos). Esto es divertido al principio, una molestia después y al final es algo que dejamos de hacer.

Si visitamos alguno de esos sitios hoy, alrededor de las imágenes se pueden ver errores como:

Error

Deprecated: Function ereg() is deprecated in /home/jjconti/galeria.juanjoconti.com.ar/zp-core/functions-i18n.php on line 190

Warning: Cannot modify header information - headers already sent by (output started at /home/jjconti/galeria.juanjoconti.com.ar/zp-core/functions-i18n.php:190) in /home/jjconti/galeria.juanjoconti.com.ar/zp-core/functions.php on line 1897

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/jjconti/galeria.juanjoconti.com.ar/zp-core/functions-i18n.php:190) in /home/jjconti/galeria.juanjoconti.com.ar/zp-core/admin-functions.php on line 6

En estos días, que ando buscando qué me dejé olvidado en Internet para importarlo aquí, encontré uno de estos sitios que instalé en su momento.

Como el programa organizaba los álbums en carpetas y sub carpetas, con el siguiente comando

tar cvfz albumns.tgz  --exclude="*.php" albums/

pude crear un archivo listo para crear una galería en Nikola.

Crear una galería de fotos en Nikola es extremadamente fácil. Solo hay que agregar carpetas con fotos a la carpeta galleries o a la que se haya definido en conf.py y ejecutar:

nikola build

Fotos.

Juanjo Conti: import_twitpic (plugin para Nikola)

Revisando qué contenido viejo subido a otros sitios podía importar en mi nuevo blog, me di cuenta que en mi segunda era de subir fotos tomadas con el celular mientras ando [1] mis fotos, por pura casualidad, se estuvieron guardando en Twitpic (descanse en paz).

Afortunadamente el sitio (que fue comprado por Twitter y dejado en modo read-only) te deja exportar tus datos. Me bajé un zip que adentro tenía una carpeta. La carpeta tenía todas las imágenes más un archivo de texto con la fecha de publicación de cada una y su texto.

Armado con esto y mi experiencia haciendo el plugin import_goodreads cree import_twitpic.

Este es su README:

README.md

This plugin imports Twitpic pics (including twitted text) as new posts.

This plugin:

  • Creates post as a rst file using the tweet text and the figure directive
  • Copies images to images/POSTS_OUTPUT_FOLDER/POST_SLUG/
  • Uses original tweet date as post date
  • Uses "Twitpic: DATE" as title
  • Adds "Twitpic" as tag plus the ones passed as arguments
  • Adds mentionds as hashtags as tags, but if the site already have a similar tag it use that (to avoid "ERROR: Nikola: You have tags that are too similar")

Note: Twitpic export is a folder cotaining all your images plus a tweets.txt file.

Tiene dos mejoras que eventualmente voy a migrar a import_goodreads y, con suerte, a otros:

  • agrega el parámetro --tags para definir tags extras a agregar a los posts que se crearán
  • antes de agregar un tag, se fija si antes no existe uno similar. De ser así, usa ese.

En la etiqueta Twitpic se puede ver el resultado luego de ejecutar el comando:

nikola import_twitpic -o posts/twitpic/  -t "Desde el camino, Fotos" dumps/twitpic/
[1] La primera era fue con un Nokia 6132 y mucho ingenio.

Juanjo Conti: Escribir para recordar

Cree la gente, de modo casi unánime, que lo que a mí me interesa es escribir. Lo que me interesa es recordar, en el antiguo sentido de la palabra (despertar). Ignoro si recordar tiene relación con el corazón, como la palabra cordial, pero me gustaría que fuera así. La gente incluso suele decirme: "Ahí tiene un argumento para una de sus novelas", como si yo anduviera a la pesca de argumentos para novelas y no a la pesca de mí mismo. Si escribo es para recordar, para despertar el alma dormida, avivar el seso y descubrir sus caminos secretos; mis narraciones son en su mayoría trozos de la memoria del alma, y no invenciones.

Mario Levrero, El discurso vacío.

Juanjo Conti: Author pages in Nikola v7.7.0

Since version 7.7 Nikola renders author pages for sites with more than one author. Let me talk a little about this.

The first Nikola site I set up was for a group of friend wanting to publish tech stuff online (for example, how to build a 3D printer with recycled elements). I noticed that author names in posts weren't linked to any page. And because this is a very common feature in blogging systems, I implemented it.

The feature can be enabled in conf.py with:

ENABLE_AUTHOR_PAGES = True

As with tags, you can configure the pages path and if you want to list links to the posts or the posts themselves:

AUTHOR_PATH = "reporters"
AUTHOR_PAGES_ARE_INDEXES = False

Additionaly, this is not required, you can add a little bio to each (or some) authors and hide others (this is, don't generate pages for them):

AUTHOR_PAGES_DESCRIPTIONS = {
    DEFAULT_LANG: {
        "Juanjo Conti": "Python coder and writer.",
        "Roberto Alsina": "Nikola father."
    },
}
HIDDEN_AUTHORS = ['Guest']

If you want to link to these pages in your own theme, you can use something like this (Mako example):

% if author_pages_generated:
    <a href="${_link('author', post.author())}">${post.author()}</a>
% else:
    ${post.author()}
% endif

You can see the feature in action in Nikola blog: author page example, all authors page example.

Hope you enjoy it!