Galculator: RPN (decente) en GNOME

Me ha costado, pero por fin he encontrado una calculadora para que soporta la (RPN). Sí, podía compilarme una x48 (y cada cierto tiempo lo hago), pero desde hace tiempo echaba en falta una calculadora sencilla y con una interfaz agradablemente integrada con el resto del escritorio. ¡Y la encontré! Galculator está en los repositorios de Ubuntu, así que basta buscarla en el Centro de Software o, desde una línea de comandos, teclear

sudo apt-get install galculator

Tiene un pequeño fallo, pero nada grave: si se selecciona el modo de pila infinita (infinite stack), la tecla roll (para rotar la pila) no funciona. Puede seleccionarse una pila de cuatro elementos (x, y, z, t), como en las calculadoras HP más antiguas, pero cualquiera que haya echado las muelas del juicio con una (C o S) o superior agradecerá disponer de una pila indefinida.

Galculator tiene muchas otras funciones interesantes, además de las típicas de las calculadoras científicas: puede definir constantes o funciones nuevas a partir de otras ya existentes. Dispone, además, de un “modo papel” en el que la interfaz es extremadamente simple: se teclean las operaciones deseadas en un campo de texto, y los resultados van apareciendo encima, como en las antiguas calculadoras de rollo. Además, ofrece la posibilidad de usarla también en un modo más “amigable” (algebraico), lo que agradará a los no iluminados en el camino del RPN.

VNC y Compiz en Gnome

¿Quién no ha usado ? (Vale, no me abruméis con tanto silencio, que ahora los geeks estamos “casi” bien vistos.) Es una forma muy sencilla de acceder al escritorio de otro equipo remotamente; aunque no es un protocolo muy eficaz, su sencillez de manejo y la posibilidad de conectar entre sí sistemas extremadamente distintos lo hacen atractivo frente a otras opciones de escritorio remoto. Por ejemplo: mi teléfono me permite ver el escritorio del equipo principal de mi oficina () con Remote VNC Pro.

Ubuntu ofrece por defecto la compartición del escritorio por VNC a través de un servidor que se activa en Sistema/Preferencias/Escritorio remoto. Algunas cajas de selección —francamente simples— marcadas y voilà! Escritorio compartido en tu segmento de red. Para una pequeña oficina como la mía, que utiliza la misma red WiFi que mi casa, es una buena solución para comprobar qué está ocurriendo en el ordenador grande desde el sofá, con el portátil (o incluso con el teléfono).

El problema

. No sólo es “azúcar para los ojos” (eye-candy es la encantadora expresión anglosajona): estoy convencido que las animaciones que muestran los cambios de estado de las ventanas son esenciales para mejorar la usabilidad del sistema. En consecuencia, gasté una cantidad de dinero extra para asegurarme de que Compiz funcionaría correctamente, poniéndole una buena tarjeta aceleradora 3D. Pero resulta que con Compiz activado en un servidor Vino (el servidor VNC que viene de serie con , el escritorio por defecto de Ubuntu), ¡los clientes sólo reciben una pantalla negra! En cuando se desactiva Compiz, VNC vuelve a funcionar de forma normal. Esta sería una opción aceptable en un ordenador en el que no trabajara habitualmente, pero cuando uno se acostumbra a “lo bueno”, dar un paso atrás se pone muy cuesta arriba. ¿Hay solución?

La solución

Sí. Desde un terminal, basta invocar gconf-editor. Aparecerá una especie de editor de configuraciones de Gnome similar al editor de registro de nuestros amigos de Windows (el backend de datos que se están modificando son ficheros de texto en formato XML, así que no me vengáis con que “tanto quejarse del registro de Windows y mirad ahora”). Navegad por la estructura de carpetas siguiendo la ruta /desktop/gnome/remote_access y marcad el ajuste disable_xdamage. En la documentación de esta clave se dice que la extensión XDamage de X.org no funciona bien en algunos drivers de vídeo si se usan efectos 3D, lo que evidentemente es el caso de Vino. También dice que VNC renderizará un poco más lentamente. Como si fuera preferible ver una pantalla negra —a toda velocidad, eso sí— a que las cosas funcionen como deben.

¿Problemas con el lector de tarjetas SD?

Recientemente estoy atravesando por una de esas fases de sequía bloguera. No es que no haya temas de los que escribir, al contrario. El problema es que la mitad de ellos me hinchan la vena del cuello como si fuera una cámara de bicicleta, y la otra mitad ya son muy competentemente comentados por blogueros-alfa a los que sigo. Hay días en los que Google Reader es como un pequeño ángel de la guarda cabrón que te susurra al oído “¿para qué? Si ellos ya lo han dicho mejor que tú…” De modo que acudiré al viejo truco: contar alguna frikada técnica que me haya ocurrido recientemente, de la que haya aprendido algo y con la que —espero— alguien pueda ahorrarse quebraderos de cabeza. Hala, al lío.

El problema

"Expulsar unidad de forma segura" en Ubuntu 9.10
“Expulsar unidad de forma segura” en Ubuntu 9.10

Uso Ubuntu 9.10 Karmic Koala (¿no son encantadores los nombres?), aunque tal vez desde la versión anterior he notado la inclusión de un elemento adicional en el menú contextual de los medios extraíbles, Expulsar unidad de forma segura, que acompaña a los más tradicionales Desmontar y Expulsar. Desmontar es un viejo concepto unixero asociado a la gestión de volúmenes de datos; los linuxeros de hoy montamos poco desde que existe automount, pero para los medios extraíbles es recomendable indicarle de algún modo al sistema operativo que tenemos intención de tirar de la manta, o de la tarjeta en este caso. De otro modo podríamos interrumpir alguna operación de escritura en curso (en todos los S.O. multitarea son asíncronas, lo que significa que ocurren cuando al planificador del núcleo le parece) y corromper —como poco— algún fichero. Expulsar implica desmontar, y tiene sentido en una unidad de CD o DVD, donde hay una bandeja motorizada que extrae físicamente el medio.

Como la idea de hacer algo “con seguridad” me atrae, al menos en principio, comencé a utilizar esta opción antes de extraer mis tarjetas SD de su ranura. Sin embargo, un día, al insertar una tarjeta llena de fotos de las últimas vacaciones, observé que automount estaba pasando de mí. Pánico creciendo. Pronto me di cuenta de que el lector no funcionaba en absoluto. Ni siquiera aparecía al hacer un lsusb en una consola. Pánico disminuyendo, pero extrañeza creciendo. Como no apago el equipo todos los días, tardé en darme cuenta de que era precisamente tras expulsar “de forma segura” una tarjeta cuando ya no podía leer más ¡y el dispositivo lector dejaba de existir! El único remedio: reiniciar. Después del reinicio todo volvía a la normalidad. Hasta que mi mente, ansiosa de seguridad, volvía a pulsar en esa opción y, días más tarde, vuelta a empezar.

La solución

Resulta que Expulsar unidad de forma segura hace algo más que desmontar la tarjeta: también apaga el dispositivo lector. Eso es estupendo: añade un plus de seguridad con un lector de tarjetas portátil. Lo desenchufas del puerto USB y listo; la próxima vez que lo enchufes se encenderá. Pero… los lectores internos suelen estar conectados también por una interfaz USB a la placa —para ahorrar en interfaces PCI. El chipset que llevan reacciona a los mismos comandos que los lectores externos, y en particular pueden apagarse de la misma manera. Así, si apagamos un lector interno de tarjetas, tenemos dos opciones: abrir el ordenador en vivo, localizar su conexión a la placa, desenchufarla y volverla a enchufar; o —más cómodamente— apagar y encender. Vaya. No me pillaréis más expulsando de forma segura. Seguro.

El día del pingüino (3)

O cómo actualizar la BIOS de un portátil sin disquetera (ni siquiera disquetera USB) y sin Windows instalado

Tras horas de pruebas con , percibí que en (pocas) ocasiones el rendimiento del sistema se reducía palpablemente, a la vez que el ventilador comenzaba a soplar con fuerza. Un rápido vistazo a top me mostró que había dos procesos, kacpid y kacpid_notify consumiendo un gran porcentaje de ciclos. Una búsqueda aún más rápida me llevó al blog de José Medina, que ofrece la pista fundamental: la BIOS podía estar relacionada con el problema, y con su solución.

Pocas cosas hielan la sangre arterial y venosa con mayor eficacia que una actualización de . Probablemente se trate de un miedo irracional, pero hay que reconocer que la posibilidad de dejar la máquina lista para su “enajenación” es un buen acicate para el pensamiento cuidadoso y ordenado. Dicho sea de paso, en mi actual trabajo llamamos enajenación al procedimiento consistente en levantar cuidadosamente un ordenador del suelo y arrojarlo con fuerza a la caja de un camión, contratado cada vez que se llena el almacén de trastos.

Volviendo al tema, resulta que kacpid es un demonio (proceso de sistema que se ejecuta en segundo plano) encargado de varias características propias de los portátiles, como control de la temperatura y gestión de los voltajes de la CPU. Por tanto, no podía aplicar la sugerencia de José, ya que perder el control sobre la tensión/frecuencia de la CPU supondría automáticamente reducir la duración de la batería entre cargas. Actualizar la BIOS parecía el único camino válido, así que me lancé a ello con la mirada acerada, la cabeza fría, los pies de plomo y unos cuantos tópicos más que pude reunir.

La web del fabricante

Para empezar, la web de Hewlett-Packard ofrece información detallada acerca de las diferentes versiones de controladores disponibles para cada uno de sus modelos. Mientras que la instalación de hace irrelevante el problema de los controladores (sobre todo, cuando hay versiones de código abierto disponibles), la BIOS sigue estando sujeta a las especificaciones del fabricante, debido a que es el primer código que se ejecuta en un PC y es, por tanto, anterior al sistema operativo e incluso al cargador (GRUB, o LILO, anteriormente).

La última versión de la BIOS disponible para mi tc4200 es la F.0E. Un rearranque, pulsando F10, reveló que la versión de mi máquina era la F.06. La historia de revisiones revela que la versión F.09 incluyó una mejora en las tablas de valores térmicos, así que probablemente esta sea la primera corrección válida para el problema de kacpid. Me decido, no obstante, a instalar la última versión disponible. Pero, ¿como?

Perdido sin disquetera

Se nos ofrecen tres modos de actualizar la BIOS:

  1. HPQFlash es un reprogramador de BIOS sencillo de usar, y sólo disponible en entorno Windows. Ya no tengo ganas de reinstalar XP para lo que debería ser un procedimiento elemental, así que veamos más opciones.
  2. Algo llamado Remote ROM Flash – SSM Compliant parece lo suficientemente amenazador. ¿Actualizaciones de la BIOS por la red? Actualizar la BIOS de una máquina ya es un procedimiento lo bastante infrecuente. No, no tenemos de eso. Nada que ver por aquí, por favor, circulen.
  3. ROMPaq, un programita que crea un disquete arrancable. No tengo disquetera en el portátil, pero vi de pequeño, así que saldré de esta.

Tengo un pinganillo (USB)

Antes de nada, para ejecutar ROMPaq hace falta un ordenador con Windows y (más difícil todavía) un disquete. Ordenadores con Windows, casi diría que por desgracia, hay muchos aquí. Con ayuda de un compañero localizo una caja de disquetes cubierta de polvo en el almacén. El primero no funciona, haciéndome recordar viejos sonidos traqueteantes. Con el segundo sí soy capaz de crear un disco de arranque adecuado (o eso dice ROMPaq). ¿Y ahora?

Una memoria USB puede formatearse y particionarse como un disco, y la mayor parte de las BIOS actuales incluyen la posibilidad de arrancar desde un dispositivo USB. Un vistazo a la configuración de arranque de la BIOS de mi portátil me muestra que es el caso, y aprovecho para cambiar el orden de arranque de dispositivos, poniendo el disco duro al final de la lista (para poder hacer eso tengo que activar la característica Multiboot, que ofrece un menú de medios de arranque temporizado; no tendría que ser necesario, pero…)

La misma HP ofrece (tras buscar un poco) una herramienta apropiada para formatear mi memoria USB como un disco arrancable: HP Drive Key Boot Utility. Funciona, a pesar de lo que dice en la página, con memorias USB sin marca. La instalo en el mismo ordenador en el que creé el disco de arranque; enchufo la memoria (aparece con la letra E:) y ejecuto el programa, que resulta ser un wizard.

Selecciono la unidad E:, y en la siguiente pantalla, Create New or Replace Existing Configuration, sin marcar la caja de selección que permite salvaguardar lo que tenga ahora la memoria. Eso ya lo he hecho antes, “manualmente”.

Más adelante, escojo formatear la memoria como un disco duro y no como un disquete. No parece lo lógico, pero lo cierto es que ya lo he probado y no ha funcionado: los blogs no son en directo, afortunadamente. En la siguiente pantalla marco Create New Filesystem. Esto formatea la memoria y crea un cargador de arranque. En la siguiente pantalla se ofrece configurar los contenidos del disco de arranque. Escojo la opción Floppy Image, que permite añadir una imagen del disquete de arranque con el programa de actualización de la BIOS que hice al principio. Marco A: como la unidad de origen, y relleno los dos campos de texto llamados Menu Text con “BIOS” y “Actualización de la BIOS, tc4200”, respectivamente.

La hora de la verdad

Con esto ya debería tener una memoria USB lista para arrancar. La desenchufo y la conecto en mi portátil. Reinicio, y selecciono el dispositivo de arranque como USB Disk (eso que sale es el menú Multiboot que cité antes). Tras varios mensajes informativos, arranca la utilidad de actualización de la BIOS. Selecciono Update, cruzo hasta los dedos de los pies, confirmo la selección y…

Ya está. Reinicio de nuevo cuando lo pide el programita. Aparece un inesperado rectángulo de texto rojo en la pantalla, y cuando consigo que mi corazón baje de las 170 pulsaciones por el susto, veo que está actualizando el controlador del teclado, y que no toque nada por lo que más quiera. Unas instrucciones fáciles de seguir. Unos segundos después tengo un ordenador con una flamante BIOS versión F.0E, y sin problemas de kacpid.

¿Linux, listo para el escritorio?

Sí, lo mantengo. Para empezar, este problema es lo suficientemente oscuro (e infrecuente) como para que no le afecte a mucha gente. La solución puede ser complicada, pero está muy condicionada por mi plataforma particular: en el caso —más normal, creo— de un portátil con una partición Windows habría podido resolverse sin mayores aspavientos; lo mismo, para un ordenador con disquetera.

Pero todo esto no es lo más importante. Lo fundamental es que una pequeña excursión por Google dio las pistas necesarias y toda la documentación para completar la tarea. ¿Cuántas veces me habré perdido en el laberinto de MSDN buscando la solución a un problema elemental? (Como cuando instalé IE7 en este mismo portátil; un día entero de buceo por la Knowledge Base y la aplicación de oscuros parches, conjuros binarios. Como Cervantes, no quiero acordarme.) Así que si Linux no está listo para el escritorio, Windows tampoco. Después de todo, no tanta gente sabe lo que es instalar Windows desde cero en un ordenador.

El día del pingüino (2)

¡No me funciona el Bluetooth!

Reconozco que en el anterior artículo exageré un poco con lo del criterio de aceptación de Linux para mis ordenadores. En primer lugar, es vox pópuli que una distribución, probada en modo live, no tiene las mismas posibilidades de autoconfiguración que una instalación “de verdad”. Lo he comprobado unas decenas de veces: a la hora de realizar la instalación, las condiciones de funcionamiento nunca son exactamente las mismas. Esto puede llevar a sorpresas de todo jaez, aunque lo más sorprendente en sí mismo es que negativas y positivas se reparten más o menos a medias el pastel —cuando uno, malpensado y cínico, tendería a estimar la proporción en un 99,9% de las malas frente a un 0,1% de las buenas (y que acaban resultando malas por error de apreciación provocado por la falta de sueño).

En segundo lugar, hay dispositivos por los que no doy dos higas, honestamente. Los botones extra de los “teclados multimedia”, por ejemplo. Pero cuando la primera objeción se combina con la segunda (sorpresa negativa con dispositivo importante) tenemos las semillas de un artículo de bitácora, además de una hora o dos de concienzudo devanado de circunvoluciones de la cabeza.

¡No puede ser!

Sí, sí que ha sido. Recuerdo perfectamente cómo en una de las primeras pruebas con , el adaptador de de mi portátil había funcionado. No le di mayor importancia, hasta que después de la instalación definitiva observé con (cierto, tampoco mucho) estupor que no pitaba.

Metódico que es uno, cribé la salida de dmesg en una consola para comprobar que no había error alguno y que el dispositivo estaba correctamente detectado en la secuencia de arranque. A continuación, tecleé hcitool dev, lo que debería haber listado los dispositivos Bluetooth disponibles en el sistema (uno, en mi caso). Obtuve un conjunto vacío por respuesta —este es el momento de la expresión facial WTF.

Inspiración

Uso poco el Bluetooth, la verdad. A veces, para sacar una foto del teléfono móvil que medio merece la pena. Por eso suelo apagar el dispositivo cuando no lo estoy usando para alargar la duración de la batería cuando estoy por ahí (igual hago con el WiFi, sólo que este lo apago menos por motivos obvios). El encendido/apagado lo hacía desde la interfaz al uso que HP, el fabricante de mi portátil, provee para Windows XP. Estoy seguro al 101% de que cuando finalmente activé el particionador de disco (lo más parecido que hay en el mundo de la informática a una motosierra) e instalé Ubuntu, el dispositivo estaba apagado. ¿Y si…?

Fue un experimento algo tedioso: reinstalar Windows y los controladores de Bluetooth sólo para encender el dispositivo. Reinstalar Ubuntu y ver qué pasaba. Nada de particular, salvo que ahora tengo un adaptador Bluetooth perfectamente funcional.

Moraleja

Antes de instalar Linux, no desactives ningún dispositivo interno de la máquina. Muchas de las características de los diferentes cacharritos son propietarias y, por tanto, no están adecuadamente documentadas. Cualquier estado que se conserve entre apagados es sospechoso. Así que, ya sabes, todo encendido y ¡a instalar!

El día del pingüino

No soy un usuario novato típico de , ya que empecé en mis años mozos de estudiante con las primeras versiones de Red Hat (ahora sería Fedora). He probado muchas distribuciones, y he compilado algunos núcleos, pero he de admitir que lo dejé por falta de tiempo. Llega un momento de la vida en el que uno sienta la cabeza y se pone a trabajar en serio. Más en serio cuando tienes hijos.

Migrar mi portátil a ha sido una experiencia emocional. Como una vuelta a los años no necesariamente más felices de la juventud. Llevaba ya un tiempo planeándola: y el primer paso siempre consistía en bajar el CD y probarlo en modo live, con un criterio de aceptación: 100% de dispositivos reconocidos automáticamente. Soy perfectamente capaz de seguir un howto, de instalar módulos en el núcleo y de reconfigurar lo que se ponga por delante con una consola de bash, pero aun sabiendo por Murphy que de todos modos tendría que hacerlo, deseaba reducirlo a un mínimo.

