miércoles, 1 de agosto de 2012

Scons en virtualenv

Si están tratando con un proyecto que requiera compilar cosas C, entonces puede que hagan uso de scons.
En Mac me tocó renegar un poco con la instalación de Scons. Usando pip, dentro de mi virtualenv, la instalación fallaba así que usé easy_install, que anduvo perfecto.
$ easy_install scons
Pero scons seguía sin funcionar:
Traceback (most recent call last):
     ...
       import SCons.Script
   ImportError: No module named SCons.Script

Causa y Solución:

Falta setear una variable que aparentemente easy_install no lo hace al instalar scons: SCONS_LIB_DIR, así que lo hacemos con el comando:
$ export SCONS_LIB_DIR=/path/to/venv/lib/python2.7/site-packages/scons-2.1.0-py2.7.egg/scons-2.1.0/
* Reemplazar /path/to/venv con el path a su virtualenv.
** Reemplazar su versión de python por la que sea (python2.7 en mi caso).
*** Al momento de escribir este post la última versión disponible de scons es la 2.1.0. Reemplazar por la que tengan.

Y ya está, scons andando.

jueves, 14 de junio de 2012

Json y caracteres no-ascii

Si están en django manejando una salida en json y se toparon con un problema para mostrar correctamente los caracteres no-ASCII, como la 'ñ', entonces relájense y tomen algo que hay solución:

Seguramente tienen algo como esto al final de su vista:

return HttpResponse(json.dumps(my_dict)),
                    mimetype="application/json")

Entonces deben agregar un par de opciones para poder generar correctamente el json primero, y para después poder pasarlo correctamente al browser:

return HttpResponse(json.dumps(my_dict, ensure_ascii=False),
                    mimetype="application/json;charset=UTF-8")

Espero haberle ahorrado unos cuantos minutos de investigación a más de uno ;).

jueves, 7 de junio de 2012

Git y su 'abuffereado' buffer

Git nos reniega de que no se puede pushear devolviendo algo como esto:
fatal: The remote end hung up unexpectedly
fatal: expected ok/error, helper said '2004???LJG?zֵ??&??~?IU??????
Más allá que en lenguaje Git eso significa "pero porqué no vas a pushear eso a la reconch... de tu hermana!", el problema radica -en la mayoría de los casos- en que el push que queremos hacer es demasiado grande para el tamaño 'default' de cosas que maneja Git, que por defecto es de 1MB.

La solución es ampliar el tamaño del buffer que git controla para su transferencia HTTP. Esto se hace con el parámetro postBuffer del modulito http, el cual setea el nuevo tamaño -en bytes- del buffer. Hay 2 formas de hacerlo:

1. Cargando con git mismo el parámetro:

git config --global http.postBuffer 5000000

2. Seteando en el archivo .git/config de su repo:

[http]
    postBuffer = 5000000
Con eso el buffer quedó como para poder pushear hasta 5MB.

sábado, 19 de mayo de 2012

La casa de al lado

- Andá a buscarla vos ahora! -La voz afónica de Diego retumbó en todo el patio mientras Santiago seguía la pelota con la mirada hasta perderla de vista detrás de la pared del vecino.
- Yo ya fui la última vez! Ahora le toca a otro!
- Santi... siempre lo mismo vos! 'Tás caliente que te toca ir al arco y sacás fuerte. Para qué sacás fuerte si la tirás siempre a la mierda? Ahora jodete.
- Eso -Martín se prendió a la reprimenda- el que la tira la va a buscar. Siempre hicimos así.

Viendo que no encontraba complicidad en la cara del gordo ni en la de Cristian, Santiago encaró para la vereda solo pensando que si la vecina estaba de mal humor, como de costumbre, iba a tener que usar todos sus dotes de adulador para recuperar la redonda.

martes, 10 de abril de 2012

La Selva

Mientras miraba esos tristes animales del otro lado de los barrotes, no podía dejar de imaginarme lo que sería vivir su vida; ser uno más como ellos, en su hábitat, tratando de sobrevivir las inclemencias constantes en esa salvaje naturaleza. No era la primera vez que pensaba en eso y tampoco sería la última.