Una china en el autocompletamiento Bash

No una china en el zapato… sino en el autocompletamiento Bash. Los usuarios de la línea de comandos solemos «volar» literalmente mientras escribimos comandos en terminal. Pero usamos un truco: el autocompletamiento Bash. Si quieres ver el contenido del directorio /tmp/algo/muy/largo basta con teclear (donde TAB es el tabulador):

ls /t<TAB>a<TAB>m<TAB>l<TAB>

y Bash lo autocompletará así:

ls /tmp/algo/muy/largo

Sin embargo, desde la versión de Bash que nos trajo Natty (Ubuntu 11.04), al teclear

ls /t<TAB>_

el autocompletamiento añadía un espacio en blanco a la derecha del TAB y por tanto se rompía la magia (no es posible seguir tecleando y pulsando TAB a partir de ese espacio)

En este hilo de discusión al respecto de este bug, el usuario Silas da con la clave para arreglar este comportamiento tan errático: basta con editar el fichero /etc/bash_completion, línea 1587 y donde pone -o default poner- o filenames. Guardamos los cambios y a partir de la siguiente terminal que abramos, el problema estará solucionado.

Google Cloud Print: imprimiendo en la nube


Problema: estás en el autobús de camino al trabajo con el móvil Android y quieres imprimir el PDF que estás viendo en pantalla para que nada más llegar, puedas recoger el taco de papeles impresos y hacer uso de ellos. No es algo traído de los pelos, en el mundo estresado en el que vivimos me ha ocurrido varias veces («ojalá pudiera enviar a imprimir este documento para que sea llegar al despacho y recoger el trabajo para entrar directo a clase…»). Lo sé, podía haberlo hecho antes O:-)

Bueno, el caso es que la espera terminó. Ya es posible hacerlo con una tecnología que salió hace meses para Windows y MacOSX (siendo los usuarios del pingüino otra vez ciudadanos de segunda clase) de la mano de Google. Se llama Google Cloud Print y en resumidas cuentas, lo que permite es enlazar a la nube de Google cualquier impresora a la que tengas acceso desde un ordenador de sobremesa ejecutando el navegador Chrome. De esta forma, cualquier otro dispositivo que tengas (smartphone Android, otro PC con Chrome, una tablet…) conectado y con permisos recibirá la opción de imprimir en esas impresoras. Realmente es como compartir una impresora local a través del navegador… para todo el que tú desees, esté donde esté.

¿Cómo se hace? Abre Chrome (¡ojo! ¡versión 12 como mínimo!). Teclea about:flags. Activa Google Cloud Print. Ahora, cierra y vuelve a abrir Chrome. Desde ele menú de opciones, preferencias, «Under the Hood», haz login en Google Cloud Print (te pedirá que te identifiques con una cuenta Google). Selecciona las impresoras que quieres compartir. ¡Listo! Los dispositivos Android desde los que quieras poder imprimir recibirán la notificación de que tienen impresora disponible sin que tengas que hacer nada más. Los navegadores Chrome de otros PCs tendrás que configurarlos.

Tip: grabar sonido interno en recordMyDesktop

Problema: quieres grabar con recordMyDesktop lo que estás viendo en pantalla y *también* quieres grabar el sonido de lo que oyes *pero* no el sonido ambiente, sólo el que sale de las aplicaciones actualmente en ejecución. Por ejemplo, supongamos que quieres grabar con recordMyDesktop lo que acontece en un videojuego que tienes en pantalla. El videojuego emite audio y quieres que este audio también quede grabado, pero evitando el ruido ambiente exterior (te llaman por teléfono, se abre la puerta, estornudas…).

Solución:
1) Arranca recordMyDesktop y pónlo a grabar
2) Arranca pavucontrol (control de audio de Pulse Audio)
3) En la pestaña «Recording» verás que por defecto estará grabando de «Internal Audio». Pulsa sobre ese botón y elige «Monitor of Internal Audio» (ver imagen adjunta).
4) Tómate un café como recompensa 🙂

Realmente este truco no tiene por qué limitarse a recordMyDesktop, funciona con cualquier aplicación que grabe audio.
Nota técnica: al parecer lo que conseguimos con este truco es grabar en «stereo mix mode»

Video Tutoriales: Cómo compilar el kernel en Ubuntu

He preparado 3 vídeos que muestran cómo compilar el kernel en Ubuntu desde 0. En lugar de descargar el código fuente de kernel.org me baso en los paquetes .deb con el código fuente «tuneado» para una máquina Ubuntu Linux. Se muestra cómo instalar las dependencias necesarias para preparar el entorno de compilación, cómo instalar el paquete con el código fuente del kernel y módulos, cómo dar la orden de compilación y cómo instalar los paquetes .deb que se generan al compilar el código fuente del núcleo de Linux.

Ya no hay excusa para decir que «no sé cómo compilar el kernel» 🙂

Aprendiendo de las anécdotas

Bar Ostadar, Donostia. Comida/Reunión para planificar algunos aspectos de la migración de BabeliumProject a HTML5. Comprobemos a ver si tenemos acceso a la señal wifi Eduroam (las facultades quedan muy cerquita). Ooops… la primera red Wifi tiene un nombre muuuuuy curioso 🙂 ¿Le sacamos un pantallazo? Mmmhh… si pulso ImprPant se esfuma el menú del NetworkManager. ¿Cómo lo hago? Si tuviéramos Shutter instalado, it would be a piece of cake! 🙂 Pero no lo tenemos… entonces, ¿cómo? Abrimos una terminal y tecleamos:

$ sleep 5 &amp;&amp; xwd -root &gt; salida

La idea es esperar 5 segundos (tiempo más que suficiente para que con el ratón abramos el menú del Network Manager y lo dejemos a la vista mostrando los nombres de las redes). A los 5 segundos el comando xwd sacará un pantallazo a pantalla completa. El fichero salida es una imagen raw que podemos editar con Gimp.

¿Cuál era el nombre de red que ha provocado todo esto? Échale un vistazo al pantallazo adjunto 🙂