Enviar formularios con Internet Explorer

Me he encontrado de nuevo con una mas de Internet Explorer: no ejecuta la acción Submit de un formulario al pulsar Enter en el teclado :(

Tras probar varias cosas esto es con lo que me he quedado, poner en el campo de texto sobre el que se va a pulsar Enter el siguiente código Javascript:

<form id='mi-formulario' action='mi-accion'>
<input type='text' name='mi-campo'
onkeydown='if(event.keyCode==13)
document.forms['mi-formulario'].submit() /'>
</form>
Posted in Ubuntu | Leave a comment

Faxes corruptos en Avantfax

En unoycero.com utilizamos Avantfax como interfaz web para Hylafax. Funciona muy bien, es sencilla y tiene un aspecto limpio que satisface a la mayoría de los usuarios.

Hemos detectado a pesar de estas ventajas, que algunos faxes se quedan “atascados”. Gracias a un cliente que le mete bastante caña al sistema de fax, nos hemos dado cuenta de que en ocasiones, debido a problemas en la comunicación entre faxes, el proceso de generación del fax en la bandeja de entrada de Avantfax, falla miserablemente y ni el usuario ni los administradores nos estábamos percatando :(

Rebuscando por las tripas de Avantfax hemos visto que el funcionamiento es el siguiente: se recibe un fax e inmediatamente en el directorio de instalación de Avantfax se genera un fichero “punto tif”:

/mi-instalacion-de-avantfax/faxes/recvd/2012/03/15/tsi-del-fax-remoto/fax.tif

Cuando hay problemas en la comunicación ese fichero TIFF se genera de forma incorrecta, y aunque es visible con Gimp por ejemplo, los comandos que ejecuta Avantfax para generar el fax en PDF y dejarlo en la bandeja de entrada, fallan y se quedan en ese estado “atascado” y olvidado por todos.

Para tratar de recuperar esos faxes, hemos programado en Ruby un script que ejecutado, por ejemplo todas las noches, lee todas las carpetas de los faxes recibidos durante el día, en busca de faxes “atascados” en esas condiciones, los repara, los inserta en la bandeja de entrada y notifica a las personas necesarias de la operación realizada :)

Lo pegamos por aquí, por si a alguien le resulta útil: fax_roto.rb.gz

Salud.

Posted in Ubuntu | Leave a comment

Backuppc: avoid permission denied error

Hace tiempo que andaba detrás de la solución a la pregunta que planteaba por la lista de usuarios de BackupPC allá por 2011: ¿cómo evitar errores en los log de las copias que ejecuta BackupPC, cuando no quieres utilizar el usuario “root”?. Ya fuera por cuestión de tiempo o por otros temas, no le he dedicado demasiado tiempo a esto, ¡pero esto se acabó! :D

Y, ¿porque demonios no utilizar root para las copias de seguridad?. Siempre he considerado una muy buena práctica utilizar a cada usuario para lo que se necesita, y que no tenga mas permisos de los que requiere :)

En ese sentido tras plantear varias posibilidades como:

  • Cambiar permisos a ficheros/directorios: descartado porque puedes romper otras cosas y volver inseguro tu sistema.
  • Meter al usuario backuppc en los grupos necesarios
  • Ejecutar el servicio backuppc bajo otro usuario “mas poderoso”.

Me dí cuenta de que la solución estaba delante de mis narices. En el mismo enlace de la documentación oficial de Backuppc que yo mismo citaba estaba la solución.

En el fichero sudoers tiene que estar (para el método de copia rsync) la línea:

# Allow BackupPC to use rsync as root
backuppc  ALL=NOPASSWD: /usr/bin/rsync

En el fichero config.pl o el-host-que-sea.pl tiene que estar la línea (para el método de copia rsync):

$Conf{RsyncClientCmd} = '$sshPath -q -x -l backuppc \
$host /usr/bin/sudo $rsyncPath $argList+';
$Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l backuppc \
$host /usr/bin/sudo $rsyncPath $argList+';

¡Nunca es tarde si la dicha es buena! :D

Posted in Lan da lan, Software, Ubuntu | Leave a comment

Paquetería necesaria para Ruby / Tk en Ubuntu

Si pretendemos utilizar Tk como librerías gráficas para programar en Ruby desde Ubuntu, esto es lo que necesitamos instalar:

sudo apt-get install libtcltk-ruby

Un pequeño ejemplo de como llamar a estas librerias desde un script Ruby:

#!/usr/bin/env ruby
require 'tk'
root = TkRoot.new do
  title "Probando Ruby/Tk"
end
Tk.mainloop

¡Salud! :)

Posted in Ubuntu | Leave a comment

Mostrar una animación mientras se carga un iframe

Recientemente he tenido que conectar un sistema de gestión con una web pública mediante un iframe. Esto es sencillo, pero me he dado cuenta de que el tiempo que pasa desde que el usuario visita la web que carga el iframe hasta que el iframe se carga, producía dudas en el usuario: ¿está cargando?, ¿porque no funciona?.

Buscando un rato he pensado que una medida para paliar esto consiste en cargar una imagen animada (GIF o PNG) y ocultarla cuando el iframe ha cargado completamente. Al menos de esta manera el usuario recibe algo de información: tranquilo, dame un par de segundos y te muestro la información que necesitas :)

Para hacer esto ha bastado con un poco de CSS y el comportamiento onLoad (no estándar pero soportado por todos los navegadores) de la etiqueta iframe. Dejo el ejemplo comprimido por aquí para quién lo necesite. No es necesario montar un virtualhost en Apache para probarlo. Basta con abrir el fichero con un navegador y listo. Saludos ;)

Posted in Ubuntu | Leave a comment