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

domenica 31 agosto 2008

Io, me e l'OpenMoko

0 commenti
E' arrivato. Quasi non ci speravo piu'. Da ieri sono portatore insano di FreeRunner, noto ai piu' come OpenMoko!
Di recensioni sul dispositivo se ne trovano gia' a quintalate sulla Rete, vorrei comunque riportare qualche impressione a caldo (anzi: caldissimo) sulle primissime impressioni acquisite accendendo e provando per la prima volta il dispositivo.

L'apparato e' reattivo, l'avvio di una delle (poche) applicazioni disponibili contempla un'attesa minima, dunque nel complesso la capacita' di calcolo sembra sufficiente. Il touchscreen e' assai preciso finche' si resta con l'orientamente dello schermo verticale, se si passa a quello orizzontale tutte le pressioni vengono riportate addirittura un centimetro a sinistra: han cannato completamente qualche impostazione di Xrandr.
Vorrei riportare qualche considerazione anche sugli aspetti hardware avanzati e probabilmente piu' succulenti (GPS, Bluetooth, WiFi...), ma la dotazione software di default e' estremamente misera e non v'e' nulla che permetta di usufruire di tali potenzialita'.
Rimanendo sul discorso software: quello precaricato (la release 2007.2) fa schifo. Come detto non ci sono programmi di alcun genere, e quelli che ci sono sono inusabili e bacati: addirittura quello per consultare la rubrica non legge correttamente la SIM card e non lista molti dei contatti che vi si trovano. La possibilita' di eseguire un terminale sul proprio cellulare da molta soddisfazione, certo, ma almeno un browser web potevano metterlo!
In questo preciso momento sto effettuando il primo upgrade del software installato, giusto per vedere come si comporta, ma certamente nel piu' breve termine possibile riflashero' un'altra release di tutto il blocco software: provero' la versione 2008.8 di OpenMoko, mista GTK e QT, ma non e' detto che non mi decida a installare Debian (la ben nota distribuzione Linux, portata per l'occasione sull'hardware del FreeRunner) per godere di tutti gli applicativi gia' esistenti ed integrare personalmente le funzionalita' telefoniche.

Insomma: out-of-the-box l'OpenMoko non da molte soddisfazioni, ma e' sufficiente dare uno sguardo al wiki della community per avere l'imbarazzo della scelta su quale funzionalita' e possibilita' esplorare per prima.
Altre news seguiranno in proposito.

sabato 30 agosto 2008

Ubiquity

0 commenti
Brevissimo post per segnalare (anche io come molti altri) l'esistenza di una splendida estensione per Firefox: Ubiquity.
Annunciata nel blog del Mozilla Labs (che ultimamente pare darsi da fare... Evidentemente l'acquisizione di Humanized inizia a dare i suoi frutti...), questa estensione e' difficile da categorizzare, e la definizione che al momento mi pare piu' congeniale e'... un terminale per il Web. Pigiando una combinazione di tasti (Alt+Spazio di default) in alto a sinistra appare una vera e propria linea di comando in cui e' possibile eseguire comandi (implementati in Javascript, e facilmente installabili navigando il web) grazie ai quali si puo' accedere ad una quantita' di funzionalita', dal reperimento di una mappa su Google Maps all'immissione di un twit su Twitter.
Certamente la visione del video di presentazione e' molto piu' esplicativa che non la mia descrizione.
Il post del blog linkato all'inizio pullula di riferimenti ad altri articoli in cui le diverse persone coinvolte nello sviluppo di questa applicazione (tra cui Aza Raskin, figlio del ben piu' noto e mai dimenticato Jef Raskin) si sperticano nel proclamare l'efficacia del miscelare interfaccia testuale con interfaccia grafica, opinione che non solo condivido ma ho a mio tempo (nel 2004) esplorato all'interno di BrainTop.
Oltre che ad un ritorno ai mainframe ed ai thin client, vediamo anche un ritorno alla linea di comando?

mercoledì 27 agosto 2008

Thoughts

0 commenti
Finalmente, dopo mesi di citazioni e rinvii, ho finalmente pubblicato il paper descrittivo del linguaggio XML destinato ad essere interfaccia al sistema di templating che rappresentera' prima o poi l'intero engine grafico del desktop environment Lobotomy.
L'articolo si trova qui, e' scritto in italiano (e non nel mio solito maccaronico inglese...), e sebbene non dettagliato e completo include comunque buona parte di quello che si intende costruire in Synapse.
Si ringrazia l'amico HoX per la revisione e per aver subito evidenziato diversi punti di incompletezza su cui prossimamente lavorero', in attesa di eventuali altri commenti esterni.

