sábado, 14 de mayo de 2011 (Hace más de 1 mes)

Un sencillo script que me hice ayer jugando la base de datos de Digikam4.
El splashscreen (de Digikam4 en este caso) es esa pantallita (normalmente una foto decorada) que aparece en el momento de lanzar la aplicación y mientras se cargan las librerias y plugins. Como en muchos otros programas es personalizable. Basta con poner una imagen PNG en ~/.kde4/share/apps/digikam/data/splash-digikam.png para que al iniciar el programa se use nuestra imagen en lugar de la que trae el programa. Ya hace tiempo colgué por aquí algunos ejemplos propios para Digikam/KDE3.

¿Y porqué no hacerlo dinámico? Una imagen diferente cada vez que se cargue Digikam, por ejemplo: El splash-screen será la última fotografía modificada cuyo RATING (el número de estrellitas,1-5, con que valoramos cada foto) sera superior a 2 (por ejem). Eso es lo que hacen las siguientes líneas.
Copialas en un archivo de texto, guardalas como ~/bin/splashd.sh y personalizalas:
#!/bin/bash
#nombre del archivo de la base de datos de Digikam4 (comprueba)
fileDB="digikam4.db"
#ruta absoluta al archivo anterior (cambialo)
pathDB="/home/album/Fotografia"
baseDatos="$pathDB/$fileDB"
#ruta de usuario (introduce tu username)
dirDestino="/home/tu-user/.kde4/share/apps/digikam"
#obtiene nombre de imagen y album de la última imagen modificada y cuyo rating se superior a 2
id=$(sqlite3 -list $baseDatos "SELECT b.album, b.name FROM imageinformation AS a INNER JOIN images AS b ON a.imageid=b.id WHERE a.rating<6 AND b.name LIKE '%.jpg' ORDER BY b.modificationDate DESC LIMIT 1")
#con lo anterior obtenemos el album en que se encuentra
foto=$(sqlite3 -list $baseDatos "SELECT a.relativePath,b.specificPath FROM albums AS a INNER JOIN albumroots AS b ON a.albumRoot=b.id WHERE a.id=${id/|*/} LIMIT 1")
#la ruta absoluta a la imagen es
fotografia=$(echo "$pathDB|$id|$foto" | awk -F "|" '{print $1""$4"/"$3}')
#a partir de la imagen seleccionada generamos el splashscreen
convert "$fotografia" -resize 500x -format PNG png:- | composite -gravity south "$dirDestino/over.png" - "$dirDestino/data/splash-digikam.png"

A continuación reemplazamos el binario de Digikam por otro script:sudo
mv /usr/bin/digikam /usr/bin/digikam-bin

En su lugar (/usr/bin/digikam) ponemos un script que diga:#!/bin/bash
digikam-bin $@ && sh /home/tu-user/bin/splashd.sh

Solo necesitais eso y el PNG que se superpone a vuestra fotografía con la decoración de Digikam ( descargar over.png . Guardalo en tu ~/.kde4/share/apps/digikam/over.png ). En adelante al salir de Digikam se genera el splashscreen tal y como veis en la fotografía de arriba y que será el que veais en el siguiente inicio de Digikam.

Actualización

He hecho un par de modificaciones en las lineas del script superior. Tal y como está ahora esas lineas toman la última foto modificada cuya puntuación sea menor de 6 (es decir, la última modificada entre todas puesto que la máxima puntuación es 5) y además que sea un JPG. Esto lo he incorporado porque el script falla si la última imagen es un vídeo ó un RAW

domingo, 17 de abril de 2011 (Hace 80 dias)

Pequeñas virguerías que te encuentras dando vueltas por los proyectos alojados en Code Google este de Plowshare.

Básicamente una serie (4) de scripts bash que permiten desde un terminal de texto subir y/o bajar archivos a los principales servidores de alojamiento gratuito (megaupload, rapidshare, Ashared, etc… hasta 24 servicios). Simplemente abre una consola y ejecuta plowdown http://ruta/archivo/a/descargar, el script se encarga de conectar con el servidor, simular click en el boton web, esperar los 45 seg, y descargar el archivo solicitado.
En algunos servicios incluso el script «lee» el Captcha necesario para descargar.

Si además estais registrados en alguno de estos servicios plowshare incorpora posibilidad de subir archivos al servidor, listar archivos en el servidor y borrar archivos.

Con esto, descargar una lista de archivos de forma completamente automatizada ó simplemente descargar un gran archivo a una hora programada (por aquello del tráfico menor) es terriblemente simple. Para descargar por ejemplo la Guia de la Fauna Vertebrada de Jaén que colgué en el servicio Ashared, hace unos dias, pero haciendolo a las 4 de la madrugada sería tan facil como echo 'plowdownload "http://www.Ashared.com/xxxxx/Guia_Fauna_Vertebrada.html" ' | at 4:00

