Latest entries

Migrando de Piwik a Google Analytics

written by uve

4 March 2011

Hace ya un tiempo que apareció la versión 1.1 de Piwik (yo tenía la versión 1.0 instalada en el servidor) y por falta de tiempo no había actualizado. Anoche apareció la versión 1.2 y decidí a actualizar.

Full entry >>

makeinfo: none found en Ubuntu

written by uve

4 March 2011

Compilando un programita me he encontrado con lo siguiente:

$ ./configure 
Checking for 'grep'... /bin/grep
Checking whether '/bin/grep' supports -E... yes
Checking for 'sed'... /bin/sed
Checking whether '/bin/sed' supports -i and -e... yes
Checking for 'bash'... /bin/bash
Checking for 'cut'... /usr/bin/cut
Checking for 'install'... /usr/bin/install
Checking for 'make'... /usr/bin/make
Checking for 'gcc'... /usr/bin/gcc
Checking for 'awk'... /usr/bin/awk
Checking for 'bison'... /usr/bin/bison
Checking for 'flex'... /usr/bin/flex
Checking for 'makeinfo'... no

makeinfo: none found

Either you are missing entirely the needed tool,
or the version you have is too old.

configure: Bailing out...

Solución:

$ sudo apt-get install texinfo

Full entry >>

Jugando con SQLite3 y Python

written by uve

2 March 2011

Aunque hay muchos ejemplos por ahí, ahora me toca a mi poner uno :) Básicamente he hecho un pequeño wrapper sobre SQLite3 para almacenar información de forma persistente. La idea es muy simple: vamos a gestionar una lista de nodos (dirección MAC y dirección lógica).

La clase con la que vamos a trabajar es la siguiente:

class Node:
    def __init__(self, mac, address):
        self.mac = mac
        self.address = address

Full entry >>

Montando un toolchain con crosstool-ng a través de samples

written by uve

2 March 2011

Ayer terminaba un artículo acerca de cómo construir un toolchain con crosstool-ng, pero ahora voy a explicar como utilizar uno de los ejemplos disponibles para partir desde una base concreta. Como ya comentaba, en la página de croostool-ng hay disponible una serie de ejemplos desde los cuales podemos partir.

Full entry >>

Montando un toolchain con crosstool-ng

written by uve

1 March 2011

Hace un rato explicaba en qué consiste la compilación cruzada y ahora vamos a ver como montar un toolchain para poder hacer esto. Para ello he elegido la herramienta crosstool-ng ya que nos permite automatizar el proceso.

En mi caso voy a generar una toolchain para generar código en una arquitectura MIPS, ya que voy a implementar algunos programitas para un router. Además, he elegido Debian Squeeze como plataforma de trabajo, pero también lo he probado sobre Ubuntu 10.04 con el mismo resultado.

Full entry >>

Más sobre bibliotecas C para sistemas embebidos

written by uve

25 February 2011

Ayer hablaba brevemente acerca de newlib. Hoy voy a analizar otras dos librerías importantes: uClibc y EGLIBC. Ambas son compatibles con GLIBC, la biblioteca C de GNU.

Full entry >>

MacOS: Ya hay una copia abierta de Firefox

written by uve

24 February 2011

En la oficina donde trabajo, tengo un iMac y mientras trabaja hoy, se ha ido la luz. Cuando he vuelto a arrancar e intentar abrir Firefox, me he encontrado con lo siguiente:

Full entry >>

Guardar ficheros subidos mediante FileField en un lugar distinto a MEDIA_ROOT en Django

written by uve

24 February 2011

Muy brevemente voy a explicar cómo podemos guardar ficheros en una ubicación distinta a MEDIA_ROOT. Esto es especialmente útil cuando quieres subir ficheros que puedan consultar los usuarios logueados, pero quieres que no tengan un acceso público (como todo el contenido de media):

 

from django.core.files.storage import FileSystemStorage

sistema_almacenamiento = FileSystemStorage(location='/ubicacion/distinta/a/media/')

class MiModelo(models.Model):
   file = models.FileField(upload_to='ficheros', storage=sistema_almacenamiento)

¡Cuidado con los permisos de los directorios!

 

Full entry >>

Biblioteca C newlib

written by uve

24 February 2011

¿Qué es newlib? Es una implementación de la librería C pensada para dispositivos empotrados y desarrollada por RedHat. Esta es la librería que algunos utilizan para dispositivos empotrados, ya hablaré más adelante de ella.

Full entry >>

¿Qué es la compilación cruzada?

written by uve

24 February 2011

Estos días estoy trabajando bastante con el tema, y voy a explicar brevemente qué es y por qué se utiliza la compilación cruzada. Por lo general, los programadores, estamos acostumbrados a compilar para la arquitectura sobre la que se ejecutará el binario. Es decir, programamos en la misma máquina en la que se ejecutará la aplicación. Esto no siempre es posible.

La compilación cruzada o cross-compiling consiste, por tanto, en generar binarios para una arquitectura distinta a la que estamos utilizando para compilar. Por ejemplo, generar un ejecutable para un procesador ARM desde una arquitectura IA-32 o AMD64.

Full entry >>

Estructuras, definición de tipos y estructuras anónimas en C

written by uve

22 February 2011

Estoy ahora trabajando en C y voy a explicar brevemente acerca de los structs. Imagino que todos los que hayan programado alguna vez en C conocerán este tipo de dato. No trato de explicar qué es una estructura, sino detallar algunas situaciones particulares con ellas: estructuras anónimas y definición de tipos.

Full entry >>

Cómo enviar un email con Python

written by uve

16 February 2011

Estos días he estado configurando Postfix (si tengo tiempo ya explicaré una breve introducción de cómo echarlo a andar). Una vez montado he estado probando la configuración y autenticación vía Telnet, pero resulta un poco incómodo cuando lo tienes que hacer 4 veces. Así que aquí dejo un pequeño código para enviar un correo a través de Python.

Full entry >>

Publicando automáticamente en Twitter

written by uve

28 January 2011

Básicamente este post se trata de una prueba simple. Estoy trabajando en un sistema para que automáticamente se publique un tweet al añadir una entrada.

Si el tiempo me lo permite, en los próximos días trataré de explicar como he realizado el proceso para conectar a Twitter desde Python. Adelantar que el software utilizado es tweepy.

Full entry >>

Menudo problema en Flipboard

written by uve

26 January 2011

Hoy he tenido ocasión de usar Flipboard en el iPad de un colega. Para quién no lo sepa, es una aplicación que permite seguir feeds, twitter, facebook, ... y otras redes sociales, pero hace una presentación en modo revista.

La verdad es que la presentación de la aplicación es impresionante. Me ha gustado mucho. Aquí dejo una captura:

Sinceramente espero que tengan intención de llevarla a Android.

Full entry >>

Corregir problemas GPS en Galaxy 3 y Galaxy 5

written by uve

22 January 2011

Hace cerca de 3 meses que me compré un Galaxy 5, mi primer Android, pero no había conseguido hacer funcionar el GPS. Ahora vamos a ver como corregir el problemilla.

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é.