Recent Comments On Blog

rss

May 2006

El último y nos vamos

  1. Introducción a la ética. Raúl Gutierrez Saenz. (01-01-2006 / 01-18-2006)
  2. El Mundo de Sofía. Jostein Gaarder. (01-20-2006 / 02-02-2006)
  3. La tragicomedia de Calisto y Melibea ó La Celestina. Fernando de Rojas (02-05-2006 / 03-06-2006)
  4. La seducción de las palabras. �lex Grijelmo (03-07-2006 / 03-26-2006)
  5. La victoria. Jaime Sánchez Susarrey (03-28-2006/03-31-2006)
  6. El evangelio según Jesucristo. José Saramago (03-27-2006 - 04-22-2006)
  7. Ética para Amador. Fernando Savater (04-23-2006 - 05-02-2006)
  8. El otoño del patriarca. Gabriel García Márquez (05-03-2006 - 05-30-2006)
El libro me costó trabajo, tardarme un mes en leerlo es muestra de ello. El estilo, aunque original, no me pareció muy legible, más un impetú de innovación que una lectura agradable. Sin embargo Saramago utiliza casi la misma técnica pero con una lectura más ágil.
La historia, es eso, sin más pretenciones, salvo en las últimas páginas, cuando la muerte viene por mi general, y éste descubre que el objetivo de la vida es aprender a vivirla. La vida no está en el poder, sino en el amor; la vida no está en la dominación del otro, sino en su convivencia.
Tengo problemas para decidir el próximo libro. Espero encontrar El Nombre de la Rosa en algún accidente casual. Ocho libros en seis meses: muy mal promedio para el objetivo.

Otra vez de viaje

Ahora fui de nuevo Monterrey el sábado pasado, para regresar el domingo, a sabiendas que este sábado volveré a irme. El motivo fue la boda de Arturo y Ericka. Me fui el viernes con Chuy y Adriana para salir el sábado temprano. Primero fuimos por unas cervezas y unos tacos. En la noche me quedé dormido viendo El lado oscuro del corazón. Me gusta mucho esa película, pero no es para verse con sueño. Al día siguiente salimos a las ocho de la mañana.
El camino fue sin mucha novedad, salvo que en un retén de federales el comanche nos inquirió de dónde veniamos, a dónde ibamos y con qué motivo, al responderle nos preguntó si conociamos a quien venía en un Mustang. último modelo, color rojo. Lo obvio era que no, no conocíamos a nadie tan farol, pero al emparejarnos resultó ser Jaime. Nos bajamos, lo saludamos, pero el se quedó porque lo habían detenido para una revisión. Después nos enteramos que lo retuvieron media hora en lo que terminaban de revisar un camión. Son una lata. También en la carretera nos encontramos con Panky y sus papàs, quienes también iban a la boda. El domingo me regresaría con ellos.
Llegamos a la casa de Miriam, hermana de Adriana, quien vive allá con su marido y recién nacido vástago, Diego. Al parecer está de moda el nombre, ¿será por una determinación religiosa al indio Juan Diego o simplemente la generación Timbiriche que ya procrea? En casa de los cuñados de Chuy causó revuelo un nuevo libro de Denisse Dresser y Jorge Volpi. A mi me ha gustado mucho. Tal vez entre en la lista de la próxima ida a una librería. Siguió el ritual de la bañada, arreglada y envoltura del regalo, el cual yo no tuve la prudencia de comprar por que sencillamente se me olvidó.
Pero en el ritual se nos hizo tarde para la ceremonia religiosa y gracias a los mensajes de Norberto llegamos directamente al salón de la recepción. Una edecán nos asignó mesa, todo muy elegante. Yo, en mis arranques de originalidad, me llevé mi nudo minimalista de corbata, el cual no pasó desapercibido, y hasta chuleado por Aurora.
La velada fue tal como la visulalizé: sentarse, beber, beber, comer, beber, beber y seguir bebiendo. El whisky rifó la noche.
Los papás de Norberto estaban ahí, los papás de Panki y los papás de Jaime también. El papá de Jaime me recriminó el por qué no le había conseguido los datos del pariente que fue su mejor amigo de la infancia. Yo ni conozco a ese pariente. La gente bailó, yo disfrutaba mi whisky en silencio.
Se juntó en nuestra mesa un compañero de carrera de Jaime, Panky, Silvestre y Chuy, no recuerdo su nombre, pero sí recuerdo con claridad su vocación de cómico, los traía a risa y risa, pero a mi no me interesaba escuchar sus gracejadas. Yo hacía comunión con el whisky. Sin embargo si escuché con atención la copro-aventura de Jaime. Resulta que en la carrera se sintió mal y fué al médico, quien le pidió unos análisis, sí, unos análisis de copro. El día en que tenía listo el paquete, decidió ir a una clase antes de entregarlo al laboratorio. La clase era de dibujo técnico y una compañera que se sentó a su lado, y por quien tenía un crush. Al comienzo de la clase la susodicha le pidió un lápiz y el presto metió la mano a su mochila y la sacó con gran avidéz. El problema fue que con su fuerza de decisión, el paquete salió de la mochila dando tumbos, y derramando su nada agraciado contenido en la mesa de trabajo. Cuenta que vió en cámara lenta como salía el botecito, cómo se cayó sobre la mesa, cómo se abrió la tapa y consecuente derrame. �gilmente utiliza su otra mano como exacta barredora y recoge en un santiamén el accidente para salir corriendo al baño, de donde no salió hasta que la clase terminó.
Yo seguí empujando whisky.
Fue el lanzamiento del ramo. Ninguna mujer se levantaba para llevar a cabo la tradición. Los del sonido tuvieron que vocear personalmente a cada amiga de la novia para que atendiera la suerte. Siete u ocho hicieron caso. En cambio, en la lanzada de la liga, la situación fue muy diferente, gracias a los hermanos de Arturo que hicieron bola y desmadre, animaron a la concurrencia varonil para buscar el premio. ¿Qué normalmente no es al revés? Fue la única ocasión que me paré en la pista.
Panky comentó que se regresaba al día siguiente con sus papás y acordamos que me iría con él.
Silvestre y su esposa Esperanza se retiraron. Norberto y Aurora por igual. Y como Adriana ya cabezeaba, Chuy tuvo que aceptar la retirada. Yo me despedí del whisky con un largo trago.
La mañana llegó y desperté con una dócil cruda. Chuy me llevó al hotel donde se hospedaban los Pankis y comenzamos el camino de vuelta. ¡Qué viaje tan tenso! Cuando conducía Panki, el papà le iba criticando su conducción. En un momento que tuvo que frenar de improviso, la mamá lanzó un grito de pavo que me espantó más que la razón de la enfrenada. Y cuando el papá conducía, Panki se ponía a conversar conmigo con un lenguaje de carretonero que hasta a mi me avergonzaba, junto con los reproches de sus papàs. Hubiera sido bueno tener whisky a la mano en esos momentos...

