31
mar
08

Versión funcional

Hace un par de días que esta subida un versión funcional.

Las búsquedas las puede realizar utilizando un plugin que trabaja contra el motor de búsqueda de yahoo, o bien utilizando un plugin de pruebas que solo devuelve 10 resultados de forma estatica.

Aparte, la clasificación, se realiza con un plugin que tarda un tiempo aleatorio, permitiendo probar los hilos y demás. Ahora, me voy a poner a comenzar la documentación, y a hacer un pequeño plugin de prueba que sea para mejorar la clasificación sobre el tema de las letras de canciones.

Por otra parte, si saco algo de tiempo, me gustaría hacer otro plugin que me permita realizar una búsqueda local, es decir, sobre los archivos en la maquina sobre la que corre el propio server, demostrando de este modo la versatilidad y potencia que puede brindar la modularización y los plugins, que era uno de mis principales ideales.

Un saludo

13
mar
08

Actualizado Manager de Plugins

He actualizado el Manager de Plugins, cambiando el sistema de loggers por el de log4j, por que después de utilzar el Logger standard de Java, no lo lograba configurar como quería. Por este motivo lo he cambiado y configurado, configurando despues el TestPluginManager.

Un saludo

12
mar
08

Subidas nuevas versiones de los componentes

Antes de ayer subí las nuevas versiones de los componentes, el mas importante es el manager de plugins, el cual me ha dado muchísimos quebraderos de cabeza, pero finalmente lo tengo funcionando sobre Spring.
Me gustaría comentar el principal y mas paranoico error que he tenido, por que no hay referencias en inet, o yo no las he encontrado (es un fallo muy raro, asi que supongo que será normal que no encontrara nada al respecto), y para solucionarlo he tenido que empaparme bien del funcionamiento de Java. (No hay mal que por bien no venga)
No tenia errores, el fallo era en tiempo de ejecución, y lo que ocurria era que me daba un ClassCastingException debido a que intentaba usar una clase mediante su interfaz, pero habiendo instanciado dicha clase dinamicamente. El problema tenia su base en que la Interfaz era instanciada por un ClassLoader distinto del que usaba para instanciar la Clase.
Y para mas locura, este fallo solo sale a la luz cuando el manager no lo instancio yo, si no que lo instancia Spring y por IoC me lo inyecta a mi clase.
Esto bien pensado, ahora que se la solicion, parece evidente.
Finalmente solucione el problema (me ha costado meses, abandonandolo por imposible y retomandolo varias veces), haciendo que la Clase (en este caso del plugin) la instancie el mismo ClassLoader que me habia instanciado la Interfaz. Esto lo hago con la linea:
ClassLoader cargador = new URLClassLoader(getJarsDeDependencias(), this.getClass().getClassLoader());
Que la ejecuta el archivo PluginManager.java.
De este modo utilizare como ClassLoader el mismo que me haya instanciado el Manager de Plugins (el que haya utilizado Spring), y luego podre realizar correctamente el casting.

Anteriormente, el utilizaba un nuevo ClassLoader con el codigo:
ClassLoader.getSystemClassLoader()

Lo cual provocaba la incompatibilidad de ClassLoaders que he comentado.

Lo dicho, el manager de plugins esta subido y funcionando ! ! ! ;-)

10
mar
08

Renaciendo de las cenizas

De nuevo a la carga, después de dejar esto muy parado por los examenes y el trabajo (desconocía que trabajar y estudiar fuera tan dificil), voy a volver a retomarlo donde lo deje.

Todo quedo parado en un problema que no era capaz de resolver. El problema radicaba en el pluginManager, por un defecto de concepto, llegando a ser una limitacion tan importante que me planteé la posibilidad de que no fuera un subproyecto independiente, sino incluir ese código dentro de la lógica de negocio propia de la aplicación.
Desde el principio he intentado que todo el código sea lo más reutilizable posible, y por ello quería que el proyecto se dividiese en subproyectos independientes.

El problema del pluginManager (ahora se llama ManagerPlugin) era la instanciación del plugin, en ese punto todo se desvarataba, por que no lograba instanciar el objeto conociendo sólo la interfaz que implementaba. Ademas ha sido complicado por que los errores que obtenia daban muy poca información y no tenian nada que ver con la verdadera raíz del problema.

La solución, ha sido “la tipificación”, sí, eso que utilizamos ahora para decirle a un objeto “List” que clase de objetos va a contener, y que a los novatos les parece inutil y absurdo.

Con la tipificación podemos crear un manager de plugins diciendole previamente que tipo de objetos va a instanciar, y ello nos ayudara a que luego pueda devolvernos los objetos ya instanciados, de tal manera que nosotros nos olvidamos de toda esa parafernalia, y simplemente nos limitamos a usarlo según indique su interfaz (la del plugin).

Yo tenia mucho interes en que este subproyecto se mantuviera independiente del proyecto completo por que estoy seguro que puede serle muy útil a mucha gente, que estarán interesados en añadir la funcionalidad de soporte de plugins a sus aplicaciones

He de subir los ultimos cambios que he hecho este finde semana, mañana Martes los pondre. Ahora quiero ver si logro organizar un poco todo lo que tengo, que es una locura, por si alguien se anima a probarlo.
Un saludo

20
nov
07

Subidas primeras pruebas de Spring

Acabo de subir las primeras pruebas hechas con Spring, es un Framework enorme, y me estoy ayudando de un libro muy bueno que se llama Spring in action, lo recomiendo encarecidamente, tiene ejemplos muy sencillos y una lectura rapida y amena, no se detiene demasiado en cuestiones tecnicas y pasa con fluidez a la practica con sencillos ejemplos.
Claro que no todo podia ser perfecto, y es que he estado un buen rato peleandome con el ejemplo del tema 13, donde se explica en pocos pasos como hacer un MVC con el Spring, y al seguir los pasos en el NetBeans, no preste atencion a algunas lineas que te rellena directamente el Netbeans para evitarme trabajo, y claro no funcionaba el ejemplo.

Ya lo he arreglado, el problema radicaba en que estaba confundiendo el Manejador de vistas, y me tomaba el que le habia puesto el IDE en vez de cojer el que yo le decia.

He subido los cambios y actualizado archivos, se puede probar el ejemplo bajando en el NetBeans el subproyecto “BuscadorTematicoWeb” ya lo he probado a descargarlo y se baja con todo configurado para solo tener que probarlo y trastearlo.

Para hacer las pruebas en el NetBeans, cuando lo tienes instalado (www.netbeans.org) y con subversion tb instalado en tu sistema (http://subversion.tigris.org) simplemente en el Menu “Versioning -> Checkout” y seguir pasos en pantalla. (Direccion svn: “https://forja.rediris.es/svn/csl2-bwt”)

Como es logico de momento el proyecto avanza con lentitud, pues primero he de enterarme bien de como se usan las herramientas que tengo que utilizar, pero una vez que esto coja ritmo supongo que avanzare algo mas rapido.

16
nov
07

Probando SVN

Pués he estado probando SVN desde el Netbeans que es el IDE que me gusta a mi, y al principio me he liado un poco, pero funciona bien, y es igual de comodo que subversion en eclipse.

La dirección a utilizar para poder bajar el código del proyecto desde svn es:
https://forja.rediris.es/svn/csl2-bwt

También he probado a bajarme el código desde el repositorio en eclipse y es bastante simple y también funciona bien, la única diferencia radica en que los que no esten demasiado habituados al uso de estos IDEs quizas se lien un poco a la hora de descargarse el código he intentar recompilarlo y demas, pero creo que es importante aprender a usar estas herramientas, pues en el trabajo nos las vamos a encontrar a diario.

Si alguien necesitara ayuda para poder hacerlo, pués que contacte conmigo que intentare aclararselo en la medida de mis limitadas posibilidades de tiempo.

Así pués, lo dicho, ya he estrenado el SVN con el primer subproyecto que son las interfaces del modulo del buscador.

15
nov
07

¿Es viable?

El proyecto puede considerarse viable en base a que no se pretende construir un buscador desde 0, si no de hacer una herramienta que permita mejorar la comunicación del usuario con el buscador, solucionando primeramente el problema de la eleccion del mejor patron de busqueda, y despues tambien el problema de las paginas que no estan bien indexadas.

14
nov
07

Bienvenida y presentación

Bienvenido, mi nombre es Alejandro, he creado este blog para dar a conocer mi trabajo en el desarrollo del proyecto “Buscador Web Temático”.

Este proyecto pretende ser una herramienta que ayude en las busquedas realizadas en internet, reduciendo el numero de “falsos positivos” y ayudando al usuario a seleccionar la entrada que mejor se ajuste a lo que realmente esta buscando.

Para explicarme mejor, en estos primeros posts voy a responder a unas preguntas que creo que resolveran las principales dudas:
¿Cual es la visión y el analisis de este proyecto?
Como ya he comentado, mi intención es crear una herramienta que ayude en el proceso de hacer una busqueda en internet.
Y es que en ocasiones nos encontramos en situaciones en las que los buscadores no logran darnos la información de forma directa y concisa.
Esto a su vez puede estar motivado por varias causas, entre ellas que el propio interesado no sepa como definir correctamente unos patrones de busqueda apropiados y por lo tanto el buscador no resuelve la busqueda con las respuestas que se esperan.
Pero tambien por otra parte los grandes y no tan grandes buscadores cometen fallos, ya que no olvidemos que son robots que analizan e indexan una enorme cantidad de información que las personas han publicado por intereses de diversa indole, mas o… menos profesionales. Me explico, quiero decir que conociendo como funciona el robot, se ha podido intentar engañarlo para posicionar ciertos contenidos antes que otros. Aun recuerdo el caso de hace algun tiempo que Google veto en sus busquedas las paginas de BMW por haber hecho esto mismo, y lo habia logrado repitiendo muchisimas veces palabras relacionadas con el motor en las MetaTags de sus paginas HTML, logrando que saliera siempre muy bien posicionado en cuanto que cualquiera ponia cualquier palabra relacionada con los vehiculos.
Y es que no debemos pasar por alto que la informacion es poder y el poder es dinero (ya me gustaria que detras de todas estas motivaciones hubiera algo mas noble)
Como reseña me gustaria citar una frase que lei este verano pasado:
Si una página no esta indexada por Google, entonces no existe en internet
De esta frase se denota la importancia que tienen hoy en dia los buscadores y su calidad en las busquedas. De hecho un alto porcentaje de internautas solo mira las dos primeras paginas devueltas por un buscador, y en caso de no encontras la respuesta deseada, o modifica el patrón de busqueda, o abandona la misma.




Seguir

Get every new post delivered to your Inbox.