La tuya, la nuestra

Recordando nuestro paso por el matadero de hace casi 7 meses, Daniel Coronell invoca los mismos recuerdos de un pasado no muy lejano. Ajenos y propios, cada vez más parecidos, muy a mi pesar. Una sola historia en blanco y negro, que cambia sólo en matices insignificantes, nombres y fechas.

Hoy comentaron los oyentes de la W, preguntando al ilustrísimo doctor Casas, si era posible cambiar a los magistrados de la Corte Suprema de Justicia mediante un referendo, demanda, tutela o similar. Ya vamos viendo hacia dónde se dirige el agua.

Technical Reminder (20091019)

(versión para dummies)

Problema: El servidor que dejaste en un datacenter, al que accedes de forma remota para configurarlo, no responde después de reiniciar el sistema operativo.
Contexto: Estás configurando un pinche Oracle, reiniciaste porque el pinche Windows no tenía el cliente Telnet y al instalarlo, te pidió reiniciar.
Solución: No dejes el puto CD de instalación en la unidad de CD/DVD. No seas tan malparido con los que han estado cubriendo tus cagadas el último mes. No seas hp!

De Javier, o como ser y aprender

Javier es un ser humano, como muchos otros que habitan esta Tierra. Tiene una gran cantidad de amigos alrededor del mundo, literalmente. Pareciera que la red de amigos de Javier es como el reino de Carlos V, un mundo en el que nunca se pone el sol... y tal vez sea por eso que siempre tienen ideas nuevas y bienvenidas.

Es extraño ver que se tienen vínculos poco usuales con Javier y es tal vez eso lo que lo hace más humano y real. Hay personas conocidas que resultaron ser cercanas a él. Tengo recuerdos de madMilo hablando animado con la hermana de javier (¿o era la prima? la memoria me falla), así como de GGG hablando con todos y siendo ignorado por la mayoría.

Es curioso creer que una persona es real aún cuando todo vínculo que se tiene con él es lejano o irreal. Debe ser que su presencia es lo suficientemente fuerte para lograr acercarse a quien lo lee.

Ojalá se pueda conocer más a Javier en el futuro. Supongo que valdrá la pena, como ya ha pasado varias veces en TOL.

Technical Reminder (20091008)

Situación: Se tiene una máquina con Fedora Core 10 recién instalado, muy seguramente corresponde a versiones descargadas en los primeros meses de 2009. Se va a configurar una conexión de red usando la aplicación system-config-network. Aún cuando se deshabilita la opción de que NetworkManager maneje la conexión, no es posible configurar correctamente la máscara de red; al guardar la configuración deseada y editarla de nuevo, aparece la dirección IP del gateway copiada en el campo de la máscara de red. (Y es peor cuando se está en un datacenter aguantando frío y maldiciendo al fantasma que cambia la máscara de red apenas la guardas!).

Problema: Como se explica en este reporte de bug y este otro reporte de bug, Fedora Core 10 estable, ya sea la versión x32 o x64, presenta un bug en esta aplicación. Así se guarde, reinicie y demás, no se va a modificar correctamente la configuración de la conexión y tontamente va a usar el valor del gateway para definir la máscara de red (!!!!).

Solución:
  • Para poder conectarse a Internet: Editar el archivo /etc/sysconfig/networking/devices/ifcfg-ethX, siendo X el número de la interfaz de red.
  • Para corregir el problema con system-config-network: yum update -y . Así de simple.
Espero que este post sirva para facilitarle la búsqueda a otros.
Bis bald!!

De Javo o cómo ser y parecer

Javo no existe. Siempre se ha dicho que representa un punto de referencia, un modelo o patrón, pero todo lo que queda tras ignorar los textos abundantes y los comentarios insípidos es una bruma leve e incómoda en su vacuidad.

Y bien, suponiendo que no existe más allá de aquello que escribe, podría decirse que carece de valor cualquier aproximación a "ese" javo que pretende hacer sentir bisoño e imberbe a todo aquel que osa aproximarse a él. O a lo que puede verse de él. Resulta tentador hablar de Thee y de thy writings, sólo por respetar esa falsa aura de paternidad que se ha asignado, apoyado por numerosos seguidores enamorados, buscadores ávidos de figuras de autoridad que definan su forma de pensar o escribir. Es casi como Fernando Vallejo, sólo que sin la locura.

Podríamos decir que Javo existe como Scarlett Johansson, que se proyecta más allá de lo que realmente es y que simplemente el mundo magnifica su existencia, presencia y potencia. Pero, a diferencia de ella, Javo no ha sido visto más que por una turba ganosa, de la cual todos desconfían y sobre la que se rumora que uno de sus miembros tomó su lugar (el de Javo), tras sacrificar un cordero y ofrecerlo como tributo al padre Javo.

Perdónanos, Javo, porque no sabemos lo que hacemos. Y aún así, lo disfrutamos.

Technical Reminder (20090928)

Problema: Evitar que un elemento en un documento HTML capture todos los eventos que recibe, estando el evento definido como disparador de una secuencia de funciones JavaScript.

Contexto: Para controlar la forma en la que un usuario interactúa con elementos del documento HTML, es posible que se necesite validar e incluso deshacer la acción que el usuario acaba de efectuar. Si el intervalo entre eventos es muy corto, puede que no se procesen en el orden esperado y alguna de las acciones a deshacer llegue a término por el flujo básico.
Por ejemplo, si se desea implementar un teclado en pantalla, es necesario deshacer cada ingreso de un caracter efectuado desde la entrada de teclado (escuchando atentamente al evento keyup o keydown sobre el elemento input de la contraseña). Es posible (se verificó en pruebas) que al ingresar una gran cantidad de caracteres durante un corto intervalo de tiempo, el motor JS del navegador no procese correctamente la secuencia, continúe capturando los eventos y no retorne correctamente al valor anterior del campo (usando la función setTimeout, por ejemplo).

Solución: La opción más sencilla es la más fácil. Fijar el atributo disabled en true (form.field.disabled = true;) como primer paso en la secuencia a seguir cuando se detecta el evento keydown/keyup, evita que se capturen eventos posteriores, al menos hasta que termine la secuencia y se reestablezca el estado del elemento. En mi caso, incluye una notificación al usuario usando el viejo alert("Use el teclado gráfico") que lo detiene en su empeño al escribir :-)

PD. A quien crea que una implementación de este estilo está lejos de aquel principio "die gracefully", puede decirse a sí mismo que confunde la naturaleza del mismo. Es posible si el diseño y la arquitectura son los adecuados... en el ejemplo, es posible ingresar la contraseña, pero el formulario no debería ser procesado e incluso, el mensaje POST no debería ser enviado (restriccción impuesta al usuario por su seguridad).

En fin,... bis bald!!!

Agonía

Cada día el calor es más agobiante. Pareciera que alguien jugara a subir la temperatura de la olla, lentamente, de forma prácticamente inperceptible para todos -salvo algún espíritu sensible-. El ahogo es cada vez más frecuente, la ansiedad constante producto de la respiración entrecortada y el sudor escaso anunciando la deshidratación.

Se ve venir el sopor, la pesadez del aire que tal vez se haga más húmedo debido al agua que pasa de los ríos a las nubes y a las corrientes de aire en general. Es posible que la humedad llegue a límites insoportables y se haga necesario aislarse del exterior... y al mismo tiempo no habrá agua suficiente para aliviar la sensación de calor, de fastidio constante. Como un eterno domingo en la mañana, acostados sobre una playa infinita, dondequiera que vayamos. Sólo que sin olas arropando aquello que encuentran en su camino. Sólo el calor, ese maldito calor.

Es probable que, poco a poco, perdamos el conocimiento tras una crisis seguida por un desmayo repentino. Nada demasiado doloroso; quizás un poco prolongado respecto de lo que podría considerarse deseable en condiciones semejantes. Juntos todos y cada uno, tapizando poco a poco las calles y los jardines. Hundiéndose algunos en fuentes de mármol amarillento, arrastrándose otros hacia lagos secos y ríos pedregosos que suspiran por el esplendor del pasado. Todos llegando inexorablemente al fin de sus existencia como seres vivos. Ninguno convirtiéndose en abono de algo más. La vida dejaría de ser el ciclo que conocemos para aventurarse, abriéndose paso a través de la bruma y la aridez, hacia nuevos e inexplorados horizontes.

