Los #leyendo de @brucknerite

Ya llevo un tiempo acumulando los enlaces que voy leyendo y a los que considero interesante dar algo de difusión en una cuenta de Delicious. Hasta ahora iba publicando esos enlaces a través de mi Twitter usando el servicio de dlvr.it, que me permitía sacarlos poco a poco de acuerdo con unas reglas un poco complejas, pero pensadas para no abrumar a nadie con mis píos:

  • Como máximo un enlace cada 15 minutos.
  • Si hay más de un enlace en cola, saca primero el más antiguo.
  • Como máximo 100 enlaces al día (nunca llego a esta cifra, afortunadamente).
  • Solo se publican entre las 8 y las 22 horas.

dlvr.it, además, añade el hashtag #leyendo a estos enlaces, para que sea más fácil localizarlos (¡o filtrarlos!) en el timeline. Como guinda, se conecta con Karmacracy para reducir los enlaces a través de su servicio de «acortador social» y se asegura de que lo generado cabe en un tuit, recortándolo si es preciso —pero salvando el enlace, que es lo importante de todo este circo.

leyendo_twitterA estas alturas mis #leyendo tienen un puñado de seguidores, pero ya sabéis cómo es Twitter: palabras que se lleva el viento. Para evitar eso, he preparado un pequeño experimento…

Mediante un plugin compilador de RSS en el blog (la versión gratuita de RSS Digest, de Sam Charrington, modificada a mi gusto), mi objetivo es reunir los #leyendo en un artículo que se publicará automáticamente solo cuando haya un número suficiente de enlaces a mostrar. De momento estoy ajustando parámetros: la idea es no abrumar el blog con estos «artículos automáticos», y al mismo tiempo aprovechar el material para dar a brucknerite un poco de más de vida.

¿Solo enlaces? ¡No! Delicious permite anotar las capturas con una descripción. Ese pequeño texto, que uso en ocasiones como un comentario sobre lo que estoy leyendo, no sale en los #leyendo de Twitter debido a las limitaciones de espacio. Sin embargo, aquí podréis verlo sin problemas.

¿Qué os parece el invento? La primera recopilación de #leyendos ya está publicada; su aspecto gráfico en portada es ligeramente diferente del resto de los artículos —más simplificado. Y todavía no he terminado con los cambios… No me gusta comprometer a nadie, pero espero vuestros comentarios. Aunque sea un insulto. Algo que no sea el silencio más doloroso. Ay.

Anuncios

La Tierra en tu escritorio

¿Quieres tener en tu fondo de pantalla una imagen como ésta? ¿Con perspectivas cambiantes cada cierto tiempo y nubes casi en tiempo real?

Antes de nada quería avisar de que lo que sigue es un tutorial para usuarios medianamente avanzados de GNOME en Ubuntu. Si quieres ver cómo se hace con Fedora y KDE, Inaki Úcar ha preparado un tutorial paralelo en su blog Enchufa2. Otras distribuciones/entornos de escritorio quedan como ejercicio (si os atrevéis a contar cómo lo habéis hecho en otro blog, poned un comentario aquí y os enlazo). Vamos allá:

  1. Instalamos xplanet:

    sudo apt-get install xplanet xplanet-images↲

  2. Bajamos estos dos scripts: xplanet_background.sh (por Hari Nair, y modificado por mí), y download_clouds.py (por Michal Pasternak; el original está aquí).
  3. Les damos permisos de ejecución y los copiamos a un lugar apropiado (por ejemplo, /usr/local/sbin):

    sudo chmod a+x xplanet_background.sh download_clouds.py↲
    sudo cp xplanet_background.sh download_clouds.py /usr/local/sbin↲

  4. Creamos la configuración. Para ello podéis partir de este archivo: xplanet.conf. Este fichero tan solo hace referencia a las imágenes de base que se van a usar. Os propongo las siguientes:
    • Un mapa de la Tierra en condiciones (clave map). Puede valer el que está en el paquete earth surface.zip de un tal Shadsmith, en el repositorio de añadidos para Celestia The Celestia Motherlode, un gran recurso para estas lides. Conviene convertirlo a JPG. Una forma rápida de hacerlo es con ImageMagick (doy por hecho que sabes cómo instalarlo, si no lo tienes):

      convert Earth.png Earth.jpg↲

    • Un mapa de nubes (clave cloud_map), que el script download_clouds.py descarga de un mirror seleccionado al azar cada tres horas (como mínimo) y que xplanet_background.sh coloca en su sitio.
    • Un mapa de la Tierra de noche (clave night_map). Yo he usado este: Earth-Night4096.jpg, extraído de este tutorial para crear vistas 3D fotorrealistas de la Tierra en 3DStudio.
    • Un mapa de relieve (clave bump_map). No es más que un mapa de elevación que muestra los puntos más bajos en negro y los más altos en blanco. Permite mostrar sombras con la orientación adecuada en las cordilleras. He usado el que puedes encontrar con el nombre Earth-Topo4096.jpg en este paquete: earth1.zip del artículo anterior.
    • Un mapa especular (clave specular_map). Permite indicarle a xplanet qué partes de la Tierra reflejarán la luz del sol, es decir, los océanos. El que viene en el paquete de la página anterior es válido para 3DStudio; sin embargo, nosotros necesitaremos invertirlo: la convención de xplanet es que refleja luz todo lo que se muestra en blanco, y el mapa viene al revés. Si no lo tocamos, el océano aparecerá opaco y los continentes brillantes. Esta pequeña modificación puede hacerse con cualquier programa de edición (GIMP, entre otros), pero con ImageMagick es la mar de sencillo:

      mogrify -negate Earth-Spec4096.jpg↲

  5. Copiamos las imágenes al directorio ~/.xplanet/images y el fichero de configuración a ~/.xplanet/config. (Si no existe habría que crearlo con mkdir ~/.xplanet ~/.xplanet/images↲; es posible que no se cree al instalar xplanet.)
  6. Ahora es el momento de programar la ejecución de xplanet_background.sh: para ello seleccionad el menú Sistema / Preferencias / Aplicaciones al inicio. Pulsad Añadir. En el diálogo resultante poned un título significativo en el campo Nombre (por ejemplo, “Fondo de escritorio XPlanet”) y el script a ejecutar con su camino completo en Orden: /usr/local/sbin/xplanet_background.sh. Podéis dejar el campo Comentario vacío. Pulsad Añadir y ya está hecho.