Para instalarlo simplemente visita la página de versiones disponibles (tar.gz ó deb) y descarga la que necesitas. Puesto que es simplemente un script no necesita compilación ninguna, el instalador simplemente copia los archivos a /usr/local/share y linka los scripts bash en /usr/bin. Vaya que podeis hacerlo vosotros mismos sin necesidad de instalador.

lunes, 4 de abril de 2011 (Hace 93 dias)

Estoy introduciendo algunas mejoras en las galerías de fotografía y vídeo incorporando algunas cabeceras HTML nuevas que faciliten la integración con el nuevo botoncito de Facebook. A consecuencia de esto y para manejar los datos XML que ofrece Flickr me he puesto a trastear con Xmlstarlet una aplicación para interpretar xml en consola que parece bastante completa y potente.

En los repositorios básicos de openSuse se encuentra la última versión. El programa y el instalador son Xmlstarlet pero en consola el ejecutable es simplemente xml. Aqui un txt con buen puñado de ejemplos de uso.

Xmlstarlet no es que sea dificil de manejar sino que pasa como con las expresiones regulares: si no estás muy concretado en la línea que escribes te pierdes y si pasas mucho tiempo con él acabas pillando un mareo considerable. Y por si fuera poco hay que sumar el problemas de la acentuación del idioma y al codificación de caracteres. Creo que el término correcto es: farragoso.

Pero es potente, versatil y permite en una línea realizar tareas que serían relativamente complejas de otro modo (como ir descargando XML de Flickr y pasandolos a MySQL).

Un par de ejemplos de uso

