Abril 19, 2004

Dibujo en Perspectiva

Esto es frustrante, no puedo dibujar en perspectiva. Me cuesta mucho dominar los ángulos. Puedo dibujar esto, pero no esto. Ni esto (whoa). No puede ser, no entiendo cómo puedes calcular esas perspectivas tan complejas. Dargh, miren esto.

Este dibujo es impresionante.

Bah.

Abril 16, 2004

Ghost Town
“Ghost Town” es un excelente website de lo que es hoy Chernobyl. Está mantenido por una joven armada de un contador geiger, una cámara, una Kawasaki Ninja y un permiso gubernamental, quien documenta con fotografías el estado de los alrederores de Chernobyl y algo de la planta misma. Ghost Town (“Ciudad Fantasma”) es realmente un título apropiado para lo que pueden ver aquí.

Realmente triste, escalofriante y conmovedor.






Incredibly, people had homes, motorcycles, garages, cars, country houses, they had money, friends and relatives. People had their lives. Each had their own niche. And then in a matter of hours , their entire world fell to pieces.

After a few hours trip in an army vehicle, they stood under a shower, washing away radiation. Then they stepped in a new life, naked with no home, no friends, no money, no past and with a very doubtful future.”

(Link)

GooOS, the Google Operating System
“So. They have this huge map of the Web and are aware of how people move around in the virtual space it represents. They have the perfect place to store this map (one of the world’s largest computers that’s all but incapable of crashing). And they are clever at reading this map. Google knows what people write about, what they search for, what they shop for, they know who wants to advertise and how effective those advertisements are, and they’re about to know how we communicate with friends and loved ones. What can they do with all that? Just about anything that collection of Ph.Ds can dream up.”

(Link)

Abril 14, 2004

Soluciones para un documento mejor
Lo confieso, el boletín de mi iglesia lo hago en Microsoft Word 97. Por favor no me lastimen. :)

Mi idea original desde un principio era hacerlo en LaTeX, Docbook o algo similar; pero la prisa de sacar el primer número me hizo tomar la primera opción funcional y disponible. Desde entonces he seguido usando Word pues era el camino de la menor resistencia.
TeX, LaTeX, Docbook, reStructuredText, Lout y similares son lenguajes de typesetting, donde uno usa un editor de texto común y corriente (léase: no Word sino el Bloc de Notas) para escribir el contenido de tu texto y con unos tags especiales (que varían entre lenguaje y lenguaje) defines la presentación del documento. Es decir: “esta parte es un título,” “esta parte va resaltada” en vez de “esta parte debe ir en negrita grandote para el título.”
Para los que saben HTML, es la diferencia entre <em> e <i>.

La ventaja de hacerlo así es que luego puedes definir que, por ejemplo, los textos marcados como “resaltados” van a ser ahora negrita con subrayado. Pop! Todos tus textos cambian. Sí, ya sé que Word puede hacer lo mismo, pero Word es Word. Quiero poder hacer el boletín enteramente en mi laptop en casa, que corre Linux. Openoffice ya está descartado también, gracias.
La desventaja es que tienes un documento dice @B{Esto está en negrita} en vez de ver directamente cómo va a quedar impreso. No es WSIWYG. Pero eso nunca ha sido un problema para mí.

Para imprimir el último número del boletín tuve una emergencia inesperada: se terminó la tinta de mi impresora, así que le pedí a Deyvi que lo imprimiese. Había un detalle importante, y es que la impresora que uso (una barata HP 656c) tiene una característica que me gusta mucho: puedes imprimir dos hojas o más en una sola hoja física. Aprovechando esta característica, el boletín es una hoja A4 que doblas a la mitad; pero el documento de Word no es una hoja en landscape de dos columnas, sino cuatro hojas completas que el driver de la impresora imprime en dos hojas.
Desafortunadamente, la impresora de Deyvi no tiene esta característica, así que tuve que cambiar las hojas a landscape, formatear dos columnas y luego poner las hojas en el orden físico que les corresponde (una hoja tiene que tener la página 4 y 1, la segunda hoja las páginas 2 y 3). No yay.

