Luces de la Ciudad

Ayer fui a la Plaza a ver si ya tenían discos duros S-ATA 2 de 160 Gb. No había; así que fui a caminar un poco por el Centro. Pasé al Gandhi en frente del Palacio de Bellas Artes y compré Hijos de Dune; así tradujeron el título de Children of Dune, el tercer libro de la serie escrito por Frank Herbert.

Cuando leí los dos primeros, hace un par de años, los otros eran medio inconseguibles aquí en México. Al menos yo no había podido encontrarlos (y de verdad busqué).

De Gandhi me pasé al Sanborn’s de al lado, donde me tomé un café y un helado, mientras leía la novela. Estaba haciendo tiempo más que nada. A las 7:20 me salí y tomé el metro a Chabacano, donde recogí a Ana Laura. De ahí fuimos a Bellas Artes, donde descubrimos que no se pueden tomar fotos del palacio con tripié. Normales sí, pero con tripié no.

A la próxima, desarmo más rápido el tripié.

Fuimos a la Torre Latino, y ahí aparentemente sí se puede usar tripié (si la cámara no es “profesional”… no me termina de quedar claro por qué). Estuvimos viendo la ciudad, mientras le explicaba qué había en cada zona (poniente, sur, oriente, norte) y cuáles eran los rascacielos más significativos.

Que en la ciudad no son muchos; tienden a caerse en los temblores.

Hay pocas cosas que me gusten tanto como la Ciudad de México. Para mí es un ente vivo; la quiero, la conozco, la respeto. De repente me hace enojar; pero siempre consigue que la perdone.

Cuando hablo de la ciudad, mucha gente no me entiende. Me dicen que no pueden entender cómo me gusta tanto con el smog, el tráfico, la inseguridad. Algunos incluso mencionan a su gente como un factor para no querer a la ciudad.

Yo no niego ninguno de los problemas de la ciudad; tiene muchos. Pero sí creo que se exagera: por ejemplo, mucha gente cree que esta ciudad es la más insegura de México, e incluso de Latinoamérica. Y es que hay razones para creer tales burradas: muchos son los que atacan injustamente a mi Vieja Ciudad de Hierro. Si uno no se informa, puede llegar a creer cualquier cantidad de pendejadas.

Pero lo que en general aún menos entienden muchos, es que lo que más quiero de esta ciudad es a su gente. Yo estoy convencido de que la gran mayoría de los habitantes de esta inmensa ciudad la quieren tanto como yo; y probablemente por las mismas razones. Sí hay mucha gente que se queja; no hablo de las críticas constructivas que hacemos los que de verdad queremos a la ciudad… hablo de las quejas estridentes de quienes viven aquí sin apreciar lo que tienen. Son muchos; pero estoy también convencido de que son una minoría absoluta. Muy gritona, pero minoría al fin y al cabo.

A todos esos les tengo un consejo bien sencillo: lléguenle. Serán más felices si se van (si tanto desprecian a esta ciudad); y créannos, el resto de nosotros lo seremos aún más.

La gente que queremos a esta ciudad somos poseedores de un secreto milenario, que a veces se nos olvida porque caminamos sobre él todos los días: en la Ciudad de México, el cielo está en el suelo, y caminamos entre las estrellas.

El cielo en el suelo

El cielo en el suelo

Un año

Y de repente vi que se me pasó el bloguear acerca del primer aniversario de mi blog. Mi primera entrada en el blog fue el 26 de enero de 2005; así que hace tres días este blog cumplió un año.

Algunas estadísticas:

  • 281 entradas. Eso es poco más de dos entradas cada tres días.
  • 448 comentarios (quitando SPAM y bromistas); gracias a todos los que se toman la molesta de leerme y dejar algún comentario.
  • De los 448 comentarios, 198 están en la entrada de Harry Potter and the Seventh Horcrux; 36 en la de Robotech, y 38 en la de Kim Possible (que fue renovada para una tercera temporada). La de Kim Possible me impresiona porque no tiene liga directa en el inicio del blog.

Me alegra cumplir el año; espero tener cosas interesantes que platicar en este que empieza.

Webcam

Hace un año, cuando creía que me iban a dar la beca y me iba a ir a Canadá, compré una webcam. La idea era tener una forma de contactar a mis padres sin gastarme una lanísima en llamadas de larga distancia. Pensaba que podría poner una versión de GnomeMeeting (ahora Ekiga), o algo por el estilo.

Entonces estaba en la Plaza un día, y vi una camarita web de Creative. No tenía idea de si estaba o no soportada en Linux; pero me dije “si no lo está, la dejo en casa y me compro otra que sí lo esté”.

Por supuesto, no estaba soportada.

Existía un endeble driver que a veces jalaba, y compilé mis módulos del kernel y me inscribí a la lista de correo. El driver era tan inmaduro que se apirañaba casi el 100% del procesador de mi máquina viejita, y eventualmente terminó en el fondo de alguna caja. De vez en cuando me asomaba a la lista de correo; pero ésta fue bajando de tráfico hasta que por fin se detuvo completamente.

Con mi nueva máquina, además de reinstalar todo, el desmadre de cajas, cables y manuales me hizo limpiar por estos rumbos, y me encontré la camarita. Intrigado, decidí meterme a la página del driver a ver si había alguna novedad. La novedad fue que el proyecto se declaró muerto, y le cedió todos los derechos a otro proyecto: spca5xx.

El título apesta (y la página peor); pero el driver funciona de pelos. XawTV ya no es lo de antes, y truena al tratar de grabar (verme a mí mismo sí funciona); pero de los autores del driver hay un programita para probar y grabar de la camarita (spcaview), y funciona bastante bien.

WebCam

WebCam

Lo sé: la calidad apesta. Pero, hey, funciona.

Fiesta en casa del Bits