Un modo tosco de consultar lo último publicado en meneame.net
curl -s -g "http://www.meneame.net/rss2.php" | xml sel -t -m "/rss/channel/item" -v "title" -o " (" -v "link" -o ")" -nsalida:
Un exploit del Partido Pirata francés convierte la web de Hadopi en The Pirate Bay (http://m.menea.me/q5cj)
Los presupuestos de cada ayuntamiento de España explicados (http://m.menea.me/q5k7)
Los coquetos burdeles de Japón donde puedes pasar un buen rato con Hello Kitty (si te apetece). (http://m.menea.me/q5kx)
Camps: ´Hemos ganado, se va para siempre una mala persona´ (http://m.menea.me/q5gd)
Merkel instó hoy a la industria alemana a desarrollar las energías renovables (http://m.menea.me/q5im)
Primeras imágenes de la fuga de agua radioactiva de Fukushima en el reactor 2 [CAT] (http://m.menea.me/q585)
Alemania pide facilitar la enseñanza de su idioma en los institutos españoles (http://m.menea.me/q5hu)
La inyección de una espuma plástica no frena el escape de agua radiactiva (http://m.menea.me/q5kp)
Terremoto de 7.1 en el sur de Java Indonesia y alerta por tsunami (http://m.menea.me/q5km)
Djokovic gana el Masters 1000 de Miami (http://m.menea.me/q5ka)
¿Venderías tus principios por 500 millones? (http://m.menea.me/q5gi)
BP obtiene permiso para volver a operar en el Golfo de México (http://m.menea.me/q5hi)
Yo también quiero ser Esperanza Aguirre (o por lo menos tener los mismos médicos que ella) (http://m.menea.me/q5id)
'Spain is different' hasta en los títulos de las películas (http://m.menea.me/q5bw)
Iberdrola desarrolla el primer "aerogenerador submarino" del mundo (http://m.menea.me/q5hv)
Una juez niega a un padre la custodia compartida de sus hijos por perder su empleo (http://m.menea.me/q583)
El fútbol español y la NBA (http://m.menea.me/q569)
La inventora española de las 448 patentes (http://m.menea.me/q57i)
El mensaje de ETA-PP (http://m.menea.me/q4j1)
El reiki se cuela en el más importante congreso español de estudiantes de medicina (http://m.menea.me/q5b8)
¿Copago en la sanidad?, ¡Menuda estupidez, ya la pagamos al 100%! (http://m.menea.me/q5eb)
Doblete en MotoGP: Lorenzo 1º y Pedrosa 2º (http://m.menea.me/q5cf)
Cinco consejos para que tus hijos lean (http://m.menea.me/q51u)
Aspirante a empleo sin sueldo (http://m.menea.me/q59c)
La Hacienda de Gipuzkoa descubre una bolsa de fraude fiscal de casi 1.130 millones (2007-2010) (http://m.menea.me/q551)
Lo que vemos nosotros comparado con lo que ven los niños [ENG] (http://m.menea.me/q58n)
Estados Unidos: "¡Traten con dignidad al soldado Manning!": Amnistía Internacional España (http://m.menea.me/q588)
Alemania va bien, los alemanes no tanto (http://m.menea.me/q5a2)
La Unión Europea se plantea eliminar el 'Erasmus para todos' (http://m.menea.me/q59f)
Un periodista de Intereconomía, detenido por intento de agresión a un policía (http://m.menea.me/q58i)
El Govern valenciano y Calatrava amenazan a IU con querellas (http://m.menea.me/q53f)
Islandia enjaula a sus banqueros (http://m.menea.me/q54k)
El retraso en los pagos de los ayuntamientos valencianos y el Consell ha acabado con 60.000 empresas (http://m.menea.me/q55y)
Cae director de periódico progresista (http://m.menea.me/q56g)
El ascenso y la caída del hombre que inventó el ordenador portátil [eng] (http://m.menea.me/q4t4)
Badenes ilegales y peligrosos: puedes denunciar (http://m.menea.me/q54l)
Hallados muertos dos trabajadores de la central de Fukushima (http://m.menea.me/q55a)
La DGT no puede poner multas en vías urbanas (http://m.menea.me/q4xu)
El 75% de las colmenas españolas están enfermas (http://m.menea.me/q4xa)
Valdecilla descubre cómo eliminar el tumor cerebral más dañino que existe (http://m.menea.me/q544)
Técnicos de Fukushima esperan morir en semanas (http://m.menea.me/q53b)
Judit Ignacio, de 16 años, bate el récord de España de los 100 mariposa (http://m.menea.me/q51c)
Hormigas explosivas y suicidas (http://m.menea.me/q52r)
Ordenador Personal IBM AT. 40 MB... por solo 1.888.600 pesetas (http://m.menea.me/q50u)
Desaparecidas 2.200 bolas de combustible nuclear en Alemania [DE] (http://m.menea.me/q524)
Detenido el propietario de un perro que falleció tras dejarlo encerrado en el coche (http://m.menea.me/q4zp)
Zombies sedientos de sangre invaden Madrid (http://m.menea.me/q4wi)
El Capitalismo, explicado por Calvin & Hobbes (http://m.menea.me/q4k2)
Se teme nube radioactiva sobre Tokio (http://m.menea.me/q50b)
¿Cuántas horas lleva aprender un idioma extranjero? (http://m.menea.me/q4td)

O para consultar Google Weather (ojo al uso de iconv para convertir a utf-8)
curl -g "http://www.google.com/ig/api?weather=cartagena,spain&hl=es" -s | iconv -f iso-8859-1 -t utf-8 | xml sel -t -m "/xml_api_reply/weather/current_conditions" -v "concat(condition/@data,', ',temp_c/@data,'ºC, ',humidity/@data)" -n -m "/xml_api_reply/weather/forecast_conditions" -v "concat('Previsto para el ', day_of_week/@data,':',high/@data,'ºC, ',condition/@data,'.')" -nsalida:
Parcialmente nublado, 20ºC, Humedad: 56%
Previsto para el lun:25ºC, Mayormente soleado.
Previsto para el mar:24ºC, Despejado.
Previsto para el mié:25ºC, Mayormente soleado.
Previsto para el jue:23ºC, Mayormente soleado.

viernes, 25 de marzo de 2011 (Hace 103 dias)

4Shared.com es un servicio web de almacenamiento y alojamiento de archivos que dispone de una versión gratuita limitada a una capacidad de 15Gb y limitado a archivos individuales de 200 Mb. Más que de sobra. Me gusta usarlo para archivar esos documentos o programas que aún no pensando mucho supondrían un incordio y una carga extra de trabajo a este servidor web: un RPM que quedará obsoleto en 6 meses ó un PDF de 20 Mg.

Desde el punto de vista cliente tiene el incordio del dichoso contador de segundos de espera antes de proceder a la descarga. Pero desde el punto de vista de usuario administrador tiene la ventaja de disponer de conexión WEBDAV, esto nos permitirá integrar el alojamiento remoto ofrecido por 4shared como parte de nuestro escritorio KDE4 para así acceder a él como si de otra carpeta local se tratase, facilitando considerablemente el proceso de copiar+pegar, mover documentos, eliminar, etc..

Configurar Webdav en KDE4Configurar Webdav en KDE4

Mapear carpeta de red

Lanza Konqueror y en la barra de dirección apunta a remote:/. Esto os dirige a la configuración sistema de archivos remotos mapeados en tu ordenador (fish/ssh, ftp, samba, webdav, etc…). Selecciona «Añadir carpeta de red» e introduce estos campos (según imagen):
Nombre: 4Shared (u otro) , Usuario: tu nombre de usuario ó email de login en 4Shared, Servidor: webdav.4shared.com Puerto: 80, Carpeta: wa.
Marca la casilla «Crear un icono para esta carpeta remota» y desmarca «Usar cifrado«
La primera vez que trates de abrir la nueva carpeta se te solicita la contraseña. Activa la casilla recordar contraseña si lo deseas y listo.

Lugares de Dolphin

Si además quieres que la carpeta mapeada a 4Shared aparezca en el menú de «Lugares» del explorador de archivos Dolphin pulsa botón derecho sobre la lista de lugares: Añadir entrada -> Etiqueta: 4Shared (u otro) -> Ubicación: webdav://www.4shared.com/wa/

Ale! ¿ves que bonito y facil es compartir y lo dificil que es GNU/Linux?

martes, 22 de marzo de 2011 (Hace 106 dias)

Un pequeño script para GIMP tan sencillo como útil, conviene tenerlo a mano siempre: sg-save-all-layers.scm
Permite guardar cada una de las capas de trabajo de nuestro archivo en GIMP como un imagen independiente renombrandolas en el proceso (si quieres).

Guardar capasGuardar capas

Aparece en menú Archivo y lo he alterado un poco para que aparezca junto al resto de opciones de Guardar, Guardar como… y además lo haga en español como «Guardar capas«.
Para instalarlo simplemente descargar el archivo scm y muevelo a la carpeta de script de GIMP:/usr/share/gimp/2.0/scripts.
Versión sencilla
este script permite guardar cada capa a una imagen distinta,
respetando el tamaño de cada capa.

Versión full size
Idéntica al anterior solo que en este caso exporta la capa a una imagen
según el tamaño de la imagen, NO de la capa

Versión original de SG-LAYER

miércoles, 19 de enero de 2011 (Hace 168 dias)

Un pequeño hacks que se me ocurrió hace unos meses y del que estoy especialmente contento. No por su complejidad (que vereis es realmente simple), sino por su eficacia.

Problema: Tenemos varios navegadores instalados en tu sistema GNU/Linux (En mi caso tengo Konqueror, Firefox, G. Chrome, Opera y Flock). Uno de ellos lo tienes definido como «navegador favorito«, es el que se inicia al hacer click en un enlace de correo, mensajería, etc…. por ejemplo: Firefox, pero…. Resulta realmente antipático que si tienes Chrome y Konqueror abiertos, al cliquear sobre un correo electrónico se lance, además, Firefox.
¿tres? ¿no sería más lógico utilizar alguno de los navegadores que está ejecutandose en lugar de tener que abrir un segundo o tercer navegador?

Solución: el siguiente script recibe un requerimiento de abrir una URL, comprueba si algún navegador se está ejecutando y (si es así) le pasa la URL para que la abra ó inicia el navegador que definamos en la linea PREFERIDO=…

Copia el siguiente contenido a un archivo llamado (p. ejem) Navegador_favorito:
#!/bin/sh
CHROME_BIN="/usr/bin/google-chrome"
FIREFOX_BIN="/usr/bin/firefox"
KONQUEROR_BIN="/usr/bin/konqueror"
OPERA_BIN="/usr/bin/opera"
FLOCK_BIN="/usr/bin/flock"
PREFERIDO=$CHROME_BIN
if [ "`pidof $OPERA_BIN`" != "" ]; then
PREFERIDO=$OPERA_BIN
fi
if [ "`pidof $KONQUEROR_BIN`" != "" ]; then
PREFERIDO=$KONQUEROR_BIN
fi
if [ "`pidof $FLOCK_BIN-bin`" != "" ]; then
PREFERIDO=$FLOCK_BIN-browser
fi
if [ "`pidof $FIREFOX_BIN-bin`" != "" ]; then
PREFERIDO=$FIREFOX_BIN
fi
if [ "`pidof $CHROME_BIN`" != "" ]; then
PREFERIDO=$CHROME_BIN
fi
$PREFERIDO "$1"

Si encontrase varios navegadores ejecutandose pasará la URL al último de la lista de IF, por lo tanto PREFERIDO y el último IF deberian coincidir (aunque no tiene porqué, es una sugerencia).

Personaliza la linea «PREFERIDO=» para indicar que navegador quieres que se inicie si encuentra ninguno. Sigue leyendo…

Cuaderno de campo es un blog desarrollado y mantenido por Trebol-a y en el que escriben Trebol-a, Miguel, Merche y Mónica
Si quieres saber algo más sobre los autores acude a la página acerca-de, si quieres contactar con alguno de nosotros hazlo a través de contactar ó de Google+

Creative Commons: Todo el contenido de la web (imágenes, textos, vídeos, a excepción de aquellas obras de otros autores enlazados por Cuaderno de Campo) se acoge a los términos expresados en la licencia Creative Commons