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

giovedì 29 novembre 2007

Fuori

0 commenti
Quando ho trovato questo link in una mail della mailing list del Progetto Clutter ho pensato "Carino, peccato sia una patch esterna a GTK. Chissa' se includeranno mai qualcosa del genere nel mainstream...".
Ieri, dal blog del funambolico Mac Slow, sono venuto a sapere che la patch per l'offscreen rendering potrebbe essere inclusa gia' nella versione 2.14 (la prossima stabile). E saranno possibili effetti come questo qui.
La stessa cosa dicasi sul fronte QT.
Cosa implica tutto cio'? Implica nuovi effetti, nuove e sinora inaudite possibilita' per le interfacce utente delle quotidiane applicazioni, e tanto caos.
Rimango sempre dell'idea che tutti questi strumenti offerti ai designer di user interfaces, sebbene potenzialmente utilissimi e comunque indubbiamente gradevoli graficamente, porteranno a breve ad una forte frammentazione nel look & feel di ogni applicazione, ed invece di procedere sulla strada dell'integrazione ognuno si sentira' legittimato ad applicare rotazioni, zoom, animazioni e quant'altro dove piu' gli aggrada, in una continua competizione a chi realizza l'interfaccia piu' estrosa (ed inusabile...).
C'e' da credere che a breve nasceranno frameworks (o si modificheranno quelli esistenti) che permetteranno di sfruttare comodamente tali innovazioni, intrinsecamente limitando eventuali colpi di testa contenendo le velleita' artistiche dei developers entro una API comune per tutti e ben specifica, ma la tentazione resta sempre forte, soprattutto quando si hanno a disposizione librerie cosi' comode e potenzialmente cosi' distruttive come la gia' citata Clutter.
Per quanto mi riguarda, continuo a lavorare (o meglio: continuo a sperare di poter lavorare :-P ) sul mio proprio toolkit (Kiazma) con l'intento di usare sempre e solo quello nel contesto di Lobotomy ed uniformare l'interfaccia delle applicazioni che saranno (un giorno o l'altro...) comprese nell'ambiente, ed accolgo di buon grado la possibilita' di usare i widgets gia' esistenti in GTK, con il proposito di riutilizzare soprattutto gli elementi di input (GtkEntry, GtkTextView...) ed integrare il toolkit con widgets espressamente rivolti alla manipolazione degli items provenienti dal filesystem Hyppocampus.
Ma spero che la squadra di Gnome corra al piu' presto ai ripari, stendendo nel caso una versione 3.0 della loro HIG che comprenda anche indicazioni sull'utilizzo dell'offscreen rendering.

mercoledì 28 novembre 2007

del.icio.us

0 commenti
Tra i miei alti e bassi nell'approccio alle tecnologie "sociali" offerte dall'odierno Web, solo oggi ho scoperto del.icio.us .
O meglio: conoscerlo lo conoscevo gia', ma oggi ho fatto il grande passo di registrarmi un account. Ho iniziato a popolarlo con i miei bookmarks e qualche link pubblicato in passato su questo stesso blog, ed ammetto che in fondo non e' male.
La cosa che piu' in assoluto mi ha stupito e' stata la gestione dei tags: osservando come sono usati su questo sito, ovvero in modo "sensato", mi rendo conto che essi hanno davvero una qualche forma di utilita'. Come vuol dire "sensato"? Vuol dire che il form per l'inserimento di nuovi links e la modifica di quelli esistenti aiuta l'utente a selezionare tags che gia' sono stati assegnati ad altri elementi personali, oppure allo stesso elemento ma da altri utenti, ed in tal modo si riesce ad evitare dispersione e frammentazione dell'informazione. Che e' il rischio piu' grosso nella categorizzazione a tags.
Senza contare che sto' del.icio.us e' davvero ricco di contenuti: sono andato a curiosare nelle pagine di coloro che avevano come me bookmarkato URL scarsamente popolari, ed in breve ho scoperto perle nascoste come questa qui. Il fatto di far organizzare i riferimenti dalle persone risulta ottimo per indicizzare con precisione pagine che altrimenti si perderebbero nel marasma della Rete ed ignorate dagli spiders dei motori di ricerca, e seguendo le catene di tags che legano una pagina con l'altra ci si trovano risultati spesso inaspettati.
Imperterrito continuo a pensare che, in ambiente desktop, i tags non servano a nulla, ma appunto perche' sul desktop l'utente tagga i files suoi secondo i suoi criteri e null'altro: l'unico modo per trarre profitto da questo meccanismo di organizzazione e' la collaborazione e la condivisione.
Il tagging funziona solo sul Web.

lunedì 26 novembre 2007

Back on SVN (?)

0 commenti
Due minuti fa', colto da ispirazione, ho iniziato a meditare sul fatto di tornare ad usare il controllo di versione su SourceForge per Hyppocampus.
O meglio: iniziare a farlo.
A suo tempo iniziai ad usare il CVS per BrainTop, da lungo tempo non piu' aggiornato (non essendo piu' il componente mantenuto, almeno per ora e per molto tempo ancora...) e lasciato in condizioni disastrate, ma lo feci in un tempo in cui sapevo a malapena cosa fosse il controllo di versione.
Di acqua sotto i ponti ne e' passata: SVN lo uso regolarmente a lavoro, e sinora ho gestito i repository localmente nella mia LAN domestica (piu' con finalita' di backup che altro); solo recentemente ho preso a sfruttare lo stesso servizio su Savannah (per Synapse) e GNA (per SCD), giusto giusto in tempo per lasciarli da parte e sviluppare Hyppocampus 0.3, e forse e' tempo di utilizzare questo potente strumento regolarmente.
Ammetto di essere un pessimo utente di SVN, tendo ad usarlo con lo scopo di mantenere una copia ridondante del mio codice piu' che per fornire una versione sempre aggiornata (ma quantomeno corretta) del software ed ho l'update facile, ma vedro' di abituarmici col tempo.
Domani ci pensero'...

