viernes, febrero 23, 2007

Búsquedas web en el contexto de intereses personales

¡Parece que me han oido! Investigadores de la Universidad de Utah están trabajando en un sistema de búsqueda contextual, basada en intereses personales. Todavía no he leido el artículo (sólo el abstract), pero puede resultar interesante. Si veo que es interesante lo comentaré aquí.

martes, febrero 20, 2007

Information overflow

Llevo unos días probando Google Reader, la herramienta de Google para leer los feeds de atom y rss. La verdad es que está bastante bien, sobre todo porque aplica un concepto conocido (mi buzón de entrada) a un concepto nuevo (una lista de actualizaciones realizadas en un blog). Eso creo que lo hace más fácil de usar.

Sin embargo, no quiero entrar ahora en ese tema. Lo que me trae hoy aquí es que vuelvo a sufrir (otra vez) eso que llaman information overflow. Vamos, que ando saturado de información, demasiada información. No es que sea inutil, es que es demasiada. En esta disyuntiva, se me vienen a la cabeza algunas alternativas. La primera de ellas es cortar de raiz... Si tienes un feed que te ofrece más de 10 enlaces al día, te has equivocado de feed. Lo mejor, es quitarse de encima el feed. Es casi como spam... Es insufrible...

Pero claro está, ¿qué voy a hacer si pierdo, de entre esos 10 enlaces diarios, el que me resuelve el problema de mañana, el que me hace cambiar mi manera de pensar y me hace entrar en un nuevo estado mental, el que necesito para entender por qué las cosas funcionan en el mundo como lo hacen? La solución de cortar por raiz, es muy efectiva, pero no muy eficiente. Lo ideal sería poder filtrar el contenido. ¿Lo que me gustaría? Una herramienta que fuera capaz de ir "aprendiendo" de los artículos que me gustan, de los que leo, de los que desecho... Que analice la metainformación de la información que me llega, y deduzca si el artículo va a ser relevante o no... Lo que yo quiero es una función consumir(informacion) que devuelva un booleano indicando si debo leer/usar/procesar esa información... Mejor, una función consumir2(informacion) que devuelva un entero, indicándome la relevancia de la información. De esa manera consumir(informacion) = consumir2(informacion) > umbral, donde yo pongo el umbral. "Hoy sólo quiero información con umbral = 1", por ejemplo...

También es cierto que una función así, si funcionara como se espera, me iría etiquetando, de forma que sería muy difícil que pudiera decidirme en un momento dado a explorar otros caminos, con umbral < 0,5. En fin, que hoy por hoy, voy a hacer yo de función consumir, y utilizaré como información las cabeceras de los artículos de los feeds.

Feliz navegación.

viernes, febrero 09, 2007

La junta de la trócola

Para persistir la información de una aplicación, usamos un framework de persistencia, desarrollado por nosotros, pegando trozos de distintos libros y artículos, en una especie de framekenstein de software. Como en la mayoría de los frameworks, impera el principio de inversión de control o Principio de Hollywood. Para ello, creas una clase que hereda de otra base en el framework, e implementas los métodos que necesita la clase base.

Si existen muchas clases que heredan de una de esas clases del framework, cambiar esa clase puede ser un problema. En nuestro caso, nuestas clases heredan de un Data Mapper (más información aquí), llamado BrokerSql.
class ClienteBroker : Servicios.Persistencia.BrokerSql {...}
Si mañana decidimos hacer que las clases hereden de otras, tendríamos que ir clase por clase cambiando el nombre. Tampoco es que sea mucho problema, pero ¿qué tal si hacemos esto?
class JuntaTrocolaBroker: Servicios.Persistencia.BrokerSql {...}
y luego
class ClienteBroker: JuntaTrocolaBroker {...}
Bueno, la verdad es que esto es más una comida mental, porque estoy asumiendo que el día que en vez de heredar de BrokerSql heredemos de BrokerXml, los métodos a implementar por ClienteBroker serán los mismos, que seguro que no es el caso, ni siquiera en los valores devueltos, pero en fin, estoy en plan brainstorming, por si a alguien le sirve directamente, o para generar otra idea.