martes, 27 de marzo de 2012

Migrando a Linux

Nos acercamos a la parte central de la práctica, la identificación biométrica. Dedicaremos un post futuro a comentar qué proceso se sigue para identificar la voz, en el que además nuestro profesor es experto.

Sin embargo, antes de eso tenemos que trasladar nuestros entornos de trabajo a Linux, en concreto la distribución Ubuntu. Este cambio es importante ya que los programas que vamos a usar funcionan sobre Linux. Trabajar desde ahora en Ubuntu nos evitará además futuros problemas como por ejemplo con los paths ( barra '\' de Windows frente a '/' de Linux).

Nosotros venimos del mundo Windows y nuestra experiencia con otros SO no es muy extensa, por lo que además creemos que el desarrollo de este proyecto nos beneficiará a la hora de manejar con mayor soltura Ubuntu.


Un pequeño detalle con MySQL

Desplegar nuestras herramientas de trabajo de nuevo ha traído sus complicaciones. Ninguna importante a excepción de una que, siendo realistas, me desquició hasta lograr resolverla (Guillermo).

En Windows no habíamos tenido ningún problema con MySQL, pero en Linux la plantilla de página web de laboratorio simplemente no funcionaba. Que las consultas devolvieran resultados vacíos en vez de errores era lo más desconcertante, especialmente porque phpMyAdmin sí accedía a las BBDD.

Finalmente, tras reinstalar MySQL y hacer muchas pruebas aparte, resulta que en Linux los nombres de base de datos y de tablas en una consulta son case sensitive, mientras que en Windows no habíamos tenido ningún problema al respecto.

Solucionado este pequeño percance, podemos pasar a avanzar con el procesado de voz...

Compilación de spro

Tratando de preparar spro, surgió esta cuestión que probablemente interese a los profesores del grupo de tecnología del habla, por si se enfrentan a ella. Es causado por un posible bug de Ubuntu 11.10. Esperemos que se solucione con actualizaciones, pero en cualquier caso escribimos el problema y la solución.

Compilar spro se hace imposible con este bug. Encontrar la solución sólo fue posible rastreando el fallo en el resultado de ejecutar make. No reconocía las referencias a sqrt, sin y cos en misc.o. El fallo era producido al no poder cargarse las funciones matemáticas de math.h.

Para incluir dichas funciones en la compilación se añade -lm al comando gcc. Parece ser que si -lm no está al final de la instrucción, no se cargan correctamente las funciones de math.h.

La solución encontrada es, tras ejecutar ./configure, editar el archivo Makefile para que esta opción vaya al final. En concreto, hay que buscar la línea "LDADD = -lm -L. -lspro" y cambiarla por "LDADD = -L. -lspro -lm". Con esto, ya no debería haber problemas con la compilación y los tests incluidos con spro no deberían fallar.