Latest entries
Objetos 'callables' en Python
26 August 2010
Python es un lenguaje que no deja de sorprenderme. Como todos sabemos, una función por definición es llamable, es decir, la podemos llamar.
>>> def foo():
... print "Llamada a foo"
...
>>> foo
<function foo at 0x7f6d33645c80>
>>> foo()
Llamada a foo
>>>
Pero en Python podemos hacer que un objeto sea llamable. Para saber si un objeto es llamable, disponemos de la función callable.
Breves: Copiar una instancia de Model en Django
25 August 2010
Una solución rápida para hacer una copia de un modelo es utilizar copy. copy es un módulo estándar de Python que nos permite realizar copias de objetos. Este módulo ofrece dos tipos de copias: shallow y deep.
La diferencia está en como se comporta con objetos compuestos, es decir, objetos que contienen otros objetos.
- Copia shallow (o superficial): crea un nuevo objecto compuesto y trata de insertar, en la medida de lo posible, las referencias a los objetos encontradas en el objeto original
- Copia deep (o profunda): crea un objeto compuesto nuevo y, de forma recursiva, realiza una copia de todos los objetos encontrados en el objeto original
Probando Piwik
25 August 2010
Últimamente estoy demasiado dedicado a mis proyectos y la verdad es que estoy prestando muy poca atención a Menudo Problema. Así que esta noche he decidido instalar algún analizador de estadísticas y estoy probando Piwik.

Matlab y SPM en Ubuntu
23 August 2010
Ahora en Septiembre empiezo un contrato de investigación con la Universidad de Granada. El trabajo consiste en implementar una herramienta de procesamiento y visualización de datos fMRI integrando diferentes tipos de software, incluyendo SPM, Matlab e igraph.
Lo primero es instalar Matlab. Yo en concreto voy a utilizar la versión R2009b y el desarrollo lo voy a realizar bajo Ubuntu 10.04. La instalación de Matlab resulta bastante sencilla de lo que imaginaba, para ello he seguido esta guía.
Configurar VPN para la UGR en Ubuntu
10 August 2010
Hoy toca un poquito de VPN. Muy brevemente, para quien no conozca esta tecnología, VPN (Virtual Private Network) nos permite crear una red local a través de Internet. Es como si colocaramos el equipo de nuestra casa allí en la red de la Escuela, lo que nos permite acceder a ciertos recursos que no están disponibles desde Internet.
En Ubuntu viene instalado NetworkManager por defecto para gestionar las redes, así que me basaré en él para explicar cómo conectarnos. Dependiendo de la versión, será necesario instalar los paquetes network-manager-pptp y network-manager-pptp-gnome o ya vendrán instalados.

Si no estoy equivocado, a partir de Ubuntu 10.04 vienen instalados. Si usas una versión anterior seguramente necesitarás instalarlos. Una vez instalados, deberás reiniciar para que se active el demonio pptp (o bien puedes activarlo manualmente si sabes como :)
Breves: coercing to Unicode en Django
7 August 2010
Trabajando con algunas consultas en Django, me he encontrado con el siguiente error:
Django Version: 1.2.1
Exception Type: TypeError
Exception Value: coercing to Unicode: need string or buffer, int found
cuando lo único que estaba realizando es Modelo.objects.all()
Breves: Jugando con fechas en Python
3 August 2010
Para realizar un presupuesto necesito dar un periodo de validez. Para ello vamos a utilizar como período 30 días naturales a partir de hoy.
Usando señales en Django para controlar el stock
12 July 2010
Como comenté en el post anterior, estoy trabajando en el Proyecto Lemur y ahora mismo estoy de lleno con la gestión del stock. El escenario es el siguiente:
# models.py
class Article(models.Model):
...
class Order(models.Model):
...
class OrderDetail(models.Model):
order = models.ForeignKey('Order', ...)
article = models.ForeignKey('Article', ...)
amount = models.PositiveSmallIntegerField(...)
...
Tras analizarlo todo, lo más adecuado y sensato me parece utilizar el mecanismo de señales que ofrece Django para el control del stock.
Proyecto Lemur
12 July 2010
Llevo un par de semanas trabajando (lo que viene siendo los 4 ratos libres que he tenido estos días) en Lemur. Lemur es un proyecto para la gestión de PYMES (inicialmente pensado para España). Tengo pensado liberarlo como software libre una vez que el proyecto esté algo más maduro.
Espacio de nombres para urls en Django II
29 June 2010
Hace un rato he escrito cómo y cuándo activar el espacio de nombres para urls en Django. Ahora voy a comentaros muy brevemente un problemilla y un par de errores con los que me he encontrado (aunque creo que no son muy frecuentes, nunca se sabe).
Espacio de nombres para urls en Django (>= 1.0)
29 June 2010
La situación es la siguiente, tenemos la aplicación A y la aplicación B que estamos integrando en un mismo proyecto. Cada una tiene su propio urls.py (cuando estás integrando distintos módulos esto se agradece mucho) y dentro de ambas aplicaciones, existe una url con nombre 'foo'. Es decir,
Fichero urls.py de la aplicación A:
...
url (r'^applicationA/foo/$', 'a_foo', name='foo'),
...
Fichero urls.py de la aplicación B:
...
url (r'^applicationB/foo/$', 'b_foo', name='foo'),
...
Breves: Corrupted NFSS tables en Lyx
28 June 2010
Terminando prácticas pendientes de este cuatrimestre (sí, todavía) me encuentro con el siguiente error:
Corrupted NFSS tables.
\lyxframeend
{}
This error message was generated by an \errmessasge command, so I can't give any explicit help.
Pretend that you're Hercule Poirot: Examine all clues, and deduce de truth by order and method.
Compartir Wi-Fi
27 June 2010
Hace ya unas horas que estoy en Glasgow y la verdad es que estoy muy contento, aunque más cansado aún (como véis, no estoy echando la siesta, estoy escribiendo la solución al primer problema en tierra escocesa). He venido a Glasgow a un curso de inglés durante tres semanas con mi novia. Resulta que en el cuarto sólo hay un único cable Ethernet y traemos los dos portátiles. ¿Qué podemos hacer para conectarnos los dos a la vez?
Soporte experimental de comentarios
20 June 2010
He estado trabajando un poco para incorporar comentarios al módulo de noticias (ya está llegando Antares, no sufras). Además he aprovechado para empezar a migrar el módulo a Django 1.2.
Breves: Borrar directorios de Subversion
19 June 2010
Esto no es una práctica habitual, pero me acabo de encontrar con la situación. Durante todo el cuatrimestre hemos estado desarrollando la práctica de Ingeniería del Software III, a través de Subversion. Como realmente no llegará a una versión final ni se volverá a tocar estoy maquetándola para dejarla guardada.
Quien haya usado Subversion (o cualquier otro sistema de control de versiones) sabrá que la información que necesita se guarda en subdirectorios ocultos con el nombre .svn, más concretamente un subdirectorio por cada directorio del proyecto.
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é.
