2010
05.26

Llevo mucho tiempo utilizando sistemas GNU/Linux, y eso suele significar que a veces me veo obligado a descargar el código fuente de algún programa si quiero utilizarlo. Siempre me ha llamado la atención el hecho de que no parece haber un acuerdo sobre qué formato de archivos utilizar, y por lo tanto me ha entrado la curiosidad de saber qué compresor funciona mejor.

Para estas pruebas he seleccionado los tres compresores más comunes en GNU/Linux, a saber:

  • bzip2 (.bz2)
  • gzip (.gz)
  • zip (.zip)

Y he hecho lo siguiente:

  • Comprimir y descomprimir el código fuente del kernel de Linux.
  • Comprimir y descomprimir mi carpeta de fotos.
  • Comprimir y descomprimir varios ficheros de sonido en formato wav.

Vamos con los datos de la primera prueba:

Tiempo de empaquetado y compresión Ratio de compresión Tiempo de descompresión y desempaquetado
bzip2 3m 44,507s 17,00% 42,306s
gzip 2m 47,167s 22,02% 29,413s
zip 2m 15,670s 26,94% 39,020s

En la segunda prueba las fotos se han añadido todas previamente a un fichero tar, y por lo tanto la prueba solo contempla el tiempo de compresión (en la descompresión, para seguir el mismo criterio, tampoco se desempaqueta nada):

Tiempo de compresión Ratio de compresión Tiempo de descompresión
bzip2 17m 10,388s 94,34% 8m 26,888s
gzip 05m 34,552s 95,51% 3m 21,306s
zip 06m 49,620s 95,51% 4m 31,091s

Finalmente la tercera prueba es quizá la menos realista (los ficheros wav los comprimo a MP3 o a algún formato sin pérdida para poder escucharlos sin que se coman todo mi disco duro) pero aquí quedan los resultados:

Tiempo de empaquetado y compresión Ratio de compresión Tiempo de descompresión y desempaquetado
bzip2 11m 35,831s 84,53% 4m 57,234s
gzip 05m 49,619s 88,60% 2m 03,705s
zip 03m 47,146s 88,60% 2m 00,012s

No entraré a valorar cuál de los tres programas realiza mejor su tarea, porque a la comparativa le faltan datos y es mejorable en su elaboración, así que me limito a dejar aquí los datos obtenidos por si alguien les encuentra utilidad.

2010
02.26

Modificando la primera práctica de la asignatura, se pide mostrar una serie de figuras y colores por pantalla.

001

001

glClearColor (1.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);

glColor3f (0.0f, 1.0f, 0.0f);
glBegin (GL_POLYGON);
    glVertex2f (-0.5f, -0.5f);
    glVertex2f (-0.5f, 0.5f);
    glVertex2f (0.5f, 0.5f);
    glVertex2f (0.5f, -0.5f);
glEnd();

glFlush();
002

002

glClearColor (1.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);

glColor3f (0.0f, 1.0f, 0.0f);
glBegin (GL_POLYGON);
    glVertex2f (-0.5f, -0.5f);
    glVertex2f (-0.5f, 0.5f);
    glVertex2f (0.5f, 0.5f);
    glVertex2f (0.5f, -0.5f);
glEnd();

glColor3f (0.0f, 0.0f, 1.0f);
glBegin (GL_POLYGON);
    glVertex2f (0.0f, -0.5f);
    glVertex2f (0.5f, 0.0f);
    glVertex2f (0.0f, 0.5f);
    glVertex2f (-0.5f, 0.0f);
glEnd();

glFlush();
003

003

glClearColor (1.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);

glColor3f (0.0f, 0.0f, 1.0f);
glBegin (GL_POLYGON);
    glVertex2f (0.0f, -0.5f);
    glVertex2f (0.5f, 0.0f);
    glVertex2f (0.0f, 0.5f);
    glVertex2f (-0.5f, 0.0f);
glEnd ();

glColor3f (0.0f, 0.0f, 0.0f);
glBegin (GL_POLYGON);
    glVertex2f (-0.5f, 0.5f);
    glVertex2f (0.0f, 0.5f);
    glVertex2f (-0.5f, 0.0f);
glEnd ();

glColor3f (1.0f, 1.0f, 0.0f);
glBegin (GL_POLYGON);
    glVertex2f (0.0f, 0.5f);
    glVertex2f (0.5f, 0.5f);
    glVertex2f (0.5f, 0.0f);
glEnd ();

glColor3f (1.0f, 1.0f, 1.0f);
glBegin (GL_POLYGON);
    glVertex2f (0.5f, 0.0f);
    glVertex2f (0.5f, -0.5f);
    glVertex2f (0.0f, -0.5f);
glEnd ();

glColor3f (0.0f, 1.0f, 0.0f);
glBegin (GL_POLYGON);
    glVertex2f (0.0f, -0.5f);
    glVertex2f (-0.5f, -0.5f);
    glVertex2f (-0.5f, 0.0f);
glEnd ();

glFlush();
004

004

glClearColor (1.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);

glColor3f (0.0f, 0.0f, 0.0f);
glBegin (GL_POLYGON);
    glVertex2f (-0.5f, 0.5f);
    glVertex2f (0.0f, 0.5f);
    glVertex2f (-0.5f, 0.0f);
glEnd ();

glColor3f (1.0f, 1.0f, 0.0f);
glBegin (GL_POLYGON);
    glVertex2f (0.0f, 0.5f);
    glVertex2f (0.5f, 0.5f);
    glVertex2f (0.5f, 0.0f);
glEnd ();

glColor3f (1.0f, 1.0f, 1.0f);
glBegin (GL_POLYGON);
    glVertex2f (0.5f, 0.0f);
    glVertex2f (0.5f, -0.5f);
    glVertex2f (0.0f, -0.5f);
glEnd ();

glColor3f (0.0f, 1.0f, 0.0f);
glBegin (GL_POLYGON);
    glVertex2f (0.0f, -0.5f);
    glVertex2f (-0.5f, -0.5f);
    glVertex2f (-0.5f, 0.0f);
glEnd ();

glBegin (GL_POLYGON);
    glColor3f (0.0f, 1.0f, 0.0f);
    glVertex2f (0.5f, 0.0f);

    glColor3f (1.0f, 1.0f, 1.0f);
    glVertex2f (0.0f, 0.5f);

    glColor3f (1.0f, 1.0f, 0.0f);
    glVertex2f (-0.5f, 0.0f);

    glColor3f (0.0f, 0.0f, 0.0f);
    glVertex2f (0.0f, -0.5f);
glEnd ();

glFlush();
005

005

int i;

glClearColor (1.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);

for (i = 5; i > 0; i--)
{
    if (i % 2 == 0)
        glColor3f (0.0f, 1.0f, 0.0f);
    else
        glColor3f (0.0f, 0.0f, 0.0f);

    glBegin (GL_POLYGON);
        glVertex2f (-0.5f, -0.5f);
        glVertex2f (-0.5f, (i - (5 - i))/10.0f);
        glVertex2f ((i - (5 - i))/10.0f, (i - (5 - i))/10.0f);
        glVertex2f ((i - (5 - i))/10.0f, -0.5f);
    glEnd();
}

glFlush();
006

006

int i;

glClearColor (1.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);

for (i = 5; i > 0; i--)
{
    if (i % 2 == 0)
        glColor3f (0.0f, 1.0f, 0.0f);
    else
        glColor3f (0.0f, 0.0f, 1.0f);

    glBegin (GL_POLYGON);
        glVertex2f (-0.5f - ((5 - i) * 0.025f),
                -0.5f - ((5 - i) * 0.025f));
        glVertex2f (-0.5f - ((5 - i) * 0.025f),
                (i - (5 - i))/10.0f);
        glVertex2f ((i - (5 - i))/10.0f,
                (i - (5 - i))/10.0f);
        glVertex2f ((i - (5 - i))/10.0f,
                -0.5f - ((5 - i) * 0.025f));
    glEnd();
}

glFlush();
2010
02.13

Con el material disponible en las páginas oficiales del videojuego he elaborado tres fondos de pantalla para mis dispositivos. No son gran cosa pero aquí los dejo.

Wallpapers de Bayonetta

Wallpapers de Bayonetta

2010
02.08

Yoigo

2010
01.20

Un mensaje de Javier de la Cueva acerca de las entidades de gestión despertó mi curiosidad sobre el tema. Tras pocos segundos llegué a la página del Ministerio de Cultura, donde existe una lista con las ocho entidades autorizadas en España:

  • Artistas Intérpretes Sociedad de Gestión (AISGE)
  • Asociación de Gestión de Derechos Intelectuales (AGEDI)
  • Centro Español de Derechos Reprográficos (CEDRO)
  • Derechos de Autor de Medios Audiovisuales (DAMA)
  • Entidad de Gestión de Derechos de los Productores Audiovisuales (EGEDA)
  • Sociedad de Artistas Intérpretes o Ejecutantes de España (AIE)
  • Sociedad General de Autores y Editores (SGAE)
  • Visual Entidad de Gestión de Artistas Plásticos (VEGAP)
 1 2 3 4 5 6 siguiente