lunes, 15 de septiembre de 2008

Profundizando un poco más

En esta entrada voy a centrarme en explicar mi decisión de generar los heatmaps sobre el lenguaje Ruby y RMagic en un proyecto desarrollado en Java, pudiendo hacer esta tarea en este lenguaje.

El trabajo de todo ingeniero informático, además por supuesto de dar solución a los problemas propuestos es el de solucionarlos de la manera más conveniente. En un principio la solución desarrolada estaba hecha en Java, la generación de un heatmap con 100 eventos de ratón tardó unos 20 minutos, esto era totalmente inaceptable.

Investigando por la red di con unas librerías de procesamiento de imágenes bastante competentes basadas en el programa de edición de imagenes Image Magic, esta librería, de software libre, es RMagic.

Una vez implementada la solución para la generación de heatmaps en Ruby sobre RMagic, pasándole la misma prueba que al programa anterior los resultados fueron gratificantes y a la vez sorprendentes, el heatmap fue generado en 10-15 segundos, toda comparación es apabullante.

Con esto no quiero decir que Ruby sea siempre la mejor solución, la más rápida o más sencilla de implementar, solo que antes de entrar de lleno a implementar cualquier cosa, no está de más plantearse que lenguaje es el ideal para ésta.


La comunicación entre la parte Java del proyecto y la parte Ruby es la más difundida entre comunicación proceso-proceso, a través de ficheros, el parte del módulo Ant desarrollado en Javascript recoge los eventos de ratón y los va enviando al módulo central AnthillMaster, estos son formateados y almacenados ordenadamente por página y usuario, cuando se solicita la generación del heatmap via Web, entra en juego el módulo Ruby, en este momento es necesario una sincronización entre la aplicación Web Java y el módulo Ruby, hasta que el heatmap no sea generado al 100% este no podrá verse, lógicamente, en la aplicación Web. Esto ha sido conseguido gracias a la clase Runtime de Java.

A continuación os pongo la estructura de directorios del hormiguero o AnthillMaster, la aplicación Web donde los webmaster pueden configurar sus pruebas remotas, ver los resultados tanto de esas pruebas como los múltiples datos recopilados por ANTS, sobre ellos hablaré en futuras actualizaciones.
dentro de la carpeta resultadosPruebas se almacenan tanto los propios heatmap por usuario y por página, es decir, dentro de por ejemplo la carpeta Nacho se incluirá un fichero de eventos de cada página y un heatmap por cada fichero de eventos.

También pueden verse las carpetas correspondientes a las pruebas de maniobrabilidad y de observación, estructuradas exactamente de la misma manera.


Desde el sitio web AnthillMaster un usuario podrá acceder a los heatmaps de la manera más sencilla posible, esto es:


Acceder al menú "heatmap" desde la web inicial

Automáticamente se le mostrará una lista de heatmaps disponibles como muestro a continuación:


Es interesante comentar un par de cosas, no se le muestra la lista completa de páginas web que componen su Sitio Web, esto sería una locura ya que no todas pueden tener disponible fichero de eventos de ratón para generar el heatmap, se le mostraría un heatmap inútil y eso sería un gran agujero de usabilidad.
Se le muestran únicamente las páginas web que disponen de eventos de ratón, haciendo click sobre la URL de la página aparecerá una web pidiendole que espere unos momentos, ya que su heatmap se está generando, una vez finalizada la generación se le mostrará un link a partir del cual podrá verlo.

En la imagen puede verse que a la derecha algunas URL aparece el texto (Ver última generación FECHA), esto quiere decirse que está disponible para el usuario un Heatmap ya generado en la fecha indicada, esto puede llegar a ser muy útil, por ejemplo en ocasiones en las que se quiere ver el heatmap en un breve espacio de tiempo.


Por el momento nada más, espero que os haya entretenido la actualización.

No hay comentarios: