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

mercoledì 27 febbraio 2008

L'Imbuto

Si sa che maggiore e' l'integrazione software che si vuole raggiungere piu' ricca e flessibile deve essere l'API di riferimento, che deve considerare quanti piu' casi possibile in modo da unificare il comportamento delle applicazioni e convogliare l'informazione in un numero limitato di punti cruciali per poterla smistare e manipolare facilmente.
Sempre nell'ottica di tagliare al massimo lo schema XML per le "view" che dovranno essere rappresentate in Synapse, e lasciare all'interprete (o meglio, al compilatore: sto accarezzando l'idea di compilare i templates descritti, per ovvi motivi di efficienza...), ho buttato un occhio alla lista di idee e propositi per funzionalita' da includere prima o poi direttamente nel framework (se non addirittura nei reconditi meandri del sistema, ad uso implicito per tutti) e mi sono accorto di avere in passato gia' pensato ad alcune cosucce che torneranno utili.
Riporto qui copia di tale lista, commentando gli elementi che maggiormente necessitano di delucidazioni, con la speranza di ottenere un poco di feedback sulla bonta' dell'API e su eventuali side effects non precedentemente previsti.
  • scritture a blocchi mirate. Questo sarebbe da includere in qualche modo nell'interfaccia verso Hyppocampus (ovvero: girando attorno all'attuale interfaccia POSIX che passa per il VFS del kernel), e servirebbe a facilitare ed accelerare la scrittura su supporto permanente di ogni modifica apportata dall'utente a qualunque metadato e soprattutto ai contenuti dei files, si' da eliminare completamente il concetto di "salvataggio" esplicito. Le scritture dovrebbero avvenire ad ogni singolo cambiamento apportato (al piu' schedulando temporaneamente i contenuti e ripetere il ciclo solo ogni N millisecondi), ma il problema sta' nella necessita' di esprimere la posizione assoluta della modifica (ad esempio, se correggo il testo nel mezzo di un file) senza spostare gli altri contenuti che vi stanno attorno (si ricorda che l'interfaccia POSIX nasconde il partizionamento dei files in blocchi e fa apparire il tutto contiguo: se si aggiungono N bytes, gli altri vengono shiftati e dunque riscritti...)
  • attivazione dei processi batch quando il PC e' in idle. Chiaramente questo meccanismo dovrebbe permettere di sfruttare il clock inutilizzato della macchina per procedimenti impliciti (ad esempio l'estrazione automatica dei metadati, o magari anche il fetching della posta e dei feeds RSS), e dovrebbe essere tarato per bilanciarsi autonomamente entro intervalli di tempo brevi: insomma, va bene fare questo genere di operazioni quando ad esempio parte il salvaschermo (come fa Seti@Home), ma personalmente credo che questo sia un approccio molto rudimentale al problema...
  • Staminal. Su questo mi sono gia' espresso in un paper apposito
  • estrazione dei metadati in funzione del contesto ambientale. Largamente ispirato dal gia' menzionato splendido articolo "Magic Ink", ritengo sia una idea potenzialmente buona quella di categorizzare (= popolare di metadati mirati) i contenuti in funzione del luogo, del tempo e, piu' in generale, del contesto in cui sono creati e manipolati. Sarebbe necessario ponderare sulle euristiche da adottare
Ci sarebbe forse altro da segnalare ma per ora mi fermo qui, anche perche' e' venuto tardi e tra l'inizio e la fine di questo post ho mandato una mezza dozzina di mail.
Di materiale su cui concentrarsi ce n'e' a iosa. Tutto sta nel trovare il tempo...

Nessun commento: