- ⇑
Saber programar, y querer publicar muchísimas fotos, han sido las fuerzas principales que han motivado a mi sitio de internet.
¡Necesitas Javascript para poder usar este menú adecuadamente!
Dar click en los URIs viejos mostrará una página muestra de esos tiempos. Sin embargo, ninguna de las ligas dentro de esas páginas functionara. Las páginas viejas fueron modificadas para que tuvieran más sentido en terminos de HTML, así que no representan el codigo viejo que tenían (lo que pasa es que no tolero HTML malo).
Mi primera página fue creada cuando estaba en la prepa. En ese entonces escribía y formateaba mis páginas usando Microsoft Word de Office XP. Esta página no tenía mucho contenido, sólo cosas al azar. Esta fue la única vez que tuve que tolerar publicidad en mi página.
Empecé a organizar mis primeros álbumes de fotos en la universidad, para que se los pudiera enseñar a mi familia y amigos de México. Empecé a escribir mis páginas usando Microsoft Front Page de Office XP, pero también tenía que reducir el tamaño de mis fotos manualmente usando Adobe Photoshop. Todas mis páginas solían estar en español solamente. Tomó todo un año, pero eventualmente me dí por vencido con este sistema, y empecé a planear un sistema mejor.
Me enseñé a programar en Java (usando el libro de un amigo) en el verano del 2004. Esta fue mi primera experiencia programando, fue un paso crucial que me llevaría a usar programas en mi sitio de internet, eventualmente. También me convencí a la idea de que XML era el mejor formato para mi información.
Durante el programa de verano de MITES '04, mi compañero de "tutor asistente" Jamy Drouillard me introdujo al EXIF, la información escondida que tienen las fotos de cámaras digitales. Me tomó mucho tiempo averiguarlo, pero eventualmente (para el 2005-04, pero tal vez antes) escribí un programa de Java que extraía esta información (usando una librería externa de procesamiento de EXIF) y la imprimía a archivos XML. También averigüé que los archivos XML se podían ver en navegadores "nuevos" como si fueran HTML, con tal de que tuvieran hojas de estilo XSLT. Esta fue la primera encarnación de un creador de álbumes de fotos automático, usando programas. No recuerdo, pero creo que todavía usaba Photoshop para reducir mis fotos usando una herramienta "de lotes" (batch), pero seguía siendo demasiado más intensiva de lo que debió haber sido.
Me uní al Laboratorio Keating en el 2005-01 para mi investigación de licenciatura en biología computacional, y como consecuencia, aprendí Perl fluidamente, y también me hice un usuario de Linux principalmente (desde entonces, mi distribución preferida ha sido Fedora, porque eso es lo que usaba el laboratorio). Las hojas de estilo XML no fueron suficientemente flexibles, así que eventualmente decidí usar programas para toda mi página. Todo lo que sigue fue acompañado por la mudanza al sitio de programas (scripts) de MIT, por necesidad.
En ese entonces, construí mi sitio entero usando programas de Perl, con reducción de imágenes automática, extracción EXIF, y anotación de imágenes en archivos XML. Mis documentos en general adquirieror anotaciones de "historial" y un chorrotal de código HTML fue factorizado automáticamente, dando a mi sitio un estilo muy consistente sin tener que escribir tanto. Para terminar, mis programas podían mostrar el contenido de ciertos directorios automáticamente leyendo las cabeceras de los archivos, las cuales tenían títulos, comentarios, e imágenes miniatura.
También me convertí en un purista, esforzándome por lograr que mis programas producieran el código Strict XHTML más puro, y usando hojas de estilo CSS.
El manejo automático de muchos lenguajes es lo que yo considero la ventaja más grande de usar programas. Esencialmente, aumenté una etiqueta de "sintaxis" en mi XML, que dirigiría a mi código a recuperar el contenido de un solo lenguaje (el requerido) e ignorar a los otros. De esta manera, cada página tiene a todos los lenguages codificados juntos, en paralelo, sin tener que sincronizar cambios estructurales a travez de varias páginas (como hubiera tenido que ser para cada lenguaje en ese caso). La meta inicial era tenerlo todo en inglés y español, lo cual ha sido fácil, pero también lo usé como excusa para practicar frances (una parte decente de mis páginas lo tienen), para jugar con los patrones del español antiguo (basado principalmente en los facsimiles del Cantar de Mio Cid), y para experimentar con el latín (lo cual no ha ido tan bien, ya que ni una sóla página tiene latin puro todavía).
El primer problema que tuve en Princeton fue hospedar mi sitio de internet. Mientras el MIT me ofrecía GiBs de espacio, Princeton sólo me ofrecía 500 MiB, lo cual no era suficiente para contener lo que en ese entonces era mi página en fotos solamente (eventualmente Princeton aumentaría la cuota de discos, pero para ese entonces ya había resuelto mi problema de una manera mejor).
¿La solución? Averigüé como correr mis programas en mi computadora de despacho de Linux, usando los programas del servidor de internet de Apache (con mod_perl, por supuesto), y afortunadamente Princeton ya tenía un registro DNS de mi computadora, así que tenía un sitio que cualquiera podía accesar ¡directo de mi computadora! También resolví el problema molesto de sincronizar la información de mi despacho con el servidor (ahora es trivial). Mi sitio de internet estuvo completamente desconectado por varios meses desde que MIT destruyó mi cuenta hasta que logré que funcionara mi sitio en Princeton.
Este periodo vió mi mudanza de XML a YAML como el formato de mis archivos fuente. El formato XML fue demasiado para mí para modificar a mano, mientras que YAML es más limpio y más atractivo al ojo. Pero la razón principal para el cambio fue que al final mi código XML estaba emulando estructuras informáticas de Perl, así que leerlo y escribirlo siempre era incómodo porque XML no está diseñado para hacer esto específicamente. YAML, por el otro lado, es por definición una representación directa del tipo de información con la que trabajaba, y leerlo e imprimirlo se convirtió tan trivial como una sola linea de código.
Fuera de escribir mis álbumes de fotos y cabeceras de directorios en YAML, también transformé mis archivos HTML casi regulares (las diferencias más grandes eran la interpretación de lenguajes y la cabecera) a YAML también, usando reglas simples. Sin embargo, por falta de tiempo, unos cuantos archivos XML sin transformar han perdurado en mi sistema hasta el 2010-01-09, haciendo que mi código sea más complicado porque tenía que soportar simultaneamente a ambos XML y YAML (los cuales empezarían a diverger en contenido).
Este periodo también vio el crecimiento de bases de datos especializadas que se conectan con mis álbumes de fotos, en particular de gente (registros simples) y localizaciones (con traducciones automáticas y una jerarquía geográfica). Antes de esto sólo tenía un diccionario rudimentario que traducía cosas dentro de mi código de Perl. Esto simplificó mis anotaciones bastante, satisfaciendo mis propósitos multilinguales para mi sitio, dado que cada localización se traduciria sólamente una vez y se le referiría de aquel entonces por una clave solamente.
También alteré el código lo suficiente para introducir un nuevo estilo para mi sitio de la boda (actualmente desligado de mi sitio pricipal) para coexistir con mi sitio regular. En el futuro planeo usar esta estructura generalizada para crear otros sitios con estilos diferentes.
Esta es sólamente una dirección de transferencia que el MIT ofrece a sus exalumnos, así que mi sitio tiene una dirección permanente sin importar a dónde me vaya a mover próximamente. Ha funcionado desde que me mudé a Princeton.
Otra dirección alternativa para el mismísimo sitio que he estado corriendo en Princeton. Compré este nombre de dominio en el 2009-09-07.