@ agnasg

agnasg


El bug que no lo es

30-08-2015 5:18 AM

En mi tarjeta de presentación soy un presidente corporativo.
En mi mente soy un desarrollador de juegos,
Pero en mi corazón soy un jugador de videojuegos.
Satoru Iwata 1995-2015

Este es un bug producido por desconocer (u olvidar) cómo es o cómo está estructurada la data. En realidad es un bug mental, no hay bug sino la apariencia de un bug que no lo es. Pero puede ser catalogado como bug porque huele a bug, luce como bug, sabe a bug. El detalle es que resulta ser otra cosa. Este tipo de bug quita tanto tiempo como los bugs reales, cuidado si no más tiempo. Me había pasado antes con clientes, y mi trabajo era convencerlos que el supuesto bug estaba solo en su cabeza. Estos son los bugs difíciles de explicar y los clientes adquieren un temor irracional hacia ellos, por lo que cada vez que aparece algo sospechosos gritan desaforados ¡bug! ¡bug! ¡bug! Inclusive llaman bug a cosas no implementadas. Un bug es algo que no funciona correctamente en algo implementado. Algo que no ha sido implementado no es un bug, es una omisión u olvido.

Pero el caso es que este bug aparente me pasó a mi. Un bug mental. Como ya he dicho estoy programando un parser para los dialogos de los npcs en psyblast. Yo tengo todo un tema con esto de los parsers y siempre prometo que no voy a hacer más nunca en mi vida uno más, pero al final termino enredado en uno nuevo. Volviendo al bug, el parser finalmente procesó y almacenó los dialogos correctamente en la base de datos del juego (sqlite por ahora) pero al final estaban apareciendo 7 registros (o rows en la base de datos) con el valor “Al terminar el hechizo…”, “Al terminar el hechizo…”, “Al terminar el hechizo…”. Por alguna razón el parser no estaba detectando el final del archivo de entrada. Dediqué 3 horas buscando, debugueando, sin ningún éxito. Al final se me ocurrió ver con detalle la base de datos. Estoy usando Sqlitebrowser, que es similar MySQL browser, y como los registros tienen varios campos y ocupan más del tamaño de la ventana, el campo relativo al “valor” queda truncado así que solamente se ve “Al terminar el hechizo…”… claro, al extender la ventana y ver el contenido del campo pude descubrir que el parser estaba funcionando, lo que pasaba es que casualmente los últimos registros corresponden a un npc que enseña hechizos y todos comienzan con la misma descripción “Al terminar el hechizo…”. Así pues, este era un bug que no es un bug. El parser estaba funcionando correctamente, el problema es que yo no recordaba los diálogos de este npc (los cuales escribí hace meses).

Enlaces que sí son enlaces