Para eliminar una cadena que está presente en un conjunto de ficheros podemos usar este pequeño script:
for i in *.avi
do
mv "$i" "`echo $i | sed 's/CADENA//'`"
done
Cosas de programación para recordar y de todo un poco
Para eliminar una cadena que está presente en un conjunto de ficheros podemos usar este pequeño script:
for i in *.avi
do
mv "$i" "`echo $i | sed 's/CADENA//'`"
done
Me he encontrado con este magnífico artículo llamado Avoiding the productivity mouse-traps. Es una lista de consejos para ganar tiempo al usar el ordenador utilizando el teclado en vez del ratón. Voy a listar aquí dos que no conocía y que me parecen imprescindibles:
Me permití un caprichillo en el Black Friday de este año, un monitor de 10 pulgadas que básicamente voy a usar para las ventanas de Developer Tools de Chrome.
Cuando me llegó estuve un rato probándolo y me di cuenta de que como normalmente tengo varias de esas ventanas abiertas se me iba a llenar el panel inferior (donde tengo la lista de ventanas) de botones para esas ventanas. Me acordé de que Cinnamon está escrito en JS así que investigué un poco a ver si podía evitarlo, y efectivamente se puede.
Lo que hay que hacer es editar el fichero /usr/share/cinnamon/applets/window-list@cinnamon.org/applet.js, y añadir este código en la línea 1063 (después de la línea let appButton = new AppMenuButton(this, metaWindow, alert);):
if (appButton._label.text.indexOf("Developer Tools") > -1)
return;
De esta forma evitamos que se incluyan en la lista de ventanas los botones correspondientes a las ventanas de las Developer Tools. Por supuesto funciona cambiando el texto por cualquier otro si queremos esconder alguna otra ventana de la lista.
Algo que me vino muy bien es tener abierta una ventana de consola con este comando:
tail -f ~/.cinnamon/glass.log
que nos permite ver el log de Cinnamon y escribir en él desde JS con la función global.log(). Para recargar el applet de la lista de ventanas ejecutamos el siguiente comando:
dbus-send --session --dest=org.Cinnamon.LookingGlass --type=method_call /org/Cinnamon/LookingGlass org.Cinnamon.LookingGlass.ReloadExtension string:'window-list@cinnamon.org' string:'APPLET'
Al final después de conseguirlo me di cuenta de que no me hacía falta todo esto. Basta con crear un nuevo panel en el segundo monitor y añadirle el applet de lista de ventanas, y los botones para las ventanas de ese monitor se muestran ahí, liberando la lista de ventanas del monitor principal.
Actualización 8/2/2018: para que las ventanas de Developer Tools se abran siempre en el nuevo monitor he instalado devilspie, un programa que nos permite definir reglas para ejecutar acciones sobre las ventanas que se vayan creando. Con este programa puedo hacer que estas ventanas (y las de la terminal, por ejemplo) se abran siempre en el monitor auxiliar, pero además este programa permite que esas ventanas no aparezcan en la lista de tareas, lo cual es justo lo que quería hacer al principio. ¡Hurra!
Copio aquí la regla, hay que tener en cuenta que el monitor auxiliar lo tengo a la izquierda del principal, por lo que sus coordenadas empiezan en 0,0.
; Regla para Chrome Developer Tools, skip_tasklist es lo que hace que no salga en la lista de ventanas ( if ( begin ( contains ( application_name ) "chrome-devtools" ) ) ( begin ( skip_tasklist ) ( geometry "600x800+0+0" ) ( maximize ) ) )
Hay un bug en Linux Mint Cinnamon 18 que hace que el sistema no reconozca el micrófono. Para solucionarlo hay que editar el fichero /usr/share/cinnamon/cinnamon-settings/modules/cs_sound.py y en la línea 607 sustituir
self.inputSelector = self.buildDeviceSelect("output", self.inputDeviceList)
por
self.inputSelector = self.buildDeviceSelect("input", self.inputDeviceList)
Para poder hacer debug desde una imagen de Mac osX de Virtualbox de una web corriendo en el Safari de un iPad el procedimiento es este:
Recientemente he instalado en un servidor el certificado SSL gratuito de Let’s Encrypt, y todo ha ido como la seda, en cinco minutos estaba funcionando.
Más tarde en la web de ese servidor he puesto un pequeño sistema de mensajería instantánea que usa Node JS y no tenía muy claro cómo indicar en las opciones SSL los certificados necesarios, así que aquí va para el futuro:
var httpOpcionesSSL =
{
key: fs.readFileSync('/etc/letsencrypt/live/MIDOMINIO/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/MIDOMINIO/fullchain.pem'),
ca: fs.readFileSync('/etc/letsencrypt/live/MIDOMINIO/chain.pem')
};
Los que tenemos un equipo con arranque dual Linux-Windows conocemos de sobra GRUB. Es un programa de arranque que nos permite escoger entre Linux o Windows al iniciar el ordenador. También sabemos que en un equipo nuevo lo ideal es instalar primero Windows y luego Linux. Esto es porque Linux es un caballero educado y detecta que hay otro sistema operativo en el arranque del equipo y automáticamente configura GRUB para que podamos escoger entre los dos.
Windows no es un caballero, pese a que cada vez me gusta más el rumbo que está tomando Microsoft con Satya Nadella, y cuando se instala no se molesta en mirar si hay algún otro sistema operativo en el arranque del equipo, borra lo que haya y pone su cargador. Por eso si reinstalamos Windows perdemos el GRUB y con ello la opción de arrancar en Linux.
Esto normalmente no supone más que una pequeña molestia y tiene una solución muy sencilla: basta con arrancar desde un Live-USB de Linux y ejecutar el programa Boot Repair, que reinstala GRUB y nos devuelve la opción de decidir el sistema operativo con el que queremos iniciar el equipo.
Pero a veces, como me pasó a mí ayer, esto no funciona. Probé con un LiveCD de Ubuntu 13.04 que tenía por ahí, con un USB de la última versión de Linux Mint y hasta con un USB con la distribución Boot Repair Disk específica para este tipo de casos, pero en todos pasaba lo mismo: después de un montón de mensajes de arranque la pantalla se quedaba en negro y no conseguía acceder a la interfaz gráfica.
Rebuscando por Google encontré este programa: EasyBCD, y fue mano de santo. Basta con ejecutarlo, pulsar el botón de añadir entrada y seleccionar la partición donde tenemos Linux. Por lo que sé este programa lo que hace es meter un cargador intermedio en Windows que nos permite seleccionar el sistema operativo a cargar, es el equivalente al GRUB pero en Windows.
Al reiniciar el equipo me apareció una pantalla para escoger entre arrancar Windows 10 y Linux; al seleccionar este último se cargó sin problemas, y ya desde ahí pude ejecutar Boot Repair. No era estrictamente necesario hacerlo, podría haber seguido usando el selector que instaló EasyBCD, pero el GRUB es mucho más rápido y carga por defecto Linux, que es lo que uso habitualmente.
Imagino que una vez instalado el GRUB se podría quitar ese cargador intermedio de EasyBCD, pero no me he atrevido a hacerlo porque tampoco entiendo del todo cómo funciona y no quiero liarla. Además, como en Windows entro solo de vez en cuando para jugar tampoco me molesta esa pantalla intermedia.
Es bueno saber que existe una forma de recuperar GRUB cuando no podemos ejecutar Boot Repair, o cuando no tenemos a mano un CD/DVD o un pincho USB para arrancar una sesión Live de Linux.
Hace tiempo ya hablé de cómo usar un iPad como monitor adicional en Linux. Llevo desde entonces usándolo y funciona estupendamente, pero hay una espinita que tenía clavada desde el primer día: no poder mover la ventana de las Chrome Dev Tools al iPad.
El truco que usamos para poder tener el iPad como segundo monitor es crear una nueva sesión X y conectarse a ella mediante VNC. Por desgracia, si una ventana se abre en una sesión X no se puede enviar a otra (en realidad sí se puede, pero es demasiado complicado). Así que como la ventana de Dev Tools se abre en la sesión del monitor principal no hay forma de enviarla al iPad.
Pero resulta que hay una alternativa. Ejecutamos una instancia de Chrome en nuestra sesión X principal indicando un puerto para depuración remoto:
/usr/bin/google-chrome-stable --remote-debugging-port=9222 --user-data-dir=remote-profile
En la sesión X del iPad, ejecutamos otra instancia:
/usr/bin/google-chrome-stable --user-data-dir=remote-debug
Y en esa ventana de Chrome que se nos abre en el iPad, navegamos a http://localhost:9222 y ¡bingo! Nos aparecerán las pestañas que tengamos abiertas en la instancia de Chrome que iniciamos en la sesión principal y podremos depurar desde el iPad.
Un apunte rápido: cuando conectamos el iPad al USB del ordenador con Linux aparece el mensaje de “No se está cargando”. Basta con instalarse un programa llamado ipad_charge y problema resuelto.
LastPass es un programa para recordar contraseñas que funciona estupendamente, pero hay veces que si tenemos un formulario que no es de acceso a una web nos rellena algunos campos que no queremos que rellene.
Para solucionar esto hay que hacer dos cosas: