martedì 12 giugno 2012

Akonadi e Nepomuk, il lato oscuro di KDE

Tendenzialmente non sono inutilmente critico su certe scelte degli ideatori e dei programmatori delle interfacce grafiche in circolazione.

Una caratteristica di quasi tutti i fondamentalisti, dall'ambito politico all'ambito tecnologico è che : tutti hanno idee molto precise e non sono mai le loro.

Personalmente ritengo più importante avere dubbi, e tornando all'argomento del post, ritengo che vincolare un semplice desktop con la dipendenza forzata da due diversi DB relazionali, per altro commerciali e rilasciati solo in parte in GPL, sia assolutamente inaccettabile.

Per quanto poi riguarda l'utilizzo sempre più "forzato" degli strumenti in oggetto, dopo che vi avrò spiegato a cosa servono, potrete comunque trarne le vostre adeguate conclusioni. 

NEPOMUK e le informazioni distribuite

Dopo le antiche glorie e dopo l'acquisto di Suse da parte di Novell, KDE ossia la piattaforma più diffusa a quei tempi nell'ambito desktop Linux,  è stata trasformata in una cavia, per effettuare i più atroci esperimenti.

Comprendo che le QT prima di Trolltech e ora della Nnnnn .... della Nnnnn... ... scusate non riesco a dirlo, sono profondamente mutate nel tempo e sono diventate una piattaforma assolutamente completa (in primis gestione grafica e multimediale).

Purtroppo l'evoluzione invece di portare ad una infrastruttura semplice, arricchita di elementi opzionali, ha preso subito la strada di una serie di dipendenze improponibili, del tutto integrate e obbligatorie, alla faccia della modularità di Linux e perché no ... anche degli standard.

Tutto ciò ha portato ad una migrazione dei programmatori della piattaforma originale, verso non si sa bene quali progetti, e a guerre intestine di varia natura.

La chiave della nuova filosofia KDE è quella legata al progetto Nepomuk, finanziato perfino dalla comunità europea e che ha subito un forte rallentamento e vari cambiamenti di direzione, quando i finanziamenti sono finiti nel 2008.

Analisi ontologiche

Nepomuk, è uno strumento in grado di eseguire una analisi ontologica dei singoli dati, allo scopo di delinearne profili di ricerca e di lavoro distribuiti.

Capisco che la cosa detta così possa sembrare difficile, talmente difficile che se chiedete lumi a kde vi risponde che loro lo sanno ma non ve lo possono spiegare.

Quindi vi fanno degli esempi che via via diventano più lugubri e sinistri, compreso quello del tizio che invia un contratto di lavoro ad un collega, e che per il solo fatto di riferirsi ad una una ragazza che è stata taggata in una foto privata e presente sul computer come "noiosa a letto", il nome e il tag relativo sono automaticamente inseriti nel contratto, compresa la copia destinata a questa persona e vi dicono anche che  faranno comunque di tutto per evitarlo (non si sa se agendo sul software o sul soggetto in questione).

Ok, per il popolo che passa l'intera vita a rincoglionirsi su Facebook, questi sono eventi all'ordine del giorno e questo giustifica almeno in parte la descrizione di Nepomuk, come qualcosa in grado di organizzare la nostra vita e le nostre attività meglio di come facciamo noi.

A chi si interessa di Intelligenza Artificiale e quindi di filosofia, posso spiegare brevemente che l'analisi ontologica è la ricerca dell'essere o meglio dell'essenza delle cose.

Il cervello funziona per associazioni di idee, quindi individuato un oggetto, lo analizza in modo da farsi una "idea" di che cosa è, tipo : "ha quattro gambe un pianale e una spalliera, mi ci siedo sopra e allora è probabilmente una ....".

In questo modo un qualsiasi documento a seconda della sua natura, dal testo ad un brano mp3, ad una fotografia, può essere analizzato in base ad una ontologia specifica per esempio : il luogo, la data, i soggetti inquadrati, chi ve l'ha mandata, le parole espresse nel soggetto del commento.

Una volta intersecati i dati in modo opportuno si ricostruisce il carattere di una "attività" specifica, le persone coinvolte, e la tipologia dei dati che si stanno cercando.

Se questi dati, invece di starsene su un singolo computer si diffondono all'interno di una LAN aziendale, il lavoro si distribuisce socialmente e se si viene destinati ad una attività per la quale i vostri colleghi usano particolari software o contattano particolari persone, per esempio il sistema potrebbe riordinare il menù o l'agenda di conseguenza.

Per chi ancora non avesse afferrato il punto, questi sono proprio i meccanismi intrinseci nei Social Network moderni e nei servizi online, come quelli di Facebook e Google.

Soprano, Virtuoso e Maria (DB)

Fose non tutti sanno che dopo l'annessione in Oracle di MySQL, hanno fatto partire un fork, chiamato MariaDB.

Cosa c'entri con Nepomuk, non lo so bene, però visto che MySQL è un requirements per Akonadi, che è uno dei tentacoli di Nepomuk, mentre Soprano e Virtuoso sono rispettivamente il sistema di accesso semantico e il database relazionale ad oggetti di Nepomuk, mi sembrava che tutto contribuisse quanto meno a dare un senso alle cose, anche se limitato alla lirica.

Ovviamente Virtuoso è un server commerciale di cui esiste una versione Open Source, che è quella che dovrebbe essere presente sul vostro computer (come per MySql).

L'interfaccia originale di Nepomuk e i relativi daemon, come progetto della Comunità Europea erano scritti in Java, con il risultato di un bel 100% fisso di CPU.

Oggi con le nuove interfacce il consumo è inferiore. Il daemon di indicizzazione, si chiama strigi e anche se vi sembrerà strano prima di KDE4 in versione sperimentale, funzionava benissimo anche senza Nepomuk e virutosismi vari ma ovviamente non era semantico né social.

