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

Galculator: captura de pantalla

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.

Celestia: guía de compilación en Ubuntu 10.04

En mis últimos ordenadores siempre ha estado un programa esencial para todo amante de la astronomía, la astronáutica y el espacio en general: Celestia. Un “simulador de Universo”, como suena, capaz de llevarte a velocidad absurda a cualquier lugar cartografiado en un radio de muchos miles de años luz a la redonda. Además, es ampliable y su entusiasta comunidad (dirigida por Chris Laurel, actualmente en la ) aporta mejoras y ampliaciones con regularidad.

Los únicos requisitos para ejecutar son disponer de un PC moderno con una tarjeta gráfica con soporte más o menos potente: si puedes jugar a algo en 3D con relativa fluidez, podrás disfrutar de Celestia. Para que conste, la mía es una GT 220 funcionando con el driver propietario. Lamentablemente, mientras que para Windows se ofrece un instalador simple, los linuxeros tenemos que vérnoslas con un archivo .tar.gz de fuentes, en plan some assembly required antes de jugar. Algunas distribuciones disponen de paquetes precompilados, pero normalmente no están muy bien mantenidos: son de versiones antiguas de la distribución o del propio Celestia, no soportan arquitecturas de 64 bits, o las tres cosas a la vez.

Compilar Celestia se ha convertido para mí en una especie de ritual, que se repite cada vez que adquiero un nuevo equipo o instalo desde cero un sistema operativo. Ahora le ha llegado el turno a mi workstation con (64 bits) y , y esta vez he documentado los pasos que seguí para poder contarlos aquí y que puedan servir a alguien más. Así que, sin más preámbulo… un disclaimer:

Atención: no soy responsable de nada que puedas hacerle a tu ordenador siguiendo estas instrucciones. De nada. Mi distribución no estaba “limpia” antes de comenzar este proceso: por tanto, es posible que aún instalando todo lo que aquí se dice, te falten algunas dependencias. Haz como yo: lee con cuidado los mensajes de error y mira los foros o el wikilibro. No soy ningún experto en esto, pero a mí me ha funcionado. Para evitar errores tontos, marcaré cada fin de línea con este dibujillo: “↵”. Sería recomendable tener un nivel intermedio de manejo de Linux para poder seguir esta guía: si no lo tienes, échale el lazo a tu geek local. Yo no tengo todo el tiempo que querría.

Venga, ahora sí que sí. Lo primero: suele ser más fácil compilar las fuentes conforme salen del repositorio de control de versiones de SourceForge. Más fácil que el paquete con la última versión (a día de hoy, la 1.6.0). No preguntéis por qué, e instalad el soporte de si no lo tenéis ya para poder bajarlas. Abrid una consola y teclead:

sudo apt-get install subversion↵

Siempre que os pida la contraseña de root, la ponéis. Es el momento de bajar las fuentes en sí. Desde vuestro directorio de usuario:

svn co https://celestia.svn.sourceforge.net/svnroot/celestia/trunk celestia↵

Cuando termine, tendréis un directorio celestia con todo el pastel. Ahora, a instalar dependencias, que son paquetes necesarios para que lo que acabamos de bajar compile y funcione. Nota: igual que a alguien le puede faltar alguna dependiendo de cómo haya instalado su Ubuntu, también es posible que algún paquete de los que doy aquí sea redundante. En fin.

sudo apt-get install build-essential automake gettext libgconf2-dev libtool zlib1g zlib1g-dev libgtkglext1 libgtkglext1-dev libgnomeui-dev lua5.1 liblua5.1 liblua5.1-dev↵

Hasta aquí no creo que haya problemas. Ahora empezamos a compilar:

cd celestia↵
autoreconf -iv↵

Eso crea el script de configuración de la compilación. Ahora, configuraremos la compilación, incluyendo soporte para GNOME y . El primero se pueda cambiar por KDE, pero entonces alguna de las dependencias anteriores estará mal. Incluir soporte de Lua (un lenguaje de scripting que Celestia puede llevar embebido) es interesante: muchas mejoras (add-ons) lo requieren:

./configure --with-gnome --with-lua↵

¡Llega el momento de compilar! Tecleamos

make↵

Estamos a un paso de poder disfrutar de las mejores vistas que se pueden tener en un monitor sin estar de verdad en el espacio (o sin un fondo de pantalla de Megan Fox en plan interesante). Instalamos el resultado de la compilación:

sudo make install↵

Por defecto, Celestia queda instalado en /usr/local/bin, y sus archivos de apoyo en /usr/local/share/celestia. Si el primer directorio está en nuestro $PATH de ejecución (y si no has hecho nada raro, debería estar), basta teclear

celestia↵

para empezar a navegar a lo grande. Aquí teneis una pequeña guía en español para dar los primeros pasos: Proyecto Celestia: Guía de Usuario (útil a partir del capítulo 5).

Desgraciadamente, todo esto no fue lo último que tuve que hacer para que Celestia funcionara correctamente en mi equipo. Me encontré con una ventana en la que no se mostraba nada en absoluto, aunque la navegación parecía funcionar. Quizá esto no te ocurra, o quizá sí… La solución: seleccionar la opción del menú Options/View options… y marcar para visualizar las cajas de selección de Planets y Stars como poco, poner el filtro de estrellas por distancia (Filter Stars) a su valor máximo, seleccionar el máximo detalle en textureas (Texture Detail) y pulsar Aceptar. Quizá se trate de un error menor en el programa, y quizá ya esté corregido (recordemos que estamos compilando a partir de la última versión disponible del código, así que incluso sería posible que existieran errores que no permitieran la compilación en absoluto —algo raro, pero…) Curiosamente, si ejecutaba Celestia como root (haciendo sudo celestia en una consola) todo funcionaba a la primera.

Una última advertencia: Celestia engancha. Hay quien ha cambiado de tarjeta gráfica, quien ha gastado auténticos caudales en sus equipos para poder ver las míticas texturas “32k” de la Tierra o Marte con todos los efectos de iluminación, quien ha perdido el apetito o abandonado a su mascota a su suerte para estar días seguidos pegado a la pantalla. Ni que decir tiene que tampoco me hago responsable. Disfruta.

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.