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

venerdì 30 marzo 2007

Domus Area

3 commenti
Da qualche tempo si diffondono nel sottobosco della Rete rumors ed indiscrezioni in merito ad un Windows Home Server prodotto da Microsoft. Che e' sta' roba? Molto semplicemente, una appliance destinata a fungere da server in ambiente domestico, un moderno focolare digitale che permette di automatizzare le procedure di backup, file serving, aggiornamento delle macchine nella LAN casalinga ed altro.
Per quanto sia lungi dall'essere ottimista e benevolente nei confronti di questo ennesimo rimaneggiamento del Monopolista d'oltreoceano, attuato con ogni probabilita' al solo fine di propinare all'ingenua utenza consumer una ennesima copia di Windows per cui pagare la licenza, ammetto che la mia prima ispirazione in merito ad implicazioni "domotiche" di Lobotomy (gia' vagamente accennate in precedenti posts) mi sia venuta proprio leggendo di questo prodotto: il fatto che nella casa si materializzino macchine dedite alla manutenzione delle macchine stesse e' un primo, timido passo verso l'automatizzazione della casa stessa, e mi sento di affermare che questa nuova trovata dei compagni di merende di Redmond possa essere considerata una prima sperimentazione della commercializzazione di massa di applicazioni per la domotica.
Ovviamente, le mie aspirazioni per Lobotomy sono ben diverse da quelle, prettamente commerciali, di Microsoft: laddove il WHS e' destinato a svolgere funzioni di manutenzione e monitorazione della LAN che gli si trova intorno, il "Lobotomy Home Server" (spero di trovare un nome piu' appropriato quando iniziero' a stendere una vera specifica del progetto ;-P ) e' destinato ad essere il cuore di tutto il sistema domestico, ed anzi potrebbe tranquillamente assolvere le veci di terminal server cui gli altri dispositivi si collegano passivamente (rimando ai pensieri espressi in passato sui sistemi operativi web). Immagino una macchina che costantemente aggiorna ed arricchisce il database di metadati sfruttando una sorta di protocollo P2P condividendoli con il resto della Rete, pronta a reagire agli input vocali degli utenti che richiedono di ascoltare un particolare album o vedere un particolare film; che costantemente scarica, analizza e parsa gli RSS dei siti preferiti per fornire a chi torna dal lavoro a sera fatta un report di quanto e' successo nel mondo in sua assenza; che fa da mail server locale e effettua un data mining sui messaggi in entrata relazionandoli al calendar...
Quando mi decidero' a formalizzare questi pensieri in una forma piu' analitica vi faro' sapere, ma prima di arrivare allo scenario sopra ipotizzato molto altro c'e' da implementare... E sognare...

Mapping Environment

0 commenti
Come preannunciato nel precedente post, ho or ora pubblicato una paginetta di descrizione per una ennesima idea legata per lo piu' a Kiazma e da integrare poi nella prossima incarnazione di BrainTop. Poiche' si tratta di un concetto ancora in fase di elaborazione (la quale elaborazione rimarra' probabilmente in sospeso fino al momento dell'effetivo inizio dell'implementazione) e dunque privo di una chiara definizione, ho provveduto ad arricchire lo (scarso) testo con un paio di immagini che mi paiono piu' che eloquenti...
Piccolo promemoria per me: devo provvedere a reintegrare lo script PHP che genera le pagine della documentazione "informale", attualmente ospitato sul mio server domestico insieme al mio snobbato e scarsamente aggiornato blog personale, nel set di script che gestiscono il sito primario; a forza di cambiamenti e modifiche, troppo spesso mi capita di dover rimettere mano all'HTML generato per adattarlo al layout corrente...

mercoledì 28 marzo 2007

Perche' Lobotomy?

0 commenti
Pensavo di cambiare il testo di presentazione che compare nella homepage del progetto Lobotomy, che attualmente recita (nel mio maccaronico inglese :-P ) "Lobotomy is the collective name that involve more projects [...] all targeting the same task: to develop a better paradigm of desktop environment.".
Ponderando sugli obiettivi del progetto, e sul suo sviluppo, mi rendo conto pero' che questa dicitura e' parzialmente errata: lo scopo non e' quello di costruire un desktop environment fine a se' stesso, emulo di Gnome o di KDE (o anche di XFCE), ma di fungere da contenitore di idee, eterno esperimento senza una fine (e, del resto, senza un inizio: le origini del progetto si perdono in una serie infinita di propositi ed ispirazioni successive), sospinto da un perpetuo moto creativo alimentato dal desiderio di ricerca.
Non esiste da nessuna parte un appunto con scritto "quando Lobotomy sara' fatto cosi', sara' finito", ne' tantomeno una percentuale di completamento dell'opera intera, e neppure un riferimento a quello che ci si aspetta di avere tra un mese o tra un anno.
Viviamo in un mondo governato dalle leggi (e dalle esigenze) di mercato, si tende sempre a non allontanarsi piu' di tanto dal seminato, da cio' cui il pubblico e' avvezzo, per non rischiare un flop; pure i grandi progetti liberi soffrono di questa staticita' innovativa, dovendo spesso rispondere agli sponsors, o alle software house che detengono la leadership dell'opera che hanno iniziato a solo scopo propagandistico, o piu' semplicemente ai capricci di un maintainer che ha uno specifico obiettivo e vuole raggiungere solo quello. Cosi', lo stimolo intellettuale deve venire dal basso, da chi lavora a tempo perso ad un qualcosa piu' per passione che per un ritorno economico e/o di immagine, e non perde nulla se il suo prodotto non piace a nessuno.
Le specifiche (che non sono scritte da nessuna parte, se desiderate conoscerle telefonatemi che ve le spiego a voce ;-P ) del progetto Lobotomy cambiano un giorno si e l'altro pure, raramente una release mantiene compatibilita' con quella precedente, ed i componenti sono aggiunti e rimossi con la massima disinvoltura. Proprio questa sera ho iniziato a stendere un ennesimo paper introduttivo (che pubblichero' nei prossimi giorni nella pagina dedita a Kiazma) ad un nuovo concetto di manipolazione degli elementi nell'interfaccia grafica, che portera' ad una redifinizione delle fondamenta di BrainTop (che tanto deve essere riscritto daccapo...) e a chissa' quali nuovi cambiamenti nella libreria di widgets: ancora non ho finito di meditare sulle implicazioni del nuovo concept, e gia' sono col codice tra le mani ;-P.
A cosa serve Lobotomy? Ad ispirare. Chissa' che qualcosa di buono non salti fuori da questo marasma di stravaganti proponimenti, e che i teams dei gia' citati Gnome, KDE, XFCE o quale altro noto desktop environment pensino "Ehi, che figata questa feature! Implementiamola anche noi!".

lunedì 26 marzo 2007

Trackers

0 commenti
(Quasi) ogni componente del Lobotomy Project ha una pagina dedicata su un collaborative development environment: SourceForge.net, GNA!, BerliOS... Eppure sinora avevo usato i preziosi strumenti messi a disposizione solo in minima parte: per i files di release, per le mailing lists, e nulla piu'.
Negli ultimi due giorni ho provveduto pero' a caricare i trackers dediti ai tasks aperti per Hyppocampus e per SubConsciousDaemon, in modo che chiunque si trovi a passare da quelle parti possa vedere quali compiti previsti ma ancora da svolgere, e chissa' che colto da illuminazione non mi mandi una mail per offrire la propria collaborazione...
In attivita' sono comunque anche i trackers per i bug reports e le feature requests: aldila' dell'indubbia utilita' di un report (ahime', non sempre ho tempo per testare proprio tutto tutto, e sinora le varie release si distinguono per l'instabilita'...), ricevere un poco di feedback non dispiace mai ;-).

domenica 25 marzo 2007

0.2.1

0 commenti
Con un poco di ritardo rispetto al rilascio effettivo, segnalo anche qui la disponibilita' della release 0.2.1 di Hyppocampus e di Synapse. Questa particolare versione e' stata un tantinello travagliata: uscita con un mese di ritardo rispetto alle aspettative e non particolarmente testata prima della pacchettizzazione, rappresenta piu' che altro una release transitoria di cui e' altamente sconsigliato l'utilizzo se non a fine di analisi e sviluppo.
Tra le features di spicco, il pannello delle "actions" in Synapse (che permette di arricchire le funzionalita' incluse nel menu contestuale di un file a seconda dei metadati assegnati al file stesso) ed una prima incarnazione del plugin dedicato al parsing dei files vCARD usati da KAddressBook, che permette di estrarre le informazioni ivi contenute e di tramutarle in un formato accessibile al filesystem e, soprattutto, al parser SQL.
Gia' che ci sono, esprimo qualche anticipazione sulla release 0.2.2, la quale, stando al calendario, dovrebbe essere disponibile verso la fine del mese prossimo, o comunque il prima possibile, per sopperire all'incompletezza della versione attualmente distribuita: tra le nuove features di primaria importanza troviamo la prima specifica dell'API per la creazione di plugins per SubConsciousDaemon, che permettera' di arricchire facilmente il set di tools dediti all'estrazione automatica dei metadati dai files immessi nel filesystem, ed un primo traduttore umano/Hyppocampus, che dovrebbe permettere una interazione un tantino piu' agevole alla rigida sintassi SQL ammessa dal parser.

Una casa per SubConsciousDaemon

0 commenti
Finalmente mi son deciso a dedicare al SubConsciousDaemon, il componente di Lobotomy dedicato al data mining del filesystem, una pagina. Il progetto e' stato registrato su GNA!, simpatico collaborative development environment supportato da FSF France, presso questo URL: ivi si trovano i trackers, il riferimento alla mailing list di sviluppo, e le release rilasciate (per ora nessuna, essendo l'ultima, la 0.4, inclusa in Synapse 0.2).
Questo particolare segmento di Lobotomy ha subito una discreta crescita negli ultimi due mesi (nel senso che adesso bene o male fa qualcosina, prima non faceva assolutamente nulla...), e molto di piu' dovra' crescere nel prossimo futuro, tanto che con ogni probabilita' sospendero' per breve tempo le migliorie a Synapse (applicazione dedicata all'utente finale, ma inutile finche' lo strato di gestione delle informazioni non e' completo e stabile) per dedicarmi al suo perfezionamento ed arricchimento.

WinFS

0 commenti
Mi rammarico di non essermi documentato prima in merito al WinFS, il filesystem che avrebbe dovuto essere integrato nella release corrente del sistema operativo rilasciato da Microsoft ma che oramai rappresenta un progetto defunto. Solo questa sera ho letto la pagina dedicata su Wikipedia, e mi accorgo che i punti in comune tra esso e Hyppocampus sono moltissimi: sebbene la metodologia di implementazione sia diversa, gli obiettivi e le funzionalita' integrate sono estremamente simili. Entrambi permettono di eseguire ricerche su dati di natura diversa relazionandoli tra loro, entrambi hanno un sistema di "estensioni" (i plugins in Hyppocampus, gli schema in WinFS) che gli permettono di manipolare specifici files, entrambi sono interrogabili con query (SQL per Hyppocampus, ed una particolare implementazione chiamata OPath per WinFS) e funzionano perlopiu' generando directory virtuali in base alle richieste pervenute...
Molti sono pure i punti di differenza (in WinFS i files sono "fortemente tipati", mentre in Hyppocampus al contrario uno degli obiettivi e' quello di mascherare il piu' possibile il tipo di file che si sta maneggiando), ma penso comunque che potro' trarre qualche piccola ideuzza da questa lettura e trarre ispirazione per future features che ancora non avevo previsto, soprattutto per quanto riguarda l'incarnazione "networked" del filesystem del progetto Lobotomy, che ancora non gode di una definizione definitiva.

mercoledì 14 marzo 2007

On the Web

0 commenti
Come accennato in un precedente post, in questo periodo sto lavoricchiando con il Google Web Toolkit, interessante framework Java per l'implementazione di applicazioni web su tecnologia AJAX. Sebbene sia poco avvezzo a questo tipo di strumenti (sono e resto pur sempre uno sviluppatore C ;-) ), ammetto che esso sia particolarmente comodo per la creazione di applicazioni client/server anche complesse, e, grazie all'architettura a widgets con poche righe di codice si costruiscono graziose e versatili interfacce utente.
Da qui, l'idea (gia' ponderata in passato, ma oggi meglio delineata) di aggiungere nella roadmap del progetto Lobotomy una implementazione web based di BrainTop; poiche' tale componente dovra' essere sostanzialmente ridefinito da principio (troppo tempo e' passato dall'ultima release, e troppe cose sono cambiate nel resto del sistema), la prossima versione (che con ogni probabilita' e' posticipata alla serie 0.3 del progetto nel suo complesso) sara' stesa con un occhio di riguardo per un possibile "porting" sul web, e la stessa Kiazma, libreria che funge da collante tra tutte le componenti utente di Lobotomy, potrebbe essere scissa in due parti: quella desktop, basata sempre su GTK, e quella web, ingegnerizzata a partire da GWT.
Il desktop web e' una tendenza relativamente recente, ma gia' si contano gli esempi di notevole rilievo, dal simpatico eyeOS al Windows Live di Microsoft. Personalmente, allo stato attuale delle cose, nutro ancora notevoli dubbi nei confronti del nuovo approccio implicato da questa metodologia di interazione uomo/macchina, soprattutto per la scarsa (per non dire inesistente) interoperabilita' tra diversi ambienti, ma credo tuttavia che esso possa trovare applicazione in contesti ben diversi da quello in cui e' coinvolto adesso ed anzi sia un indispensabile elemento in campo domotico: sfruttando appropriatamente il principio del "un computer su cui gira il programma, tanti terminali da cui fruirne", con un singolo server domestico ove centralizzare la computazione sara' possibile accedere alle varie funzionalita' offerte da qualunque punto della casa / dell'ufficio (o pure dall'esterno, via Internet), anche con terminali di scarsa potenza (e dunque di minimo ingrombro e consumi), usando pero' sempre la stessa interfaccia di interazione, il desktop web appunto.

mercoledì 7 marzo 2007

Staminal

0 commenti
Dovendo dare uno spazio al link che punta a questo blog, ho colto l'occasione per applicare qualche piccola (piccolissima) modifica al sito web primario del progetto Lobotomy: nulla di particolare da segnalare, semplicemente mi diletto (con scarsi risultati...) al design web.
Cosa invece degna di nota e' l'inclusione, nella pagina dei TODO, di Staminal, una delle primissime idee che accompagnarono la nascita del progetto Hyppocampus e che, per distrazione, non avevo ancora incluso: si trattera' di un "filtro" posto tra il filesystem e le applicazioni utente, che permettera' di tradurre i dati mantenuti in memoria permanente in un formato unico ed universale (probabilmente XML o qualcosa di estremamente simile) nel formato richiesto dall'applicazione stessa. Ad esempio, aprendo un file originariamente in formato PDF con OpenOffice mi vedro' restituire un OpenDocument coerente alla formattazione nativa, cosiccome aprendo un filmato con un editor grafico potro' editarne un singolo frame come fosse una immagine.
Si tratta di un progetto estremamente ambizioso e di difficile applicazione, e proprio per questo e' rimandato ad un futuro remoto, ma in se' include uno degli obiettivi primari del progetto Lobotomy nella sua interezza: la "liberazione" dell'informazione da ogni forma di formattazione (la quale rappresenta solo una forma di contaminazione dell'informazione stessa).