audiosum 0.1

Me complace anunciar formalmente la liberación de audiosum 0.1.

Audiosum es una herramienta que permite calcular la firma MD5 para un archivo MP3, pero ignorando la metainformación (etiquetas ID3v1, ID3v2, Lyrics3v1 y Lyrics3v2). En este momento no existe soporte para OGG.

Audiosum surge de la idea de buscar duplicados de audio cuando los archivos difieren únicamente en sus etiquetas. Por ejemplo, en el siguiente ejemplo, existen cuatro archivos cuya firma MD5 es diferente, por lo que son diferentes. Sin embargo, su parte de audio es idéntica. Cuando audiosum muestra la firma MD5 del audio, uniq los detecta por lo que tranquilamente podemos borrar una de las copias de estos archivos.

alvarezp@alvarezp-laptop:~$ md5sum (algunos archivos)
d662def56360c1ba71975fe0858651df  other/music/ALEX UBAGO - QUE PIDES TU.mp3
4e91970580b0355b3aa7e711416d50ba  other/music/Alex Ubago.- Vuelve.mp3
07894b351ae9df4a3c8ca487169e1524  DCIM/iPod_Control/Music/F00/ASFP.mp3
82db5ed3ffe951aba19cdd2d38cbea01  other/music/no doubt - bath water.mp3

alvarezp@alvarezp-laptop:~$ find -iname "*.mp3" | audiosum | sort | uniq -D -w 41
003c6b41 36d2a24f44413f4a4ab3282e7cea1649 [I3v1] [I3v2] [----] [----] ./other/music/ALEX UBAGO - QUE PIDES TU.mp3
003c6b41 36d2a24f44413f4a4ab3282e7cea1649 [I3v1] [----] [----] [----] ./other/music/Alex Ubago.- Vuelve.mp3
0058f7a4 17df577141ae1db6384309e2e3cbe2c6 [I3v1] [I3v2] [----] [----] ./DCIM/iPod_Control/Music/F00/ASFP.mp3
0058f7a4 17df577141ae1db6384309e2e3cbe2c6 [I3v1] [----] [----] [----] ./other/music/no doubt - bath water.mp3

El primer valor que se imprime es el tamaño del audio procesado. El segundo valor es la firma MD5.

Obsérvese cómo a audiosum no se le proveen los archivos por la línea de comando sino por la entrada estándar. Se puede incluir tee audiosum.out antes de sort para que las firmas se almacenen en un archivo de texto antes de ser ordenadas. El comando uniq -D -w 41 es el que se encarga de dejar únicamente los duplicados, considerando los primeros 41 caracteres.

Descarga en .tar.gz: audiosum-0.1.tar.gz

Para compilar:

#Instalar la librería mhash.
apt-get install libmhash-dev #para Ubuntu

#Descargar el archivo audiosum-0.1.tar.gz.
wget http://blog.alvarezp.org/files/audiosum-0.1.tar.gz

#Descomprimir el paquete.
tar xvzf audiosum-0.1.tar.gz
cd audiosum-0.1

#Configurar y crear
./configure && make

#Instalar
sudo make install

Ejemplos de uso de audiosum:

find -iname "*.mp3" | audiosum
find -iname "*.mp3" | audiosum > audiosum.out
find -iname "*.mp3" | audiosum | tee audiosum.out
find -iname "*.mp3" | audiosum | sort | uniq -D -w 41

Saludos.

strvcat & strvcpy

#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

/* Just like strcat(), but allows multiple strings
 * on the same line.
 */
char *strvcat(char * s1, char * args, ...) {
	va_list ap;

	va_start(ap, args);
	while (args != NULL) {
		strcat(s1, args);
		args = va_arg(ap, char *);
	}
	va_end(ap);
	return s1;
}

/* Just like strcpy(), but allows multiple strings
 * on the same line.
 */
char *strvcpy(char * s1, char * args, ...) {
	va_list ap;

	va_start(ap, args);
	strcpy(s1, args);

	args = va_arg(ap, char *);
	while (args != NULL) {
		strcat(s1, args);
		args = va_arg(ap, char *);
	}
	va_end(ap);
	return s1;
}

int main() {

	char a[8192] = "HOLA MUNDO ! -- ";

	strvcpy(a, "Hola", " ", "mundo", "!", "n", NULL);
	strvcat(a, "Hola", " ", "mundo", "!", "n", NULL);

	printf("%sn", a);

}

Superkb 0.15

En Superkb 0.15 se realizaron dos cambios mayores y varias correcciones. El primer cambio se explica mejor con unos pantallazos:


DRAWKB_PAINTING_MODE: FULL SHAPE, FLAT_KEY o BASE_OUTLINE_ONLY.

Se han añadido dos modos nuevos para dibujar las teclas: FULL_SHAPE, donde se hace uso de toda la geometría de las teclas, proveída por el X Window System para simular la tecla completa; y FLAT_KEY, similar al modo original pero donde la tecla se dibuja plana, sólo su espacio base, lo que permite dibujar iconos y letras más grandes que en los demás modos, pero con menor detalle de las teclas.

El segundo cambio se alcanza a ver en los pantallazos: el código para dibujar los nombres de las teclas fue reestructurado en su totalidad, con el objetivo de que se maneje un tamaño diferente para cada renglón. Por ejemplo, en las Thinkpad, las teclas de función son más pequeñas, lo que sacrificaba el espacio de los iconos. El programa ahora es mucho tiene mejores criterios para escoger los tamaños de letra.

Los cambios menores fueron:

  • SUPERKEY_REPLAY queda habilitado por defecto.
  • SUPERKEY_RELEASE_CANCELS queda deshabilitado por defecto.
  • Los colores por defecto quedaron como en los screenshots.
  • Opción de depuración (superkb -d).
  • Otras correcciones.

Los enlaces:

Rodrigo y Gabriela

No nos los podíamos perder: fuimos al concierto de Rodrigo y Gabriela, ahora que vinieron el 11 de febrero de 2008 a San Diego. ¡Viva México!

Quiero compartir unas fotografías. Disculpen la baja calidad, pero por obvias razones no nos dejaban meter cámaras, así que les tomé fotos con mi celular.

Sigue leyendo

Superkb 0.14

Después de mucho trabajo, quedó liberada la versión 0.14 de Superkb.

Las dos noticias son:

  • SUPERKEY_RELEASE_CANCELS: Si se configura en 0, los atajos se ejecutan aunque se suelte la tecla Super. Esto permite una mejor interacción. Yo mismo estaba harto del otro mecanismo.
  • Paquete para Ubuntu: Este paquete viene precompilado y teóricamente bastaría con dpkg -i superkb_0.14_i386.deb para ser instalado.

Sigue leyendo