20 de abril de 2014

Baloo, o Nepomuk 2.0

Se ha publicado KDE 4.13 hace unos días, y como la mayor parte de programadores están trabajando en KDE 5 en esta versión la principal novedad ha sido lo que el anuncio llama "nueva búsqueda semántica". Lo de "búsqueda semántica" no es más que un término complicado para describir un intento de construir escritorios que trasciendan la filosofía de archivos y directorios y estén basados en alguna clase de base de datos que permitan almacenar metadatos relacionados con los archivos (remitente, URL de origen, comentarios, valoración de 0 a 5 estrellitas, indexado del texto de archivos al estilo spotlight, etc etc) y también metadatos no relacionados con archivos que están relacionados con otros metadatos.

Como se puede intuir, el nivel de abstracción y ofuscación que reina alrededor de estos conceptos es muy notorio, y es de la clase de cosas que "huele" a complejidad innecesaria. Y ciertamente ese también parece ser el problema que ha rodeado a Nepomuk, la funcionalidad de escritorio semántico de KDE, especialmente cuando funciona conjuntamente con Akonadi, la parte del escritorio semántico que se encarga de suministrar información semántica de aplicaciones como kmail, kaddressbook o kontact a Nepomuk y al mismo tiempo funciona como "proxy" entre esas aplicaciones.

Mucha gente no entenderá qué acabo de escribir, yo mismo he tenido que leer esto para recordar las diferencias entre ambos, sintetizar las ideas con las que se justifica este software es casi imposible. Lo que mucha gente si sabe, sin embargo, es que al arrancar KDE se encuentran con diversas partes de nepomuk y akonadi que consumen memoria, especialmente la instancia mysql de Akonadi, algo que para mucha gente es bloatware incompatible con la idea de un escritorio bien diseñado (algunos asumen, erróneamente, que akonadi almacena tu correo en mysql, lo cual no es cierto, la instancia mysql sólo almacena un caché del directorio maildir local). Desactivar Akonadi y Nepomuk es la rutina de muchos usuarios de KDE. Además, mucha gente ha dejado de usar aplicaciones como kmail debido a la percepción de lentitud incorporada desde la migración a akonadi.

Nada de esto es sorprendente y, sin embargo, como usuario de kmail siempre he mantenido la fe en la mejora a largo plazo de akonadi. Intentar ir más allá de la metáfora de archivos/directorios es inevitable. Es más, creo haber recalcado en este blog que tiene muchísimo mérito que un proyecto como KDE, con tan pocos recursos, haya decidido investigar en este tipo de escritorios. Ningún otro escritorio, libre o privado, se ha atrevido a ir tan lejos. WinFS fue el intento de Microsoft de construir algo similar y ya saben como acabó, y spotlight de OS X es simplemente búsqueda. Aunque con dificultades y quejas, KDE ha llegado donde multinacionales del sector no se han atrevido, y eso tiene su mérito.

Y quizá como recompensa de su esfuerzo y constancia, en KDE 4.13 se recogen algunos frutos. Nepomuk almacenaba sus datos en RDF, un formato estandarizado por la W3C para  la "semantic web". Los desarrolladores han tomado nota durante estos años que hay tres casos principales de uso de nepomuk, y se han dado cuenta de que precisamente por ser RDF tan genérico y obtuso, resultaba difícil optimizar para esos casos. En lugar de intentar usar un sólo formato y una sola base de datos para todo, se han dado cuenta que podían prescindir de RDF y su enorme complejidad de "ontologías" añadida. En su lugar, se utilizan diferentes "backends" con bases de datos diferentes y optimizadas para cada caso. Baloo -el nombre de este nuevo reemplazamiento de nepomuk- se encarga de acceder a cada una de ellas cuando sea necesario.

Una de las ventajas más notorias es que ahora Akonadi se convierte en un simple backend de Baloo: Antes, Nepomuk necesitaba indexar los contenidos de Akonadi, lo cual implicaba que parte de los datos de aplicaciones de KDE PIM tenían que estar duplicados en ambas bases de datos (!!), de hecho había un proceso dedicado exclusivamente a sincronizar la replicación de datos entre ambas bases de datos (!!!!). Ahora sólo existe la base de datos de Akonadi, y Baloo simplemente accede a ella. Puede parecer una mejora de sentido común, pero sin la persistencia de KDE y los desarrolladores de nepomuk no se hubiera alcanzado.

La otra gran ventaja es que ha mejorado el rendimiento. En mi caso, he comprobado que la búsqueda integrada Ctrl+F de dolphin es sorprendentemente rápida incluso con búsquedas que devuelven decenas de miles de resultados, lo cual me hace plantearme seriamente usarlo a diario. También he notado que algunas operaciones de kmail que solían ser lentas, como las búsquedas, se han vuelto prácticamente instantáneas. En general el rendimiento parece haber mejorado drásticamente (aunque, desgraciadamente, no he visto ningún benchmark), y es de esperar que mejore aun más en próximas versiones, a medida que se consolide. Tan seguros están los desarrolladores de las mejoras que han rediseñado el módulo de configuración de nepomuk y han eliminado -no sin polémica- la opción gráfica para desactivarlo.

Resumiendo, todo el trabajo y dificultades acumuladas en nepomuk y en el concepto de escritorio semántico no ha sido en balde.

9 comentarios:

  1. No me gusta nada lo que hacen con Nepomuk. Pero para nada, ¿ahora con Baloo? Diooosssss...

    Hice bien en no tenerlo corriendo,...porque es una patata. :(

    Saludos.

    ResponderEliminar
  2. Utilizo KDE desde hace... (ya ni me acuerdo) y soy de los que lo primero que hago es desactivar Nepomuk y Akonadi, y también dejé de usar Kmail desde que era necesario tener activado los servicios correspondientes. Fue una pena porque el Kmail de 3.5.10 funcionaba de maravilla. Para mi las características del escritorio semántico no me son útiles, por lo menos no las necesito, y además lastraban mucho el rendimiento y consumían memoria. En las primeras versiones de KDE4 no había una manera fácil de desactivarlo (lo cual me parece mal), ahora sí, pero no es evidente para los nuevos usuarios. En KDE 4.13 la manera de desactivar Baloo es eliminar todas las carpetas para indexar en las Preferencias del Sistema. Todavía no lo he probado

    A todo esto, yo creo que las características experimentales no deberían venir activadas por defecto. Me parece que los desarrolladores de KDE, a los cuales quiero felicitar por su dedicación, les cuesta aceptar que muchos queremos KDE para nuestro trabajo diario en una maquinita normalita o incluso un poco pasadita. Esto se ha traducido en que a veces me ha costado recomendar KDE a algunos compañeros que me ven trabajando en mi portátil. Una pena.

    Un saludo y una felicitación por tu estupendo blog.

    ResponderEliminar
    Respuestas
    1. Anónimo4:39 p. m.

      Interesante. ¿Y cómo dices que se puede desactivar, exactamente?

      Eliminar
    2. http://blog.desdelinux.net/desactivar-baloo-kde-4-13/

      Eliminar
    3. Yo también soy de los que detestan este tipo de inventos. Por mi forma de trabajar, me resultan completamente inútiles.

      No se menciona ahí, pero esta es otra opción para mandar a baloo a la tumba, por consola y sin la chapuza del link a 'true'.


      editas $HOME/.kde4/share/config/baloofilerc

      y o bien pones en la sección [Basic Settings]
      Indexing-Enabled=false

      o bien introduces (en la sección [General])
      exclude folders[$e]=$HOME/

      Eliminar
  3. Anónimo4:38 p. m.

    Vaya, ya empezamos a limitar la capacidad de configuración por parte del usuario. Y en KDE, que precisamente siempre se ha caracterizado por dar una gran libertad de personalización. Desde el punto de vista psicológico, aquí veo el típico egocentrismo del desarrollador, que piensa que como le ha dedicado mucho tiempo al tema, el resultado de su trabajo debe usarse sí o sí.

    ResponderEliminar
  4. Bueno, llevo varias semanas con Baloo, y debo decir que funciona simplemente genial, algo que no esperaba. Supuse que por ser un desarrollo muy "nuevo" iba a correr peor que Nepomuk, pero la verdad es que no.

    Nepomuk en las últimas versiones funcionaba francamente bien, pero Baloo funciona aun mejor, más rápido y con mucho menor consumo de recursos.

    Los que se quejan de que Baloo sea un lastre para KDE es por que no lo han probado. Animo a que lo prueben, les aseguro que funcionará mucho mejor de lo que esperan.

    ResponderEliminar
  5. Hay un par de cosas que no me gustan en general del escritorio semántico.
    La primera es que indexe todo, incluyendo librerías, binarios, Todo. La segunda es que se ejecute cada 20 minutos comparando si hay cambios (¿aun lo hace en las ultimas versiones?), digo, creo que podría usar inotify,

    Por otro lado la idea del escritorio semántico me gusta.

    ResponderEliminar