The command line

GNU/Linux, web development and some other things

New Theme

I got tired of the old theme for this blog, so the weekend I finally changed it. New colors, new layout. I like it a lot more.

Vacaciones

Se acabaron las vacaciones. Semana tan larga y a la vez tan corta. Tantas cosas pasaron en tan pocos días que te queda la impresión de que fueron mucho más de 7. Estuve con mi familia, presencié muchos cambios y logros de Tristán (hoy se puso de pie al tratar de escalarme mientras estabamos en la cama viendo una película). Mucha comida, mucho dormir, muchas desveladas, muchas cervezas. Mucho avance a mi proyecto (ya Aline lo está usando, beta testers prepárense). Un servidor de un cliente actualizado remotamente (ssh es la neta del planeta) de Debian sarge a Debian etch (Debian es la neta del universo) sin un solo problema. Además intentamos vender los libros que no nos gustaban en las librerías de libros usados (un negocio maravilloso para los dueños de las librerías). Resumen: por los libros de computación nos daban máximo 50 pesos, por los demás libros nos dieron 100 pesos por 38 libros, en promedio 2.50 pesos por libro que seguramente van a vender en 50 pesos. Ahora a vender mis libros directamente para sacarles más dinero. Comidas y cafés en Coyoacán; un fracasado intento de ver la exposición de Ashes & Snow. Una visita a Piccolo Mondo en Plaza Loreto (el de Santa Fé, aunque lejos como China, es mucho más bonito); nuevos muebles (nuestro primer mueble comprado y no regalado o prestado); redecoración de la casa para darle mayor espacio a Tristán (la casa se decora, amuebla y organiza en base a Tristán); ida al cine (Horton Hears a Who); películas en casa (Serenity, The Incredibles). Bueno, es lo que me acuerdo. Mañana (o más bien en unas horas) de nuevo a la chamba. A ver qué me tienen reservado.

Pequeños Logros

Hay cosas que son para nosotros, debido a lo cotidianas, totalmente desapercibidas.  O que simplemente hace tiempo (varios años) que dejamos de darles importancia. Mover un dedo, una mano, dar un paso. Cosas tan simples (de verdad) y que hacemos varias veces al día que ya no nos sorprenden. No sucede así con los bebés. Es maravilloso notar todas las cosas que van aprendiendo y darte cuenta de lo difícil que es hacer algo tan simple como juntar las dos manos para hacer un aplauso. O alzar una mano para decir adiós. O caminar. Ver a Tristán crecer es (aparte del orgullo) muy interesante y muy aleccionador. En retrospectiva te das cuenta de la magnitud del aprendizaje que ha superado. Hace algunos meses no podía sostener la cabeza por sí mismo. Ni girarse a un lado mientras estaba acostado (podíamos dejarlo en la cama sin temor a que se cayera). Tampoco podía sentarse ni hablar. Ni aplaudir, ni sostener un objeto, o dos objetos. Tampoco reaccionaba a su nombre o a palabras específicas: mira, Tristán, mamá, hola, buu. Tampoco podía gatear. De repente todo sucede rapidísimo. La vida pasa en un segundo y a la vuelta de varios días te encuentras a tu hijo que ya es un experto en sentarse solo a pesar de haber aprendido hace solo dos días. O que ya te es imposible mantenerlo boca arriba un par de minutos para cambiarle el pañal cuando hace unos meses lloraba cada vez que lo intentabas poner boca abajo. Y además tiene una fuerza desproporcionada a su pequeño tamaño. Nos cansa cada vez que lo tenemos que cambiar. O cuando lo tenemos que vestir después del baño. Casi tenemos que tomar un baño nosotros para quitarnos el sudor que nos produce el esfuerzo. Hoy hizo varias cosas que no había hecho, o al menos que no había hecho de manera tan decidida. Hoy gateo mas de 4 pasos (¿rodillazos?) . Hoy sostuvo perfecto su biberón de leche. Hoy se la paso parloteando todo el día sin parar. Hoy gateo a través de su túnel de juguete (y eso que es la primera vez que tiene un túnel a su alcance). Hoy, escalándome para ver que había del otro lado mio (un pequeño xilófono), se levantó por primera vez en sus dos piernas para impulsarse. Hoy lanzó su pelotita a su mamá cuando ella se lo pidió. Maravilloso. Cosas tan simples para la mayoría (no me incluyo porque la gateada como que no se me da mucho :)) pero tan difíciles de hacer, de coordinar, de aprender, de ejecutar con perfección. Y una vez que las aprenden los bebés, las ejecutan todo el tiempo. Ya sin pensar, simplemente es parte de su cuerpo. Ya quisiera yo aprender cosas así de difíciles en ese mismo tiempo. :) No, yo ya estoy un poco viejo.