El jueves Mr. Faison me contactó en el messenger; que había fiesta en casa del Bits el viernes en la noche y que si le caía. Pedí un mapa e instrucciones para llegar, y fui. La fiesta era en Cuajimalpa; cerca de la oficina de Simitel, que ya no está en el mismo lugar que cuando yo estaba, pero sí muy cerca.

Para un sureño/oriental de la Ciudad, como lo soy yo, Cuajimalpa es un poco como La Dimensión Desconocida. Por supuesto me perdí, pero por fin llegué.

Me la pasé muy chido, platicando con la gente de la oficina. Me enteré que ahí siguen Eric y el Serge Kruppa, y por supuesto el Marcus. Estuvimos rolando la mota (creo que ya son los únicos cuates con los que todavía fumo mota… debo llamarle al Javier), y recordando los buenos tiempos, mientras además me ponían al corriente de las nuevas aventuras en la oficina.

Parece que ya no es lo de antes; ya no le hacen gang bang al Mr. Faison todos los días, y ya no hay torneos masivos de Warcraft III. Además la oficina ha crecido, y parece que este año ya casi consiguen ganar dinero.

Muy chido; espero que me inviten a otra cosa pronto. Parece ser que el Malecho va a tener un toquín; yo creo que sí voy.

Actualización (12/Marzo/2006): Me hicieron notar (y tengo que estar de acuerdo), que podría entenderse como que en Simitel trabajan un montón de drogadictos que hacen fiestas donde los sicotrópicos de alta y baja intensidad se intercambian como pañuelos desechables.

No es así, por supuesto; la fiesta era del Bits por su cumpleaños, y ocurrió que alguna gente de Simitel estaba presente. En particular, Serge no fumó mota (lo cual no es de extrañar, ya que ni siquiera come tacos), Marcus ni siquiera estaba, y Eric sólo estuvo fumando Delicados hasta tener los dedos amarillos… que lleva haciéndolo desde que tiene doce años, creo. La fiesta no la organizó ni pagó Simitel, y sólo fue una reunión de particulares (muchos de ellos sin ninguna relación con Simitel).

Espero que nadie se hicera de una mala idea acerca de Simitel como empresa por esta entrada; es posiblemente el lugar donde más profesionales fueron mis compañeros de oficina, y sin duda la mejor empresa para trabajar (al menos en mis gustos).

Vieja Ciudad de Hierro

Bajé la escenografía de FlightGear Flight Simulator que contiene básicamente todo México (quedan fuera pedazos de la península de Baja California y de la península de Yucatán). Y me metí a volar para ver cómo aparece la Ciudad de México en el simulador.

It ain’t pretty.

"Ciudad de México"

“Ciudad de México”

Eso es en las coordenadas (aproximadas) 19.356° N, 99.922° W, que según la Wikipedia está dentro de la Ciudad.

Mi Vieja Ciudad de Hierro quedó reducida a diez casitas, un par de iglesias, y dos torres de control de pista de aterrizaje para narcos.

Democracia

Otra vez de política. Prometo no hacerlo muy seguido. Además, esta entrada es peje-free.

Hay que adorar a las “democracias” Occidentales… porque por supuesto nosotros pobres países en vías de desarrollo tenemos que voltear y tomar como ejemplos a seguir a países como Estados Unidos, Gran Bretaña y Francia, para poder algún día (si nos esforzamos mucho mucho y seguimos las acertadas recomendaciones del FMI) llegar a ser como ellos.

Por supuesto nadie menciona en ese contexto que en esas democracias todavía discuten si enseñar creacionismo o evolución en las escuelas, tienen reyes, o revueltas que vuelven loca a París por rencor social y racial.

En ese sentido es fabuloso ver los sitios de noticias “occidentales” de los últimos días. Todos esos gobiernos imperialistas nos urgen a abrazar la democracia (como ellos la entienden) y aceptar las “bondades” del libre comercio mundial, y toman como pretexto el que un país no sea democrático (como ellos lo entienden) para mirarlo feo, imponerle bloqueos comerciales, o de plano bombardearlo.

La búsqueda de la “democracia” (como ellos la entienden) es el principal pretexto para cometer atrocidades que no le quitan el sueño a nadie porque generalmente son contra árabes, negros o indios a los que les tocan.

Pero cuando la democracia (como ellos no la entienden) es ejercida por esas muchedumbres de árabes, negros o indios, entonces se mesan los cabellos escandalizados de que tal cosa pueda ocurrir.

Evo ganó en Bolivia, un país con 60% de población india. Yo no entiendo como alguien puede sorprenderse de que haya ocurrido. Pero más sorprendentemente aún me parece la página de CNN, mencionando que “Occidente” (todo Occidente según ellos… aunque lo más propio sería decir los gobiernos imperialistas de Occidente) está “en SHOCK” porque Hamas ganó las elecciones palestinas.

Bueno ¿y qué esperaban?

Yo no soy fan o apoyador de Hamas; y creo (desde mi no muy informada perspectiva), que muchos de sus dirgentes están bastante locos. Pero lo que yo aprecio en su victoria en las recientes elecciones palestinas (con una participación altísima, por lo que he leído), es sencillamente que el pueblo palestino:

  1. Quiere un estado para ellos (que además es consenso internacional, incluido EU, desde hace ya rato), y
  2. Ya están hasta la madre de no obtenerlo y de los obstáculos que pone Israel, y creen que el de Hamas es el mejor camino para conseguirlo.

¿Eso es bueno? Claro que no; probablemente venga otro agravamiento de esa crisis, vengan más muertos (sorpresa sopresa: lo más serán palestinos), y probablemente se estanque el proceso de paz más décadas, si no es que hay incluso un retroceso en los avances conseguidos.

Pero que no salgan con mamadas de que “Occidente” está en shock por la victoria de Hamas. “Occidente” es en gran medida responsable de que Hamas haya ganado en primer lugar.

Lo que pasa es que a “Occidente” sólo le gusta la democracia cuando ganan los candidatos que les gustan.

Subversion

Desde hace un rato (desde el sábado 13 de marzo de 2004, según mis logs), tengo mi $HOME en un repositorio de Subversion. Es increíblemente útil, y además bien mamón.

En primer lugar, me permite nunca perder un archivo al momento de que lo añado al repositorio. En segundo, puedo recuperar cualquier versión anterior de casi cualquier cambio que haya hecho. En tercero, me mantiene sincronizados mis ambientes de trabajo entre mi desktop (ahora más poderosa que nunca) y mi laptop.

(Debo hacer notar que no es todo mi $HOME el que tengo en SVN; sólo $HOME/Documents; el resto son cosas de configuración y similares, que no me preocupa perder tanto como mis archivos).

Cuando cambié a mi Athlon 64 X2, me dije “fácil; hago un respaldo del directorio SVN, y lo repongo en la nueva máquina”. Grave error.

Resulta que el formato opaco que usa Subversion (DB 4), no es compatible entre arquitecturas (incluso si son cercanas, como x86 y amd64). De hecho, a veces no es compatible entre distintas versiones de DB. Así que tuve que mover mi respaldo a mi laptop, hacer un dumpfile, mover el dumpfile a mi Centurion, y recuperar el dumpfile.

Pero bueno, al menos no perdí nada.

FlightGear Flight Simulator

Cuando vi que Rhythmbox funcionaba recompilando algunas de sus dependencias, le di una segunda oportunidad a otros programas: principalmente Celestia y FlightGear Flight Simulator, para probar mi tarjeta de video (el demo de Quake IV me está dando broncas, y no sé si sea que tengo broncas con el reloj interno de la máquina, o alguna cosa con la emulación de software en 32 bits).

FlightGear había llegado el punto en que ya no podía jugarlo. Con esta nueva máquina y tarjeta de video, no sólo puedo jugarlo, sino que no tengo que cerrar nada mientras lo hago. Se ve muy bonito.

Puente de San Francisco

Puente de San Francisco

Voy a bajar la escenografía de México; espero que incluya al menos parte de la ciudad.

Tarde de cine

Siendo miércoles 2 x indio, fui al cine a desquitar que casi no he ido al cine por mi nueva máquina. Vi The Jacket, Aeon Flux y Jarhead, y voy a hablar de ellas, así que si no quieren oír spoilers no sigan leyendo.

  1. The Jacket
    The Jacket

    The Jacket

    Una mamada. Me gustó, pero no le quita que sea una mamada.

    Mi problema básicamente es que Adrien Body viaja en el tiempo cuando lo meten en una cajita amarrado (no sabemos por qué, y parece no importar que nadie lo sepa), que los personajes tienen como dos milímetros de profundidad, y que Body y Keira Knightley se enamoran básicamente porque el guíon decía. Ah, y que a un chavito árabe se le quita lo taradito dándole de toques. Eso fue particularmente fabuloso.

    Como sea está entretenida, y Body y Knightley hacen lo que pueden con un guión que hubiera sido fabuloso si no hubiera sido tan malo.

    Pero una mamada al fin y al cabo.

  2. Aeon Flux
    Aeon Flux

    Aeon Flux

    Una mamadota. Ya me lo esperaba, pero hay que decirlo con todas sus letras: es una mamadota.

    Hay que ponerlo en perspectiva, claro. Está basada en una caricatura que para empezar no era muy buena; no se le podía pedir mucho. Y tiene cosas “futuristas” divertidas y a Charlize Theron.

    Claro que la Theron se ve mucho más guapa cuando sonríe; cuando la hace de chava ruda-y-permanentemente-encabronada, no lo es tanto.

    Una mamadota.

  3. Jarhead
    Jarhead

    Jarhead

    Una mamadototota. No hay realmente historia, y los personajes son tan sosos que hacen admirar a los de las novelas de Karl von Vereiter. Ni siquiera es pro gringa para poder decir que es una película pro gringa. De hecho, no creo que haya otro mensaje además del (ligeramente homosexual) de spirit de corps. E incluso ése está pobremente expresado.

    Independientemente de lo mala que es la película (por no decir aburrida), cada vez me gusta más Peter Sarsgaard como actor. He visto tres películas con él (las tres malas), y él es lo más rescatable generalmente. Jake Gyllenhaal no está mal, sólo que su personaje no genera la más mínima simpatía.

    Pero es una mamadototota.

Así que vi una mamada, una mamadota y una mamadototota. Ya lo esperaba de Aeon Flux; pero creía que las otras dos serían al menos medianamente buenas.

No lo son. Hubiera visto Las locuras de Dick y Jane; al menos sale Téa Leoni.

OpenOffice.org 2.0

Hace un par de meses emergí OpenOffice.org 2.0 en mi laptop. Me precié mucho de que tardó 5 horas 57 minutos en compilar todo el paquete; en mi máquina vieja, había tardado del orden de ocho horas.

Ahora mientras estaba entretenido con mi nueva máquina, decidí hacer un update en mi laptop y vi que entre los paquetes estaba OpenOffice.org 2.0.1. Pensé “bueno, otras seis horas”.

Tardó 22 horas 29 minutos.

No tengo idea de porqué tardó más de cuatro veces más. No tiene el menor sentido.

HAL y pmount

Hace ya un rato (casi dos años), a Robert Love (reconocido hacker del kernel y GNOME) se le ocurrió la genial idea de que cuando un usuario conectara su cámara, llave USB, PDA, etc. a una máquina con Linux, sería muy chido que el aparato en cuestión comenzara a funcionar. De ahí nació el proyecto Utopía (pueden leer el mensaje original de Robert en Kernel.org).

La idea era integrar el kernel y el escritorio: básicamente (se dijo en ese momento), el kernel es über cool y GNOME todavía más, así que sólo había que pegarlos. En español: el kernel ya era capaz de detectar los dispositivos y manejarlos, y el escritorio tenía las herramientas para utilizarlos; la bronca era configurar la comunicación entre ambos. Utopía se iba a encargar de dicha comunicación.

De ahí vienen D-Bus y HAL, entre otras cosas. HAL (de Hardware Abstraction Layer) se encarga de que cada vez que un dispositivo se conecta, hace público tal evento, además de pasar bastante información del dispositivo, cosas como el fabricante y el modelo; o incluso cosas útiles como el sistema de archivos que utiliza una llave USB. D-Bus sirve como un sistema de IPC (Inter Process Communication), con jerarquías y toda la madre.

La idea es fabulosa… en teoría. En la práctica ha causado un verdadero desmadre, especialmente a la gente que usamos Gentoo y entonces seguimos los dictados de GNOME casi al pie de la letra… lo que se traduce en que si de repente a los GNOMEros se les ocurre la genial idea de usar pmount, ahí vamos el resto como borregos. Más de eso adelante.

Ayer todo GNOME 2.12 entró a amd64 (estable), y por tanto actualicé. Todo salió sorprendentemente bien, sin ninguna bronca. Yo estaba siguiendo con mi tarea hercúlea de restablecer mi sistema como lo tenía antes del cambio a AMD 64, así que configuré mi Palm (sin broncas), y decidí dejar conectado permanentemente el cable de mi cámara Sony Cybershot DSC P200 (de qué sirve tener 10 puertos USB si no). Para probar, la conecté y con horror vi que había desaparecido el hermoso iconito de una camarita en nautilus (ahora salía un horrible drive genérico), y en segundo y más grave lugar, ahora el sistema de archivos se montaba con shortname=winnt, lo que causa que todos los archivos ESTÉN EN PURAS MAYÚSCULAS LO CUAL NO SÓLO ES MOLESTO SINO INCONSISTENTE CON TODAS MIS DEMÁS FOTOS.

Así que como ando de vagaciones, decidí resolver el asunto de una vez y por siempre (ya había tenido esa bronca en mi laptop con mi iPod Shuffle, que causa que Rhythmbox no funcione como debe).

Después de menearle un rato, al menos recuperé mi hermoso iconito de camarita; el chiste fue poner esto en /etc/hal/fdi/information/99-sony-camera.fdi:

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- xml -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="@storage.physical_device:info.bus" string="usb">
      <match key="@storage.physical_device:usb.vendor_id" int="0x054c">
        <match key="@storage.physical_device:usb.product_id" int="0x0010">
          <merge key="storage.policy.should_mount" type="bool">true</merge>
          <merge key="info.category" type="string">camera</merge>
          <merge key="camera.access_method" type="string">storage</merge>
          <append key="info.capabilities" type="strlist">camera</append>
        </match>
      </match>
    </match>
  </device>
</deviceinfo>

Y mi iconito volvió (porque ya especifico que el dispositivo tiene la propiedad de camera):

Icono de camarita

Icono de camarita

Chingón. El problema fue decirle que no montara el dispositivo con la opción shortname=winnt. Inocente de mí, supuse que usando la propiedad volume.mount_option.shortname=lower todo iba a jalar. Nomás no lo hizo. Lo desesperante era que HAL sí estaba asignando la opción, sólo que en algún punto del stack de Utopía, se la pasaba por el arco del triunfo.

Analicé todas las opciones por omisión de HAL, y después de D-Bus. En ningún lado ponían explícitamente la opción shortname=winnt. Comenzaba a desesperarme, cuando vi la luz: era pmount.

Originalmente, HAL modificaba /etc/fstab cada vez que un dispositivo era conectado al sistema. Era sucio, era propenso a errores y a estados inconsistentes del sistema (por ejemplo si se iba la luz y uno desconectaba el dispositivo antes de volver a prender la máquina, la entrada en /etc/fstab se quedaba ahí hasta el fin de los tiempos), pero funcionaba. De repente en algún punto entre GNOME 2.10 y 2.12, a los GNOMEros se les ocurrió: “pues vamos a usar pmount“.

La idea de pmount es chida, si bien espanta un poco cuando uno la oye por primera vez. El programa lo que hace es permitir a usuarios comunes y corrientes el montar dispositivos sin que éstos tengan que estar listados en /etc/fstab. ¿Cómo hace esto? Fácil: es un programa setuid.

De donde yo vengo, cuando oímos algo así lo primero que hacemos es decir:

¡PELIGRO, WILL ROBINSON, PELIGRO!

En defensa de los autores de pmount, parece que es un programa chiquitito que hace una sola cosa y trata de hacerla bien y de forma limpia. La bronca es que hace falta un sólo error en el programa para permitir un escalamiento de privilegios en el sistema. Pero a la gente de GNOME se les hizo buena idea, y yo confío en ellos… y si me crackean ya sé a quiénes echarles la culpa.

Me costó un par de segundos descubrir el “error” (ellos le han de decir “feature”) en pmount: básicamente el tiempo que me tardó teclear grep winnt en el código fuente de pmount. En src/fs.c aparece:

static struct FS supported_fs[] = {
    { "udf", "nosuid,nodev,user", 1, "007", 1 },
    { "iso9660", "nosuid,nodev,user", 1, NULL, 1 },
    { "vfat", "nosuid,nodev,user,quiet,shortname=winnt", 1, "077", 1 },
    { "ntfs", "nosuid,nodev,user", 1, "077", 1 },
    { "hfsplus", "nosuid,nodev,user", 1, NULL, 0 },
    { "hfs", "nosuid,nodev,user", 1, NULL, 0 },
    { "ext3", "nodev,noauto,nosuid,user", 0, NULL, 0 },
    { "ext2", "nodev,noauto,nosuid,user", 0, NULL, 0 },
    { "reiserfs", "nodev,noauto,nosuid,user", 0, NULL, 0 },
    { "xfs", "nodev,noauto,nosuid,user", 0, NULL, 0 },
    { "jfs", "nodev,noauto,nosuid,user", 0, NULL, 1 },
    { NULL, NULL, 0, NULL, 0}
};