Change, now is time to change...

Hoy era el día D. Hoy me entrevistaron 4 gabachos de Texas Instrument por teléfono. Comparándola con la entrevista de Sasken, la cosa fue bastante ligera, pero el nerviosismo no fue menor. Lo más complicado fue cuando tuve que deletrear ceyusa y la 'y' se me cuatreapeó. Eso fue bonito, porque querían mi nick para buscarme en sourceforge y luego googlearme (el famoso egómetro). Media hora después de colgar me marcó Alexandra para preguntarme cómo me había ido, yo creí que me hablabas para darme la resolución pero creo que me fue no tan mal, es broma porque ya estás dentro ¿cuándo empiezas?
Estoy emocionado: vida nueva, ciudad nueva, empleo nuevo. Cuando entré a la maestría, Adriana, esposa de Chuy, al compartirle que me sentía intranquilo porque no sabía si daría el nivel, me consoló de manera excepcional: "Jáquez, tú siempre descollas, aún sin proponértelo, sólo se tú mismo". Me gusta imaginar que tiene razón.
Empiezo el lunes 3 de junio. Ya tengo reservación de hotel. El problema es ahora qué diablos entregarle a Juan José, que me contrató por un mes y no he hecho nada palpable. Así que siguen un par desveladas, para justificar lo que ya me pagó. No materializé nada pero aprendí varias cosas interesantes: leí sobre el problema de la diferencia de impedancia entre los DBMS y los programas cliente, aprendí sobre JasperReports y sobre SpringFramework. Ahora falta cristalizar todo eso en algo que puedan ver en un monitor. El problema es trabajar con el código ya hecho y para muestra un botón: 2 horas para ver como interactuar con un procedimiento almacenado. Y resulta que aunque compila bien el código en mi Gentoo, a las primeras de cambio truena en un atoi.

Viajero que vas

Sí, tenía que ir a Cuernavaca para recoger facturas prometidas e intentar resolver el problema de mi kárdex en el sistema de calificaciones. Quedé con Sergio y Gwendy, compré mi boleto y ya montado en el camión, una avalancha de SMS llegarón de distintas personas (Sergio, Blanca y Kiwi) pero con un mismo mensaje: no abrirán el tec el viernes. Carajo. Dudé en bajarme en Querétaro y regresar a Celaya, hasta que llegó un rayo de luz: sí abriría una persona CASA para atender "emergencias". Pues ya estaba en el camión.
Llegué más tarde de lo pensado, el camino al DF y la salida a Cuernavaca estuvo accidentada y con tráfico. Pero ya en la terminal del Pullman no tardaron en pasar por mi Sergio y Gwendy. Me es indispensable agradecer su generocidad y atenciones hacia mi persona. Pasamos la noche, después de beber algunas cervezas. Al día siguiente fuimos ya entrada la mañana al campus, apurando el paso a CASA. Esperé a que se desocupara la señora que estaba de guardia y en mi turno me entregó la única factura impresa, la de marzo ¿y abril y mayo? pues no la solicitaste, pero yo radico en Celaya y no puedo venir cada mes, yo no puedo arreglar nada ahora está cerrado el sistema, y mi kárdex, idem. Un viaje no muy fructifero. Al menos me dieron el correo electrónico de la encargada, a quien ya le escribí si respuesta aún.
Pero qué caray, ya estaba en mi querida Cuernavaca, y no sólo eso, sino que así como así, por la gracia de la casualidad, 5 de los 7 compañeros de la maestría estabamos en la ciudad. Los otros dos (Cinthía y Michel) recién se habían fugado a Acapulco. Pero no nos adelantemos a los hechos. Siguiendo con el viernes, Sergio y yo nos fuimos a comer pozole al Barco, en el centro. Depués nos fuimos al cine cultural Morelos, que ya está reparado y vimos la película francesa La ex-femme de ma vie, una comedia romántica, que no ofrece grandes cosas, pero que resulta entretenida. En la noche de nuevo aparecieron las cervezas además de la cena con Kiwi y su mamá, aprovechando el recalentado de su comida de graduación.
Del viernes, si la memoria no falla, sigue el sábado, en el cual la mañana pasó sigilosamente a lado de nuestro merecido reposo en cama. Al transcurrir ese paso silencioso llegaron a la casa de Gwendy y Sergio, Jaqueline y Javier, Kiwi y Verónica. La comida no fue tan animada como mi memoria las suele recordar. Supongo que cuando un grupo se separa, los temas de conversación en común se reducen. De nuevo nos agazamos con el recalentado. La noche llegó y nos fuimos a Galerías a ver una película. Esa noche platiqué un rato con Sergio sobre la neurisis y su etiología sexual. Interesante.
Volvió esa añoranza. La felicidad se descubre en retrospectiva. Y sí, fuí feliz durante mi posgrado en Cuernavaca.
Vino el domingo. Me despedí de mis generosos hortelanos y me llevaron a los Pullman, acompañado de Sheila y un chavo que no recuerdo su nombre (seguramente porque le va al América). Me puse en el camino al D.F. para verme con Joshua. Nos encontramos en Bellas Artes. Me gusta mucho esa parte del Distrito, me da la impresión de ser una gran ciudad que no le pide nada a ninguna capital europea. Ahí convenimos irnos a comer al Café Tacuba. Me gusta mucho discutir con Joshua, recorriendo temas como veredas en un escarpada sierra. Entrando la noche nos despedimos en el metro Hidalgo y me regresé a Celayita la Bella.
Mañana me entrevistan. El sábado voy a Monterrey.

Ma vie en Java

Mi objetivo de estos días ha sido sacar un servidor de reportes utilizando JasperReports. Inicialmente confié en la experiencia de unos amigos, quienes después salieron con la novedad de que esa experiencia no la comparten como cuates, sino que prefieren hacer "un arreglo que nos beneficie a ambos". Yo creía que compartir el conocimiento ya era benéfico para ambos. En fin, es decisión de ellos. Así que tuve que rascarme con mi presiosas uñas (que no son de gobernador).
Resultó que lo en realidad buscaba (y es la solución que venden mis cuates) es un chisme llamado JasperServer, aplicación web/ws ya hecha y cocinada, que únicamente requiere el esfuerzo del "deployment". Con mucho entusiasmo comenzé a jugar con él, cuando vi que este chisme necesita MySQL. Lo utiliza para el manejo de sesiones y control de usuarios, y, cuando lo que se utiliza en el negocio es PostgreSQL, definitivamente sería un gasto estúpido de recursos instalar el MySQL sólo para eso, así que me puse a truquear el chisme. Leí que, en teoría, puede utilizar LDAP para los usuarios, pero no había nada más de esa mención, pero me di el lujo de suponer que si con LDAP puede, con PostgreSQL también, sólo es cosa de menearle a al contexto y cambiar el driver del JDBC. Y así comenzó mi refriega: error tras error. Harto, y como buen macho, hasta que ya estaba desesperado, recurrí al foro de discusión. Busqué y no vi ninguna referencia al hecho de cambiar el driver del JDBC, no quedándome más remedio que hacer la pregunta yo mismo. Al día siguiente tenía la respuesta: te la pelas, guey... y clásico: eso viene en la siguiente versión pero tenemos pedos para sincronizar la versión de la empresa con la que está en SourceForge.
Entonces me dije, en tono de autocomplacencia, lo que yo necesito no es tanta mamada, un simple servlet que agarre un reporte especificado, lo parametrize, vea si es válido y escupa el reporte o un mensaje de error ¡simple! Me lo aviento. Comencé revisando mis viejos apuntes de las clases de maestría de Arquitectura de Software y Ambientes de Programación Avanzada. Copié de ahí mis proyectos finales, mis notas de hacking y ahora sí a darle. Pero la culpa hizo su aparición: esta aplicación la voy a dejar en una empresa que no sabe nada de Java, ni quiere saberlo, les caería como balde de agua fría este módulo del sistema en servlet, donde tienen que rascarle al Tomcat y a toda la API jodida de los servlets. Seguramente se sentirían más a gusto con PHP. A googlear de nuevo y di con este puente PHP-Java, el cual permite utilizar objetos de Java dentro de PHP. Básicamente es una comunicación entre procesos y un protocolo alambrado para comunicar los objetos que están vivos en ambos contextos. Y la cosa no termina ahí, hay una página en alemán donde arguye que alguien ya hizo eso para JasperReports. Si no entienden alemán, Google les puede echar una manita. ¡Está todo listo! Ahora sí, a hacer algo en PHP, que los mortales pueden entender, utilizando un componente Java. Pero al tomar esta decisión la culpa volvió a llegar: "No seas maricón", me decía yo mismo, "Hazlo en Java, ya sabes PHP, ya no tiene excitación para tí, y en cambio Java, aunque no sea el santo de tu devoción, tiene un hálito de misterio que puedes develar". Así que a la jodida todas mis meditaciones previas y le di gusto a mi morbo. Y mi morbo exige grandes sacrificios, en especial no utilizar servets pelones, sino utilizar un framework MVC, y emplear tecnología interesante, sin llegar, claro está, a los contenedores de EJBs.
Sabía que Struts está muerto, y que utilizarlo sería un graver error, y el fin de semana, mientras me echaba aire en los bajos, leí un poco sobre Spring y me atrajo. Hoy decidí darme un tiempo para seguir el tutorial de Developing a Spring Framework MVC application step-by-step. Pero sólo llegué al principio de la primera parte, y es que, además de interrumpir continuamente mi labor (¡msn es inocente!), me puse a sobar con placer mi build.xml para Ant. Hasta en la tarde pude hacer deployments remotos en mis servidor de pruebas ¡Albricias!.
Mañana, después de ir con los amigos del corporativo Roca, regresare por la hazaña.
Quixmatos, ahí les dejo la receta para que hagan sus cosas en PHP y no estén peleándose con la tecnología de alto nivel de valor de retorno.

Persistencia Objeto-Relacional

Much of the excitement we get out of our work is that we don't really know what we are doing. -- E. Dijkstra

Metaprogramación y el boicot de C++

No estoy programando dispositivos de hardware, ni aplicaciones de sistema, estoy tratando de programar una aplicación clásica de base de datos, y está escrita en C++. ¿Ha sido un error? Yo insisto que sí.
Uno de mis principios más encumbrados es que la computadora debe hacer más trabajo que uno. Para que esto se cumpla, uno tiene que ser lo suficientemente inteligente para decirle a la computadora que ella sea la que escriba los programas y no uno. A esto se llama metaprogramación.
Un ejemplo clásico de metaprogramación es precisamente este tipo de aplicaciones, la que manipulan información en una base de datos. Las buenas prácticas dicen que se debe tener una representación de objeto por cada entidad utilizable en la base de datos. Es decir, si tenemos una tabla inventario, con los atributos id, descripcion y precio, deberomos tener un objeto que nos represente un elemento de dicha tabla y, obviamente, tendrá los mismos atributos, además de los métodos Get/Set para su fijado.
class dbInventario: virtual public DataBase {
private:
        unsigned int id;
        char descripcion[51];
        long precio;
public:
        dbInventario(unsigned int id, const char *descripcion, long precio);
        dbInventario();
       ~dbInventario();
       void findbyPrimaryKey(unsigned int id);
        unsigned int getID() { return id; };
        void setID(unsigned int id);
        const char *getDescripcion() const { return descripcion; };
        void setDescripcion(const char *descripcion);
        long getPrecio() { return precio; };
        void setPrecio(long precio);
}
 