Es aquí cuando, aún soñando, recuerdo lo insignificante que es un ser humano parado sobre esta tierra, salvo para otros como él.

Ranting on monday

Cómo se recupera la habilidad para soñar a mediano o largo plazo, después de pasar un tiempo enfocándose en el presente?

Qué hacer cuando regresan las ambiciones de hacer y aprender, siendo que no se da abasto para hacerlo todo?

This is the money shot

Technical Reminder (20090909)

Situación: Instalar Microsoft SQL Server 2000 sobre Windows XP Professional (caso particular con SP3, otros casos no son verificables pero seguramente se incluyen).

Requerimientos: Para esta versión de Windows, sólo es posible instalar la versión Developer o versiones de prueba de Enterprise.

Problema: Una vez se terminan de copiar los archivos, al aplicar la configuración definida previamente, se produce un fallo que deshace la instalación y se genera un log en %windir%\sqlstp.log (%windir% es la ruta a la carpeta principal de Windows, comunmente C:\Windows)
El fallo se registra en el log como:

C:\Archivos de programa\Microsoft SQL 2:44:57 Server\80\Tools\Binn\cnfgsvr.exe -F "C:\WINNT\sqlstp.log" - dbdebug - MSSQLSERVER -V 0 1 M -Q "SQL_Latin1_General_CP1_CI_AS" -H 262404 -U sa -P
Iniciando servicio...
SQL_Latin1_General_CP1_CI_AS -m -Q - T4022 - T3659
Conectando con servidor...
controlador = {sql server}; servidor = MyServer; UID = sa; PWD =; database = error de red general [Microsoft] [controlador ODBC para SQL Server] [memoria compartida] maestro. Compruebe su documentación de red.
[Microsoft][ODBC SQL Server Driver][Memoria compartida]ConnectionRead (recv()).


Solución: La mediocridad en el desarrollo de este software se hace visible cuando revisamos el contenido del archivo y vemos

12:30:08 Name = MYSERVER, Type = 0x1
12:30:08 ComputerName: MyServer
Como quien dice, el problema está en que el nombre del equipo no está completamente en mayúsculas. Si es mixto o todo en minúsculas, presentará este error al instalar esta versión de SQL Server 2000. Cambiando el nombre del equipo (no sólo a mayúsculas, sino efectuando un cambio real en el nombre, de lo contrario no lo modificará) y reiniciando la máquina, podremos instalar este DBMS sin problemas.

PD. La solución real es usar otro motor de bases de datos. Para los que tenemos clientes tercos o que están amarrados muy a su pesar, la solución listada arriba es la indicada. Más información disponible en este artículo de la Base de Conocimiento de MS.

Bruma

Hace falta una suma de factores para llegar a un estado en el que aquello que sentimos de una u otra forma se asemeje a lo que describía Bretón. Usualmente me demanda acusar fatiga en alto grado y dormir poco, para lograr esa secuencia de sueño y vigilia en la que no se logra distinguir nada y a la vez todo está conectado de alguna forma. Los diálogos que llamarían reales, se escurren entre rendijas y se camuflan al ingresar en la memoria del Alfabravo que camina por un bosque hoy o que recorre algún pasaje de su infancia mañana; mutan y evolucionan para integrarse con el horizonte, difuminan la línea entre lo que los demás nos recordarán mañana y lo que nosotros mismos nos encargaremos de rememorar en el siguiente sueño.

Debe ser interesante conservar esa integración del subconsciente con el mundo consciente que construimos y sin duda, debe llevar a nuevas perspectivas. A nuevas expectativas. A sueños más elaborados. Inclusive, puede que sea más fácil hacer los sueños realidad pues, al final, con soñarlos será más que suficiente. Somos dioses en nuestros sueños, así no logremos correr en ellos.

Ahora que lo pienso, es raro recordar a Bretón por haberle leído en el examen del ICFES. Siempre se me aparece ese recuerdo como si surgiera de la bruma. Es el manifiesto surrealista, autorreferente.

Bis bald!!