Cuando le pasé el documento a Deyvi olvidé otro detalle importante: las fuentes. Por algún extraño motivo, Deyvi no las pudo instalar en sus sistema (viva Windows!), así que acomodó el gráfico faltante (que era una fuente) y ajustó las páginas ya que en su sistema las páginas no cuadraban. No yay again.

Deyvi hizo un excelente trabajo emulando el gráfico y conservando el estilo del boletín, pero se veía diferente. Entonces recordé, pensé y llegué a la conclusión que si lo hubiera hecho en LaTeX o Docbook o groff o lo que sea, hubiera podido exportarlo a un PDF, cosa que imprimirlo era una trivialidad sin problemas de formato ni fuentes ni gráfico faltante ni nada. Yes yay.

Pero LaTeX y Docbook me parecen excesivamente complicados. Docbook es muy verbose para mi gusto (y por favor no empiecen con eso de “consíguete un buen editor de XML”). Con algo tipo podría aliviar teclear tanto a mano, pero Docbook está fuera de mi lista por el momento.

Hace tiempo me puse a investigar más sobre Postscript. Sabía que Postscript era un standard, pero no sabía que era un lenguaje de programación. Descargué documentos y un par de libros, pero no llegué muy lejos. Era igual de complicado (quizás más) que los otros, aunque muy potente. Debo decir que Postscript me gustó, pero iba a tardar demasiado aprendiéndolo. Me parece una solución muy poderosa para generar cualquier cosa impresa.

En mi búsqueda por el lenguaje de typesettings perfecto, encontré Lout — que no es perfecto, pero se ve decente. Es muy parecido a LaTeX, pero mucho más sencillo, y bota un fichero Postscript listo para impresión. Lastimosamente sólo bota Postscript y ascii plano, no HTML, no manpage, no nada más.

Pero hoy repentinamente, como en tantas otras ocasiones, me acordé de nuevo que “hey, pero yo sé programar!”

Consciente de que es inútil inventar otro lenguaje de typesetting, he decidido usar XML para definir mis propios tags y luego usar PHP (no porque sea la mejor herramienta (que probablemente sería Perl o Python), sino porque la conozco más) para hacer las veces de un XSLT (no quiero aprender ooootra sintaxis que es todavía más verbose que Docbook y encima horrible).

En español: escribo un documento en una sintaxis XML inventada por mí, y luego lo convierto a la sinxtaxis de Lout, LaTeX, Docbook o el lenguaje du jour del año. Como es mi sintaxis puedo extenderla, reducirla, cambiarla, etc. No tengo que ajustarme a ella, sino ella se va a ajustar a mí — um, lo cual no siempre es tan bueno como suena. Si en un futuro Lout me parece muy limitado o aprendo Postscript o Antonio dice “vamos a documentar con Docbook,” pues yo podría seguir usando mi sintaxis XML. Ahora que Deyvi quiere poner los boletines en la web (oops, tengo que pasarle los números pasados) puedo exportarlo a HTML desde mis fuentes XML. O a Linuxdoc. O a un documento de Staroffice (que son XMLs comprimidos, pero ok, ya estoy exagerando).
He reinventado MetaL pero con typesetting. Esta solución es fascinante, pues es prácticamente ilimitada.

Pero hay chamba por hacer. Tengo que aprender todo lo necesario de Lout para hacer el conversor. Preveo que necesitaré cosas que entonces tendré que implementar al vuelo cuando me hagan falta, que de repente el lenguaje destino no soporte lo que quiero hacer, que voy a tener una gran rascada de cabeza con las tablas, etc. pero es una buena idea, y creo que vale la pena.

Ah… so much to do, so little time.

Abril 12, 2004

Dolor de cabeza
La documentación del Sitellite no me gusta. Hasta ahora no sé por dónde empezar a hackear esta cosa. Y los tutoriales no parecen funcionar.

Mozilla Firefox
Una página del Sitellite me dice que mi browser no es lo suficientemente capaz para administrar el sitio. Efectivamente, algunos enlaces no me funcionaban, así que me bajé el Firefox. Estoy impresionado, este no es el Mozilla que hace tiempo descargué y odié. Tampoco es el Phoenix que bajé y disgusté. Me gusta mucho, pero aún sigo acostumbrado a algunos quirks del Opera que me detienen en la migración. Eso y las fuentes con antialias se siguen colgando, y no sé como hacer los fixes que hice con Opera para evitar este detalle hasta que tenga tiempo (JHÁ!) para ver este bug.

Abril 10, 2004

Semana Santa
Este fin de semana la iglesia de San Clemente organizó un campamento familiar en las mismas instalaciones de la vez pasada. A diferencia del campamento pasado (que era de jóvenes), los campamentos familiares son más relajados y menos riguroso… al menos nosotros en La Mar lo hacemos así, pero San Clemente lo ha hecho un tanto diferente, lo cual es de esperarse; cada uno tiene su propia manera de hacer las cosas.
A mi papá lo invitaron para predicar en este campamento, pero por las actividades que también iban a realizarse acá en Ica mi papá iba a ir y venir. Nos apuntamos toda la familia entonces para estar presentes en el campamento, porque 1) Necesito un break, algo diferente de la rutina diaria y 2) Es más barato para el presupuesto familiar.

A Pancho estaba encargado de dar el mensaje central del campamento para las familias, del cual sólo pude escuchar uno (de tres) por lástima. El único que escuché fue muy bueno. Esperaba poder escuchar por lo menos dos, ya que el Sábado ya tenía planeado estar aquí en la oficina haciendo el boletín. Oh well.

Conozco a varios de San Clemente, pero no tengo mucha cercanía con ellos. Esto me ha servido para entender muchas actitudes “extrañas” que he visto en otros jóvenes. Ejemplo: se quedan de pie en la entrada sin hacer, aparentemente, nada. Ahora entiendo que es porque están esperando o buscando a las únicas personas que conocen para sentarse con ellas (léase: me quedé como un bobo de pie en la entrada sin hacer, aparentemente, nada buscando a Renzzo o a Caro en la hora del almuerzo).



Carolina y Pilar intentando burlar mi cam-fu


Numerosas veces me vino el impulso de empezar a dar órdenes. :) Creo que mi mente ha asociado el ambiente del campamento con las responsabilidades que llevé la última vez. Fue un tanto gracioso. Hay que dejar que otros cometan errores para que puedan aprender.

Monadas geek
Usando x2x y exportando el display estoy trabajando con dos “monitores” (uno es mi monitor de siempre, el otro es la pantalla de Monolith). Quiero mi monitor de 21″! :(
Y quiero true xinerama como Breno! ;)

x2x te permite usar dos sesiones X con un (1) solo teclado y mouse. Cuando mueves el mouse a un extremo de la pantalla, pop! salta el cursor a la otra pantalla. Lo regresas y violá! estás en el otro X nuevamente. Sí, funciona copiar y pegar. Tiene unos cuantos líos con el mousewheel, pero lo peor que te sucede es que se desconecta el x2x y tus sesiones X siguen igual de vivas.
He copiado y pegado ambos screenshots. El lado izquierdo es Monolith, el derecho es Powerhouse.



Look ma! Two displays!


Tío again
Mellizas, yay! Mi hermano mayor ha tenido dos niñas. Qué envidia. Algún día estaré posteando un “yay, marriage!” y un “yay, I’m a father!” en este blog y me reiré de todos estos días de ansiedad innecesaria cuando todo lo que hacía era soñar y soñar con ella.
Heh, y le haré un trackback a esta entrada for extra bonus.

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.”