Latest entries

Crear una base de datos MySQL para Django

written by uve

22 September 2010

Ya he escrito en varios artículos como crear una base de datos en MySQL. Para evitar repetir esto continuamente, voy a detallar la creación de una base de datos específica para Django.

Full entry >>

Django: cambiar el idioma de trabajo en manage.py shell

written by uve

22 September 2010

Ahora mismo estoy trabajando en un proyecto que gestiona distintos idiomas. Cuando trabajamos en el shell que ofrece Django, es necesario cambiar el idioma con el que se trabaja, ya que por defecto utiliza siempre 'en-us' (no importa la configuración de settings.py).

$ python manage.py shell
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.utils import translation
>>> translation.get_language()
'en-us'

Full entry >>

Instalando Piwik

written by uve

19 September 2010

Continuando con la serie de artículos de la migración, ahora toca uno de como instalar Piwik. Hasta el momento Piwik es la única alternativa en su categoría y ésta es la única razón por lo que lo estoy utilizando. Otro día detallaré más en profundidad.

Full entry >>

Breves: coercing to Unicode y gettext en Django

written by uve

18 September 2010

Siguiendo con el desarrollo del módulo de noticias, he encontrado el mismo error, pero esta vez debido al uso de gettext:

>>> model_instance.objects.all()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/lib/pymodules/python2.6/django/db/models/query.py", line 71, in __repr__
    return repr(data)
  File "/usr/lib/pymodules/python2.6/django/db/models/base.py", line 345, in __repr__
    u = unicode(self)
TypeError: coercing to Unicode: need string or buffer, __proxy__ found

Full entry >>

Utilizando Django para hacer la migración

written by uve

18 September 2010

Cuando tenemos un sitio en producción y realizamos una migración, la situación es delicada. Además he cambiado de PostgreSQL a MySQL (ya comentaré las razones), lo cual complica la cosa. Es necesario hacer volcados de las tablas y los contendidos desde PostgreSQL y hacer la importación desde MySQL. Lo más sencillo es aprovechar las posibilidades que ofrece Django.

Full entry >>

Securizando el servidor de Linode

written by uve

16 September 2010

Aprovechando la migración voy a tratar de escribir una serie de artículos acerca de algunos aspectos con los que he tenido que lidiar. Lo primero es preparar el acceso al servidor.

Cuando contratas un "Linode" (LInuxNODE, así es como llaman en Linode a los servidores que alquilan) debemos especificar una contraseña de root. Además, por defecto, el servidor SSH viene preparado para que podamos acceder.

Brevemente voy a hablar de dos aspectos importantes: el tratamiento de usuarios del sistema y la configuración del servidor SSH.

Full entry >>

Migración completa

written by uve

16 September 2010

Prácticamente la migración está hecha y ya estoy escribiendo desde el nuevo servidor. Han sido tres días asfixiantes, pero ya está resuelto. Aprovecho para hacer el despliegue de la nueva aplicación de noticias, lo cuál supone una ventaja y un problema.

Full entry >>

De SliceHost a Linode

written by uve

10 September 2010

Hoy me he decidido a migrar de servidor. Voy a cambiar a Linode. ¿La razón? No me va nada mal con SliceHost, pero Linode ofrece 512MB de RAM (frente a los 256MB de SliceHost), 6GB más de disco duro y 50GB más de transferencia mensual. Además todo por el mismo precio, 20$/mes.

Full entry >>

CSRF token missing or incorrect en comments

written by uve

9 September 2010

Sigo trabajando en el módulo de noticias (que espero tener listo pronto) y estoy adaptando los comentarios a la versión 1.2 de Django. Comments ya requiere del uso de CSRF, por lo que si no está correctamente configurado, lanzará un error.

Full entry >>

Broadcom anuncia drivers software libre

written by uve

9 September 2010

The driver, while still a work in progress, is released as full source and uses the native mac80211 stack.   It supports multiple current chips (BCM4313, BCM43224, BCM43225) as well as providing a framework for supporting additional chips in the future, including mac80211-aware embedded chips.

Full entry >>

Django: get_absolute_url y permalink

written by uve

6 September 2010

Estoy aprovechando hoy para retomar la aplicación de noticias que estoy utilizando en MenudoProblema para sacar una nueva versión e introducir algunas mejoras. La primera de ellas: get_absolute_url.

Full entry >>

Breves: python manage.py makemessages -l es

written by uve

30 August 2010

Estoy ahora mismo tocando todos los temas de internacionalización y me encuentro con lo siguiente:

$ python manage.py makemessages -l es
Error: This script should be run from the Django SVN tree or your project or app tree. If you did indeed run it from the SVN checkout or your project or application, maybe you are just missing the conf/locale (in the django tree) or locale (for project and application) directory? It is not created automatically, you have to create it by hand if you want to enable i18n for your project or application

Full entry >>

Django Fixtures: cargar datos al instalar

written by uve

30 August 2010

Django ofrece un mecanismo para que automáticamente se puedan añadir datos al instalar una aplicación. De una esta forma, cada vez que se instale la aplicación, uno o varios modelos, empezarán con una serie de datos iniciales. Esto es lo que se conoce como fitxures.

Full entry >>

Desinstalación de paquetes en sistemas Debian

written by uve

29 August 2010

En sistemas Debian y basados (Ubuntu en mi caso) podemos consultar el estado de los paquetes con el comando dpkg:

# dpkg -l bash*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Nombre                            Versión                          Descripción
+++-=================================-=================================-==================================================================================
ii  bash                              4.1-2ubuntu3                      The GNU Bourne Again SHell
un  bash-completion                   <ninguna>                         (no hay ninguna descripción disponible)
un  bash-doc                          <ninguna>                         (no hay ninguna descripción disponible)

Podemos ver que al lado de los nombres de los paquetes aparecen un par de letras: "ii" (para paquetes instalados) y "un" (para paquetes desinstalados). Al menos eso era lo que yo creía, pero hoy me he encontrado un paquete con "rc" :S

Pueden aparecer tres letras:

  • Primera letra: estado del paquete
  • Segunda letra: estado de los ficheros de configuración del paquete
  • Tercera letra: errores relativos al paquete

El estado "rc" nos indica que el paquete está eliminado, pero no se han eliminado los ficheros de configuración. Mi sopresa es que con apt-get purge no elimina los ficheros de configuración, ¿por qué? Porque el paquete está desinstalado.

Full entry >>

Sobre la compra de Intel: McAffe

written by uve

27 August 2010

Y es que las compras se han puesto de moda.

CEO de Intel: "Necesitamos antivirus, ¿alguien puede comprarme McAfee?"
Horas más tarde, un empleado: "Hecho"
CEO: "Estupendo, ¿qué versión?"
Empleado: "¿Versión?"

Full entry >>

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.