Sigueme en Twitter!@YouWoTMA
Esta semana he estado ocupado con otros proyectos, no he podido desarrollar nada, pero he visto un par de cosas interesantes:
Como comente en la otra entrada, un servidor para XRefresh.
XRefresh es una extension de firebug/firefox que, junto con un servidor corriendo en el sistema operativo, detecta cuando los archivos de un directorio son cambiados y actualiza la pagina. Tiene varias opciones bastante “utiles”: logear los archivos que han cambiado en una pestaña de firebug, la posibilidad de hacer un “soft refresh” del css o js, es decir, si solo has cambiado un archivos css actualiza solamente el css sin necesidad de recargar la pagina entera (mas rápido, y útil para paginas dinámicas que pueden fallar si actualizas) y la posibilidad de utilizar varios proyectos, aunque no lo he implementado en el servidor.
El servidor puede estar ejecutándose en otra maquina en la red local o en Internet (cambiar dirección en about:config), y soporta a varios clientes a la vez, así que es genial para trabajos colaborativos (se actualizaría en todos los pc cuando tu o otra persona cambia algo)
El servidor es un solo script en python que escuchara modificaciones en los archivos de uno o varios directorios que especifiques, pudiendo elegir una expresión regular para excluir archivos y una para seleccionar los archivos que quieres incluir.
Modo de uso: xrefresh-server [options] dirname [dirname ...] Opciones: -e [regexp] - Excluir rutas que encajan con regexp. Valor predeterminado: '^(\.svn|\.hg|.*~|.*\.(zip|rar|jar|gz|gz2|bak|tmp|pyc|pyo|log))$' -i [regexp] - incluir solo rutas que encajan con regexp -p [puerto] - Puerto a escuchar (default 41258) - se puede cambiar el puerto del cliente en about:config -h - Muestra la ayuda (esto) Ej: Escuchar cambios en /var/www en archivos que acaban en .css cuya ruta completa no contiene "cache" $xrefresh-server -e 'cache' -i '\.css$' /var/www Notas: Ten cuidado con bucles infinitos. Cuando el navegador actualiza la pagina, muchos archivos pueden ser modificados en el servidor: logs, cache, bases de datos sqlite, etc... Esos cambios pueden generar un bucle infinito, usa la opción -e para excluir estos archivos o la opción -i para incluir solo algunos archivos
La licencia es GPL v3. Puedes descargarlo aquí.
Para escuchar eventos en el sistema de archivos, utiliza pyinotify, asi que tiene que estar instalado. En ubuntu/debian y derivados:
sudo apt-get install python-pyinotify
Dale permisos de ejecución si no tiene. Probablemente quieras moverlo o crear un enlace simbolico a un sitio dentro del PATH:
cd /usr/bin sudo ln -s /ruta/a/xrefresh-server xrefresh-server
Si lo usas mucho puede que quieras iniciarlo al inicio. Usa un script de init.d o el gestor de aplicaciones al inicio de tu gestor de ventanas si tiene.
Si quieres puedes modificarlo y añadir alguna cosa mas como soporte para proyectos, interfaz gráfica…
Nota: No confundir con el comando de X xrefresh
Edit: el proyecto esta en github por sugerencia del autor de la extensión: http://github.com/YouWoTMA/xrefresh-server
A partir de ahora voy a tratar de escribir todos los domingos un post a modo de “autoagenda” en la que voy a ir escribiendo las cosas que he hecho durante la semana, relacionadas con el mundo de el software libre. El motivo no es uno solo, son varios:
Asi que empiezo contando algunas cosas que he hecho esta semana y los meses anteriores:
Cosas que he hecho hace tiempo, y quería comentar:
Ala, he hecho un post con 3 listas, me encantan las listas. Y los paréntesis.
Hace unos días hice este sencillísimo script, que me sorprendió por lo útil que ha resultado ser.
Consiste simplemente en un script que borra o mueve los archivos de una carpeta al cabo de un tiempo. Por que es útil esto? Para mi es útil para dos cosas:
Antes tenia un script que me borraba todo menos los lanzadores de aplicaciones (archivos .desktop), pero requería que lo ejecutara manualmente cada mes, y eso era una carga muy pesada.
Una opción podría haber sido poner un trabajo en cron que moviese o borrase todos los archivos, pero podría ocurrir que pusiese algo ahí y que el script se ejecutara justo después, claramente hace falta algo mas complejo. La solución es trivial, pero si no queréis hacerlo vosotros, aquí esta el scrpt. Básicamente tiene:
La configuración es sencilla, hay instrucciones en el script (comentarios, wooooah!)
Nota: para saber si se ha modificado el script hace cada vez que se ejecuta el md5 de los archivos. Eso mata al disco duro, a la CPU, a la RAM y a la tinta de la impresora si lo queréis usar para archivos grandes. Mejor modificadlo para que use la fecha de ultima modificación.