code

python-greader 0.0.1

Pequeña libreria para acceder al API de google reader, mal escrita y peor documentada :)

description = 'Small library to access a subset of Google Reader API'

Si puedes verlo puedes copiarlo

Hasta ahora si tu veías un vídeo en flash desde Linux o similar siempre podías copiarlo yendo a la carpeta /tmp y simplemente cogiendo el archivo.

Esto era por que en /tmp se guardaba el vídeo en formato flv. Pero parece que esto ya no funciona, aún así: «si puedes verlo puedes copiarlo».

El siguiente script vuelca de nuevo al directorio /tmp todos los vídeos flash que estés viendo:

#!/bin/bash

for i in $( lsof -n | grep Flash | awk '{printf "/proc/%s/fd/%s\n", $2, $4}' | sed -e 's,.$,,')
do
	cat $i > "/tmp/$(echo $i | tr '/' '_')"
done

Salud!

PD. Sí, se que es un poco brutico, pero no necesito más.

FireLoL is a slow dog

Para el que no lo sepa, Firefox (o Iceweasel) es uno de los navegadores más populares ahora mismo, acercándose, si no me equivoco, al 30% de cuota de mercado aproximadamente, y subiendo imparablemente mes tras mes.

Sin embargo todos los que lo usamos a diario habremos comprobado como según pasa el tiempo le cuesta más «moverse» al escribir una dirección en la barra de direcciones o buscar en el historial. Esto se debe a que todos esos datos los almacena en unas pequeñas bases de datos que con el tiempo acaban fragmentándose.

Para solucionar esos problemas se puede ejecutar un comando que reorganiza esas bases de datos:

echo "vacuum;" | sqlite3 fichero.sqlite

Pero para evitar tener que hacerlo sobre todas las bases de datos de Firefox y, lo mas importante, acordarme de ello, he «cocinado» el script que adjunto, ahora solo se debe copiar a vuestro disco duro y ejecutarlo (o programar su ejecución) de vez en cuando.

Salud (Funciona en Linux y OSX)

Dumpeando LastFM / Spotify / [inserte-aqui-su-servicio-favorito]

¿Quien no ha deseado alguna vez guardar la musica que escucha a través de LastFM o Spotify (o cualquier servicio similar)?

Si, se que hoy en día se puede obtener una «copia privada» en un momento pero... ¿y donde quedaría nuestro frikismo?

La cosa es que usando gst-launch se puede re-absorver el sonido que emite la tarjeta de sonido a través de PulseAudio y codificarlo y guardarlo:

$ gst-launch-0.10 pulsesrc device=$(LANG=C pactl list  | grep -A2 'Source #'  | grep -E 'Name: .*\.monitor$' | cut -d" " -f2 | tail -n1) \
    ! queue ! audio/x-raw-int,rate=44100,channels=2 \
    ! audioconvert ! lame vbr=4 vbr-quality=2 \
    ! filesink location=dump.mp3

Dejo como deberes al lector el análisis del comando ;)

PD. Basado parcialmente en el post recording from PulseAudio de Kees Cook

Debug or not to debug

Cuantas veces hemos llenado el código de printf's (o funciones de debug mas complejas) y ha llegado de decidir si dejarlas para siempre, comentarlas o borrarlas.

Se acabo el decidir que hacer:

// Desactivar debug, un NOOP vamos
#define my_debug(...) ;

// Activar debug
#define my_debug(...) printf(__VA_ARGS__)

To be or not to be

Andaba yo escribiendo un poco de código cuando me topado con una

if args.is_a?(Array)
  args.each do |i|
    if i.is_a?(Hash)
      i.each_pair do |k,v|
        self[k] = v
      end
    end
  end
end

Ruby permite especificar una condición después de un bloque decidiendo si este se ha de ejecutar o no y de paso, a mi parecer mejora la lectura:

args.each { |i|
  i.each_pair { |k,v|
    self[k] = v
  } if a.is_a?(Hash)
} if args.is_a?(Array)

O esta otra forma mucho mas compacta:

args.each { |i|
  i.each_pair { |k,v| self[k] = v } if i.is_a?(Hash)
} if args.is_a?(Array)

Pasando el rato

$ cat trastoca.sh
#!/bin/bash

[ -d "$1" ] || exit 1
IFS="
"
for F in $(find "$1" -type f )
do
	O="$(md5sum "$F" | awk '{print $1}')"
	(cat "$F" | openssl enc -aes-256-cbc -k "$O" > "$1/$O") && rm -f -- "$F"
	echo "$O $F"
done

$ sudo trastoca.sh /home/$LUSER
...

Buscando paquetes obsoletos

Al actualizar de version en los sistemas basados en Debian muchos paquetes pasan a ser obsoletos, bien por que han sido sustituidos por otros o bien por que han sido abandonados.

Como parte de mi intento de automatización de toda tarea de mantenimiento rutinario he «cocinado» este pequeño script que muestra estos paquetes obsoletos.

Como es lógico y sensato queda por nuestra parte decidir que hacer con ellos, eliminarlos o mantenerlos.

Disfrutenlo

Módulo img2ascii para Drupal

De nuevo, a raíz de la entrada anterior, he empaquetado el código y he hecho con el un filtro de contenido para Drupal.

El filtro en cuestión convierte las imágenes adjuntas en imágenes formadas por texto, lo que también se conoce como ASCII art.

La sintaxis para insertar la imagen en el cuerpo del nodo es: [img2ascii:adjunto.jpg]

PD. De momento únicamente soporta jpg, mas que por dificultad técnica por vagancia ;)

Páginas

Suscribirse a RSS - code