
*In rosso i tempi di accesso delle tabella unica (prova1) in verde i tempi della tabella partizionata (prova2) al crescere delle dimensioni dell’archivio.*
Per una presentazione del problema: [tagschema.com](http://tagschema.com/blogs/tagschema/)

*In rosso i tempi di accesso delle tabella unica (prova1) in verde i tempi della tabella partizionata (prova2) al crescere delle dimensioni dell’archivio.*
Per una presentazione del problema: [tagschema.com](http://tagschema.com/blogs/tagschema/)
Il database che contiene i dati della mia tesi ha raggiunto dimensioni considerevoli!!
La tabella di collegamento principale ha raggiunto i 4 milioni di record!! wow!
La tesi si propone lo studio di metodi di suggerimento mirati per il singolo utente, però il problema della velocità di calcolo si fa sentire anche con solo 2000 utenti inseriti.
È possibile però osservare che, come in tutti gli archivi di risorse internet, il 90% dei bookmark di ogni utente sono pesonali e non condivisi con nessun altro utente ([long tail](http://en.wikipedia.org/wiki/The_Long_Tail)).
Quindi selezionando solo le risorse condivise fa almeno 2 utenti, la parte attiva del database viene ridotta ad un decimo.
Operando su questo dataset, ho considerato l’intero insieme degli href come una previsione per l’utente, previsione valutabile ad esempio con l’uso di indici come la Precisione ed il Recupero (Precision and Recall).
Si definisce *Precisione* di una predizione:

Si definisce *Recupero* di una predizione:

Ad esempio, se dovendo indovinare 6 numeri, si fa una previsione di 10 numeri, di cui 3 risultano corretti, Precisione e Recupero risultano pari a:
* Precisione = 3 / 10 = 30%
* Recupero = 3 / 6 = 50%
Possiamo immaginare l’intero insieme degli href come una previsione con
Precisione minima e Recupero massimo.
Possiamo selezionare solo gli href associati agli N user vicini
all’utente candidato.
Confrontando la scelta basata su due kernel normalizzati,
con la scelta casuale degli N utenti “vicini” abbiamo le seguenti
prestazioni:

Quindi, usando il kernel prodotto scalare, abbiamo un Recupero del 40% con soli 30 utenti, mentre selezionando casualmente gli utenti, per avere lo stesso Recupero ne sono necessari 150.
Una delle particolarità di gentoo è l’attenzione ai particolari, ed una delle caratteristiche che rimpiango in altri gestori di pacchetti è l’uso intelligente della barra del titolo della finestra del terminale per comunicare lo stato di avanzamento di una lunga installazione.
Andando a scavare nei sorgenti di portage ho trovato una comoda funzione, xtermTitle(message) (nel file output.py), che modifica il titolo di xTerm (o similari) con il messaggio inviato.
Qua ho adattato (minimamente) la funzione ai miei usi:
Funziona egregiamente, e fa rimpiangere un po’ meno l’assenza di Growl quando parto con Ubuntu.