Fate conto che quando parte tutta la baracca il compuer tende a "sedersi" un po` esattamente come quando parte l'indicizzatore, di Gnome che si chiama Tracker.

Come abbattere Nepomuk

Quale scopo, raccontarvi le meraviglie di Nepomuk, senza poi spiegarvi come farne a meno ?

Mi perdonerete se non ho saputo spiegarne gli utilizzi attuali, perché sinceramente non ne ho trovati molti e quelli che ci sono mi fanno ribrezzo (specie dopo le esperienze con oggettini simpatici tipo Google Desktop) .

Togliere Nepomuk, dal mio punto di vista è consigliabile ma visto che non si può, prima di tutto abbattiamo il server editando il file :

 ~/.kde/share/config/nepomukserverrc
e dopo avere fatto copia dell'esistente (se c'è ) scrivetevi semplicemente questo :

[Basic Settings]
Start Nepomuk=false

Se il file non ci fosse, questa operazione è comunque utile per evitare che il sistema vi ossessioni alla partenza con insulsi messaggi, sulla non partenza di Nepomuk.

Poi disabilitate il server Virtuoso : su distribuzioni come Debian potete anche rimouvere il pacchetto virtuoso-minimal che non dovrebbe comportare dipendenze, anzi sulla Testing  allo stato attuale non è nemmeno presente.

 

Akonadi

C'è un articolo poco prolisso su Akonadi ed è italiano, leggendolo si incontrano diversi dubbi, anche perché quanto scritto è abbastanza fuorviante.

Alla domanda : "Dove sono i miei dati ?", invece di rispondere "nella vostra home" come sarebbe logico, vi rimanda al blog di Andres Matias e questo mi è sembrato curioso.

Diciamo che Akonadi è in pratica il braccio armato di Nepomuk, e si occupa di fornire a questo demone, anime fresche da macinare ma fa anche tante cose più interessanti e innocenti.

Andres Matias, dice che :

To make it clear from the beginning: the Akonadi database is NOT your MAIN data storage. Even if it gets destroyed, removed, your data is still safe.

Ora che abbiamo chiarito il punto fondamentale, cerchiamo di capire allora a cosa serve, visto che non memorizza nulla e per fare questo usa pure MySQL.

Beh ecco ... Akonadi è una semplice interfaccia alla base dati. Tecnicamente si pensi a una classica agenda (che qui è Kontact), il calendario oppure allo stesso client di mail che tiene gli indici delle mbox eccetera : di solito queste informazioni sono memorizzate in file più o meno standard come i vcf se vi va bene.

Per esempio Thunderbird utilizza i suoi files di indicizzazione e ancora oggi l'agenda è scritta nel terrificante formato Mork , distruggendo l'equilibrio mentale di intere generazioni programmatori,  volti ad accedere a tali dati, indipendentemente dalle intricate librerie di sviluppo.

Per fortunal lighting usa SQLite, ma non gestisce l'agenda, solo il calendario.

Nell'ambito Gnome, tuto è memorizzato in files "standard" come i vcf.

In teoria anche KDE usa questa infrastruttura, ma quando poi tenta di far dialogare i vari programmi, come il client di posta che deve richiedere un indirizzo email dall'agenda, non obbliga per questo l'agenda ad essere integrata strettamente con la mail ma semplicemente lo chiede all'interfaccia Akonadi che poi accede alla propria base dati.

Il giudizio generale che si può dare su un simile atteggiamento è positivo ed è sicuramente un alto esempio di ingegnerizzazione, usare MySQL invece, a mio parere è quanto meno inappropriato per non dire ingiustificabile.

In realtà la giustificazione addotta è che sitemi client/server come MySQL o Postgresql sono gli unici a garantire un accesso concorrente corretto.

Il problema è che ci sono grandi cambiamenti in pentola e potrebbero ulteriormente peggiorare le cose.

Come farne a meno

Fare a meno di Akonadi è piuttosto difficile visto che è integrato con tutto, persino con widget dell'orologio calendario di sistema, che lo usa per memorizzare le feste.

In mezzo a tutti questi dati, già fin d'ora si infilano i meta-tag di nepomuk oltre che le informazioni di contorno, cosucce tipo il fatto che una mail sia stata letta, forwardata o meno.

Personalmente dopo anni in cui è stato il mio unico programma di posta, io ho abbandonato KMail, perché la mail per me è abbastanza importante e non posso lasciarla in mano a gente che cambia idea ogni quarto d'ora.

Comunque in ogni caso, giusto per non rendere completamente inutilizzabile tutto il resto del desktop, potete invece provare ciò che è sconsigliato, cioè usare SQlite che ora pare funzioni un po` meglio sulla gestione della concorrenza.

Personalmente, su Debian  non avendo altri motivi per tenermi MySql sul desktop, ho rimosso l'attuale versione di  mysql-server-core.

Questo mi ha disinstallato automaticamente akonadi-backend-mysql e installato akonadi-backend-sqlite non so cosa accade sulle altre distribuzioni e comunque i backend li potete togliere e mettere a mano.

La modifica da fare alla configurazione di Akonadi, andrebbe fatta in fase di installazione, perché altrimenti perderete il DB attuale, comunque è editare il file di configurazione :

~/.config/akonadi/akonadiserverrc

e metterci solo :

[%General]
Driver=QSQLITE

[Debug]
Tracer=null
il resto si completerà da se e il plugin inserirà il database nella vostra home come dovrebbe essere e non in var/lib.

Il "peso" di Akonadi è assolutamente irrilevante e anzi con SqLite è molto performante.

Spero

di esservi stato utile e di avere espresso giudizi coerenti, sennò pazienza, in fondo sono solo un obsoleto programmatore e ho le mie personali idee.

A parte i motori di indicizzazione che sono sempre molto utili e magari lo sarebbero di più se non indicizzassero mentre sto lavorando ad un progetto urgente (giusto per dare un consiglio), ritengo che tutto il resto sia un attimino sopra le righe, specie nell'epoca dei tablet, touch, pad, mobile ...  dove a volte per sconforto ci si rifugia tra le certezze di una cliccante tastiera di un vecchio e caro desktop.



Nessun commento:

Posta un commento