Ya Extraño a Tristán

Ayer, viendo reir y jugar a Tristán, casi rompo en llanto. Fue un momento trágico y a la vez opresivo. Y no es que haya pasado nada malo, al contrario, Tristán estaba feliz, luchando por librarse de mis brazos y comenzar a gatear por la cama. Pero fue la realización de que esos momentos nunca más serían. Eran ahora y nunca más volvería yo a experimentar esa manera de ser de Tristán. El expresarse tan claramente con sus risas, sus gestos y sus enojos. Tan claro como si hablara y dijera “tengo hambre, tengo sueño, abrázame”. Y al pensar en que en unos meses más sería otro Tristán, un Tristán distinto, uno que ya habla, uno que ya camina, uno que ya no es tan dependiente de nosotros, que es un poquito más autosuficiente, me hizo extrañar ya al Tristán de hoy, al Tristán pequeño, al Tristán que no habla y que con una mirada expresa tanto. Al Tristán al que todo le sorprende y le llama la atención. Al Tristán que puedo cargar, bañar, abrazar y besar. Ya extraño sus bracitos alrededor de mi cuello. Sus bracitos alzados pidiendo que lo cargue. Su manita diciendo adios por primera vez y por segunda y por decimoquinta vez. Ya extraño eso porque, después, ya no lo tendré, al menos no de la misma manera que ahora. Será el mismo Tristán y a la vez será otro Tristán, con otras maneras de expresarse, un Tristán distinto al Tristán de ayer. Al inicio me parecía que le tomábamos demasiadas fotos a Tristán. Hasta compramos un disco duro externo nada más para poder almacenar el interminable flujo de fotos y videos que diariamente le tomábamos. Pensaba que cuando Tristán fuera grande nos diría: “Ay papás, se pasan (o la frase que se usen en esos días), para qué me tomaban tantas fotos, ni que fuera fenómeno. Estaban obsesionados conmigo.” Jaja, bueno, algo así. Pero de lo que me doy cuenta ahora es que no le tomamos fotos para que las vea él. Las tomamos nosotros en un vano intento de retener el tiempo. De atrasar lo inevitable: su crecimiento. El dejar de ser un bebé bonito para convertirse en un niño y luego en un adolescente y un adulto. Las fotos y los videos que le tomamos son para nosotros, para nosotros nada más, para ayudar a la memoria a recordar los momentos que fueron y que ya no son. Para recordar los momentos donde Tristán era nuestro absolutamente. Para recordar sus maneras de expresarse sin palabras. Para recordar esos momentos que son a cada segundo y que se te escapan entre los dedos conforme suceden. Y en eso radica la tragedia: el saber que conforme saboreas ese momento que es deja de ser y se vuelve recuerdo, pasado. Y eso lo hace más amargo y a la vez más dulce. El saber que está pasando (dejando de ser) lo hace único y maravilloso. Tratas de sentir en todo tu cuerpo su risa, su llanto, su berrinche. Tratas de que te impregne para que dure más. Como si fuera un perfume del que te pudieras bañar. Pero en el fondo sabes que pasará y quedará solamente el difuso recuerdo idealizado. Como el leve aroma del perfume en la noche que te recuerda al de la mañana pero que sólo es una sombra. Por eso extraño a Tristán, por eso trato de sentir cada risa de él en todos los huesos de mi cuerpo. Para que dure más esta etapa. Después solamente tendré las fotos y los videos para recordarlo como es ahora. Te extraño Tristán.

Conciertos en La UNAM

