[gl-como] Summer of code - breve descrizione del progetto

Pirla the.pirla@flashnet.it
Dom 10 Giu 2007 15:09:09 CEST


Ciao a tutti.

Visto che c'è stata una massiccia adesione mi sembra il caso di
cominciare subito a descrivere il progetto, così chi pensa che sia un
progetto inutile può dirlo subito.

Premetto che probabilmente cercando quà e la con google ed altri
sistemi, si potrà già trovare qualcosa di simile (o anche di uguale) ma
io non ho ancora avuto modo di cercare in modo molto approfondito.

Vi illustro la mia idea, che in questi giorni è andata maturando.
All'inizio avevo in mente solamente di fare qualcosa che andasse a
spulciare i file in un filesystem ed estrapolasse una serie di
informazioni su questi file, mettendole in un DB. In questo modo si
potevano fare ricerche per diversi campi ed organizzare le informazioni
di un disco in modi che normalmente non si riescono ad usare si
filesystem tradizionali di Linux.

Adesso l'idea è diventata molto di più e quindi provo a descriverla.

Partiamo da una situazione standard, che non è difficile trovare in ogni
PC, ma ancora di più in un server dove ci sono molti più utenti che nel
nostro singolo PC.

Ogni utente ha una serie di file, che possono essere catalogati più o
meno bene se chi genera questi file sta attento e sa cosa fare.
Ma nella maggior parte dei casi, per esempio, il solo nome del file o la
sua estensione non bastano a capire di che file si tratta.
Ancora di più, un singolo file può appartenere a diverse tipologie e
quindi catalogarlo all'interno di un file system necessita dell'utilizzo
dei link, oppure si ottiene la duplicazione dei file.

Provate a pensare invece ad un filesystem che si auto cataloga.
Mi spiego meglio.

Partendo dalla root del file system e facendo un semplice ls immaginate
che venga restituita la seguente lista di directory (semplificata perché
al momento mi vengono in mente solo queste):

        audio  immagini  Mail  ODF  pdf  PersonalTag
e visualizzando l'alberatura si abbia

|-- Mail
|   |-- From
|   |-- MailingList
|   |-- Subject
|   `-- To
|-- ODF
|   |-- Base
|   |-- Calc
|   |-- Impress
|   |-- Math
|   `-- Writer
|-- PersonalTag
|-- audio
|   |-- Album
|   |   `-- Venditti_Album1
|   |-- Autore
|   |   `-- Venditti
|   |-- Titolo
|   |   |-- titolo-1
|   |   `-- titolo-2
|   |-- ac3
|   |-- mp3
|   `-- ogg_vorbis
|-- immagini
|   |-- 300x200
|   |-- 640x480
|   |-- 800x600
|   |-- gif
|   |-- jpg
|   |-- raw
|   `-- tiff
`-- pdf

Il tutto generato dinamicamente da uno o più processi che girano in
background (come servizi) e che catalogano tutto il contenuto delle
directories che sono state configurate.

Inoltre, una volta che il servizio ha finito di catalogare tutto, resta
attivo monitorando le directories configurate in modo che ogni nuovo
file o ogni modifica venga tracciata e catalogata al volo.

Il tutto naturalmente non toccando o comunque lasciando inalterata la
struttura dei filesystem che ogni utente ha deciso per cui ogni utente
può lavorare contemporaneamente sui file veri o su una rappresentazione
logica di questi file basata su un DB.

Questa è l'idea.
Io ho già in mente il modo di realizzare alcune parti di questo
progetto, che come potete notare è anche molto modulare per cui permette
la gestione (lasciatemi passare il termine) a plug-in o a moduli.
Si può iniziare con il modulo per le immagini gif. 
Poi estenderlo alle immagini jpg.
Nel frattempo qualcun'altro scrive il modulo per i pdf.
E un altro ancora scrive il modulo per l'audio.
e così via.

Inoltre pensate al fatto che un filesystem di questo genere, proprio in
quanto file system, è utilizzabile con qualsiasi cosa abbia a che fare
con un filesystem, quindi chi usa nautilus o konqueror non avrebbe alcun
problema.
Ma in più è possibile creare un'interfaccia web alle informazioni
(quindi ai dati) presi direttamente dal db. si possono anche creare dei
comandi che fanno le query direttamente da shell per avere delle liste
(che ne so... tutte le foto del gl-como o tutte le foto del linux day
2007)

E veniamo anche ai PersonalTag.
Cioè un modo per aggiungere ad un file una serie di parole chiave o di
informazioni che permettano di catalogare meglio un file (di qualunque
tipo).

Per esempio una fattura (di solito in formato PDF) del telefono o della
luce... di quele che ormai arrivano via internet.
Se andiamo a vedere i tag che il fornitore del servizio fornisce, ci
metteremmo a ridere.
Non c'è praticamente nulla.
Allora possiamo usare alcune funzioni per cambiare i tag propri del
file, andando quindi a modificare il file (ma se per esempio il file è
firmato digitalmente violeremmo la firma digitale) oppure andando ad
aggiungere dei tag personali nel nostro DB.
Se perdiamo il DB perdiamo i tag personali aggiunti quindi in un certo
senso perdiamo la catalogazione, ma non perdiamo il file nel nostro
filesystem.

Poi ci sarebbero un sacco di altre cosucce che si potrebbero fare una
volta che il DB è popolato (per esempio trovare i file duplicati) ma
questa è la seconda (o anche terza e quarta) puntata.

Fatemi sapere cosa ne pensate così magari ne discutiamo anche mercoledì
sera.
e se nel frattempo qualcuno trova qualcosa di simile la segnali pure,
così vediamo pregi e difetti e differenze con il progetto.

-- 
Ciao
        Pirla

Per rispondere in E-mail the (punto) pirla (chiocciola) flashnet.it
*** un bacio ai pupi ***

---> Linux user since yesterday <---
--->     Linux User #389536     <---


Maggiori informazioni sulla lista gl-como