Archivos para la Categoría 'Programacion'

It would be wrong

When I was 30, 35 years old, I knew, in a deep sense, every line of code I ever wrote. I’d write a program during the day, and at night I’d sit there and walk through it line by line and find bugs. I’d go back the next day and, sure enough, it would be wrong.

- Ken Thompson, padre de UNIX, en Coders at Work

Pequeño fix para compilar XU4

XU4 es un remake del Ultima IV, un RPG de los 80’s bastante popular en la época.
El proyecto XU4 esta medio abandonado (el ultimo update en el CVS es del año pasado, y el ultimo release oficial es del 2005), pero igualmente el juego funciona perfecto. El problema es que con el GCC 4 no se puede compilar por el siguiente error (como también señalan en un thread del foro de Ubuntu):

imagemgr.h:105: error: extra qualification ‘ImageMgr::’ on member ‘getSubImage’

La solución es simplemente borrar el ImageMgr:: y según pude observar en el ultimo snapshot ya tiene corregido este problema.
Dejo el diff por si alguien lo quiere compilar:

--- imagemgr.h.old 2009-07-13 14:08:57.000000000 -0300
+++ imagemgr.h 2009-07-13 14:07:01.000000000 -0300
@@ -102,7 +102,7 @@
static void destroy();


ImageInfo *get(const std::string &name);
- SubImage *ImageMgr::getSubImage(const std::string &name);
+ SubImage *getSubImage(const std::string &name);
void freeIntroBackgrounds();
const std::vector &getSetNames();

GOTO statement

El Goto es sin lugar a dudas el statement mas temido, odiado y/o “peligroso” de todos. Su mala fama es tan grande que academicamente los profesores prefieren saltear el tema para que sus alumnos jamas lo usen.

Interesantes artículos se escribieron sobre el tema: por un lado a Dijkstra parece no gustarle para nada, pero por otro lado Knuth lo defiende.

Y que piensan lo hackers del kernel Linux sobre el Goto, ¿lo usaran? desde el directorio de las fuentes (rama 2.6) haciendo un:

grep -hc -R ‘goto ‘ * | perl -lpe ‘${_{_}}+=+${_}}{${_}+=+${_{_}}’

obtenemos 53.458 apariciones de goto’s :) quien lo diria!

Por ultimo, como no citar al libro blanco de C, en donde aclaran que formalmente el goto nunca es necesario aunque en algunos casos puede ser útil, como por ejemplo para abandonar el procesamiento en algunas estructuras profundamente anidadas (control de flujo, 3.8).