sábado, 4 de mayo de 2013

Se ha librado una batalla entre la luz y la oscuridad


Manadas de orcos surgieron de las profundidades del abismo .... ¡No! esto no va de la tierra media, esto va de "código abierto, conocimiento, creatividad" versus "complejidad, tiempo, esfuerzo". Recientemente he instalado Lazarus (IDE basado en Pascal) en mi nueva e impoluta instalación de Ubuntu y al probar la depuración ¡Ho, ho! esta falla estrepitosamente <<aquí http://www.lazarus.freepascal.org/index.php/topic,20756.0.html se encuentra el diario de batalla en un perfecto Inglés de Google Translator (en mí caso)>>, después del intercambio de mensajes en el foro la conclusión es que el depurador, "GNU Gdb" para más señas, devuelve unos mensajes hacia el IDE y este a su vez utiliza el texto de estos mensajes para determinar diversos estados de operación.

Primera ¡cagada!, si el IDE espera un texto en ingles, digamos que espera "symbol table" y este mensaje lo han traducido a "tabla de símbolos", pues eso, que aquí no se entiende nadie. ¿Como ha llegado esto a esta situación?, ¿como no se utilizan códigos identificadores numéricos únicos que acompañen a estos mensajes?, las preguntas quedarán sin respuesta, simplemente ¡no lo entiendo!.

Segunda ¡cagada!, ¿y si le decimos a Gdb que nos hable en inglés? en teoría esto debe solucionar el problema, ¿y como sabe Gdb en que idioma debe responder? Gdb busca una variable de entorno llamada "LANG" y su valor indica esto. En mi sistema el valor es "LANG=es_ES.UTF-8" pero para que no haya problema debe vale "LANG=C" que es algo así como, no hay idioma elige tú uno por defecto y se elige el inglés. Al final la solución más simple <<aunque parezca increíble>> fue modificar el código del IDE para inyectar esta modificación en las variables de entorno del proceso que se crea para dar ejecución a Gdb desde el IDE. En este punto depurar Lazarus usando Lazarus es un verdadero incordio y no funciona bien, Lazarus no está diseñado para que se ejecuten más de una instancia a la vez y todo son problemas. Al final, modifica el código, que no haya errores, compila, lanza Lazarus modificado y cruza los dedos para que funcione. Y parece que funciona, este problema parece resuelto aunque no termina de funcionar bien, hay más problemas. Definitivamente el talón de Aquiles de Lazarus es la depuración.

A pesar de todo lo dicho anteriormente apoyo el código abierto y solo tengo palabras de elogio a todos los desarrolladores de Lazarus y los demás proyectos de código abierto, ¡son héroes! no olvidemos que su dedicación es altruista y ¡por dios! que dolor de cabeza ¡increíble!.

La pregunta <<las preguntas son>> es ¡Quieres ser usuario o programador! ¡Quieres conocimiento o información!, <<o como dirían en la película Tron que recientemente he vuelto a ver>> ¿Quieres ser usurario o programa?, <<o como dirían en la película Matrix>> ¿Quieres la pastilla roja o la azul? <<lo dejo que me estoy yendo ....>>

Que el Ubuntu-conocimiento te acompañe ...

No hay comentarios:

Publicar un comentario