sabato 24 novembre 2007

Well-formed data

0 commenti
Bazzicando per la Rete ho trovato poco fa' questo grazioso sito, a prima vista mantenuto da un tot di ex-studenti del nord Europa con il pallino per la semantica e l'organizzazione dei dati. Nonostante il termine "semantico" sia a tutt'oggi l'ennesima buzzword usata ed abusata (nel giro di pochi mesi la sentiremo nominare tanto spesso quanto "2.0" adesso...) queste pagine offrono quantomeno qualche originale spunto di riflessione.
Le demo proposte (oltre ad essere spettacolari :-P ) fanno toccare con mano i risultati di una accurata e ponderata visualizzazione delle informazioni: con un poco di zoom e qualche linea si interconnettono i tags dei bookmarks su del.icio.us, rendendo estremamente rapida l'individuazione di contenuti di interesse, ed una serie di filtri a cascata applicati su dati solo parzialmente correlati tra loro permettono di individuare con pochi click relazioni non aspettate.
Il tipo che manda avanti il sito ha (inevitabilmente) una nutrita collezione di bookmarks, e sul sito stesso appaiono infiniti links dai titoli estremamente promettenti.
Questa scoperta casca proprio a fagiuolo: giusto ieri meditavo sul fatto che, nel momento in cui il sostrato del VFS in Hyppocampus sara' quantomeno rilasciabile (ed oramai non manca molto, abbiate fede), tocchera' mettere mano alla componente grafica di Lobotomy. E stravolgerla cosiccome e' stato per il filesystem. Finche' dovro' semplicemente wrappare gli oggetti che vengono da Hyppocampus in widgets grafici ad-hoc non sara' un problema, ma ad un certo punto vorrei fermarmi un attimo e rivedere pesantemente il modo in cui tali widgets dovranno interagire tra loro e con il resto dell'ambiente.

lunedì 19 novembre 2007

Ubuntu Home Server

0 commenti
Ho scoperto solo adesso che esiste una cosa di cui da lungo tempo vado meditando.
Ebbene si: l'alternativa Linux al Windows Home Server esiste, e non potrebbe essere altro che non una versione personalizzata di quella che al momento e' la distribuzione piu' diffusa al mondo.
Il sito di Ubuntu Home Server non mi sembra nulla di particolarmente sofisticato, e' evidente che il progetto e' giovane e scarsamente organizzato da una modesta community, ma almeno il potenziale c'e': tutto sta' in quanto i developers si impegneranno nel prossimo futuro, considerando che sinora il lavoro svolto mi sembra cosi' cosi' e tra le features correnti mancano elementi essenziali eppur facilmente implementabili (come ad esempio la cache DNS o quella per gli aggiornamenti di sistema).
L'ideale sarebbe trovare la collaborazione di qualche produttore di hardware disposto ad investire in una appliance dedicata a fungere da home server, come gia' succede per il WHS venduto su macchine HP.
Al momento sto attendendo la conferma dell'iscrizione al forum, per riversare li' qualche idea in passato avuta, appuntata e mai approfondita. Chissa' che non sia la volta buona che contribuisco attivamente ad un progetto di sviluppo serio :-P

