Pensieri e parole su HCI, home computing, tecnologie desktop e sul Progetto Lobotomy

venerdì 7 settembre 2007

Thinking Kiazma

Leggendo questo per niente nuovo ma comunque sempre interessante articoletto sul multithreading (argomento su cui mantengo alto il livello di guardia) mi son ricordato che non ho ancora menzionato su questo blog gli ultimi progressi raggiunti nella fase di ri-progettazione di Kiazma, su cui ancora sto lavorando ma per cui vengo continuamente interrotto da altri impegni.
Assunto che il toolkit di riferimento sara' Clutter, il cui widget elementare da cui derivano tutti gli altri e' il ClutterActor, Kiazma avra' le interfacce KiazmaFile e KiazmaMetadata: la prima sara' implementata da tutti i widgets destinati a rappresentare a video elementi prelevati dal filesystem Hyppocampus (KiazmaIcon, KiazmaApplication...), la seconda da tutti i widgets destinati a rappresentare singoli metadati (KiazmaNote, e tutti gli oggetti editabili creati per ogni tipo di metadato previsto). ClutterActor "liscio" sara' usato per implementare widgets di contenimento (KiazmaIconView), prettamente decorativi o con scopi legati alle funzionalita' dell'applicazione in se' (KiazmaButton).
A dirla tutta non so ancora se KiazmaFile e KiazmaMetadata saranno interfacce o widgets da cui derivare poi gli altri, la prima soluzione permetterebbe di scrivere oggetti generici (da usare in ogni contesto, non necessariamente legato al filesystem) da estendere poi in altri oggetti che ne ereditino completamente le funzionalita' ed implementino solo le funzioni descritte dall'interfaccia, la seconda permette di mascherare meglio i dettagli che descrivo sotto; devo ancora analizzare le implicazioni delle possibili opzioni, ma piu' o meno la linea sara' questa.
Tra le maggiori novita' in questo sistema ci sara' una revisione che si spinge fino a LibHyppo, libreria che include il Virtual File System per l'accesso a Hyppocampus. HyppoVFSFile (il link si riferisce alla versione 0.2.3, che non e' piu' valida) diverra' un GObject (adesso e' una semplicissima struct) ed ogni istanza sara' monitorata, col supporto di SCD, per emettere signals in caso di modifica, aggiunta o rimozione dei contenuti o dei metadati assegnati: in questo modo, intercettando appropriatamente tali signals all'interno di KiazmaFile e KiazmaMetadata sara' possibile aggiornare dinamicamente la grafica presentata all'utente pressoche' senza intervento alcuno da parte del programmatore che sviluppa l'applicazione finale, rendendo implicita nel toolkit questa funzionalita'.
Quanto sopra descritto e' ancora completamente suscettibile di stravolgimento (vedro' di trovare un poco di tempo per meditare questo weekend), ma riassume a grandi (grandissime) linee quel che si vorrebbe ottenere per la serie 0.3 della componente grafica del progetto Lobotomy.

Nessun commento: