miércoles, marzo 30, 2011

En la tierra del camello

Haciendo memoria fue a finales de 1999 cuando comencé a aprender Perl. En aquellos tiempos me hacía llamar Nuker AK, y comencé a escribir una página llamada Mental Distortion. Para evitarme la pena de estar cargando los archivos —luego del tedio de usar GeoShitties antes de que tuvieran FTP— decidí programar un script que me permitiera editar los archivos en el propio servidor.

Ante el éxito de esta tarea fue que empecé a escribir un script de lo que en ese tiempo era el prototipo del weblog. Tomando la idea de sitios que visitaba como Retrogames.com y ZopharDomain.com, cuando comencé a trabajar en Ratasoft decidí que tenía que tener un script para actualizar noticias, y para que mi colaborador Coxanagi también pudiera postear actualizaciones.

Y así, programando chucherías para la página, me fui enseñando Perl. Pero el tiempo pasó, y YaBB se migró a PHP, así que decidí probar PHP y dejé de programar CGI en Perl.

Lo último que había hecho en perl es un proxy que corre sobre xinetd y parsea la petición HTTP, decidiendo después si la obtiene via curl o si la obtiene a través de otros medios — usaba un script en un servidor web para escapar de las limitantes del proxy transparente de la empresa, pero podía configurar curl para usar un proxy SOCKS. La lista de sitios estaba en sqlite. También algunos otros scriptcillos que se me complicaran mucho con awk, sed o (t?c|z|ba)sh.
Ahora, casi una década después de hacer mis perl-pininos, ando trabajando como programador Perl de tiempo completo. Y después de pasar 2 años y medio hundido en el lodazal que es ASP, esto es como un oasis con techo, aire acondicionado, café, coca e internet gratis en el desierto.

miércoles, marzo 16, 2011

Aprendiendo jQuery

Mi primer contacto con JavaScript fue en 1998, cuando compré un libro sobre JavaScript 1.2. Hoy, con la perspectiva de 13 años de experiencia puedo decir que el libro era bastante malo, pues promovía técnicas que ya desde entonces eran consideradas malas prácticas. Pero en el 2009 aprendí Lua y entonces se abrió ante mí totalmente el mundo de la programación OOP tradicional, y particularmente el mundo de la OOP de JavaScript—mucho más similar a Lua y a Lisp que a Java o C++.

Mi incursión en el mundo de CSS es más reciente, hablamos de unos 6 años. Antes ni siquiera lo consideré porque ningún navegador tenía soporte completo. Pero como usuario de Opera siempre pude experimentar con todos los selectores, los más bizarros.

En los últimos 3 años he programado todo tipo de widgets usando diferentes niveles de Ajax y de objetos en JavaScript. Mi experimento más reciente es inyectar metadatos en formas usando namespaces en XHTML para enlazar directamente los campos de una forma a una tabla o vista SQL y automatizar la validación de los campos y su correcta actualización en la tabla.

Próximamente estaré usando jQuery de tiempo completo. Si tienes una base sólida de selectores CSS, XPath y objetos en JavaScript entonces jQuery es una extensión de tus conocimientos. Siempre debió ser posible navegar el árbol DOM con XPath, y los iteradores de jQuery ahorran un porcentaje importante de líneas de código. Se pierde un poco de claridad para los no-iniciados, pero si sabes de qué se trata entonces no tienes problemas con los chorizos que comienzan con $.

Mi única preocupación es que jQuery usa la sintaxis y semántica de selectores CSS. Si no tienes paciencia/experiencia suficiente para lograr algo en CSS puedes verte tentado a hacerlo en jQuery — y creo que la trifecta contenido:presentación:comportamiento funciona mejor cuando cada aspecto está bien delimitado.

Ojo, si vas a hacer un widget basado en scripting entonces da lo mismo si los mezclas, de todas formas un user-agent sin scripting no lo va a renderear — pero para todo lo demás mantente al margen.

Ya les platicaré cómo salen las cosas.