March 2010 Archivos

Your Ad Here

Tue Mar 30 10:57:35 EDT 2010

Thumbnails cuadradas en plugin galleries.sh de NanoBlogger.

Con leves modificaciones a el plugin galleries de NanoBlogger logre generar imágenes miniaturas cuadradas manteniendo la proporción.


Modificación al plugin galleries de NanoBlogger que permite tener imágenes miniaturas cuadradas sin distorsión alguna de las fotos que queremos mostrar en la galería

Modifique el plugin para generar imágenes en formato GIF que tienen menor tamaño y por lo tanto consumen menos hancho de banda que jpeg o png. La modificación para que genere *.gif lo hice por aligerar la carga de mi NSLU2 ya que esta sirviendo paginas a través de una conexión de 1024Kbps que además comparto.

Básicamente lo que hago es determinar si la imagen es postal o panorámica para saber como le voy a hacer el ajuste de tamaño, para esto uso el comando identify y filtro un poco la salida del comando, quedaría algo así:

Luego procedo a centrar la imagen y cortarla en base al lado mas corto. de allí simplemente se le ajusta el tamaño al deseado y continuo con el resto del plugin.

Puedes descargar el plugin modificado de aquí, este plugin esta optimizado para el NSLU2 corriendo Debian 2.6.18-6-ixp4xx e ImageMagick 6.2.4.


Publicado por orvtech | Hipervínculo permanente | Etiquetado como: Linux, Scripts, NSLU2, NanoBlogger

Tue Mar 23 11:39:27 EDT 2010

Un CGI en BASH para mantener tu firma al dia en todos los foros en que participas.

A raíz de la migración de apache a lighttpd he tenido algunos problemitas por resolver, El primero seria el redireccionamiento de /latest sin usar archivos htaccess. En esta oportunidad apuntaremos el directorio /latest y todo lo que este adentro a nuestro CGI hecho en BASH, con la ayuda de lighttpd redireccionaremos todas las peticiones a la entrada mas reciente de nuestro blog que esta corriendo NanoBlogger.

El script (ultimas.cgi) luce así:

Para poder ejecutar nuestro script como un CGI necesitamos habilitar mod_cgi en nuestra configuración y agregar las siguientes linea a nuestro VirtualHost:

La ultima linea es en caso de que ya tengamos nuestra firma así en varios foros, en mi caso lo uso mas que todo para registro en los logs y poder contabilizar desde donde me vienen mas hits, por ejemplo, pongo links como http://www.orvtech.com/latest/meneame luego en los logs se que todo lo que tenga 'meneame' viene de meneame.net sin importar que este o no recibiendo el header de 'referrer'


Publicado por orvtech | Hipervínculo permanente | Etiquetado como: Linux, Scripts, NSLU2

Thu Mar 18 17:47:15 EDT 2010

La mudanza comienza y no hay vuelta atras.

Hace una semana comente de la necesidad de dejar de usar IPs fijas para hostear este site así como la versión en ingles. He tomado el primer paso, es usar un Proxy para salir, estoy usando mi VPS como reverse proxy, también he decidido cambiar de Apache 2.2 a Lighttpd en el NSLU2 (en este caso mi backend). Mi idea es poner un script en el backend que actualice cual es su IP publica cada 10 0 20 minutos a mi VPS; si hay cambios pues otro script actualizaría la configuración del virtualhost en el frontend y ejecutaría un kill -HUP al PID del Apache para refrescar la configuración.


Algunos problemas que ya fueron resueltos.

Durante la migración encontré unos cuantos problemas y la mayoría los he logrado resolver, el que mas dolor de cabeza me dio fue el de mi pagina personalizada de error 404, las peticiones HTTP llegaban al frontend, no pasaban por el proxy y a pesar de que presentaban 404 como estatus y no un 200 no se registro nada en el log de errores. Luego de llegar al fin de internet y regresar encontré una politica mod_proxy que me permite usar mi pagina de error personalizado asignado ProxyErrorOverride el valor On.


Los que quedan pendientes.