Donde DataBase es una clase heredada que contendrá todos los métodos necesarios para el acceso a la base de datos. Más delante volveremos a esta clase.
Sin embargo, lo primero que nos salta a la vista es la méndiga hueva de hacer una clase por cada entidad en nuestra base de datos, máxime si es una tabla grande. La solución más elegante es la metaprogramación: observamos que el esqueleto de todas estas clase de entidad tiene un patrón muy similar, ¡entonces escribamos un programa que escriba programas! La respuesta más obvia es programarlo en un lenguaje de Dioses: Perl. Ya estamos pensando inteligentemente. Este programa se conectará a la base de datos, extraerá el esquema de dicha base de datos y creará un archivo .hpp y uno .cpp para cada entidad que encuentra, extrayendo también los campos y su definición, para mapearlos en C++ y dejar un bonito esqueleto para cada clase de entidad. El resto sería agregar las validaciones específicas para cada atributo de entrada.
Hasta ahora viento en popa y buenas corrientes. Entonces es cuando debemos volver a nuestra clase base DataBase. Esta clase es un proxy, una representación de la conexión a la base de datos, manejando tal vez un pool de conexiones, administrando los recursos justos del DBMS y será la responsable de hacer todas las operaciones sobre él: select, insert, update (básicamente). Las clases de entidad, al ser derivadas de esta última, tendrán todas sus capacidades.
Meditándolo ahora, creo que no es buena opción hacerlo a través del mecanismo clásico de la herencia, tal vez un patrón proxy sería mejor opción, aprovechando su propiedad singleton para controlar el número de conexiones a la base de datos.
En fin, esta clase DataBase, que ya de por sí es especial por el control de recursos, es además la encargada de generar dinámicamente las operaciones sobre la base de datos, es decir, esta generará el código en SQL necesario para la operación sobre la entidad manipulada. Para poder hacer esto, esta superclase deberá descubrir los atributos de la clase actualmente manipulada y generar la consulta debida. Para descubrir esto en tiempo de ejecución, los lenguajes de programación decentes utilizan un mecanismo conocido como introspección. Y aquí es donde la marrana tuerce el rabo. Lástima, nuestra clase DataBase ya no podrá ser tan inteligente como nosotros quisieramos, y estaremos oblicados a teclear cada consulta SQL necesaria dentro de cada clase de entidad.
C++ es un lenguaje de tipeado duro, con pocas habilidades para la manipulación de tipos en tiempo de ejecución. Esto quiere decir que la introspección es algo inexistente. Y aquí, practicamente se acabó la magia, ya no podemos hacer un código que genere código, porque estamos obligados a que cada instrucción SQL necesaria, la tengamos lista a tiempo de compilación.
En conclusión, cuando programamos cosas en las que vemos patrones repetitivos, lo mejor es evitar teclear a favor de que la computadora lo haga, sin embargo, en un lenguaje de bajo nivel como C++, esto ya no es tan posible. Sean inteligentes, utilizen la mejor herramienta para cada problema.
ADDEUDUM:
Existen preprocesadores, como OpenC++, que permite la introspección de clases en C++, sin embargo utilizarlos endurecería el ciclo de desarrollo al aplicar una capa más de software.

La noche de un sábado

Carlos me arrastró al bar The Station, saliendo de la comida organizada por la familia de Silvestre para agasajar a los dondadores de sangre para su hija Cristina. Esta atención fue de carne asada, cerveza, rematada con whiskey y cognac. Silvestre viajó desde Monterrey junto con su grávida esposa Esperanza, su hija Fernanda y varios kilos de Sirloin, para ver a su hermana, que llevaba ya una semana de recuperación, y de paso tomarse un par de copas con su amigos y donadores sanguíneos. La reunión fue bastante agradable, la comida opípara y la bebida copiosa.
La (posible) futura exnovia de Carlos le llamó a su Nextel para comunicarle que lo esperaba en "The Station", donde ella estaría con sus amigas. Después de esa llamada comenzó el asedio: "Vamos a la estación". Se lo preguntó a las hermanas de Silvestre (Marien, Cristina - en recuperación - y Paloma) y a nosotros. Después las invitaciones se volvieron insistencias. Las hermanas de Silvestre se negaron con la misma porfía, Tomás se desentendió rápido argullendo un compromiso posterior con su esposa, y Julio y yo, que al venirnos en el Atos de Tomás quedábamos a merced o de nuestros pies o de la generosidad de Carlos, tuvimos que librar batalla con su necedad. Por demás yo tenía un problema por partida doble: había dejado mi cartera en mi mochila y mi mochila en el Atos de Tomás y Tomás ya había partido. En otras palabras, estaba sin dinero en la bolsa.
Aprovechando intentar convencernos, Carlos se ofreció a llevarnos. Primero dejó a Julio sin necesidad de mucho ruego, sin embargo conmigo se limitó a decir: "Yo sé que tú no me vas a dejar morir solo pinche Jáquez". Y se estacionó cerca del bar. Por otro lado, el alcohol ingerido me facilitó el cruce de ese pequeño límite entre la templanza y la osadía. Momentos antes de pasar la cadena, cruzó por mi mente la posibilidad de me negaran la entrada debido a mi atuendo, consistente en playera, mezclilla y tenis, pero con toda impunidad, antes de terminar de pensar el argumento, ya estaba adentro.
Esta sería la segunda o tercera ocasión en la que estoy en La Estación. Un bar ya legendario y multigeneracional, donde los treintañeros se juntan beber, fumar e intentar conversar sobre la fuerte música "ambiental". Nunca me ha llamado la atención dicho bar, me aburre, me parece que sus parroquianos son seres vacíos, rendidos y vendidos al ilusorio sistema, donde confunden los medios con los fines. Un escape formar a sus patéticas vidas, donde evitaran confrontarse consigo mismos y culpar a los demás en descargo suyo. Mujeres vestidas de putas, tratando de atraer las miradas de galanes potenciales, quienes con la mentira adecuada podría bien irse a la cama, poniendo al otro día el pretexto del alcohol para despedirse de la vergüenza. Hombres y mujeres vestidos de mentiras con el objetivos de atraer a alguna mosca, pero no había moscas, sólo caníbales.
El lugar estaba lleno. Encontramos a la novia de Carlos y otros tres amigos de ella. Me acomodé un lugar y me dediqué a escuchar la música y observar a la concurrencia. Dos de los tres acompañantes de Paola se fueron en poco tiempo, dejando a una amiga de Paola, de quién jamás supe su nombre. Situaciones se dieron, entre Paola y Carlos, entre la amiga de Paola y gente que se acercaba a saludar. Yo sólo quería mantener el flujo de cerveza abierto y largarme lo más pronto posible. De pronto Paola y su amiga se despieron y Carlos me dice "Vamos al Vanchai", ¡Ni madres! prefiero caminar a mi departamento, Entonces pidamos otra cervezas, ya estoy muy pedo. Para los que no lo sepan, el Vanchai es una disco, digna sólo de adolescentes y pubertosos en busca de nuevas emociones que son incapaces de encontrar en otros aspectos.
Y fue cuando la mala copa de Carlos lo llevó a un estado de ánimo nefasto. Me repetía una y otra vez que se sentía vacío, que su relación con Paola iba de mal en peor y el final estaba cerca, que lo único importante para él en esta vida es hacer dinero, un chingo de varo, repetía, entre otras cosas que sería muy indiscreto hacer eco. Tenía ahí aún amigo, a quien admiro por su capacidad de ligar, de hacer reír a las mujeres, de una idiosincracia simplista, pero entregado a su trabajo, perseverante, quejándose del vacío de la existencia, de esa sensación donde la nada nos arrastra. Otro que tergiversa a los medios con los fines: el dinero y el sexo son lo importante, no la gente que nos rodea, ni nosotros mismos.
Estaba ahí, sentado, cavilando qué responderle, tal vez ninguna respuesta sería buena, él ya estaba instalado en su peda y su nefastez, sólo quería que alguien le escuchara, pero sin discutirle, cuando una voz femenina rompió el ensordecedor ruido de las conversaciones y la música: "¡Hola! ¿Te acuerdas de mi?". ¡No lo podía creer! ¡Era Rocío en persona! Estaba ante la visión de un fantasma.
A Rocío la conocí cuando estaba en preparatoria. En aquellos días de plata escasa y muchas deudas en la familia, mi tío Carlos me daba empleo de medio tiempo donde él laboraba como gerente, agua en garrafón Junghanns. Ahí, Rocío trabajaba como secretaría y asistente. Para mí, y en aquellos días, me resultaba increíblemente atractiva, lejana, deseada. Un día me turbó cuando me dijo: "Víctor, eres el primer chavo de diecisiete años que conozco que no tiene una novia". No hallé qué responder.
Cuando mi tío salió de la distribuidora y yo con él, le perdí la pista. Por medio de mi tío supe que había entrado a estudiar una carrera, no recuerdo si LAE o Comercio Internacional o Leyes, pero si tengo presente la impresión de asombro ante el ánimo de esta chica por hacer un uso conciente de su libertad para crecer a sus circunstancias. Digna de admiración, como lo es toda la gente que asumen su realidad y se dan cuenta que son capaces de rebasarla. Tiempo después, cuando estaba en con mi jugete del proveedor de Internet en San José Iturbide, abrí mi cuenta fiscal en Banorte, en la sucursal de la calle Juárez, donde para mi sopresa y alegría, ella era ejecutiva de cuenta.
Realmente no conversaba mucho con ella, mi espíritu retraído sólo me permitía cruzar con ella las palabras necesarias para el manejo de la cuenta bancaria. Pero siembre buscaba que ella me atendiera. Tiempo después ella ya era la encargada, casi casi gerente de sucursal. Se notaba que progresaba en el banco y le gustaba trabajar ahí.
Los años pasaron y sus ausencias en el banco se incrementaron. Un día, despues de un tiempo de ya no verla por el lugar, le pregunté a Belem por ella (Belem es otra historia que contar después) y su razón me dejó helado: "Tiene leucemia y sólo viene cuando la quimiterapia se lo permite". Y sí, cuando la llegaba a ver, la veía con su peluca, cejas pintadas y cuerpo cada vez más enjuto. No me atrevía a hablarle ¿qué le diría? Únicamente podía maravillarme ante su ánimo de seguir trabajando teniendo a cuestas su mal. Después la dejé de ver.
Con el tiempo, otra vez me animé a preguntarle a Belem por ella. Su respuesta fue sentencia: "Está muy mal. Tuvo una recaída y los doctores no le ven muchas esperanzas". Salí del banco muy triste. Supuse que su descanso estaría cerca. Le desee lo mejor de esta vida para enfrentar el siguiente paso.
Pero ayer, cuando la vi y la reconocí, sentí que la alegría me embargaba: estaba ahí, en el bar, divirtiéndose. Me confesó que se había escapado para dar una vuelta en su querida estación, para recordar antiguos días idos. Me mecía los cabellos, no lo podía creer. Tenía ya el pelo algo crecido y con color en su rostro. Dijo que probablemente le den incapacidad de por vida, por que su lucha contra el cáncer va a largo plazo y las quimios la dejan noqueada. Pero estaba ahí, aún con nosotros, celebrando la vida, a diferencia de Carlos a lado mío, quien la sufría.
Se despidió apresuradamente por que la estaban esperando, no sin antes tomarnos de las manos y despedirnos de beso en la mejilla. Carlos me preguntó quién era ella y le dí una breve reseña. Fue cuando algo se resintió en mi y las lágrimas me comenzaron a brotar sin control. Estaba feliz de haberla visto feliz, radiante. Carlos, ya punto beodo, me dijo: "�nvitala a salir y cógetela". La reación fue en serie: primero sentí una gran ira por su grosería, después reconocimiento de su tristeza y, más importante aún, de su borrachera. Con una sonrisa en el rostro le pedí: "Ya vámonos Carlos".

Cuando las distribuciones se encuentran (Java en Debian Sarge)

Los que me conocen saben que a mi me gusta Gentoo para el trabajo diario de interfaz gráfica y programación. También saben que me gusta Debian para los servidores de mis clientes. Las razones son simples: Gentoo me ofrece gran flexibilidad, muchas opciones, gran poder de abstracción y simultáneamente gran poder para manejar los detalles, con su respectivo costo, que son los largos tiempos para la puesta a punto. Debian es rápido de poner a punto, una gran cantidad de paquetes a alcanze de la mano y fácilmente actualizable.
No obstante, en últimas fechas he tenido que meterme a Java (JasperReports más específicamente) . El soporte de Java en Gentoo es una maravilla, se pinta solo, pero en Debian es más bien pobre.
Hay en Debian una inutilería que se llama make-jpkg, con el cual podemos hacer paquetes deb de los jdk y jre más populares. Escogí el jdk de Sun, el cual bajé de java.sun.com. Entonces con este comando se crea el paquete deb correspondiente:

$ fakeroot make-jpkg jdk-1_5_0_06-linux-i586.bin

$ sudo dpkg -i sun-j2sdk1.5_1.5.0+update06_i386.deb
Entonces mi objetivo es tener un sistema de servlets (Tomcat5) donde pueda generar reportes con el mentado JasperReports. Debido a que en Debian no hay un paquete para este último, hice un emerge en mi Gentoo generando también los paquetes binarios:

# emerge -b jasperreports
A grandes rasgos la estrategía será obtener los paquetes binarios de Gentoo y convertirlos paquetes Debian.
Aquí es cuando aparecen las diferencias entre el manejo de Java en Debian y en Gentoo: Gentoo instala los jar en /usr/share/paquete_java_ver/lib, manejando muy granuladamente el $CLASSPATH. En cambio, Debian mete todos los jars en /usr/share/java, simplificando esta última variable de ambiente. Por lo que haría falta hacer un trabajo de traducción y limpieza.
Una vez obtenidos los tbz2 con los paquetes binarios generados por el emerge, los copio a la máquina Debian. Luego los descomprimo en un directorio raíz temporal (~/newroot/) y muevo todos los jar al directorio ~/newroot/usr/share/java y elimino los /usr/share/paquete_java_ver. Este es el trabajo de limpieza engorroso y hay que hacer decisiones sobre qué hacer con los binarios de /usr/bin y las ligas simbólicas (yo borré todo eso).
Después, con ese directorio hacemos un tgz. Con este tgz crearemos los paquetes deb utilizando el famosísimo alien. Y luego instalas.

$ fakeroot alien --description "JasperReports library and several dependencies not available for debian." --to-deb jasperreports-1.0.1.tgz

$ sudo dpkg -i jasperreports_1.0.1-2_all.deb
¡Y listo! Ahora toca saber si se puede hacer lo mismo con Tomcat5 ya que Debian Sarge sólo tiene Tomcat4.

Opiniones políticas (azuzando a mi zoon politikon)

Inmigrantes
Estoy de acuerdo que, como en la comunidad europea, el tráfico de personas debe ser igual que el tráfico de productos en una zona de libre comercio. Cualquiera puede ir de España a Francia y Holanda sin presentar un solo documento en las fronteras. Esto debe ser la norma en países que tengan fronteras e intereses comunes. Sin embargo con el TLC (NAFTA para los nacos) no es así, y es una lástima. Ojalá en el futuro esto cambie.
Sin embargo, hablando de inmigración, la cosa es levemente distinta. Quien decida emigrar, irse a radicar a otro país, uno debe adecuarse a su nueva realidad. Bien puedo aceptar a cualquiera que se quiera venir a vivir a México, siempre y cuando aprenda español, coma chile, entienda albures, pague impuestos y cumpla con las leyes. Esto mismo se aplica a cualquier país que acepte nuevos residentes que venga de fuera, por lo que los paísanos que se van a vivir a Estados Unidos, lo mínimo que se les puede pedir es que hablen inglés y se adhieran a sus leyes. Sin embargo, es increíble que gente que ni siquiera hace el intento de aprender el idioma, quiera su residencia. Las marchas no sustituyen el respeto al anfitrión. Para los extremistas de los que BX habla ("estas conmigo o en contra de mi"), no estoy, en ningún momento, dando la razón a racistas y xenófobos.
Atenco
"La violencia es el último refugio del incompetente" -- Isaac Asimov
Hacer uso de la violencia es aceptar las limitaciones en el raciocinio, es aceptar estar debajo de la humanidad. Una tremenda estupidez, como violar la ley para usar espacios para realizar operaciones mercantiles, desencadenó una mini-guerra de día y medio: el estado vs engreidos insurrectos.
Aquí sí soy tajante debido a mi enojo, el comercio en la vía pública es ilegal, no paga impuestos, y la procedencia de los productos es dudosa. Pero lo que más me molesta es que impúnemente bloquean espacio común, que pertenece a toda la comunidad para su traslado. Prácticamente podría considerarse cómo el secuestro de la vía pública, la arrancan de la comunidad para el usufructo de unos pocos.
Lo más indignante es que si la ley, decide en su decidia, hacer algo, estos mafiosos se levantan como lo que son: unos cavernicolas sin educación ni pensamiento. Con el garrote por delante y la conciencia por detrás. No, no tienen derecho a llamarse víctimas de un estado opresor, sólo pueden llamarse mafiosos y criminales.
Un hecho que hay que subrayar a todo esto, es que AMLO, protege a René Bejarano, quien a su vez tiene su poder gracias al control que tienes sobre los ambulantes del DF. Indignante.
Derecho reproductivo
Estos días feriados, saliendo a las calles, vi cantidad de gente pululando. Y noté que la inmensa mayoría son parejas jovenes con niños pequeños. Me hize una simple pregunta: ¿cuántos de estos niños y parejas se formaron por un compromiso conciente y razonado? o, aplicando el complemento ¿cuántos de estas parejas y niños están aquí por un "error", falta de información, o cualquier otra justificación pendeja?
Sí, comprendo que los métodos anticonceptivos tienen un margen de error, pero ese márgen de error no se refleja en la cantidad de gente que hay.
¿Cuánta gente se va a la cama, a gozar de sus cuerpos, con responsabilidad (personal y por el otro), información y cierto nivel de compromiso? Ahhh... pero cómo le ponemos pretextos a nuestra ignoracia, pereza y estupidez: "no soy puta, cómo voy a usar pastillas anticonceptivas", "con condón no me gusta", "es que nos ganó la calentura", etc.
Es indignante ver, con tanta información a la mano, que gracias a nuestros prejucios sigamos cayendo en errores que ya no tienen justificación.
Si la humanidad ha podido separar la reproducción de la sexualidad, es porque hay los medios para hacerlo, y tenemos la obligación de informarnos de dichos medios, si realmente queremos separar estas condiciones. Un ginecólogo, de manera corriente, sirve para dos cosas: tener hijos y no tenerlos.

Un libro obligatorio

  1. Introducción a la ética. Raúl Gutierrez Saenz. (01-01-2006 / 01-18-2006)
  2. El Mundo de Sofía. Jostein Gaarder. (01-20-2006 / 02-02-2006)
  3. La tragicomedia de Calisto y Melibea ó La Celestina. Fernando de Rojas (02-05-2006 / 03-06-2006)
  4. La seducción de las palabras. �lex Grijelmo (03-07-2006 / 03-26-2006)
  5. La victoria. Jaime Sánchez Susarrey (03-28-2006/03-31-2006)
  6. El evangelio según Jesucristo. José Saramago (03-27-2006 - 04-22-2006)
  7. Ética para Amador. Fernando Savater (04-23-2006 - 04-02-2006)
Un par de veces en mi vida me he topado con libros o escritos que incendian mi alma y lo primero que pienso es "todo el mundo debe estar obligado a leer esto". Ahora se que con la obligación se perdería toda nervadura de la lectura. Aún así considera que este último libro es una joya, una belleza; es capaz de enfocar la meditación sobre la vida y su posible razón. Léanlo.
Otros libros que han caído en esta categoría son "Breve Historia del Tiempo" de Hawkings, y "The Cathedral vs de Bazaar" de Raymond.
"Lo único que nos humaniza es la compañía de otros seres humanos."