So nu, un blog!
Diciembre 19, 2007"La tercera es la vencida"
Génesis
Empecé a interesarme por el desarrollo web en el 2003, casi por casualidad: un diminuto ícono color naranja
que leía xml empezaba a aparecer con más frecuencia en los sitios web y se me hacía interesante, hoy
todavía no se por qué.
Sin embargo, nunca le puse atención más allá de hacer click en el. Nada interesante pasaba, o al menos nada que yo entendiera.
Al inicio de la segunda mitad de ese mismo año, me fui a vivir a Melbourne, Australia, a estudiar una maestría en e-commerce. Pero no, nada que ver con escribir sitios web para vender artesanías a Europa. Nada que ver con escribir sitios web y recolectar carretadas de dinero de AdSense. Nada que ver con sitios web. Nada que ver con programación.
El curso presentaba al comercio electrónico en un sentido mucho más amplio y desde un punto de vista
estratégico, no técnico. Interesante, sin duda, pero nada que ver con ifs ni whiles.
En una de las materias, estudiamos el reto que representa la integración entre sistemas electrónicos a lo largo de las cadenas de valor de las empresas y cómo este problema es aún más complejo a medida que varias empresas se unen para formar clusters y generar ventajas competitivas. Parafraseando al profesor:
Desde el punto de vista técnico, una de las posibles soluciones es el uso de
xmlpara estructurar e intercambiar datos entre diferentes aplicaciones.
Ahí estaba otra vez el ícono color naranja.
No mucho tiempo después, en la edición Australiana de la revista Time publicaron un artículo que se llamaba Meet Joe Blog. Para cuando terminé de leer el artículo, sabía dos cosas: para qué servía el famoso iconito color naranja y que yo quería tener mi propio blog.
No he dormido bien desde entonces. No es broma.
xhtml, css y php
Podría argumentarse que el mismísimo Tim Berners Lee dio vida al primer blog a principios de los 90's. Lo que es cierto, es que 10 años más tarde había varias opciones para tener tu propio blog. La más fácil era sin duda Blogger, que acababa de ser adquirida por Google, pero después de darme cuenta lo poco flexible que era (¿es?), decidí que no quería un blog hospedado sino uno completamente independiente.
Me decidí por el genial WordPress, y su versión pre-1.0 así es que lo descargué y me puse manos a la obra.
Lo primero, pensé, es aprender php, lo que sea que eso sea. Qué poco sabía.
Para poner las cosas en perspectiva, reproduzco aquí -en esencia- la primer pregunta que hice a un foro:
Yo: Hi all, why is it that when I write
<?php phpinfo(); ?>and view the page on my browser all I can see is<?php phpinfo(); ?>and not the blue page that I'm supposed to see?Un buen samaritano: Are you running the code through a php enabled web server?
Yo: What do you mean?
Después de hacer el ridículo más de una vez en foros, batallar para configurar Apache, php y MySql y de escribir el omnipresente "Hello World" caí en cuenta que antes de aprender php y SQL, necesitaba aprender HTML.
Para tal efecto, compré el primer libro de diseño web o programación que leí de principio a fin: la primera edición de Designing with web standards de Jeffrey Zeldman. A pesar de que no es un libro para aprender HTML ni CSS y mucho menos php, Python o cualquier lenguaje de programación, ningún otro libro ha tenido tanta influencia en la manera en que leo y escribo código, HTML, CSS, php, Ruby o Lisp. Si ya lo leíste sabes de qué te hablo. Si no, ve a leerlo y regresa.
En fin, Zeldman no me enseñó mucho HTML, así es que el siguiente paso fue leer un poco de Elizabeth Castro, seguido de Eric Meyer y de Preston Gralla, aprender un poco de JavaScript, algo de Photoshop, Apache, SQL, Freehand, Dreamweaver, Unix, shell, Markdown, Textile, OS X, SEO, XML, DNS, RSS, atom, dar un salto mortal a BBEdit , familiarizarme con conceptos como user agents, search engines, head tags, .htaccess, robots, relative links, absolute links, request, response, latency, ISP, FTP, HTTP, SSI, SSL, ssh, client, server, entender las diferencias entre .jpg, .gif, .png (y sus variaciones), entre otras monerías, pasar cientos de horas en Webmasterworld, A List Apart y blogs de luminarias como Zeldman, Matt Mullenweg, Meyer, Tantek Celik y muchos phperos de cuyo nombre no quiero acordarme.
Un año después no era, bajo ninguna medida, experto en ninguna de las tecnologías anteriores pero había terminado mi maestría, publicado dos sitios web y un plugin para WordPress, tenía un dominio, hospedaje y nombre para mi blog...pero ya no me acordaba qué era lo que quería escribir en el. Gaceta Cero Uno, era su nombre.
La escuela de ActionScript
Cuando regresé a México, sabía que reincorporarme a la vida laboral iba a tomar algún tiempo. Al mismo tiempo que buscaba entrevistas, escribía sitios web. Escribí mi primera aplicación relativamente complicada para la compañía para la que trabajé antes de irme a Australia y un par de sitios simples para otras empresas pequeñas.
Como buen pupilo de Zeldman, hasta la fecha arrugo la nariz cuando veo un sitio escrito enteramente en Flash, pero empecé a incluir pequeñas animaciones en mis sitios y a jugar con ActionScript. Eventualmente vendí un par de catálogos en CD escritos en Flash bastante decentes.
Podríamos discutir durante horas del valor de ActionScript como lenguaje de programación y que sin duda es uno de los últimos que se utilizarían en un curso introductorio (para empezar, es un lenguaje front end o client side). No me interesa.
El hecho de dibujar (o crear en tiempo de ejecución) una figura, crear diferentes instancias
de la misma, darles un nombre y hacer referencia a ellas para modificar sus propiedades,
y ver con tus propios ojos cuando sucede al ejecutar el swf, tuvo
un valor didáctico que en ese momento no podía imaginar.
En ActionScript es también de lo mas natural crear una subclase de Button (o extender
la clase Button ), por ejemplo, agregar cierta funcionalidad y ver como cada
botón que sea instancia de esta subclase hereda de la superclase Button y además
presenta todas las propiedades definidas en la subclase.
Después de Flash, me costó un poco menos de trabajo entender a David Black:
And yes, there is a paradox here. The class
Classis an instance of itself; that is, it's aClassobject. And there's more. Remember the classObject?Well,Objectis a class..but classes are objects. SoObjectis an object. AndClassis a class. AndObjectis a class, andClassis an object.
Gracias ActionScript.
Armado de todo lo aprendido y en vista de que ninguna de las empresas en las que me interesaba trabajar tenían interés en mi, decidí dedicarme profesionalmente al desarrollo web. Sabía que iba a ser difícil, me faltaba experiencia y tenía mucho que aprender, pero como dicen: Do what you love and the money will follow.
Así es que busqué una diseñadora gráfica, di de alta una empresa y voilá, a los pocos días me ofrecieron un trabajo. Nada que ver con desarrollo web, por supuesto. Lo tomé a regañadientes y abandoné mi flamante empresa.
Pero soy muy necio.
A los pocos meses, me di cuenta que una parte importante de mi tiempo en el nuevo trabajo se perdía esperando a recibir información en hojas de excel de diferentes puntos del país, integrándola en un solo documento y generando reportes y gráficas. Qué excelente oportunidad para hacer una pequeña aplicación web para recolectar la información, procesarla, generar los reportes, hacer mi vida más fácil y de paso quedar bien con el jefe.
Ruby
Como la gran mayoría, conocí a Ruby a través de Ruby on Rails.
La primera vez que leí acerca de Rails fue en Marzo de 2006 en un artículo en sitepoint, pero mi reacción fue nah! mucha línea de comandos, nah! no le veo ninguna ventaja. Qué poco sabía.
Poco tiempo después, mientras buscaba refrescarme la memoria para escribir la aplicación que tenía en mente, me encontré con que A List Apart 4.0 es una aplicación Ruby on Rails escrita por Dan Benjamin. Dan era un personaje nuevo para mi, pero no Zeldman ni Meyer. Y para mi, el hecho que Zeldman y Meyer respaldaran RoR, fue suficiente para hacer un segundo intento.
El resto es historia. Como muchos, empecé por Agile Web Development with Rails y al día de hoy, creo que he leído todos los libros publicados en inglés acerca de Ruby y Ruby on Rails, en papel o en línea.
Después de terminar la obligada aplicación "Depot" reescribí un par de sitios que había escrito en php, solo por ejercicio. El siguiente paso: un blog de RoR, claro!
Strike two.
Typo fue el vehículo de mi segundo intento por tener un blog. RollOver era el nombre. A diferencia de la malograda Gaceta Cero Uno, RollOver vio la luz y tuvo un éxito efímero: Dan Benjamin tenía una liga a RollOver y el segundo artículo que escribí (acerca del teclado Dvorak) apareció publicado en menéame. No es mucho, pero para un programador y blogger aficionado es un buen comienzo.
Escasos dos meses después RollOver agonizaba. Entre el trabajo y escribir la aplicación para la que aprendí Rails no tenía tiempo para mucho más. Para cuando comenzamos a usar mi flamante aplicación en el trabajo, RollOver estaba completamente olvidado. Poco tiempo después perdí el dominio.
La aplicación fue un éxito. Funcionaba, pero el código era un verdadero desastre. Jamis Buck me comentó de manera muy cortés:
Although I am not the stereotypical American who only speaks one language, I must say that Spanish has never been my forte.
Desde entonces, todos mis métodos, clases, variables y comentarios están en Inglés y me enfoqué mas en aprender Ruby que en aprender Rails. Te recomiendo que hagas lo mismo. Sin duda, la mejor manera de ser un buen programador Rails es ser un buen programador Ruby.
Mi aprendizaje de Ruby me ha llevado a conocer Lisp, Java y Smalltalk, repasar un poco de Python, conocer a Jim Weirich y a Mike Clark, a traducir las notas de estudio Ruby, escribir un gem y a publicar Reboot!. No tengo mucho tiempo, y sigo siendo un programador aficionado pero no importa. No escribo código por dinero, lo escribo por diversión. Y no tengo prisa.
desarrollo, web 1 comentario »