Después de varios meses de no ir a ningún concierto, este fin de semana preparamos todo para irnos a escuchar a Beethoven en la Sala Nezahualcoyotl de la UNAM. Con todo preparado (incluyendo 1 pañalera, una bolsa de juguetes de Tristán, una bolsa de maquillaje y dos libros de Aline) salimos corriendo a las 11: 10 am hacia Ciudad Universitaria. El plan era que Aline y Tristán me iban a esperar paseando por la zona cultural de CU mientras terminaba el concierto (no se admiten niños menores de 8 años a los conciertos :( y nos dio flojera ir a dejar a Tristán con mis suegros hasta Ciudad Satélite). Llegamos a las 11:45 am y el concierto empezaba a las 12:00 pm. Pero ¡oh tragedia! ya no había boletos, es más, ya no había boletos desde el día anterior. No dudo de que Beethoven podría llenar el Foro Sol si algún día se atrevieran a llevar la cultura a las masas, pero bueno, divago. El caso es que no había boletos, todos agotados ¡Casi lloro! Concierto para piano no. 5 “Emperador” era el objetivo. Una cosa es escucharlo grabado, otra verlo ejecutarse. ¡Y yo no iba a verlo!. Finalmente compramos boletos para la siguiente semana, que presentan la Obertura Egmont op. 84. Abatido y sin tener siquiera una televisión para verlo transmitido por el Canal 22, nos fuimos a recorrer los alrededores de la Sala Nezahualcoyotl. Todavía sin perder la esperanza hice un último intento y subiendo al 3er piso del edificio de la Sala vi, y al ver pensé, ¿cómo no lo recordé antes?, que en el tercer piso hay vitrinas desde donde se puede ver perfecto el escenario y además, aunque algo disminuido, se puede escuchar también. Pues que bajo corriendo a buscar a Aline y que nos subimos al tercer piso. Ella se puso a jugar con Tristán para que yo pudiera escuchar el concierto con tranquilidad (gracias flaquita hermosa) y ahí, de pie, tratando de no escuchar el ruido externo, me concentré en disfrutar el concierto. Excelente, magistral, como escuchar un mundo divino fuera de este donde vivimos y nos ajetreamos nosotros. Escuchar un concierto de música clásica, y en particular escuchar a Beethoven, produce en mi una experiencia incorpórea, diría mística y divina, aunque corro el riesgo de ser corregido por Aline (pero cada quien tiene su propia experiencia mística). Es un placer sobrehumano, un alimento y deleite para el alma. Ver la orquesta moverse y ejecutar la obra como un solo ente, consciente de sí mismo y dispuesto a dar una demostración perfecta con la misma determinación que una bailarina de ballet, es impresionante por decir lo menos. Más aún, ver como los dedos de la pianista toman vida propia convirtiéndose en un instrumento de Beethoven a 200 años de distancia; en un instrumento de la divinidad (o la genialidad) que lo inspiró; es hipnotizante. Como ya muchas veces lo he dicho, el hombre, al expresarse artísticamente (en todos los géneros del arte), deja ver algo que es más que humano, algo divino. Es más, al ver que nosotros (simples humanos mortales, efímeros y perecederos) somos capaces de crear algo eterno, imperecedero, motivador, capaz de provocar emociones, deseos de gloria es (espero estar usando bien la palabra) un hierofanía. Es probar la misma esencia del mundo, esa en que viven los genios y nos muestran como un hermano mayor le muestra al pequeño lo que hay escondido en la parte superior de la repisa y que no alcanza a ver por su estatura. Es verse inmerso nuevamente en lo sagrado (no lo religioso), en lo inmaterial en la esencia del mundo. es dejar de ser hombres de carne y volvernos entes incorpóreos hechos uno con el mundo vislumbrado. Así sucede con Beethoven. Es el hermano mayor de la humanidad, mostrándonos lo que hay arriba, levantándonos en sus brazos para que veamos a través de la ventana el jardín del Edén que hay afuera. Es el hermano mayor tomándonos de la mano y ayudándonos a cruzar la puerta que divide este mundo del otro de lo sagrado. Nos guía y nos enseña. En algún modo, al escuchar a Beethoven nos volvemos uno con él. Y al mismo tiempo nosotros, los presentes en la sala nos volvemos uno solo. Uno solo en lo sagrado. Escuchar un concierto es morir a propósito un momento para visitar este lugar, este edén. Y al regresar de ahí, regresamos como Moisés del monte Sinaí, con el rostro iluminado por haber visto. Por haber presenciado, por estar presentes sin el cuerpo. Y regresamos a esta mundo oscuro, tosco, cotidiano, a enfrentarnos a nuestro pueblo adorando a su propio becerro de oro. En fin, ya divagué todavía más. Este fin de semana pasado (gracias a Aline) pude ver, con mis ojos del alma, el jardín del Edén. La siguiente semana, los dos lo veremos juntos. Y, espero, en unos años, Tristán irá con nosotros a echar un vistazo a ese mundo desconocido del Arte. Será entonces una hierofanía común.

Virtualbox OSE on Debian GNU/Linux Amd64

I use to have virtualbox installed in my machine from the packages provided by virtualbox.org.A few week ago I replaced it with the OSE available from the Debian repositories. One package that wasn’t available for my architecture (amd64) was virtualbox-ose-modules. Installing virtualbox-ose went without problems but when I started a virtualbox I received a message like:

VirtualBox kernel driver not installed. The vboxdrv kernel module was either not loaded or
/dev/vboxdrv was not created for some reason. Please install the virtualbox-ose-modules package
for your kernel and execute '/etc/init.d/vboxdrv start' as root.
VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED).
Asking Mr. Google “he” gave me the answer by pointing his artificial finger to: http://www.esdebian.org/forum/print.php?id=115990&forum=15 and to: http://debaday.debian.net/2007/12/05/virtualbox-a-virtual-pc-for-you/ So I did, as root:

# aptitude install virtualbox-ose-source module-assistant
# m-a prepare virtualbox
# m-a a-i virtualbox
# dpkg -i /usr/src/virtualbox-ose-modules-*
# modprobe vboxdrv
and after that virtualbox worked like a charm

Conciertos

Escuchando la canción “Nuestros nombres” de los Heroes del Silencio me acordé de los conciertos a los que hemos ido:
  • Heroes del Silencio
  • Soda Stereo
  • Depeche Mode
  • Manu Chao
  • Pearl Jam
  • Roger Waters
  • Apocalyptica
  • Dream Theater
  • Stratovarius
  • Miguel Poveda
  • Taraf de Haïdouks
  • Lila Downs
  • G3 (Satriani, Petrucci, Johnson)
:D

Seaside Menus

Finally, after long hours (days and more exactly months) searching the archives, the Smalltalk/Seaside blogosphere and the web, I had my Aha! moment with Seaside. I was trying to grasp the Seaside way to do menus. First I was using call:/answer to make the links in the menu work. So in my menu I had something like:

renderContentOn: html
html anchor on: #newContact of: self.
html space.
html anchor on: #contactList of: self.

newContact
| contact |
contact :=  self call: (ContactEditor contact: Contact new)
contact ifNotNil: [ContactDatabase contacts add: contact].

contactList
self call: (ContactList contacts: ContactDatabase contacts)
This would show a pair of links: ‘New Contact’ for adding a new Contact to the database and ‘Contact List’ for listing the current contents of your database. What is the problem with this code? It worked, sort of. See: you want to add a contact, so you press the ‘New contact’ link and a ContactEditor call: is invoked. A contact form is presented for you to fill it. A pair of buttons (Save, Cancel) are shown too. The Save button submits the form and adds the Contact to the Contacts database. The cancel button, well, just cancels the process. But, as the menu is always visible, you could as well click the ‘New contact’ link instead of pressing the Cancel button in order to get a new blank Contact form. What it is wrong with this? You are doing a new call: to a new ContactEditor and this call: is stacked in Seaside. The same happens if you click 5 or 4000 times the ‘New Contact’ link. If, after clicking the ‘New contact’ many times, you fill the form and press the Save button, the last ContactEditor invoked answers back the Contact and it’s saved to the database. But Seaside, noting that a call: was just answered, returns the application to the point where the call: was made. That is, to the 4th or 3999th call: stored in the stack. That is not the way you want the application to behave. In a classical menu, for example in Wordpress when I click the ‘Write a new post’ link many times, it is the same as clicking it only once. You don’t have a stack growing and growing endless. How to solve it?