Cada dos minutos tendremos en el fondo de nuestro escritorio una perspectiva distinta (y a veces sorprendente) de la Tierra. Las nubes se descargarán solas cada tres horas y serán aproximadamente correctas salvo en las zonas polares, donde no hay satélites que las fotografíen.

xplanet es un programa muy potente. Con otros archivos de configuración (es interesante leer la documentación y ver los ejemplos) es posible generar vistas, aleatorias o no, de cualquier cuerpo medianamente importante del Sistema Solar. No es Celestia, pero puede dar mucha vida a nuestro escritorio. ¿Qué se os ocurre hacer a vosotros?

Actualización 19/10/2011

Lamentablemente, el servicio de descarga de la imagen de nubes ha pasado a ser de pago, y el resultado es que este tutorial ya no funciona. No es complicado modificarlo para volver a un fichero estático de nubes, pero eso lo dejo como ejercicio para el lector.

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.

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.

La incidencia 4499

¿Te gustan las sensaciones fuertes? ¿Quieres comprobar qué se siente cuando un bug ya conocido en 2002 en la primera versión de un programa te ataca dentro de ese mismo programa en pleno año 2010? Bienvenido a la incidencia 4499. Intenta exportar una imagen de mapa de bits desde cualquier programa de la suite con capacidad para el dibujo (Draw vale, claro). Observarás que el resultado tiene una resolución fija muy baja. Tanto como para que un diagrama que ocupa un buen cuarto de página aparece completamente pixelado e ilegible. No, la resolución de exportación no se puede ajustar en ningún sitio. Pero tranquilos, no se trata de un error. La incidencia 4499 está registrada como una simple mejora, lo que quizá explique que su resolución prevista esté fijada para cuando se publique la versión 3.3 de la suite. Ánimo, que sólo lleva ocho años abierta.

Es típico del código abierto airear los trapos sucios, adornados con frases pasivo-agresivas de algún orgulloso desarrollador como “el comportamiento actual del programa es absolutamente correcto” (totalmente real, extraída del comentario del 12/08/2002 de la citada incidencia). Lo mejor del open source no tienen por qué ser sus desarrolladores. Ay, si no fuera por la comunidad en general el código abierto no sería mejor que la alternativa cerrada, y este caso no es una excepción. Un voluntario con el económico sobrenombre de “cl” ha publicado una extensión (como si dijéramos: un paquetito con funcionalidad adicional) que resuelve en parte la cuestión. Aquí está: Enhanced export options for bitmap files. Problema resuelto parcheado.

Bueno, no tanto. Resulta que la extensión no funciona con las últimas versiones de OpenOffice.org (3.1.1 y 3.2), sobre Ubuntu. Mi caso, exactamente (qué casualidad). En fin: recordemos el lema del más famoso lenguaje de programación de sólo escritura —Perl:

There’s more than one way to do it

Sí, hay más soluciones, y para lo que van a costar (si tu tiempo es gratis, claro), puedes escoger la que más te guste. Te propongo que exportes el dibujo como Postscript encapsulado y que lo conviertas a mapa de bits —PNG, por ejemplo— con el paquete Imagemagick. Más o menos así, para un resultado aceptable en una impresora de 300 ppp:

convert -density 300 mi_dibujo.eps mi_dibujo.png

(Casi) Pasándome a Chrome: el desenlace

Bueno, no ha sido el próximo artículo, pero es que la vida da muchas vueltas y cuando se le pone a uno a tiro un, digámoslo así, entuerto, pues hay que desfacello. Estábamos en que / es un navegador interesante, una buena apuesta de Google para introducirse ¿más? en nuestras vidas y terminar controlando todos los puntos del canal de comunicación. También habíamos dejado dicho que, pese a todo, no iba a saltar del barco de como rata marinera —por lo menos todavía. Pero los seres humanos somos así, no queremos renunciar a nada: cuando nos dicen que comer torreznos pone el colesterol por las nubes, ¿qué hacemos? Lo lógico, lanzar un programa de investigación del tamaño del Proyecto Manhattan para desarrollar unos torreznos light.

Por eso, y por obra y gracia de la característica que nos hizo a todos enamorarnos de Firefox cuando lo conocimos, ahora tengo un Firefox “chromificado”. ¡Extensiones, venid a mí!

Download Statusbar
¿Te cae gorda la ventana de descargas? A mí no tanto, pero aprecio las interfaces minimalistas. Instala esta extensión y configúrale el modo mini.
autoHideStatusbar
Hala, la barra de estado al cajón. No me acostumbro a esto, pero en estas pantallas panorámicas modernas el espacio vertical es realmente escaso.
Omnibar
Realmente, tener dos cajas de diálogo en la cabecera de Firefox es redundante. ¡Combinémoslas! Teclea tus direcciones y tus búsquedas desde el mismo sitio.
Locationbar²
Con esto instalado podremos disfrutar de ese sutil coloreado de URLs que permite ver el nombre de dominio tan cómodamente en Chrome, así como algún ajuste más.
FaviconizeTab
¿Habías probado a “marcar” una pestaña de Chrome? Con este añadido, Firefox también puede abreviar los contenidos de las pestañas a sus iconos. Ideal si hay algunas pestañas fijas en tu Firefox.
New Tab Jumpstart
Cada vez que abras una pestaña, en vez de ver una página vacía podrás tener un resumen de tu actividad más habitual. Guay.
Chromifox Basic
Si no tienes suficiente con hacer que tu Firefox se comporte casi igual que Chrome, puedes hacer que sea casi igual en apariencia. Me gustó el minimalismo de Chrome y el ahorro de espacio vertical de su interfaz, pero al final pudo conmigo que mis escritorios me gustan uniformes y que los temas se apliquen a todas las ventanas por igual. Nota: la versión más avanzada de esta extensión sólo funciona con Firefox 3.6, que todavía no está en su versión definitiva en la fecha de este artículo. Enlazo a la versión que funciona con Firefox 3.5.x.
Stealther
La privacidad es necesaria a veces, sobre todo si compartes tu ordenador y/o tu sesión y, bueno, ya me entiendes. Instálate esto y no hagas más preguntas.

Podéis ver más formas de chromificar vuestro Firefox si accedéis a la página de complementos y buscáis por “recopilatorios”. O, simplemente, pinchad aquí.

Let’s go picking nits in… Google Reader

Did you notice the flurry of new features in Google Reader? Following (as in ), liking (à la ), people searching (-ish?), several Mark as read options grouped in a mildly confusing button+drop down menu combined control, a new Send to tool that only appears after having visited the appropriately well hidden last settings’ tab —who knew? I’m a sucker for features. Hey, I’m an engineer: the whole world is lacking in features, or suboptimal in some way to me. I also crave smooth user experiences, and unfortunately Reader is not feeding that weird need of mine.

Trouble is looks like a playground. One where engineers have been given free rein to pile up new toys, unchecked by responsible adults. Reader was a nice newsfeed reader: now its bubbling its way up to become a social platform of sorts, haphazardly adding features all around, meatball style. Perhaps the old Zawinsky mantra should be rephrased for the brave new web:

Every program attempts to expand until it goes social. Those programs which cannot so expand are replaced by ones which can.

Let’s focus on some hard evidence: a rectangular area, 135 pixels wide and 150 tall, hidden from view until you surgeon-click on a teeny 10×10 down arrow symbol, meaningfully tucked away at the right side of the People you follow portlet title bar (just look at the illustration so you don’t have to take my word for that). A single, humble drop-down menu that accounts for no less than five different user interaction issues —and I won’t be looking at accessibility features this time. From top to bottom:

  • First two menu items are mutually exclusive choices, though the use of checkboxes seem to convey they are not. That’s what radio buttons are for: to allow users to discern at a glance when one and only one from a list of options makes sense at any particular time. It’s a functioning metaphor, give it some respect, would you?
  • When space is at a premium, why have two exactly antonymous actions (Show vs. Hide) when a single one would do? You have the checkbox indicator for that very purpose, don’t you?
  • Sort alphabetically and Sort by recency also exclude each other nicely, but they cannot be compressed into one. Here radio buttons would truly shine, believe me.
  • Whoa. Show all and Show updated. There you are, again. Someone has an axe to grind against radio buttons, I’m sure.
  • Last, Sharing settings menu item is not meant to apply some immediate action upon the application; but to act as a gateway to a modal dialog. You have a way to show that behavior to users, and therefore enhance your application predictability: just append an ellipsis (…) there. Thats three more bytes (some more if you worship your ), but it’s for great justice.

See what I mean? I don’t like authority arguments thrown at me, but see this friendly reminder by Jakob Nielsen and this Stack Overflow thread. Now please excuse me while I go solving some real world-class problems. There is this smell coming from the sink…