La logística de como usar htaccess files en Lighttpd se me complica un poco. Anterior mente tenia scripts que modificaban a diestra y siniestra archivos .htaccess de acuerdo a mis necesidades, si recuerdan tengo uno que actualiza la url /latest y la apunta a la historia mas reciente. Pensando un poco creo que que lo mas conveniente es usar un *.cgi (en C o C++) que remplace el script por completo o modificar la configuración del VirtualHost y hacerle un kill -HUP al PID de Lighttpd en el backend.


Publicado por orvtech | Hipervínculo permanente | Etiquetado como: Linux, NSLU2

Wed Mar 17 00:32:16 EDT 2010

De Picasa a BBCode

Este script es cumple la misma función que el anterior de Flickr pero con los albums web de Picasa. Solo necesita que uno le pase como parametro la URL de el album que uno desea, por ejemplo http://picasaweb.google.com/orvtech/Hdd

Este seria el código del script:

#!/bin/bash
SIZE=400

echo $1 | \
curl -s žawk --field-separator=/ '{print "http://picasaweb.google.com/data/feed/api/user/"$4"/album/"$5}'ž |\
sed -e 's/\"/\ /g' -e s/\'/\ /g |\
tr ' ' '\n' |\
grep  s72 |\
awk '{print "[url='$1'][img]"$0"[/img][/url]\n"}' |\
sed s/s72/s$SIZE/g 

Asumiendo que es script se llama Picasa2BBCode.sh podemos ejecutarlo así:

sh Picasa2BBCode.sh http://picasaweb.google.com/orvtech/Hdd

De este script podemos modificar el valor de $SIZE, los valores permitidos son 72px, 144px, 288px, 320px, 400px, 512px, 576px, 640px, 800px y 1024px pero si las fotos están en resolución menor a 800 puede que de problemas. El producto de este script seria algo así:

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh6.ggpht.com/_WwtoUQV8M_8/S5kBtkqKAdI/AAAAAAAAPbM/I0LCPdB-qpQ/s400
/IMG_7457.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh3.ggpht.com/_WwtoUQV8M_8/S5kBtwXW08I/AAAAAAAAPbQ/Y636HBHOxEo/s400
/IMG_7458.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh5.ggpht.com/_WwtoUQV8M_8/S5kBtzPQLrI/AAAAAAAAPbU/ZOWfnh4uGuA/s400
/IMG_7459.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh5.ggpht.com/_WwtoUQV8M_8/S5kBuJEzUPI/AAAAAAAAPbY/qxTGuFR_EbA/s400
/IMG_7461.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh3.ggpht.com/_WwtoUQV8M_8/S5kBupiHjqI/AAAAAAAAPbc/FShn8ryEr54/s400
/IMG_7462.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh5.ggpht.com/_WwtoUQV8M_8/S5kCW9ags7I/AAAAAAAAPbw/wFYET5XlgkQ/s400
/IMG_7463.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh5.ggpht.com/_WwtoUQV8M_8/S5kCXA_XujI/AAAAAAAAPb0/WDc3N1tLDCw/s400
/IMG_7464.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh4.ggpht.com/_WwtoUQV8M_8/S5kCXDnyhkI/AAAAAAAAPb4/SWuagR3LA8c/s400
/IMG_7465.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh5.ggpht.com/_WwtoUQV8M_8/S5kCXTt6vaI/AAAAAAAAPb8/i1RmMrL5slg/s400
/IMG_7466.JPG[/img][/url]

