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
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
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
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
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
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
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
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)