jueves, 16 de diciembre de 2010

Una de las chorradillas que trae KDE4 frente a KDE3 y que me está encantando es la posibilidad de mandar un mail a alguien rápidamente con solo escribir su nombre.

Es decir, haces la pulsación ALT+F2 como para ejecutar una aplicación y escribes «Juanito».

Nota: Si, efectivamente después de despotricar de KDE4 estoy dandole una nueva oportunida frente a KDE3. Si es que en el fondo soy muy bueno… eso sí, KDE3 sigue ahí, for if the flies.

lunes, 29 de noviembre de 2010

Si como yo es usted de naturaleza analfabestia es probable que quiera tener un diccionario a mano. Aquí una manera rápida, cómoda y eficaz.

Más rápido que abrir programa alguno (el tiempo de respuesta está por debajo de 1 segundo). Tán cómodo como hacer ALT+F2 (menú ejecutar de KDE) y escribir «RAE» seguido del término que desea buscar en el diccionario.
#!/bin/sh
if [ -z $1 ];then exit 1; fi
url="http://buscon.rae.es/draeI/SrvltGUIBusUsual?origen=RAE&LEMA="
user_agent="Mozilla/5.0 (X11; U; Linux i586; es-ES; rv:1.9.2.3pre) Firefox/3.0.1"
curl --silent --user-agent "$user_agent" "$url$1" | sed 's/<img[^>]*>//gi' | /opt/kde3/bin/kdialog --textbox /dev/stdin 400 300 --title "RAE: $1"

Copia esas lineas en un archivo llamado RAE (en minúsculas mejor) y guardalo en tu ~/bin y hazlo ejecutable chmod +x ~/bin/rae.
Ahora para hacer una consulta al diccionario en cualquier momento pulsa ALT+F2 (menú Ejecutar de KDE) y escribes «rae diccionario» para buscar la definición de diccionario en el idem de la Real Academia de la lengua.

Nota: Necesitaras personalizar la ruta de /opt/kde3/bin/kdialog si usas Gnome o estás en otra distribución que no sea Opensuse+KDE3 o directamente eliminar todo lo que viene después de » //gi’ «

martes, 19 de octubre de 2010 (Ayer)

No sé que es lo que han cambiado en el formulario de Facebook, lo he estado mirando y juraría que el formulario es idéntico, pero el caso es que la semana pasada dejó de funcionar, así es que rehice el script de nuevo, lo he dejado algo más clarito y vuelve a estar funcional.
#!/bin/bash
#cambia esto
email="tu_email_de_usuario_en_facebook"
pass="tu_contraseña_en_facebook"
#a partir de aquí no es necesario cambiar nada más
texto=$1
if [ -z "$texto" ]; then echo -e "Uso:\n$0 \"texto a publicar\"\n\n"; exit 1 ;fi
texto=${texto:0:140}
cokkies="~/.cookies.txt"
user_agent="Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; es-ES)"
#nos logeamos y cogemos la url de la página redirigida
pagina=`curl -L --silent --keepalive-time 5 --user-agent "${user_agent}" --cookie "${cokkies}" --cookie-jar "${cokkies}" -d "email=$email" -d "pass=$pass" -d "login=Entrar" https://m.facebook.com/login.php`
pagina_redirige=`echo $pagina | sed -r 's/.*href="(http:.*;manual_redirect=1)".*/\1/g'`
#conectamos con la nueva página y leemos los datos que contiene su formulario para postear a facebook
pagina_con_formulario=`curl -L --silent --user-agent "${user_agent}" --cookie "${cokkies}" --cookie-jar "${cokkies}" "$pagina_redirige"`
url_action=`echo $pagina_con_formulario | sed -r 's/.*fbb=(.*&.*refid=.?)".*/\1/'`
post_form_id=`echo -n $pagina_con_formulario | sed -r 's/.*name="post_form_id" value="([^"]*)".*/\1/g'`
fb_dtsg=`echo -n $pagina_con_formulario | sed -r 's/.*name="fb_dtsg" value="([^"]*)".*/\1/g'`
url_action_completo="http://m.facebook.com/a/home.php?fbb=$direccionForm"
#ya tenemos los datos con los que componer el query final a Facebook, enviamos el mensaje
curl -X POST --user-agent "$user_agent" --cookie "$cokkies" --cookie-jar "$cokkies" --data-urlencode "status='$texto'" -d "update=Compartir" -d "post_form_id=$post_form_id" -d "fb_dtsg=$fb_dtsg" "$url_action_completo"
exit

Para evitar errores con el código he puesto el script en un archivo TXT que podeis descargar aquí.

Simplemente copiad el contenido en un archivo ~/bin/mensaje2facebook.sh, editadlo y poned vuestro email y contraseña, hacedlo ejecutable (chmod +x ~/bin/mensaje2facebook.sh) y para escribir en Facebook haceis mensaje2facebook.sh «hola mundo»

domingo, 3 de octubre de 2010 (Hace más de 2 semanas)

Bajo la misma filosofía de apoyo al software libre y sus herramientas con que se estrenó en su momento Elephant Dreams ó (la mucho más floja) Big Buck Bunny, llega ahora Sintel (el cortometraje, no confundir con el caso, que ya pasó a DVD).

El guión y la historia ha mejorado notablemente (especialmente comparandola con la de Big Bunny) y la calidad de render/imagen/postproducción es (sigue siendo) excelente.
Sigo echando en falta ese «toque» personal e identificativo que corone de forma definitiva una producción tan particular como estas, pero bueno, demosle tiempo al tiempo.

jueves, 23 de septiembre de 2010 (Hace más de 2 semanas)

Un tremendamente simple script para publicar en Facebook mensajes rápidos. En realidad el script estaba y está pensado para recibir mensajes desde otras aplicaciones y enviarlos a Facebook, pero vamos sirve para lo mismo que para lo que está desarrollada esta página https://m.facebook.com/ que es la que usa para postear.

Quizás hayais visto/probado algún script similar que corren por internet. Es increible pero el 99% no funcionan y muy probablemente no lo han hecho nunca por un motivo muy sencillo: el bloger que lo ha difundido se ha limitado a hacer copy+paste de algo que leyó, por supuesto sin probar nada ni más interés que repetir como un loro lo que encuentra por la web (algo tristemente habitual).

¿Y porque fallan generalmente estos script? pues en los 3 o 4 que he podido probar el motivo es bien tonto: porque inicialmente se hicieron por un ingles, para su página en facebook en ingles. Cuando tu te logeas en facebook, el sitio detecta tus opciones de idioma y sirve formularios EXCLUSIVOS para usuarios de Español (es decir, el textarea ya no se llama «message» sino «mensaje«, y el botón que hay que pulsar no es «Share» sino «Compartir»), … a partir de ahí, cualquier script inglés simplemente no servirá de nada.

Basicamente el siguiente script lo que hace es: – Simulando ser un navegador, logearse en la página de Facebook con tu email/password y navegar por un par de páginas hasta obtener un número secreto que tenemos que enviar conjuntamente con el mensaje de texto. Una vez obtenido este número rellena el formulario casi como lo haríamos a mano:
#!/bin/bash
texto=$1
if [ -z "$texto" ]; then echo "Falta el texto que quieres escribir"; exit 1; fi
texto=${texto:0:140}
email="tu-email-en-facebook@server.com"
pass="12345678"
cokkies="~/.cookies.txt"
user_agent="Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; es-ES)"
pagina=`curl -L --silent --keepalive-time 5 --user-agent "${user_agent}" --cookie "${cokkies}" --cookie-jar "${cokkies}" -d "email=$email" -d "pass=$pass" -d "login=Entrar" https://m.facebook.com/login.php`
redireccion=`echo $pagina | sed -r 's/.*href="(http:.*;manual_redirect=1)".*/\1/g'`
pagina2=`curl -L --silent --user-agent "${user_agent}" --cookie "${cokkies}" --cookie-jar "${cokkies}" "$redireccion"`
formId=`echo -n $pagina2 | sed -r 's/.*name="post_form_id" value="([^"]*)".*/\1/g'`
dtsg=`echo -n $pagina2 | sed -r 's/.*name="fb_dtsg" value="([^"]*)".*/\1/g'`
redireccion2=`echo $redireccion | sed -r 's/.*\/home.php\?(.*)&refid=(.*)&.*/http:\/\/m.facebook.com\/a\/home.php?\1\&refid=\2/g'`
respuesta=`curl -X POST -L --silent --user-agent "${user_agent}" --cookie "${cokkies}" --cookie-jar "${cokkies}" --data-urlencode "status=$texto" -d "update=Compartir" -d "post_form_id=$formId" -d "fb_dtsg=$dtsg" "$redireccion2"`
exit
Copia el código anterior en un script llamado (p.ejem) ~/bin/mensaje2facebook e introduce tu password y email en el contenido.
Convierte en ejecutable el script (chmod +x ~/bin/mensaje2facebook)
Para escribir en facebook simplemente abre una consola y escribes
mensaje2facebook "hola gente"
Nota I: Facebook tiene unos límites bastante severos en cuanto la publicación via scripts y demás. Es muy facil alcanzar el limite de mensajes por hora (que no recuerdo ahora cual es)
Nota II: El script recorta la longitud del mensaje a 140 caracteres… sin avisar ni más protocolo. Simplemente envía los 140 primeros.

miércoles, 22 de septiembre de 2010 (Hace más de 2 semanas)

Llevaba bastante tiempo sin abrir Google Earth, casi tanto como sin usar el GPS (que es al fin y cabo para lo que lo quiero). Ayer al ir a importar la ruta desde el GPS como hacía habitualmente GoogleEarth se negaba en importar bien el KML producido por gpsbabel y me representaba una línea recta en medio del mediterraneo.
Pruebas:

  • importar ruta desde la web de GoogleMaps. Resultado: correcto.
  • crear una ruta en GoogleEarth (GE), guardarla a archivo, abrir archivo en GE. Resultado erroneo.

Problemas:

  • GE no lee sus propios archivos.
  • GE se hace la picha un lio con la codificación de caracteres y usa como separador decimal una coma (,) en lugar del punto (.) con resultados caóticos

Actualicé a la última versión 5.2, pero el problema se mantiene. Tras dar un par de vueltas dí con la solucion en los foros de GoogleEarth.

Perfil del recorrido, en la nueva versión 5.2Perfil del recorrido, en la nueva versión 5.2

La solución es sencilla. Basta con editar el script de inicio de GoogleEarth (en OpenSuse vi /opt/google-earth/googleearth) y añadir la tercera de estas líneas para forzar al programa a usar puntuación inglesa:
LD_LIBRARY_PATH=.:${GOOGLEEARTH_DATA_PATH}:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
export LC_NUMERIC=en_US.UTF-8

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