visuse

VISUal Search Engine

Proyectos de disposición de imágenes similares

Si consultamos cualquier lista de sitios más visitados de la red, encontramos que la clasificación está encabezada por buscadores, redes sociales y sitios de contenidos multimedia tal y como se puede apreciar en Alexa. Los buscadores llevan indexando la red y ayudando a los usuarios a encontrar recursos desde 1993 y en la última década, ayudado por el aumento de la velocidad de acceso de los usuarios, los contenidos multimedia han inundado la red.

Es lógico que en todo este tiempo hayan surgido distintos buscadores especializados en contenidos multimedia y los buscadores tradicionales también hayan desarrollados sus versiones centradas en dichos contenidos. Sin embargo, estos buscadores siguen mostrando los resultados de forma similar a los resultados de texto, organizándolos en páginas con muy pocos resultados y añadiéndoles pequeños thumbnails, haciendo la búsqueda del usuario lenta e incómoda.

Recientemente ha habido algunos intentos para mejorar estas interfaces:

Bing Visual Search

El buscador Bing añadió un servicio llamado Visual Search, cuyo objetivo es sustituir las tradicionales búsquedas de texto por búsquedas a través de imágenes clasificadas en categorías y subcategorías, para ello diseñaron una nueva interfaz utilizando Silverlight. Sin embargo, el objetivo de este servicio no es encontrar imágenes u otros contenidos multimedia, sino reemplazar las tradicionales búsquedas de texto por otras visuales.

oSkope

oSkope por su parte es otro buscador que permite, mediante Flash, visualizar de distintas maneras los resultados de otros buscadores como Google Images o Youtube. Sus principales desventajas son que no nos permite combinar los resultados de distintos buscadores, no ordena por puntuación los resultados en el mural y no permite visualizar los contenidos multimedia en el propio buscador.

Spezify

El servicio Spezify sí que permite combinar resultados de distintos buscadores multimedia y visualizarlos en el propio buscador, sin embargo, no realiza ninguna ordenación según la importancia de los resultados y su distribución en un gran mural por el que tenemos que ir desplazándonos y en el que hay grandes huecos; todo esto hace muy difícil encontrar los resultados que deseamos.

Como se puede apreciar, ninguno de los buscadores existentes ha trabajado la disposición de las imágenes en función de su importancia ni la disposición óptima de los resultados para formar un muro que no desaproveche espacios.

Anuncios

25 julio 2010 Posted by | General | , , , , , , , , , , , | Deja un comentario

Herramientas y tecnologías utilizadas

Las herramientas y tecnologías escogidas para el desarrollo de un proyecto deben ser escogidas cautelosamente, ya que pueden suponer el fracaso de éste o pueden aumentar su complejidad, para lo cual deberemos conocer cuales son las distintas alternativas y las necesidades de nuestro proyecto. Además todas las tecnologías son libres y compatibles con la licencia escogida para liberar el proyecto.

Del lado del cliente

En cuanto a ejecución de código en el navegador del usuario para determinar la disposición de los resultados, las alternativas son básicamente dos: utilizar código JavaScript o una aplicación utilizando la tecnología de Adobe Flash. La primera alternativa está hoy presente en la práctica totalidad de las navegadores y, aunque hay problemas por las diferencias entre los distintos intérpretes, existe cierto grado de estandarización. La segunda nos permitiría evitar esas diferencias de ejecución en los distintos navegadores si utilizamos la implementación oficial, sin embargo las aplicaciones Flash son pesadas de cargar, su tecnología es privativa (lo que va en contra de la naturaleza abierta de la web) y obligan al usuario a instalar un complemento a su navegador que muchas veces no está disponible en todos los navegadores (como pasa en los de los dispositivos móviles).

Debido a la falta de estándar de JavaScript/ECMAScript es aconsejable la utilización de una biblioteca que nos permita no tener que preocuparnos porque nuestros desarrollos se ejecuten de formas distintas en los diferentes navegadores. Además la utilización de grandes bibliotecas o framework simplifican la manipulación del DOM (Documment Object Model), el tratamiento de eventos y la comunicación asíncrona. Dentro de la amplia variedad de librerías para JavaScript disponibles me decanté por el uso de jQuery por su velocidad y simplicidad, porque tiene una baja curva de aprendizaje y cuenta con una excelente documentación y porque pone a nuestra disposición una gran cantidad de extensiones.

A la hora de hacer la disposición de resultados en la pantalla, una vez descartada la tecnología Adobe Flash por las razones comentadas, nos quedan básicamente dos alternativas: la utilización de XHTML/HTML o de HTML5. Para disponer imágenes en un punto concreto de la página es suficiente con la utilización de HTML en combinación con hojas de estilos indicando a las imágenes que se sitúen en posiciones absolutas, aunque sería más complicado lograr complejos efectos de animación (aunque no imposible, utilizandolo en combinación con JavaScript). En cambio, HTML5 es aún un borrador, no aportaría demasiadas funcionalidades (únicamente la inclusión de efectos bonitos con la utilización del elemento canvas) y está aún en proceso de implantación, sólo disponible en las últimas versiones de los distintos navegadores y en algunos casos parcialmente.

Del lado del servidor

Del lado del servidor, se eligió como lenguaje de programación Python debido a que se trata lenguaje de alto nivel que sin embargo no se puede considerar y que tiene una importante presencia entre las aplicaciones web debido a su velocidad y la facilidad para desarrollar en él. Además genera un código fácil de leer y su biblioteca estándar muy completa, especialmente fue especialmente útil en la serialización de los objetos en JSON, mediante la librería jsonpickle, para transmitirlos al lado del servidor.

En combinación con Django, permite la rápida creación de sitios web complejos desarrollados con una estructura modular, facilitando el uso de plantillas, accesos a bases de datos, uso de direcciones amigables y creación de cachés.

Comunicación

En la comunicación, como se ha comentado, se hace uso de JSON (JavaScript Object Notation), un formato ligero para el intercambio de datos, frente a su principal alternativa XML, un lenguaje de marcado de propósito general. La elección de JSON se debe a la velocidad en que se procesa en JavaScript, a que resulta muy simple tanto para humanos como para máquinas, a que está orientado a las estructuras de datos de los lenguajes de programación modernos y a que no necesitamos la validación mediante esquemas de las respuestas.

Realmente esta decisión no supone un gran compromiso, con unas simples modificaciones la comunicación se podría realizar utilizando XML sin afectar a las dos partes involucradas en la comunicación.

16 junio 2010 Posted by | Tecnologías | , , , , , , , , , , , , , , , , | Deja un comentario