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

lunedì 21 gennaio 2008

Deja vu

Da parecchio tempo un processo in background nella mia mente elaborava il seguente quesito: "Nella futura interfaccia di Lobotomy come potra' l'utente gestire piu' applicazioni insieme?". Ieri sera, poco prima di addormentarmi, una possibile risposta. Assai inattesa.
La versione breve e' "Non lo potra' fare": nella sintesi e' corretta, ma fuorviante... Indi vediamo di fare ordine.

Riferimento: oggi, in un qualunque desktop environment, le diverse applicazioni aperte sono contenute dal window manager ed "indicizzate" per mezzo della taskbar, la classica barra che risiede lungo uno dei margini dello schermo (solitamente in basso) ed ospita un pulsantino per ogni finestra. Clicco sul pulsantino, e la relativa finestra del programma viene portata in primo piano. In questo modo posso avere piu' applicazioni aperte e saltare da una all'altra comodamente, accedere ad esse anche quando la loro finestra e' sovrapposta da altre, ed avere sempre sott'occhio l'insieme.

Osservazione 1: come gia' piu' volte detto, uno dei propositi per le prossime evoluzione di Lobotomy e' l'astrazione delle applicazioni (*tutte* le applicazioni) in quanto "modalita'" di visualizzazione ed interazione con un dato item preso dal filesystem o su un result set. Ogni modalita' (view) descrive come tale elemento o gruppo di elementi (model) debba essere rappresentato ed ordinato sul monitor basandosi sulle proprieta' comuni di tutti gli elementi (controller), e quali operazioni possono essere su di esso intraprese. In questa ottica ogni lavoro dell'utente e' formalizzabile in modo elementare secondo lo schema
result set + eventuale item nel result set attivo + modalita' di visualizzazione
Se sto manipolando il sorgente di Hyppocampus avro'
tutti i files .c nel gruppo 'Hyppocampus' + solver.c + editor di testo
Se sto leggendo i feed RSS
tutti i feed RSS ordinati per data + (nessuno) + feed reader

Osservazione 2: meditiamo sulle azioni che comunemente compie l'utente davanti al PC. Con quante applicazioni egli interagisce contemporaneamente? Una. E quando ha finito con essa, che fa? Mediamente torna su una di quelle con cui ha operato piu' di recente.
Il player audio si apre all'avvio del PC e lo si lascia in esecuzione da una parte, idem dicasi per il client di instant messaging, nel mio caso abbandono pure il calendar, basket, e spesso la moltitudine di applicativi (editor di testo col codice su cui lavoro, browser aperto sulle pagine di documentazione, console, filemanager...) che lascio salvati nella sessione trattata dal session manager essendo troppo pigro per riaprirli ogni volta. Quante finestre rimangono? Un numero compreso tra tre e dieci. A che mi serve averle tutte a portata, se non le uso? Ben poco...

Osservazione 1 + osservazione 2: se io posso risalire a qualunque condizione di utilizzo da parte dell'utente con un insieme ridotto di informazioni, ed osservato che l'utente ha un, passatemi il termine, working set limitato a cio' che ha fatto nell'ultimo periodo di tempo, posso mettere insieme le due cose? Se si, come?

L'idea e' quella di una sorta di pannello per mezzo del quale accedere alle ultime azioni intraprese, in ordine cronologico, chiuse quando vengono abbandonate e ricostruite ad ogni nuovo ingresso. Possiamo chiamarla "taskbar temporale". Io preferisco chiamarlo piu' romanticamente "deja vu".
A questo punto, l'utente non salta piu' tra una applicazione e l'altra ma naviga (come in un browser...) attraverso le sue proprie operazioni: sta editando del codice (condizione 1), non ricorda i parametri da passare ad una syscall, ricerca la pagina di manuale che la descrive e la apre nel terminale (chiudendo la condizione 1 ed aprendo la condizione 2), legge, e torna indietro all'editor (ovvero, viene chiusa la condizione 2 e ricostruita la gia' esistente condizione 1).
Questa impostazione e' assai piu' vicina a quello che ai fatti e' il modo di operare comune, prendendo come riferimento quel che fa chi si trova dinnanzi al monitor piuttosto che l'innaturale astrazione delle singole applicazioni e delle singole finestre.

Mi rendo conto che, cosi' spiegata, la cosa poco si comprende e possa pure apparire astrusa, ma io sono molto soddisfatto di questa illuminazione. Faro' in modo di descrivere il meccanismo nel classico documentuccio informale, aiutandomi con qualche mockup.
Ulteriori delucidazioni ed elucubrazioni a seguire...

Nessun commento: