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.