Y en el ChangeLog aparece:

- pmount: mount vfat with shortname=winnt option

Qué razonamiento tuvieron los autores de pmount para forzar la opción shortname=winnt, no la sé. Y como no tienen lista de correo y su página está en alemán, probablemente nunca lo sepa. Pero el punto es que me estaban limitando, y a mí no me gusta eso.

Por suerte es Open Source, así que sólo creé el parche:

--- pmount-0.9.6/src/fs.c       2005-10-13 09:59:06.000000000 -0500
+++ pmount-0.9.6-new/src/fs.c   2006-01-24 20:33:32.000000000 -0600
@@ -21,7 +21,7 @@
 static struct FS supported_fs[] = {
     { "udf", "nosuid,nodev,user", 1, "007", 1 },
     { "iso9660", "nosuid,nodev,user", 1, NULL, 1 },
-    { "vfat", "nosuid,nodev,user,quiet,shortname=winnt", 1, "077", 1 },
+    { "vfat", "nosuid,nodev,user,quiet,shortname=lower", 1, "077", 1 },
     { "ntfs", "nosuid,nodev,user", 1, "077", 1 },
     { "hfsplus", "nosuid,nodev,user", 1, NULL, 0 },
     { "hfs", "nosuid,nodev,user", 1, NULL, 0 },

y además hice un ebuild que aplica el parche e instala pmount con lo demás sin modificar. Después de eso, recuperé mis minúsculas:

Minúsculas

Minúsculas

Pero al menos ya estoy bien rudo en HAL: no tiene secretos para mí. Incluso hice que la cámara se monte en /media/sonycamera en lugar de /media/usbdisk.

Yay.

¡Tango!

Ya teniendo casi todo funcionando como debe de ser del lado del software, decidí que mi escritorio se veía horrible. Así que cambié de tema.

No regresé a mi tema lila (ya llevaba más de un año con él), y en cambio puse Clearlooks (que viene incluido en Gtk+ 2.10), la edición Curve. Para las ventanas también utilicé el tema Clearlooks, que hace juego con el de Gtk+.

Para los iconos, sin embargo, decidí probar algo nuevo e instalé los iconos del proyecto Tango. Están simpáticos, si bien nada terriblemente nuevo.

Iconos de Tango

Iconos de Tango

Está bastante usable este tema; y está muy rápido… aunque creo que eso es responsabilidad de mi procesador.

Teclas multimedia, revisadas

Para burla de mis esfuerzos, resulta que hay una nueva manera de definir las teclas multimedia, más sencilla. La descubrí leyendo Planet GNOME, en particular una entrada de Crispin Flowerday.

Pero ahorita tengo mucha hueva, y mi método funciona. Además, no resuelve el hecho de que tengo todavía varias teclas sin asignar; aunque creo que ese “problema” lo puedo resolver con un Hotkeys.

Multimedia Keys

Centurion, mi nueva máquina Athlon 64 X2 no está lista y probablemente no lo esté hasta que compre mi nuevo DVD y mi nueva quemadora de DVDs de doble capa. La definición de “lista” es que le tome una foto de conjunto, y no voy a hacer eso si las unidades ópticas no son negras (se ven feas de color cremita).

Independientemente de ello, hay avances. Hoy por ejemplo corregí un problema (que no sabía que tenía), que hacía que la máquina se trabara (hard way) cada vez que conectaba mi cámara digital. Lo primero que pensé fue “pinche Linux”, porque ya había conectado otros dispositivos USB sin broncas; pero resultó que es la placa madre. Si no desactivo una opción rara en el BIOS que permite tener teclado y discos duros USB visibles al tiempo de booteo, la cosa se traba feo. Traba traba: incluso el BIOS se traba.

Muy raro.

El problema lo descubrí cuando quise bajar a Centurion las fotos de mis nuevos teclado y ratón Genius. El teclado es un Genius ErgoMedia 700, que me costó la fabulosa cantidad de 261 pesos:

Teclado Genius ErgoMedia 700

Teclado Genius ErgoMedia 700

El ratón es un vil Genius NetScroll, con la particularidad de que es negro (y por tanto se ve bonito):

Ratón Genius NetScroll Negro

Ratón Genius NetScroll Negro

Me costó $31.50. Con IVA.

El ratón lo conecté y jaló, como suelen hacer los fieles ratones. El teclado ídem, excepto las teclas de multimedia. Por supuesto.

Yo ya sabía que con las teclas multimedia habría broncas; mientras que los teclados de 101 a 105 teclas están comlpetamente estandarizados (al menos en los idiomas que usan el alfabeto latino), las teclas 106 a whatever no. Al contrario; cada fabricante define los teclazos (que terminan siendo un vil número para el sistema operativo) como se les da la regalada gana. En Windows esto no es un problema: los teclados vienen con un CD que configura todo para el usuario; pero para nosotros Linuxeros es “a ver cómo le hacen”.

No me costó encontrar con la solución (contrario a lo algunos piensan, soy muy bueno buscando cuando lo que busco de hecho me importa). La bronca fue llevarla a cabo; no es difícil, nada más es bastante talachudo.

Las páginas que más me ayudaron fueron Logitech Cordless Desktop LX700 en Living with Linux, y HOWTO Use Multimedia Keys en el Gentoo Wiki, aunque aquí pondré un resumen.

La idea es sencilla: por cada teclazo, el teclado envía al sistema un número. Aquí hay dos sopas: que el sistema operativo reconozca el número, o que no. Si sí lo reconoce, se lo pasa a X, que lo interpreta como otro número, y de nuevo puede ocurrir que X reconozca este nuevo número, o que no. Si lo reconoce, otra vez hay de dos sopas: que lo reconozca bien (donde “bien” está definido como “lo que yo quiero que reconozca”), o que lo reconozca mal.

Para todas las posiblidades en donde algo puede salir mal, hay modo de corregirlo. La primera es que el kernel no reconozca el teclazo: en tal caso enviará un mensaje (que se puede ver con dmesg o en /var/log/messages), que dice algo de este estilo:

Jan 20 18:24:44 centurion atkbd.c: Unknown key pressed (translated set 2, code 0xbb on isa0060/serio0).
Jan 20 18:24:44 centurion atkbd.c: Use 'setkeycodes e03b <keycode>' to make it known.

Bastante claro, ¿no? Hay que correr setkeycodes como dice el mensaje, y asignarle un keycode a la tecla en cuestión. Para ver qué keycodes hay disponibles, uno corre (¡surprise!) getkeycodes:

Plain scancodes xx (hex) versus keycodes (dec)
for 1-83 (0x01-0x53) scancode equals keycode

0x50: 80 81 82 83 99 0 86 87
0x58: 88 117 0 0 95 183 184 185
0x60: 0 0 0 0 0 0 0 0
0x68: 0 0 0 0 0 0 0 0
0x70: 93 0 0 89 0 0 85 91
0x78: 90 92 0 94 0 124 121 0

Escaped scancodes e0 xx (hex)

e0 00: 0 0 0 0 0 0 0 0
e0 08: 0 0 0 0 0 0 0 0
e0 10: 165 230 231 232 233 0 234 0
e0 18: 235 163 0 0 96 97 236 237
e0 20: 113 140 164 238 166 239 200 0
e0 28: 0 0 255 0 0 0 114 201
e0 30: 115 202 150 0 0 98 255 99
e0 38: 100 0 0 203 0 204 0 205
e0 40: 0 0 206 207 0 119 119 102
e0 48: 103 104 0 105 112 106 118 107
e0 50: 108 109 110 111 0 0 0 0
e0 58: 0 208 0 125 126 127 116 142
e0 60: 0 0 0 143 0 217 156 173
e0 68: 128 159 158 157 155 226 0 112
e0 70: 0 0 0 0 0 0 0 0
e0 78: 0 0 0 0 0 0 0 0

Los ceros muestran keycodes disponibles.

Así que con todas las teclas multimedia de mi teclado (que como pueden ver en la foto son un chingo), tuve que estar como taradito picándolas y viendo en mis logs qué número tenía que pasarle a setkeycodes. Ese es el primer paso; superado eso, el kernel ya reconoce a todas las teclas. Ahora sólo hay que hacer que X las reconozca, y que las reconozca bien.

Para esto uno corre xev, y presiona la tecla que uno quiere que X reconozca. El programa escupe algo como:

KeyPress event, serial 26, synthetic NO, window 0x4000001,
root 0xb5, subw 0x0, time 3304354, (464,-439), root:(655,339),
state 0x10, keycode 169 (keysym 0x1008ff8b, XF86ZoomIn), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

La línea que nos interesa es la tercera: ahí nos dice qué keycode genera la tecla (que no necesariamente es el mismo que el que pasamos a setkeycodes), y además que keysym tiene asignado. Si no tiene ningún keysim asignado, dirá que tiene el 0x0. Uno debe ver en primer lugar si tiene keysim asignado, y si sí tiene ver que sea el “correcto” (o sea, el que uno quiere). Los keysyms están definidos en /usr/lib/X11/XKeysymDB, y ya hay bastantes para teclas multimedia.

Para que la tecla con keycode 164 (por ejemplo), se le asigne el keysym “XF86AudioStop” (que Rhythmbox utiliza para hacer stop), uno le pasa:

keycode 164 = XF86AudioStop

a xmodmap. Esto puede hacerse con la opción -e, o usando un archivo; vean la página de xmodmap si les interesa. Y hay que hacer eso para todas las teclas. Eso me llevó un rato.

Para automatizar el proceso, hice un script que define las keycodes y lo aventé en /etc/init.d, para que se llame antes de que inicie X. Los comandos para xmodmap los puse en un archivo .Xmodmap en mi $HOME, y configuré gconf para que los cargue automágicamente al iniciar mi sesión:

Configuración de gconf

Configuración de gconf

Después de todo eso, lo que hemos conseguido es que a las teclas las vean el kernel y X; pero aún no hemos asignado nada interesante a dichas teclas. Para eso yo usé dos cosas: los shortcuts de GNOME (en el menú Desktop/Preferences/Keyboard Shortcurs), y los keybindings de Metacity (configurables en gconf usando las llaves /apps/metacity/global_keybindings).

Fue un desmadre. Pero quedó muy chido; la bronca es que entre GNOME y Metacity no me permiten asignar todas las teclas que tengo. Usando las teclas multimedia controlo Rhythmbox sin problemas (y sin que tenga que tener el foco en la aplicación), y también el volumen. También tengo un montón de aplicaciones que las lanzo con las teclas multimedia: Gaim, Nautilus, The GIMP, Firefox y Evolution. Pero varias teclas que ya están bien definidas, no sirven: por ejemplo, tengo teclas de “Back”, “Forward”, “Stop” y “Refresh” para controlar el navegador; pero Firefox decide ignorarlas. Y la verdad no uso tanto esos comandos, pero sería chido que Firefox les hiciera caso. Y tengo en total seis teclas todavía que me servirían para lanzar aplicaciones: la bronca es que Metacity sólo tiene 10 run_command personalizables, y ya ocupé todos.

Pero a pesar de esas limitaciones, está muy chido. Especialmente el poder controlar Rhythmbox desde cualquiera de mis nueve escritorios, así como el volumen.

Monica Dean

Tengo un desmadre de proporciones épicas.

Además de estar armando mi máquina, estoy rearmando mi máquina vieja para que se la quede mi mamá, y la que ella tiene actualmente se la pueda llevar a la UAM a su cubículo. Todo eso involucra un montón de cables, discos duros, CDs, y dando la vuelta en medio de todo un dongle Wi-Fi USB que me prestó Enrique (una pequeña maravilla, por cierto).

Harto porque no termino, me puse a ver el último capítulo de Lost (The Hunting Party), que bajé hace unos días pero por todos mis relajos de hardware no había podido ver. Y en ese capítulo vi a una actriz que no puedo creer lo bella que es: Monica Dean.

Monica Dean

Monica Dean

Guau. Se me hace bellísima, y no he podido encontrar nada de información suya en la red.

Gran aliviane a los ojos.

Actualización: Juan, que tiene más paciencia que yo para estas cosas, me acaba de decir que el nombre de la bella francesa (ahora sé que es francesa) es Monica Barladeanu.

La vida a los 64 (bits)

Centurion (mi nueva máquina AMD 64, dual core) lleva viva unos dos días, después de no pocos problemas.

El primero fue bastante torpe de mi parte: debí conectar el procesador a la placa madre, la tarjeta de video y la memoria, un teclado, y prenderla para ver si todo respondía como debía responder: básicamente ver si podía entrar al BIOS. Pero nooooo, creyendo yo que esto es como Disneylandia, conecté todo y encendí la compu, esperando que todo funcionase. En lugar de eso, se apagó a los siete segundos, aproximadamente.

Las placas madre MSI desde hace años incluyen un sistema de autodiagnóstico que funciona muy bien: son cuatro leds que se prenden en 16 distintas configuraciones, dependiendo de qué prueba esté realizando el sistema. Mi placa madre se moría justo cuando probaba la memoria; el manual dice que si la memoria está mal o mal colocada, la máquina se apagará, y exactamente el mismo error ocurría cuando prendía la máquina sin memoria. Por supuesto traté de colocar mi pastilla de 1 Gb de memoria en cualquiera de las cuatro ranuras disponibles, pero fallaba igual. Desconecté todo de la placa madre (pero la dejé puesta en el gabinete), y siguió fallando igual.

Supuse que era la memoria. Es raro que falle una memoria nuevecita (especialmente una Kingston), pero no es imposible. Esperé a que Enrique regresara a su casa para que probáramos la memoria en su placa madre, y ahí funcionó. Eso quería decir que la placa madre estaba mal, que el procesador estaba mal (por ejemplo que hubiera doblado las patitas al colocarlo), o que alguna conexión con el gabinete estuviera haciendo algo raro.

De regreso en mi casa saqué la placa madre del gabinete, saqué la fuente de poder del gabinete, desconecté todo de la placa madre (incluyendo los conectores a leds y botones del gabinete), y sólo dejé un cablecito con botón que Enrique me prestó que me permitía prender y apagar la placa madre sin necesidad de gabinete.

Y por fin jaló.

Pero cuando regresé todo al gabinete, falló igual. Dejando la placa madre en el gabinete le quité de nuevo todos los conectores de leds y botones, y volví a usar el cablecito de Enrique. Volvió a funcionar.

La cosa estaba rara, pero entonces conecté sólo el botón de encendido del gabinete a la placa madre, y volvió a fallar. Así que, créanlo o no, era el maldito botón. Desarmé el gabinete (o mejor dicho, el coso del gabinete con el botón), y vi que lo que ocurría era que cuando prendía la PC, el botón se quedaba pegado; entonces se apagaba a los siete segundos (aproximadamente), que es como debe de funcionar si se mantiene apretado el botón de encendido, por cierto. Que estuviera pasando por la prueba de memoria en ese preciso momento era sólo casualidad.

Traté de reparar el botoncito, pero resultó imposible; así que cercené el cable que Enrique me prestó, y le cambié el botón de encendido a mi placa madre. De ahí casi todo fue miel sobre hojuelas, y dejé la máquina compilando cosas a las cinco de la mañana.

No puedo decir mucho respecto al sistema: restablecí mi viejo $HOME, y entonces todo se ve más o menos igual (de hecho más feo; no he puesto ningún tema agradable). Es rapidísima; un kernel se compila en dos minutos, cuatro con módulos (ocho si se me olvida especificar que tengo dos procesadores). Puedo estar compilando a la mamá de Superman, y no se siente en el escritorio; y no he podido llenar los procesadores al 100%.

Lo triste: Rhythmbox no funciona (y no veo nada en bugzilla), y hay cosas que sencillamente no están para amd64 (como OpenOffice: y yo que me moría por compilarlo aquí para ver cuánto tardaba en terminar). No hay flash para amd64; si lo quiero tengo que usar la versión binaria de Firefox compilada para 32 bits, y no he querido hacerlo (en parte porque realmente no uso mucho flash, y de hecho es chido no tener que soportarlo todo el tiempo).

Pero todo lo que uso (excepto Rhythmbox) funciona: básicamente GNOME, XEmacs, Firefox (sin flash por ahora), y MPlayer (aunque sin codecs de Windows). Y sigo compilando cosas.

Necesito cables-Y para la fuente de poder: la placa madre utiliza una entrada directamente (para PCI-Express), y mi NVidia 6800GS utiliza 2 entradas 2 (si trato de iniciar X sin conectarla, el módulo del kernel de nvidia protesta y me dice que necesita más jugo para funcionar); eso me deja con un único conector disponible, que ahorita está enchufado a mi disco duro IDE de 80 Gb… por lo que no tengo DVD o quemadora.

Pero todo se ve muy chido; hoy voy por teclado y ratón nuevos, y el próximo mes compraré mi disco duro S-ATA 2 de 160 Gb (y ni quiero pensar en el desmadre de pasar todo ahí). En este momento estoy bajando el demo para Linux de Quake IV, porque ninguno de mis programas que usan 3D he podido compilarlos (básicamente Celestia y Flight Gear Flight Sim; tengo que ver qué onda con eso).

Ortografía y gramática

En Slashdot acaba de poner una entrada CmdrTaco acerca de el formato para los artículos que aceptan ahí. En algún punto, dice claramente que ortografía y gramática son realmente secundarios para él al momento de publicar una historia.

(Lo cual es obvio; hasta yo que entiendo inglés empíricamente me doy cuenta de las garrafadas gramaticales que se cometen en las historias de Slashdot).

Yo sigo una política similar al aceptar comentarios en mi blog; la gente se está tomando la molestia de leerme e incluso de dejarme una nota expresando su opinión, así que se me haría muy pedante de mi parte el ponerme a corregirles la ortografía y gramática.

Sin embargo, en las historias que yo publico, sí trato de usar gramática y ortografía correctas, y de hecho si encuentro un error en entradas anteriores suelo corregirlo. Soy estudiante universitario (de la UNAM además); creo que es mi mínima responsabilidad.

A mis alumnos en la Facultad de Ciencias (cuando daba clases) siempre les dije que era de las cosas que debían distinguirnos a los universitarios; debemos ser capaces de escribir correctamente. No digo que todo mundo deba tener el don de una redacción fluida y entretenida; pero sí al menos debemos saber construir enunciados, conjugar verbos y (mi mínimo indispensable) escribir sin faltas de ortografía.

Por supuesto es una utopía: la mayor parte de la gente escribe con las patas. Y me podría seguir aquí con mi cantaleta de que es culpa de los últimos gobiernos por descuidar la educación pública, porque ahí van la gran mayoría de los niños mexicanos a aprender a leer y escribir en primaria, y si hay fallas de origen se hace cada vez más difícil corregirlos. Digo, yo fui a escuela primaria pública (a mucho orgullo), y mi maestra (Teresita) me enseñó la regla de los acentos y otras más como “eme-pe/eme-be”, y nunca se me han olvidado.

Sé que las máquinas ahora ayudan mucho, con correctores de ortografía y cosas por el estilo; pero el saber escribir (y por supuesto, quiero decir el saber escribir bien) no es algo fácil. Si alguien no lee, o lee sólo el Semanal de camioneros, está muy cabrón que escriba bien. Y por supuesto, para escribir bien también hay que hablar bien; si alguien habla usando “haiga” y “dijistes”, y además no lee, no va a tener punto de referencia para saber que esas dos palabras están mal. Creo que ni siquiera existen.

Justamente por eso es que creo que los universitarios debemos hacer un esfuerzo extra y tratar de escribir bien. Eventualmente hay que conseguir que todos los niños de las primarias públicas terminen el sexto año sabiendo leer y escribir correctamente; pero para eso hay que generar cambios políticos y sociales y otras cosas que no tienen ya nada que ver con esta entrada. Pero los estudiantes universitarios tenemos los medios y deberíamos tener la disposición de corregir los errores en nuestra formación para al menos escribir correctamente.

Centurion

El seis de enero (día de reyes), Enrique me dijo el ultimátum: iba a Centel a comprar cosas, y si yo quería piezas era en ese momento o nunca. Así que le dije que me comprara mi procesador, mi memoria y un gabinete.

Habla mucho de cómo estuvo el fin del semestre que ni siquiera fui a recoger mis nuevos juguetes hasta el jueves 12. También tuvo que ver que un procesador sin placa madre y sin tarjeta de video no me servía de mucho, más que para girar el ventilador y hacer ¡yay!

Hoy por fin fuimos al centro por la placa madre y la tarjeta de video. La cantidad de dinero que he gastado en esta nueva máquina es obscena, y me falta aún. Lo que llevo sin embargo ya es usable (aunque tengo que usar un disco duro de mi máquina actual, porque no encontré un S-ATA 2 de 160 Gb), y estoy en el proceso de armarla. Lo que llevo es:

  • AMD Athlon 64 X2 3800+
    AMD Athlon 64 X2 3800+

    AMD Athlon 64 X2 3800+

    No hay mucho qué decir de esta chingaderita; es dual-core y jala a 64 bits. No lo he corrido, pero espero que lo haga rapidísimo. Me impresionó el tamaño del procesador; cabe en la palma de mi mano:

    Procesador

    Procesador
  • MSI K8N SLI
    MSI K8N SLI

    MSI K8N SLI

    La placa madre es un poco menos poderosa de la que originalmente quería. De hecho, eso no es totalmente cierto; es igual de poderosa, sólo no tan expandible: sólo tiene 4 puertos S-ATA 2 (no tiene otros 4 S-ATA 1), y cosas por el estilo. Pero está bien chida. Y por supuesto, es SLI:

    SLI ready

    SLI ready
  • XFX GeForce 6800GS
    XFX GeForce 6800GS

    XFX GeForce 6800GS

    Sí compré una 6800 al final, pero no la GT: era demasiado cara. Me compré en cambio una 6800GS, overclocked edition; me juraron que es un pelito más lenta que la GT… y yo quiero creerles. Como sea, eventualemente (como en dos años), compraré una segunda 6800GS y haré uso del SLI.

    La tarjeta se ve bien mamona:

    Tarjeta de video

    Tarjeta de video
  • Memoria Kingston
    Memoria Kingston

    Memoria Kingston

    Aquí no debería que decir nada; es memoria. La bronca es que Enrique compró el giga en una sola pastilla, no en dos. Así que olvídense de dual-channel, al menos hasta que compre otra pastilla de un giga. Pero bueno, al menos me da el pretexto de comprar pronto ese otro giga.

  • Gabinete Cooler Master Centurion
    Cooler Master Centurion

    Cooler Master Centurion

    En el gabinete confié en Enrique para que escogiera el modelo, yo sólo pedí que fuera negro. Y resultó ser super chido. El gabinete está poca madre; tiene 3 ventiladores incluidos: el de la fuente de poder (que se va a quemar en algún momento, es de 350 Watts), uno adelante común y corriente, y uno atrás de 5 1/4″:

    Ventiladorsote

    Ventiladorsote

    Además está bien macizo, y se ve bastante chingón.

Ahora sólo tengo que armar todo. Sólo que me da una hueva. Lo que sí, es que ya tengo nombre para la máquina; y aprovechando que soy fan de Battlestar Galactica, esta nueva máquina se llamará Centurion.