jueves, 8 de diciembre de 2011

Reproducción aleatoria continua en MPD

MPD es un gran concepto, pero algo que me molesta mucho (y se me hace increíble que no exista), es que no tenga integrada una forma fácil para agregar canciones de forma aleatoria cuando se acaba una playlist. Para eso creé este script, que automáticamente agrega canciones cuando la lista tiene menos de 2 canciones:
#!/bin/bash

while [ 1 -eq 1 ]; do
    while [ `mpc playlist | grep -c ^` -lt 2 ]; do
        mpc listall | sed -n $[RANDOM % $(mpc stats | grep Songs | awk '{print $2}')+1]p | mpc add > /dev/null
    done
    sleep 60
done

Créditos: http://b.fluff.cc/2011/10/add-random-songs-to-mpd-playlist.html

Opciones por default en VIM

Estas son las opciones que me gustan tener por defecto en VIM:
# ~/.exrc
:set ts=4
:set ignorecase
:set autoindent
:set number

lunes, 5 de diciembre de 2011

¡Vendo!

Dada la inminente victoria del Peje en México, es hora de vender todo y huir de este país. ¡Aprovechen estas gangas! Iré poniendo mas fotos conforme las vaya consiguiendo.

  • Bocinas frontales TR-2830 ($2,700)




domingo, 27 de noviembre de 2011

Usando el R.A.T 9 en Ubuntu

Tengo en mis manos un nuevo mouse. Se llama Cyborg R.A.T. 9. Tiene todo tipo de ajustes ergonómicos, paneles deslizables, y hasta pesas. Tendré que usarlo un tiempo para formar una opinión objetiva, pero hasta ahorita parece que es un buen mouse.


Aún así, me trajo algunos problemas al usarlo en Ubuntu. Específicamente, el enfoque se quedaba trabado en una sola ventana y no podía hacer click en otra cosa. Al desconectar el mouse, todo funcionaba bien. Esto se debe a un error en los comandos de inicialización del mouse, a los que les falta mandar una instrucción de "button release". Es sencillo arreglarlo:
cd /usr/share/X11/xorg.conf.d/

# crear un archivo nuevo

sudo nano 910-rat.conf

# agregar esto al archivo

Section "InputClass"
        Identifier "R.A.T."
        MatchProduct "R.A.T.7|R.A.T.9"
        MatchDevicePath "/dev/input/event*"
        Option "Buttons" "17"
        Option "ButtonMapping" "1 2 3 4 5 0 0 8 9 7 6 12 0 0 0 16 17"
        Option "AutoReleaseButtons" "13 14 15"
        Option "ZAxisMapping" "4 5 6 7"
EndSection

# Guardar, salir y reiniciar

martes, 11 de octubre de 2011

Problemas instalando PowerDNS

Al estar instalando PowerDNS me topé con este problema:
Setting up pdns-doc (2.9.22-3) ...
Processing triggers for pdns-server ...
invoke-rc.d: unknown initscript, /etc/init.d/pdns not found.
dpkg: error processing pdns-server (--configure):
 subprocess installed post-installation script returned error exit status 100
Errors were encountered while processing:
 pdns-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
El problema salió por andar borrando scripts manualmente. Para resolverlo:
sudo apt-get --purge remove pdns-server

domingo, 25 de septiembre de 2011

Tienes un poco de antrax en tu teclado...

Recientemente, una persona cuyo honor no mancharé al revelar su nombre, me pidió que revisara el teclado de su computadora, dado que estaba fallando. Accedí a ayudarla, y al recibirlo noté que se veía realmente sucio. Imaginarán mi sorpresa cuando al revisarlo mas a fondo descubrí esto:



Ilusamente pensé que toda la porquería saldría simplemente con la ayuda de un compresor de aire, pero no hizo la menor diferencia. Era claro que esto iba a necesitar algo cercano a un baño en ácido.


Después de una limpieza profunda, finalmente quedó un dispositivo que no va a seguir procreando nuevas armas biológicas:

Misión Cumplida!

sábado, 20 de agosto de 2011

Como usar imagemagick para crear thumbnails

Necesitaba crear thumbnails de todas las imágenes de un folder. Esto implicaba cambiarles el tamaño, pero además hacerlas ver mas oscuras, como esto:

Antes
Después

Este es el comando que usé:
for i in *.jpg ; do convert -quality 85 -geometry 181 -level -25% -brightness-contrast -25 "$i" "thumbs/$i.off"; done