[url=http://picasaweb.google.com/orvtech/Hdd#][img]http://lh5.ggpht.com/_WwtoUQV8M_8/S5kCX8hUk-I/AAAAAAAAPcA/YzOe_0bO0Jw/s400
/IMG_7468.JPG[/img][/url]
...

Hipervinculos relacionados:
Web UI: De Picasa y Flickr a BBCode.
Script: De Flickr a BBCode.


Publicado por orvtech | Hipervínculo permanente | Etiquetado como: Linux, Scripts

Tue Mar 16 11:24:12 EDT 2010

De Flickr a BBCode

Como ya mencione anteriormente, soy del tipo de personas que le gusta participar en comunidades web, la mayoría de estas usan BBCode para permitirnos compartir URLs, formatear nuestro texto, compartir vídeos de youtube, imágenes, etc. Lo tedioso del asunto es cuando queremos compartir un gran numero de fotos por ejemplo. Así que decidí hacer un script que me permita publicar un set de fotos de flickr produciendo el BBCode necesario a partir de la URL del set de flickr.

Lllamemos al script flickr2bbcode.sh y echemosle una ojeada:

#!/bin/bash
curl -s $1 | tr ' ' '\n' | grep '_s.jpg' |\
sed "s/\"/\ /g" |sed -e 's/_s\.jpg/\.jpg/g'|\
awk '{print "[url='$1'][img]"$2"[/img][/url]\n"}'

Para correr este script solo es necesario pasarle la URL del set de fotos como parámetro, por ejemplo http://www.flickr.com/photos/tatadbb/sets/72157606893687387/, asi que nuestra linea de comandos luciría así:

sh flickr2bbcode.sh http://www.flickr.com/photos/tatadbb/sets/72157606893687387/

El producto de este script seria algo así:

[url=http://www.flickr.com/photos/tatadbb/sets/72157606893687387/][img]http://farm4.static.flickr.com/3075/2787828382_10ea6d0924.jpg[/img][/url]

[url=http://www.flickr.com/photos/tatadbb/sets/72157606893687387/][img]http://farm4.static.flickr.com/3017/2806875776_fa4f208409.jpg[/img][/url]

[url=http://www.flickr.com/photos/tatadbb/sets/72157606893687387/][img]http://farm4.static.flickr.com/3145/2817776689_ffc218e9e8.jpg[/img][/url]

[url=http://www.flickr.com/photos/tatadbb/sets/72157606893687387/][img]http://farm4.static.flickr.com/3329/3280872113_722ff06df8.jpg[/img][/url]

[url=http://www.flickr.com/photos/tatadbb/sets/72157606893687387/][img]http://farm4.static.flickr.com/3636/3280920431_f257aaec90.jpg[/img][/url]...

Luego podemos pegar ese codigo en el foro en el que queramos compartir nuestras imagenes.


Hipervinculos relacionados:
Web UI: De Picasa y Flickr a BBCode.
Script: De Picasa a BBCode.


Publicado por orvtech | Hipervínculo permanente | Etiquetado como: Linux, Scripts

Sun Mar 14 21:49:51 EDT 2010

Ha llegado el fin del acceso publico a mi NSLU2?

Me entere este fin de semana que el datacenter que aloja mi NSLU2 (la casa de un amigo que tiene IP publico) va a cerrar y necesito mover el NSLU2 a otro lado. Esto pasara en los próximo 2 meses así que necesito empezar a ver a donde muevo mi NSLU2 o que hacer en este caso en vista de que en mi casa no tengo IP publica.

La primera idea que se me ocurrió es usar el NSLU2 como un backend o publicador y hacer un wrapper a NanoBlogger para que al hacer cualquier tipo de actualización haga un rsync a mi VPS que actuaria como frontend.

Si tienen cualquier sugerencia me la pueden dejar en los comentarios.


Publicado por orvtech | Hipervínculo permanente | Etiquetado como: Linux, NSLU2

Wed Mar 10 12:12:39 EST 2010

Manten tu firma al dia en todos los foros en que participas.

Como buen troll que soy me mantengo entretenido y participo en varias comunidades o foros en internet. siempre quise mantener mi firma apuntando a mi ultimo articulo publicado pero al mismo tiempo me da flojera actualizar todos esos foros cada vez que publico algo nuevo.

Ya que tengo corriendo apache en mi NSLU2 decidí crear un script que me cree un archivo .htaccess y así redirigir una petición HTTP en especifico a mi ultima publicación en mi blog. Para esto he decidido crear un sub-directorio en mi RootDirectory llamado '/latest'

mkdir /var/www/linuxevolution.org/htdocs/latest 
mkdir /var/www/orvtech.com/htdocs/latest

El script hace un poco mas que simplemente crear el htaccess. Me permite especificar cuales VirtualHost corriendo NanoBlogger quiero usar, creando un .htaccess para cada uno de estos como se puede ver aquí:

 #!/bin/bash'
 DocummentRoot="/var/www/linuxevolution.org/htdocs /var/www/orvtech.com/htdocs"'
 '
 for virtualhost in $DocummentRoot'
 do cat $virtualhost/rss.xml  | grep link | grep archives |\'
 head -n1 | sed -e :a -e 's/<[^>]*>//g;/</N;//ba' |\'
 awk '{print "RewriteEngine on\nRewriteRule (.*) "$0" [R=301,L]"}' > $virtualhost/latest/.htaccess'
 done'


En mi caso tengo 2 blogs que usan NanoBlogger y este script mantiene el directorio '/latest/' apuntando a la ultima publicación en cada uno (www.linuxevolution.org/latest la versión en ingles de este sitio y www.orvtech.com/latest que seria la entrada mas reciente de este blog).


Publicado por orvtech | Hipervínculo permanente | Etiquetado como: Linux, Scripts, NSLU2

Wed Mar 3 12:52:14 EST 2010

El NSLU2 como puente para tener PUSH de un servidor IRC en el iPhone.

Tengo que reconocerlo, soy adicto a la internet y mi debilidad es el IRC, anterior mente tenia en el iPhone un cliente que se llama LimeChat que funciona muy bien pero carece de alertas vía PUSH y por tanto no puedo estar conectado siempre.

El problema con PUSH es que necesita pasar por un servidor central autorizado por apple para estas alertas. Así que si uno cierra la aplicación aun queda una conexión abierta entre el servidor central y la infraestructura al que uno se esta conectando (por ejemplo una conexión del servidor de beejive a la infraestructura de gtalk para alertas de gTalk).

La solución es que uno pueda tener un servidor que se mantenga conectado al servidor de IRC y actualice ese servidor central pero entonces encontramos otro problema, apple no va a autorizar todos estos servidors personales.
El equipo de Colloquy consiguió una solución para esto, ellos permiten que su cliente para el iPhone se conecte a través de bouncers a el servidor que uno quiera y han desarrollado un plugin para ZNC (entre otros bouncers) el cual actualiza su servidor (que esta autorizado) permitiéndonos recibir alertas cuando se menciona nuestro nick, recibimos mensajes privados, etc mientras tenemos la aplicación cerrada.


Instalación y configuración del bouncer.
Busquemos si lo tenemos disponible en nuestro repositorio:

apt-cache search znc
znc - an advanced IRC bouncer

OK, podemos instalarlo, luego de instalarlo ejecutamos los siguientes comandos para configurarlo y habilitar PUSH para lo cual tendremos que descargar el plugin de colloquy.
 znc --makecon
 cd ~
 curl -LO http://github.com/wired/colloquyPUSH/raw/master/znc/colloquy.cpp
 znc-buildmod colloquy.cpp
 mv colloquy.so ~/.znc/modules/

El primer comando deberia de iniciar un dialogo que nos ayudara a crear nuestro archivo de configuracion, deberian de ver algo como esto:


Configuración del cliente en el teléfono.
Para configurar el Mobile Colloquy en nuestro iPhone solo tenemos que abrir el cliente, pinchar el botón "+" en la seccion de conexiones, y seleccionar "IRC Connection", de allí seguiremos estos pasos:


  1. En 'Address' pones el FQDN o dirección IP del servidor.

  2. Habilita "Push Notifications".

  3. Entra en "Advanced" y cambia lo necesario.

  4. Ahora agrega un "Colloquy Boucer" usando los datos del servidor bouncer que configuramos (znc) incluyendo el puerto, si en ZNC habilitaste SSL entonces habilita en el cliente también.

  5. Introduce los datos de la cuenta que creaste en ZNC, en el 'Account Name' pones tu Username y en el Password pones tu Password, no te confundas con los datos de tu nick (Nick Pass).

  6. Regresa y pincha "Connect".


Publicado por orvtech | Hipervínculo permanente | Etiquetado como: Linux, Scripts, NSLU2, Apple, IRC
Your Ad Here