Los evangelistas que en el mundo son dicen que Ubuntu está “listo para el escritorio” —con la versión 6.06 “Dapper Drake” y con mi (poco) portátil HP nx9010 casi llevaban razón. La versión 6.10 “Edgy Eft” acercó bastante el objetivo, pero no lo consiguió del todo —había un tufillo de aproximación asintótica en el ambiente: a la vez, estaba probando las últimas versiones de Mandriva y Fedora con un éxito similar. La última versión, 7.04 “Feisty Fawn” se enfrentaba a una discontinuidad, un reto más complejo.

Cambié de portátil. Un HP Compaq tc4200. Nada menos que una ultraligera, sin unidades de disco (ni flexibles, ni ópticas). Con y controladores difíciles por los cuatro costados (lector de tarjetas SD, lápiz, pantalla giratoria, bluetooth). Siempre he sabido que Linux es más difícil de instalar en los portátiles que en los ordenadores de sobremesa, pero esto ya era ridículo. ¿Qué podría hacer el fauno fiestero frente a la penúltima* tecnología Designed for Microsoft Windows XP?

No tengo ninguna necesidad de mentir diciendo que la instalación fue perfecta a la primera, pero después de no demasiado trabajo tengo un portátil ciertamente sexy, totalmente funcional y linuxero. La batería dura más. Subjetivamente, corre más. No falla (crucemos los dedos) al despertar después de una hibernación —esto pasaba bastante con Windows; tras pasar por uno o dos ciclos de hibernación, invariablemente empezaban a ocurrir cosas, sobre todo con el WiFi. Y, por encima de todo esto, cuando quiero mejorar algo, añadir algún componente o cambiar algún ajuste oscuro, tengo el control.

En los siguientes artículos describiré los (tres) problemas que tuve y las soluciones que apliqué, pero hay una conclusión que ya puedo extraer de todo el proceso, y que quiero hacer constar aquí en forma de consejo. Si se cumplen estas condiciones:

  • Estás descontento con Windows, no tienes incentivos para migrar a , o simplemente tienes curiosidad…
  • Has usado OpenOffice.org últimamente y has visto que cubre tus necesidades…
  • Tienes ganas de aprender…

Entonces Linux ya es para ti. Ubuntu, para ser más específico (pero otras opciones también podrían servir; no quiero entrar en guerras de religión con nadie). Hasta la próxima.

Hola, mundo, desde Ubuntu

He cambiado mi equipo portátil a Ubuntu 7.04 (Feisty Fawn), relegando a Windows XP al estátus de máquina virtual. Y no esperaba que el cambio fuera fácil, aunque por lo que respecta a aplicaciones hace ya años que no dependo de nada único en el mundo Microsoft.

La máquina en cuestión: un HP Compaq tc4200, un tablet convertible, muy ligero, con disco duro de 40 GB y 1.5 GB de memoria RAM, con WiFi integrada, lector de tarjetas SD, etcétera. Y todo, absolutamente todo funciona sin configurar (casi) nada. Incluso los botones extra del teclado, y por supuesto, el lápiz. Desde siempre me he encontrado cómodo con emacs ajustando tuercas en el directorio /etc, pero por esta vez no ha sido necesario.

Mi duda fundamental, y una característica sin la que no hubiera podido hacer el cambio, concernía al funcionamiento de una tarjeta Vodafone Mobile Connect 3G/GPRS que provee mi empresa para disponer de conectividad “en el campo”. Ha bastado la instalación de Vodafone Mobile Connect Card Driver for Linux, disponible incluso en el formato apropiado de paquete, y una sencilla configuración guiada para que todo funcionara a las 103 maravillas.

En lo que a mí respecta, la era de Linux en el escritorio profesional ha llegado.