sabato 17 novembre 2007

DBus + GObject

1 commenti
Questa sera, profittando di un poco di tempo che sarebbe andato altrimenti sprecato, ho dato una scorsa al tutorial di D-Bus e mi sono illuminato di immenso: ho capito cos'e' un proxy e come ci si puo' agganciare a signals provenienti da un GObject remoto (sfruttando il binding Glib), risolvendo (almeno in linea teorica) il problema della connessione tra il SubConsciousDaemon ed il VFS di LibHyppo e permettendo la notifica asincrona e trasparente dei cambiamenti che avvengono sul filesystem Hyppocampus.
Creo un oggetto HyppoItem, lo aggancio ad un oggetto remoto HyppoItemObserver residente in SCD, e quando una modifica all'elemento avviene viene rilasciato un segnale, cui potranno essere assegnate callbacks per l'aggiornamento della grafica o altre amenita'.
E' talmente banale che mi stupisco di non aver trovato queste informazioni prima.
Nella mia todolist aggiungo la traduzione in italiano di questo bellissimo (seppur un po' lunghetto) pezzo di documentazione, da pubblicare poi su BarberaWare, e per intanto credo che entro questo weekend riusciro' a compiere qualche passo cruciale in vista della prossima release di Hyppocampus (che gia' da troppo tempo latita...).

lunedì 12 novembre 2007

... e Android fu'

0 commenti
Come annunciato, Google ha oggi rilasciato l'SDK del framework Android, destinato a diventare (nelle speranze della societa' americana e dei suoi partner, ma anche ai fatti) un punto di riferimento per lo sviluppo di device mobile.
Questo video, tra i diversi rilasciati in queste ore ad uso e consumo dei curiosi come me, ne illustra a grandi linee l'architettura: c'e' un kernel Linux, qualche libreria presa di peso dal parco di software libero, una JVM personalizzata ed ottimizzata per gli apparati embedded, e lo stack Android vero e proprio (il quale, inutile a dirsi, e' in Java. Al momento non e' prevista la possibilita' di usare altro, si fa menzione di C++ in alcune pagine ma non ci spero proprio...). Nel pacchetto scaricabile dal sito, degno di nota e' l'emulatore, col quale giocare con il software di default della piattaforma e su cui sperimentare le proprie applicazioni.
L'API e' assai ricca, le ho dato appena una scorsa e, oltre agli elementi facilmente predicibili (classi per la gestione dei contatti, del registro chiamate, dell'interfaccia di rete...), subito mi sono balzate all'occhio curiosita' come il FaceDetector (gia' visto da qualche parte...).
Inaspettato (ma non clamoroso) il challenge destinato agli aspiranti developers, con ricchissimi premi in palio (e tanta voglia di attirare l'attenzione della community), ma precluso ai residenti in Italia (come evidenziato al fondo della FAQ), credo a causa della stessa legge per cui i proxy governativi impediscono agli abitanti del Bel Paese di accedere ai siti di giochi di azzardo... Bella fregatura...
Impressioni a caldo (ed assai superficiali): completo e largamente orientato all'integrazione delle applicazioni (come e' giusto che sia), ma poco congeniale a chi (come me) vuole avere un controllo completo del device su cui mette le mani. Sara' che sono poco avvezzo a Java e se posso lo evito se non quando merita davvero, sara' che per deformazione personale le parole "accesso al dispositivo" vogliono dire avere le ioctl() del kernel a portata di mano, mi sa tanto che torno ad attendere la release del Neo 1973 / OpenMoko con la speranza di potermici dedicare non appena ne avro' uno e contribuire a quella community: come gia' detto sul lungo termine c'e' da aspettarsi che il colosso Google avra' la meglio, ma finche' c'e' qualcosa con cui divertirsi davvero meglio tenerselo stretto ;-)

mercoledì 7 novembre 2007

Alta Conducibilita'

0 commenti
Come talvolta accade, questo post e' piu' un promemoria per me stesso che un commento rivolto agli occasionali lettori di questa pagina...
Seguendo alcuni links apparsi oggi nella roadmap per Gnome 2.22 (sempre estremamente interessante...) ho appena scoperto l'esistenza di Conduit, framework dedicato all'astrazione delle operazioni di sincronizzazione tra... qualsiasi cosa a qualsiasi altra cosa :-P .
L'idea e' quella di facilitare lo scambio di files tra diverse piattaforme, siano esse il PC, un dispositivo mobile o qualche sito Web2.0 : non mi e' ancora chiaro se la libreria sfrutta un qualche VFS esterno (faccio notare che quello proprio di Gnome e' in fase di totale riscrittura, ed anzi e' prossima la migrazione verso "gio") o ne implementa uno suo, indaghero' questa sera con comodo a casa, ma comunque la cosa mi garba e mi ricorda molto l'antico proposito (al solito, temporaneamente sospeso causa mancanza di tempo) di costruire una applicazioncina a prova di utonto che permetta di gestire i backups (e costituire una alternativa Linux based al Windows Home Server ;-P ).
E' in occasioni come questa che un po' mi sento in colpa per passare il tempo a sviluppare progetti per conto mio invece che contribuire a quelli esistenti: questo framework pare assai interessante e permetterebbe un ulteriore passo avanti verso l'integrazione delle applicazioni, elemento indispensabile se si spera di vedere un giorno software libero sui desktop di tutto il mondo e convincere il "popolo" ad abbandonare la popo' cui e' abituato, e per questo rinnovo il proposito di scrivere codice quanto piu' possibile riusabile anche al di fuori dell'ambiente Lobotomy e dare un contributo (seppur minimo) all'accrescimento dell'appetibilita' della piattaforma universale.

Il Pinguino e' mobile...

0 commenti
Tutta l'Internet ne parla, forse anche un po' a sproposito, ma la notizia e' stata tanto attesa (quanto, per molti, alla fine forse deludente) che non ci si puo' esimere dal fare un commento: il Gphone, il mitologico telefono cellulare di Google, si e' materializzato, ma non nella forma da molti attesa.
Gia' si sapeva da qualche tempo che si sarebbe trattato non gia' di un telefono cellulare ma di un sistema operativo (Linux inside) dedicato agli apparati mobile, eppure, in tipico stile Google, la conferma non c'e' stata fino all'annuncio ufficiale.
Nasce cosi' (o meglio: cosi' viene ufficialmente svelato, ma ancora non s'e' visto nulla di concreto...) Android, framework dedicato ai dispositivi cellulari promosso dalla Open Handset Alliance, consorzio formato da fior fiori di colossi del settore tra cui HTC, Motorola, (ovviamente) Google e pure, dulcis in fundo, Telecom Italia ( :-P ).
Poco c'e' da dire perche' poco c'e' ancora da vedere, almeno per ora, e l'unico spunto che offro e': come si pone questo nuovo progetto, forte del sostegno di quanti in fondo decidono il mercato, nei confronti del modesto ma completamente free e community-driven OpenMoko? C'e' da supporre che, sul lungo termine, indubbiamente il pesce grosso si mangera' il piccolo e la lotta per il controllo del settore mobile tornera' a giocarsi tra le alte sfere, ma piu' incerto e' forse il destino sul breve periodo, quando i taiwanesi si decideranno a immettere sul mercato il Neo 1973 Phase2 e fiumi di smanettoni (me compreso :-P ) si precipiteranno a sviluppare nuove applicazioni per esso e ne parleranno ad amici, parenti ed internauti (per mezzo dei rispettivi blogs).
Al momento non mi resta che attendere news da entrambi i fronti: sul Neo ancora poco si sa di certo, per Android sara' rilasciato l'SDK il 12 novembre (lo stesso giorno da cui sara' possibile acquistare un XO anche come privato ;-) ) e non manchero' di prelevarne una copia da iniziare a valutare.

venerdì 2 novembre 2007

Webness

0 commenti
Il termine "webness", su cui mi ha edotto Federica qualche giorno fa', e' l'ennesima buzzword legata al mondo del Web2.0 e vuol dire tutto e niente, ma a parer mio ben si sposa con il processo in corso sul desktop Linux (precedentemente gia' trattato), ovvero l'integrazione tra applicazioni web ed applicazioni locali.
Il dibattito a tutt'oggi vive momenti di alti e bassi, ed in casa Gnome questo e' un momento di "alto": sempre piu' spesso si sente parlare del progetto di RedHat di portare il web a piu' stretto contatto con tale desktop environment, questo e' solo l'ultimo di una lunga sequela di articoli in merito. Ed allo stesso modo, da un'altra parte, emerge il progetto Prism di Mozilla, orientato alla "desktoppizzazione" di applicativi puramente web ed al loro utilizzo anche al di fuori del browser entro cui sono solitamente relegati.
Il proposito di sfruttare (e/o riusare) componenti nati sul web anche sul desktop di tutti i giorni mi garba, e non per niente tra i miei innumerevoli progetti in coda di attesa v'e' pure qualcosa in merito, sebbene sia titubante sulla loro efficacia: da diverso tempo lo sforzo comune e' quello di integrare sempre piu' tra loro le applicazioni e fornire all'utente un ambiente sempre coerente ed in cui le informazioni possano essere usate in diversi contesti, ma come potrebbero rientrare i widgets web (per cui, notoriamente, non esiste standard alcuno ed ogni vendor cerca di essere incompatibile con la concorrenza) in tale ottica? La speranza che iniziative come l'OpenSocial di Google (destinata a fornire una API comune per i social networks) prendano piede e' forte, in quanto e' fondamentalmente inutile stare a discutere di integrazione del web nel desktop se manco il web e' integrato con se' stesso, e non resta che stare a vedere quanto esperienze di tal fatta si ripetano e siano accettate dalla community (da cui, alla fine, proviene la maggior parte di elementi web appetibili per l'utilizzo locale).

Tornando a Lobotomy: ieri sera mi e' passata per l'anticamera del cervello l'idea di lavorare a mia volta per la desktoppizzazione del web (gia' che questa e' la tendenza, e' presumibile pensare che nel giro di poco sorga una API unica per la bisogna...), ed il primo approccio sortomi e' stato quello dell'utilizzo dell'interfaccia a plugins di Hyppocampus (temporaneamente sospesa nella transazione da serie 0.2 a 0.3).
Introducendo un nuovo "tipo" di item nel filesystem (dopo il gia' esistente "contact", che astrae a foggia di file un unico contatto della rubrica) ed assegnando ad esso dimensione sullo schermo, URI di riferimento e qualche altro metadato, implicitamente viene descritto un widget web pronto per essere trattato in quanto tale e sottoposto all'utente.
Come sottoporlo? Bella domanda: un widget Kiazma ad hoc puo' bastare? Non lo so, ci devo ancora pensare...

giovedì 1 novembre 2007

Come le API col miele

0 commenti
Persevero a seguire nei ritagli di tempo le evoluzioni intorno a Leopard, la nuova release del sistema operativo di casa Apple da cui continuo a trarre ispirazione. Un giorno o l'altro vedro' di iniziare ad implementare una sorta di WebClip per Linux, sfruttando anche le nuove conoscenze acquisite su XUL e le estensioni Firefox, ma chiaramente il piu' delle idee sono destinate all'opera su Lobotomy.
In particolare questo articolo mostra una carrellata della nuova API introdotta con Leopard: come sempre il punto di forza sta nell'integrazione con i vari componenti di sistema, e moltissime sono le funzionalita' per appoggiarsi a Safari o a Spotlight o per costruire interfacce grafiche tra loro coerenti con quelle proprie del resto dell'ambiente.
Non da sottovalutare ad esempio sono chicche come quella per la notifica dello stato di visualizzazione della finestra (e' visualizzata / e' coperta / e' stato cambiato workspace), evidentemente agganciate al window manager e che permettono di risparmiare non poche risorse nell'elaborazione di grafica che magari non serve in un dato momento. Senza chiaramente menzionare la pletora di widgets gia' pronti per includere nelle proprie applicazioni funzionalita' anche assai complesse senza una riga di codice...
Mi bookmarko la pagina in vista del prossimo ciclo di sviluppo di Kiazma :-P !