Abril 07, 2004

Happiness is a warm gun
Nada memorable ha sucedido ayer, pero estaba contento.

No sé por qué, pero me sentía muy contento.

Quizás estar escuchando toda la tarde el “Cosmic Dare (Pretty with a Pistol)” de Yoko Kanno tenga algo que ver.

Quizás ver progresos visibles en un proyecto que me gusta y quiero tenga algo que ver.

Quizás hablar con mi padre en la noche y recibir excelentes consejos con sabia experiencia sobre ventas para el proyecto anteriormente mencionado tenga algo que ver.

Quizás Dios tiene mucho que ver.

Tengo una cuenta vacía de banco, mil cosas por hacer, horribles defectos por corregir, un corazón incompleto, habilidad de dibujo por refinar, historias por escribir, sueños por hacer realidad, muchas, muchas cosas incompletas e inconclusas, pero me siento feliz.

Y voy a disfrutarlo.

Abril 05, 2004

Comentarios y Huevos de Pascua
Cuando Netscape liberó el código de su navegador web como Open Source, hizo una auditoría del código fuente entero, no solamente para remover aquellas partes del código que eran propietarias (como Java) sino también para quitar algunos comentarios muy coloridos dentro del código fuente escritos por el, um, elocuente Jamie Zawinski.
A Netscape no le importaba tanto las lisuras y palabras sucias de jwz, sino aquellas lisuras y palabras sucias dirigidas a ciertas compañías específicas.

Donald Knuth ha mencionado en numerosas ocasiones que “el software es literatura.” Vienen a la mente los comentarios de humor y lisuras que uno encuentra en el código fuente del kernel de Linux, o las notas graciosas de Larry Wall en las fuentes de Perl.

Cuando recién tenía mi 486 y Oliver y yo programábamos en Borland Pascal recuerdo mucho un programa de Oliver donde dibujó la bandera de Perú y el resultado de un partido de fútbol. Oliver anotaba fechas, recordatorios y números telefónicos en sus códigos fuentes.
De Oliver fue quien adopté la idea de escribir cosas extras en el código fuente. En ese tiempo desconocía totalmente la existencia de jwz, Linux y Larry Wall.

Cuando trabajaba en Hamtech, programando una intranet para soporte técnico, estaba deprimido e infeliz por muchas cosas (ninguna con Hamtech, debo aclarar), y uno de los comentarios que escribí en unos de los scripts fue, “me duele la maldita columna.” Mi cuerpo y mi salud no estaban en buena forma en aquel entonces. Cuando mi jefe Moisés empezó a adaptar la intranet para la empresa de un pariente suyo (creo que fue su hermano), encontró y me hizo mención de ese comentario en particular entre tantos otros.
Antes de salir de Hamtech me hicieron explicar el código fuente de varios proyectos a las personas que quedarían en mi reemplazo, y el comentario de mi espalda volvía a perseguirme. “No pregunten nada de esa línea,” les dije a todos cuando llegamos a esa parte del código. :)

En un proyecto de Conectiva, para el Jurado Nacional de Elecciones hice un Huevo de Pascua. Karina Manrique y yo, quienes hicimos casi todo, nos vimos robados de nuestros créditos de cierto proyecto para el JNE (un sistema vía web de fiscalización para las Elecciones Presidenciales 2001). Por este motivo, cuando hicimos la página web del JNE, Karina puso los créditos en el código HTML de la portada.
Yo hice un Huevo de Pascua. Entras a la página web del JNE y entras al TUPA (que ahora es un PDF). Luego, en la casilla de búsqueda escribes: about:jne2. Haces click en buscar y te mostraba una página web.
La página web original es ésta. No es difícil notar la depresión y tristeza que me perseguía en ese tiempo.


El sistema de fiscalización también tenía un Huevo de Pascua. Habían fiscalizadores para todos los departamentos del Perú, y si entrabas como fiscalizador de Ica te salía este gracioso pato (hecho en 3DStudio por Oliver) en una esquina de la página.
Nadie del JNE hizo mención alguna del pato. Probablemente los fiscalizadores de Ica nunca dijeron nada.

En un proyecto reciente de Peruserver, que se hizo una pesadilla de deadlines aplazados, specs cambiados al vuelo y un final que nunca se veía llegar, escribía hartos comentarios de partes del código que estaba consciente no iba a entender después. :) Me puse a documentar hacks, estructuras de arrays y algoritmos que hacía para armar cosas que no estaban contempladas en un diseño original.
Mientras escribía ese proyecto estaba enamorado de “The Way” de Fastball, y la tocaba a cada rato. Como habían partes de la canción que no entendía, busqué la letra en Google y la copié en el código fuente de un script.

Podría decir muchas cosas sobre esta “costumbre,” pero dos personas (curiosamente enemistadas) lo han sabido expresar mejor. jwz escribió:

“Programs should be fun to use. But by far their most important reason for existing is that they are fun to write. Hackers get a kick out of puzzles, and you know what? If dropping in an easter egg allows a hacker to blow off some steam and consequently stick around the office for a few hours longer, and put in a 20 hour day instead of merely a 16 hour day, then those are resources well spent. The hacker’s happy at having been creative; somewhere down the road, some users will be amused by it; and the program ships faster, and is a better program because the people who wrote it cared about it. Everybody wins.”

El código fuente del Emacs original escrito en el lenguaje TECO tenía este comentario en uno de sus ficheros, escrito por Richard Stallman:

“ITS TECO and EMACS should serve as a lesson to all of what can be achieved when programmers’ creativity is not crushed by administrators whose main concern is stifling humor, stamping out all possibility of enthusiasm, and forbidding everything that isn’t compulsory.”