Una variación mas, donde el requerimiento es crear thumbnails de 300x214 pixeles, a partir de todos los archivos JPG en un directorio, los cuales no contengan "_med" ni "_thumb" en su nombre, y agregarles el sufijo "_med":

find * -prune -name '*.jpg' | grep -v _thumb | grep -v _med | sed 's/.jpg$//' | xargs convert {}.jpg -thumbnail 300x214 {}_med.jpg


lunes, 1 de agosto de 2011

Borrar llaves de ssh viejas

Cuando estes tratando de conectarte por SSH a otro host y te salga este mensaje:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Quiere decir que la llave ya no corresponde al host, y hay que generar una nueva. Para esto hay que primero borrar la vieja:
ssh-keygen -R host

martes, 26 de julio de 2011

Como rootear el Motorola Milestone

Hace algún tiempo, compré a través de amazon.com un Motorola Milestone que venía con Android 2.1. Me cansé de esperar a que sacaran un update, entonces decidí rootearlo e instalar CyanogenMod 7.

Estos son los pasos:
  • Bajar sbf_flash
  • Bajar el SBF de vulnerable recovery
  • Bajar open recovery
  • Bajar cyanogenmod y google apps.
  • Copiar update.zip y el directorio openrecovery a la raíz de la tarjeta SD
  • Copiar los zips de cyanogenmod y google apps al directorio updates.
  • Prender y dejar apretado arriba en el pad.
  • Ahora flasheamos el vulnerable recovery:
    sudo ./sbf_flash vulnerable_recovery_only_RAMDLD90_78.sbf
  • Dejar apretado "x" cuando se reinicie.
  • Instalamos OpenRecovery: apply sdcard:update.zip
  • Dentro del menu de OpenRecovery, escoger la opción de apply update.
  • Ahora deben aparecer los zips de cyanogen y de google apps.
  • Primero instalamos cyanogen, y despues el otro.

Listo!

viernes, 27 de mayo de 2011

Usando una memoria USB con Banshee

Si quieres poder manejar tu memoria usb desde banshee y poderle agregar canciones, playlists, etc. hay que crear un archivo llamado .is_audio_player y llenarlo con algo similar a esto:

audio_folders=Music/
video_folders=Video/
folder_depth=2
playlist_formats=audio/x-scpls, audio/mpegurl, audio/x-mpegurl
playback_mime_types=video/mp4-generic, video/quicktime, video/mp4, video/mpeg4, video/3gp, video/3gpp2, application/sdp, audio/3gpp, audio/3ga, audio/3gpp2, audio/amr, audio/x-amr, audio/mpa, audio/mp3, audio/x-mp3, audio/x-mpg, audio/mpeg, audio/mpeg3, audio/mpg3, audio/mpg, audio/mp4, audio/m4a, audio/aac, audio/x-aac, audio/mp4a-latm, audio/wav
coverartfilename=folder.jpg
coverartfiletype=jpeg
coverartsize=200

jueves, 28 de abril de 2011

Como borrar archivos específicos de un directorio

Este comando borra todos los archivos con un patrón específico de un directorio y sus subdirectorios, sin importar que el nombre tenga espacios.
find . -type f -name *foo -print0 | xargs -0 rm

lunes, 11 de abril de 2011

Como mover el directorio /home de lugar

El escenario es este: Tengo un sistema con un disco principal, y 4 discos configurados en RAID5. La idea es mover el directorio /home al RAID5, en vez de tenerlo en el disco principal. Asumiendo que el arreglo ya esta montado y funcionando en /raid, estos son los pasos para mover /home:
  1. Primero, agregamos una entrada a /etc/fstab:
    /raid/home /home none defaults,bind 0 0
  2. Después, copiamos el contenido de /home a su nueva ubicación:
    sudo rsync -axS --exclude='/*/.gvfs' /home/. /raid/home/. 
  3. Ahora movemos home a otro lugar, y creamos un directorio nuevo vacío:
    cd / && sudo mv /home /old_home && cd / && sudo mkdir -p /home 
  4. Finalmente, montamos el directorio nuevo:
    sudo mount -a
Con esto, el directorio /home ahora apunta a /raid/home.

viernes, 18 de febrero de 2011

TOra - GUI para PostgreSQL

Aunque el cliente para PostgreSQL mas popular, pgAdmin III, es bueno, siento que a veces es demasiado lento y complicado. Encontré una alternativa: TOra. Este cliente era originalmente para Oracle, pero ahora tiene soporte básico para Postgres. Tiene muchos bugs y mucha menos funcionalidad, pero aún así prefiero usarlo para queries rápidas. Para instalarlo:
sudo apt-get install tora libqt4-sql-psql