Después de tanto haber oído hablar de ella, por fin se alinearon los astros y pude ir a ver La fête des lumières de Lyon. Edificios iluminados, espectáculos varios, ríos de gente en la calle, restaurantes llenos, sabrosos crepes y buena compañía.
En el apartado de echar de menos marcaremos las casillas de salir más de marcha (esto tenía más que ver con el cansancio que con otra cosa), aunque bastante hicimos ya, y algo de piedad de la azafata del checkin de easyjet, que por llegar 5 minutos tarde y no haberlo hecho online no me dejó coger el avión. Pero eso acabó significando un día más en Lyon, así que tampoco nos podemos quejar.
As usual, las fotos en flickr, los sitios en 11870.com. As usual, friends see more.
Y la cuestión es tan sencilla que insulta: ¿vale la pena dormir por menos de cinco horillas? Lo que me preocupa no es descansar más o menos, lo que me preocupa es no llegar a mi cita con el destino. Tengo una herramienta cuasi infalible para estas ocasiones, pero ni de ella me fío.
Mientras sigo dudando, sigue sonando Holden.
Mi lectura técnica de este verano recién terminado ha sido Beautiful Code. Se trata de un tipo de libro poco común desde mi punto de vista, porque el planteamiento del editor fue «voy a buscar a un tío que me cuente qué trozo de código ha escrito o leído por el que se sienta orgullo o tenga una especial admiración». Y así la friolera de 33 capítulos, treinta y trés.
Algunos de los autores me eran desconocidos totalmente, otros me sonaban y el resto eran de los de toda la vida. Algunos de los capítulos que me han llamado especialmente la atención:
- A Regular Expression Matcher por Brian Kernighan, o cómo hacer un matcher de expresiones regulares con 400 líneas de C. Brillante, aunque no habla de su código sino del de Rob Pike. Además acaba el capítulo proponiendo ejercicios para el lector (el único que lo hace). Además, el tema está bastante de moda, porque parece que todas las implementaciones de los matchers actuales descienden de una implementación con backtracking que no es la más eficiente, porque la cañera, la de hace 30 años de Pike, se perdió en algún lugar.
- Finding Things por Tim Bray. Sobre parsing de ficheros de log con Ruby, la verdad es que un capítulo bastante flojo, pero lo pongo por aquí porque el calavering se ha hecho colega de Tim Bray.
- Correct, Beautiful, Fast (In That Order): Lessons From Designing XML Verifiers por Elliotte Rusty Harold. Interesante relato de cómo hacer dos veces lo mismo (un verificador de XML) te abre los ojos a la hora de tomar decisiones, explicando cómo fue cada una de ellas antes y después. No cuenta la pereza que le dio repetir el curro, que me parece de lo más importante.
- Framework for Integrated Test: Beauty through Fragility por Michael Feathers. Describe su framework (y dale con la palabra) para la ejecución de tests de manera automática. Una patada en el estómago para los ortodoxos radicales de la programación orientada a objetos.
- Beautiful Tests, por Alberto Savoia. O cómo se puede pensar a la hora de intentar que algo no funcione, para escribir el test acorde. Ejemplo, seguido de contraejemplo, seguido de contracontraejemplo. Ilustrante.
- On-the-Fly Code Generation for Image Processing por Charles Petzold. Este capítulo es de los mejores, porque describe cómo en las primeras versiones de windows determinadas operaciones con imágenes en mapas de bits podían lentísimas. El enfoque para arreglarlo fue generar código al vuelo para cada una de ellas. Cuando lo lees te quedas un poco asombrado de la capacidad que puede llegar a tener la gente. Por desgracia, el capítulo habla de una implementación de ejemplo en c# para .Net en vez de la de hace 20 años (de ahí que el capítulo haga referencia a portable).
- How Elegant Code Evolves With Hardware: The Case Of Gaussian Elimination por Jack Dongarra y Piotr Luszczek. Relata la historia del paquete LINPACK de cálculo numérico y de cómo se ha ido adaptando a los cambios de las arquitecturas HW subyacentes gracias a su diseño. Interesante.
- Python's Dictionary Implementation: Being All Things to All People por Andrew Kuchling. Diseño cuidado y excepciones para casos concretos en los diccionarios de Python. Es curioso leer cosas así después de haber sido abducido por el sistema de "una forma de resolver el problema y que lo haga bien".
- Distributed Programming with MapReduce por Jeff Dean y Sanjay Ghemawat. Describen el enfoque de programación paralela que se ha aplicado en los últimos años en Google. Interesante para comprender el concepto y anhelar que Hadoop esté listo para hacer alguna cosilla.
- When a Button Is All That Connects You to the World por Arun Mehta. Te cuenta cómo funciona el sistema que utiliza Stephen Hawkins para comunicarse con el mundo, que consiste en un único botón. Curioso.
- Code in Motion, por Laura Wingerd y Christopher Seiwald. Cómo escribir código que sea visualmente comprensible. Una especie de guía de estilo que va un poco más allá. Por ejemplo, te cuentan que les parece mucho mejor poner las condiciones de un if en líneas distintas, que se entiende mejor sin pensar. Yo les hice caso durante un día o dos durante mis sesiones de tecleo y la fricción cognitiva que me producía el asunto visualmente me impedía pensar.
Los capítulos no mencionados... no significa que no valgan la pena, simplemente que ya no quería escribir más, o que no los iba a resumir todos o que realmente no valían la pena. Hay que tener cuidado, porque efectivamente hay alguno tostón tostón.
En definitiva, un libro a tener de todas todas. Es un libro de ingeniería del software escrito por programadores y no por teóricos y creo que une lo mejor de los dos mundos. Los beneficios del libro se donan a Amnistía Internacional, así que una razón de más.
Como alguno no ha tardado en hacer referencia a mi falta de palabra con eso de que volvía a escribir un poco más, no me queda más remedio que hacer un poquito de resync como ya ha pasado alguna otra vez. Aunque, todo sea dicho, se me ha podido seguir por otros métodos (las fotos y el 11870 sobre todo).
Escapada en Junio al Rock im Park (fotos), evento que dejé pendiente durante mi erasmus y he rematado este año. Vacaciones en México con la familia (fotos) a principios de Julio y algún que otro día suelto la semana pasada para cumplir las obligaciones del estudiante (esto último es un decir ;).
Estrené nuevo estado civil hace un par de meses, por eso de que la paciencia tiene un límite, así que de nuevo vivo solo. Si de por sí montar muebles de Ikea es un peñazo, hacerlo solo es tres veces más. Y todavía me queda el último viaje de carga, aunque la casa ya parece definitivamente un hogar. Lo de compi de piso está en proceso todavía indeterminado por un sin fin de razones, pero todo se andará. La terracilla, eso sí, ha tenido buena ocupación :)
El veranito ha dado para que en 11870 metamos un montón de cosas a la nevera. Por hacer una analogía, hemos cocinado la tira y está todo en el congelador para irlo sacando poco a poco. Y desde ayer he vuelto a coger un poco el pehachepé, que me trae loco con todo lo que hay en la versión 5. Pero sólo es una de esas cosas cocinadas de todas las que tenemos para dominar el mundo.
Sonoramente, he descubierto con gratitud a Nouvelle Vague y a UNKLE. Éste último tiene a veces un aire a Trent Reznor que no se puede con él, pero por suerte no se ralla tanto. No tengo tele, así que me dio por ver unos capítulos de Anatomía de Grey en alemán, por eso de conservar un poco el idioma, y he acabado más que enganchado. Hoy he empezado con la tercera temporada.
Espero que no haga falta post de resync la próxima vez...

Historia al azar