martedì 19 agosto 2008

La Noia Nobilita l'Uomo

0 commenti
Poiche' in questo momento mi sto occupando di un lavoro (e non posso dunque concentrarmi sufficientemente sul codice di Lobotomy) assai noioso e di cui mi pento ogni giorno per averlo preso in carico, invece di impegnarmi per terminarlo al piu' presto e levarmelo dalle scatole mi invento ogni possibile scusa per distrarmi e pensare ad altro. Pessimo modo di condurre i propri affari, ma son fatto cosi'.
Ieri ho messo ordine nella pagina Flickr dedicata a Lobotomy suddividendo le poche (= due) immagini disponibili in due gruppi, uno dedicato agli scatti catturati durante il lavoro sul progetto e l'altro per eventuali screenshot dell'opera man mano che evolvera' (se mai evolvera', di questo passo...). Presto o tardi introdurro' anche un'altro gruppo, dedicato ai mockups di cui la mia documentazione e' gia' ricca e soprattutto a studi per possibili templates da introdurre una volta implementato l'interprete in Synapse: proprio ieri grazie a questo video ho avuto ispirazione per un'altra modalita' di visualizzazione "ambientalmente contestuale" dei files (maggiori dettagli a seguire ;-) ).
Un'altra cosa che vorrei fare e' rivedere il sito. Lo so, gia' ci misi mano non troppo tempo addietro, e da allora non ho combinato quasi null'altro sull'intero progetto, ma al momento la pagina fa realmente orrore e non mi stupisce che nessuno se ne curi. Vorrei rifarlo organizzando il layout nello stesso modo (piu' o meno) di come vorrei che si presentasse Synapse, metter su una sorta di prototipo HTML entro cui piazzare ovviamente i contenuti informativi del sito ma comunque entro un certo criterio che possa far presagire quel che si vuole portare sul desktop.
In ultimo comunico che ho quasi terminato il documento descrittivo del linguaggio XML da usare nei gia' menzionati templates da far interpretare a Synapse. Dopo aver rinunciato a stenderlo in inglese (troppo lungo e troppo complesso per le mie capacita'), averne rivisto la struttura e averlo ricominciato daccapo un paio di volte, mi resta solo da ritoccare qualche riferimento interno al paper e sbatterlo online. Ammetto che non sia venuto un capolavoro di chiarezza e semplicita', in quanto non e' semplice illustrare in modo lineare una idea cosi' farlocca come quella dell'abbandono dell'architettura software usata da cinquant'anni a questa parte, e proprio per appurare la sua comprensibilita' lo faro' leggere preventivamente a qualche mia vittima designata.
Con questo, e' tutto. Torno ad occuparmi del mio noioso lavoro.

lunedì 18 agosto 2008

Aurora

0 commenti
Avevo scorto un link a questa cosa tempo addietro, ma poi fattori ambientali mi avevano impedito di approfondire, come al solito me ne ero dimenticato, e ieri contemplando lo stream di del.icio.us ho trovato questo articolo con un nuovo riferimento al video cascato nell'oblio.
L'oggetto della discussione e' Aurora, concepito da Adaptive Path e presentato nel contesto della Concepts Series promossa da Mozilla Labs.
Cos'e'? In parole semplici un browser, all'atto pratico una proposta di modello di interazione ispirata dalla sempre piu' forte spinta del destktop verso il web. Poiche' in un ipotetico futuro la Grande Rete sara' contenitore unico ed universale di informazioni ed applicativi software, l'unico programma con cui l'utente interagira' sara' appunto il browser, modificato e potenziato rispetto a quanto siamo abituati oggi ma pur sempre un browser.
Nella visione di Adaptive Path il programma non solo permette di renderizzare le pagine web (ed e' il minimo...) ma organizza anche la cronologia secondo un ordinamento basato sulle correlazioni semantiche dei contenuti visualizzando poi i dati in gruppi separati navigabili secondo una modalita' spaziale. Non troppo dissimile da quanto vuole fare ItsMe, con la differenza che in Aurora la creazione e la gestione dei gruppi, al pari di pressoche' ogni altro compito di processamento, sembra essere molto piu' automatizzata e a discrezione dell'algoritmo interno.
Nella pagina del concept si trovano almeno quattro video di cui uno solo, il primo, ha una qualche parvenza di realismo, gli altri tre mi sembrano assai pacchiani sebbene in fin dei conti neppure cosi' infondati: i formati universali che descrivano i dati secondo sintassi comprensibili (e dunque elaborabili) dalla macchina si stanno propagando, devices delle dimensioni di una carta di credito non sono ancora possibili ma il progresso delle tecniche di miniaturizzazione lascia pensare che un giorno ci si possa arrivare, ed in merito alla scenetta del terzo filmato non e' poi cosi' impossibile reperire informazioni su un prodotto commerciale facendogli semplicemente una foto considerando che gia' adesso esistono strumenti che associano immagini uguali o simili tra loro (giusto oggi e' entrato in private beta TinEye).
Morale della favola: stiamo tornando al thin client? Stiamo tornando ad usare semplici terminali che vanno a pescare software ed informazioni su macchine remote, cosi' come in voga agli albori della scienza informatica quando un singolo mainframe serviva le richieste di un numero di utenti sparpagliati nel laboratorio con davanti un monitor, una tastiera e null'altro? Forse si (con l'ovvia sostituzione del mainframe con il Cloud Computer), forse no. Ed e' un bene? Forse si, forse no. Di buono in questa prospettiva c'e' la garanzia di accesso ad informazioni sempre aggiornate ed arricchite programmaticamente mischiando i dati dell'utente con il flusso proveniente dal resto della Rete, di cattivo (oltre alle ovvie considerazioni sulla privacy, ma oramai ho smesso di credere che in un mondo interconnesso possa esserci molto spazio per l'intimita'...) c'e' l'eccessiva esposizione e contaminazione di quegli stessi dati, cosi' mutevoli e soggetti a cambiamenti non necessariamente richiesti e graditi. Per non considerare il rischio portato dal fatto di centralizzare il point of failure di qualsiasi attivita' sociale, economica e ricreativa su un'unica struttura (l'Internet) e su un numero limitato di providers per i servizi essenziali.
Piu' passa il tempo e piu' sono convinto della soluzione del "Personal Cloud" (che bel nome, l'ho inventato adesso! Dovrei registrarlo sperando che mi vada meglio che a Dell ;-) ) la cui struttura e' stata menzionata in un precedente post: una rete di macchine personali, alcune da portare con se' ed altre con cui arredare la casa, che interagiscano pienamente tra loro ed in modo contenuto con l'Internet, in modo da usufruire delle potenzialita' della moderna tecnologia senza poggiare necessariamente tutto su pochi nodi cruciali e senza sacrificare troppo alla privacy o al pieno possesso dei propri contenuti.
Sara' sara' l'aurora...

venerdì 8 agosto 2008

Modulare by design

0 commenti
Come talvolta accade questo post viene pubblicato piu' come mio personale appunto, in quanto non viene menzionato nulla di particolarmente nuovo sull'universo Lobotomy: gia' piu' volte ho ribadito la volonta' di spezzettare lo strato funzionale dell'intero sistema in diversi componenti indipendenti tra loro e con cui comunicare (localmente sulla stessa macchina, ma anche remotamente) per mezzo di D-Bus, adesso un poco alla volta sarebbe il caso di fare qualcosa di concreto (tempo permettendo).
Giusto negli scorsi giorni ho esposto questa mia idea su Gnome-Look.org ma ho ottenuto scarso feedback, soprattutto perche' comprensibilmente l'adozione di codesta architettura implicherebbe la riscrittura dell'intero Gnome e delle relative applicazioni e giustamente non e' una ipotesi particolarmente allettante per chi gia' ci lavora da anni, ma in questa stessa settimana ho avuto due pragmatiche dimostrazioni di quanto cio' non solo avrebbe pieno senso di esistere ma e' anche quasi una necessita' nel mondo odierno, ove sempre di piu' sono i devices (computer, laptop o mobili) usati da ogni persona: una volta avrei voluto abbassare il volume del player mp3 in esecuzione sul mio desktop, essendo mollemente adagiato sul divano col portatile sulle gambe ed avendo poca voglia di alzarmi, ed in un'altra occasione avrei voluto scaricare un file Torrent usando il mio server domestico (perennemente acceso, anche di notte) che pero' non ha un monitor attaccato ed e' accessibile solo via SSH. Chiunque potrebbe obiettare a queste mie osservazioni dicendo "bravo pistola, di applicativi che fan quello che vuoi ed usabili in remoto o via interfaccia web ce ne sono quanti ne vuoi, installati quelli e non rompere le scatole!", ma trovo questo genere di soluzioni assai povere e scarsamente flessibili: l'interfaccia sarebbe comunque sempre diversa tra un'applicativo e l'altro, e non v'e' modo di integrare la funzionalita' desiderata al di fuori del programma stesso.
Al momento sto valutando la possibilita' di iniziare a sviluppare uno straccio di client Torrent come dico io, dunque sottoforma di demone di sistema (costruito assemblando l'API gia' esistente) con cui dialogare in principio con un programmino a linea di comando e poi magari con un frontend grafico, ma sempre e comunque tenendo separate le componenti funzionali e quelle di interazione: se e quando mi decidero' a farlo chiaramente lo annuncero' qui e pubblichero' l'opera su BarberaWare, all'inizio lo svilupperei come applicativo a se' ed un giorno potrei riutilizzarlo all'interno di Lobotomy aggiungendo quelle due o tre funzioni per agganciarlo al resto del sistema.
Dopodiche' non sarebbe male esplorare la possibilita' di wrappare D-Bus in XML-RPC (con questo?) per eseguire comandi molto remotamente (non in LAN ma attraverso l'Internet, ad esempio per aggiungere un'altro file nella lista di torrents in download sul proprio server mentre ci si trova fuori casa, contesto in cui il solo D-Bus non se la cava troppo bene), costruire un sistema unico di discovery (con Avahi) e mettere insieme un framework facile facile per implementare interfacce web (un binding PHP di D-Bus ancora sembra non esserci, ma non e' che abbia particolare voglia di studiarmi pure Ruby...), insomma di spunti ce ne sono fin troppi.
Vedro' cosa riusciro' a combinare nelle due settimane di ferie dal lavoro che iniziano oggi...

martedì 5 agosto 2008

Un Castello tra le Nuvole

0 commenti
Da qualche tempo mi son reso conto di essere talvolta un po' troppo influenzabile dalle tendenze (anzi, chiamiamole pure "mode") tecnologiche, ed ora, dopo aver immaginato una interfaccia web based per Lobotomy quando la parola "ajax" veniva menzionata in ogni articolo di blogs ed aggregatori, il mio inconscio geek sta valutando le potenzialita' di quello che e' chiamato "cloud computing".
Non e' nuova l'idea di integrare all'interno del futuro (futurissimo...) Lobotomy strumenti per la distribuzione del calcolo necessario per l'estrazione automatica dei metadati ed altri task con forti richieste computazionali, ma nuove porte si aprono se si gettano nel calderone anche le possibilita' della distribuzione dello storage.
Espandendo il filesystem e e copiando (e ridondando) i files su piu' macchine, all'interno della propria LAN domestica o appunto nella Cloud, in un colpo solo si ottiene il duplice risultato di condividere i contenuti affinche' siano fruibili su piu' devices (il desktop di casa, il portatile, il MID...) e di mantenerne copie di sicurezza da sfoggiare in caso di catastrofe - evento neppure cosi' sporadico data la sempre maggiormente scarsa qualita' dei componenti hardware - mentre applicando lo stesso concetto direttamente al database responsabile di indicizzare i metadati che descrivono ogni elemento si riuscirebbe ad esportare le proprieta' tipiche di Lobotomy anche laddove non sarebbe altrimenti possibile: sugli apparati mobili, che non sarebbero in grado di contenere fisicamente (e dunque usare) tale immensa mole di informazioni, e sul web, al fine di condividere i dati tra piu' utenti (i propri amici e conoscenti, ma anche tutto il resto del mondo).
Proprio con questo secondo obiettivo ho iniziato a documentarmi un pochino su HBase, Hypertable e prodotti analoghi: certamente e' molto presto per mettersi a progettare un sistema cosi' complesso, ma e' bene comunque valutare a priori questa direzione per poterla successivamente integrare nel modo piu' pulito e rapido possibile a tempo debito.