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

venerdì 19 giugno 2009

GTK+ Theme Thumbnailer

Giusto il tempo di commentare il Social Desktop Contest, che in quattro e quattr'otto contro ogni piu' rosea aspettativa son riuscito ad implementare (sebbene sia da rifinire) la prima proposta che avevo in mente. Non si tratta di nulla di eclatante, per la carita', ma la trovo comunque una opzione nella sua semplicita' originale ed utile.
Partiamo da un presupposto: i contenuti solitamente accessibili sui vari siti della rete OpenDesktop hanno il grosso problema di non essere programmaticamente gestibili. Bellissimi i Nautilus Scripts, o le applicazioncine su kde-apps, ma fintantoche' la loro installazione ed il loro utilizzo richiedono un intervento consapevole dell'utente (che deve decomprimere l'archivio e leggere il README per sapere di volta in volta quali files prendere e dove spostarli), e non esiste dunque alcuna forma di pacchettizzazione, non si puo' pensare ad uno strumento che faciliti la propagazione di codesti micro-applicativi con una modalita' di interazione fruibile dagli utilizzatori domestici (ovvero: "Clicca qui e faccio tutto io"). Dello stesso difetto, o meglio di una sua variante, soffrono i materiali meno impegnativi e destinati all'abbellimento grafico del proprio desktop: splendide le sfilze infinite di GTK+ engines e decorazioni per le finestre di Metacity, ma se ognuna di esse e' rappresentata da uno screenshot preso alla meno peggio dal rispettivo sviluppatore/artista ed in situazioni sempre diverse e' difficile poterne valutare la gradevolezza e tocca comunque scaricare ed installare prima di accorgersi che la personalizzazione sulla propria postazione di lavoro non piace.
Proprio a questa seconda problematica e' rivolto il mio modestissimo progetto: un servizio web che wrappi alcuni dei contenuti di gnome-look generando automaticamente le preview dei vari temi disponibili sempre secondo lo stesso layout di widgets.
Mettendo il naso nel codice di gnome-control-center, ovvero l'applicativo che in Gnome permette la selezione di vari parametri di visualizzazione, si scopre che le thumbnails sono generate dinamicamente partendo sempre dalla stessa configurazione di widgets (si vedono rispettivamente un pulsante, una checkbox ed un radiobutton) si' da affiancare in modo equo e confrontabile le differenti opzioni; da li', e' stato un attimo isolare le funzioni che provvedono a tale generazione e realizzare un eseguibile standalone capace di produrre una JPEG a partire da un qualunque tema, da poi fornire in accompagnamento ai contenuti esposti da un ipotetico server che come detto funga da provider per un altrettanto ipotetico pannello Gnome arricchito da un tasto che permetta di pescare da esso (come gia' succede nel pannello dei wallpapers di KDE).
Paradossalmente adesso arriva la parte piu' noiosa e complessa, ovvero quella di provvedere ad una libreria C (e magari GObject oriented...) che wrappi l'API REST descritta dalla specifica Open Collaboration e permetta di comunicare col server senza doversi ogni volta parsare l'XML, e gia' da solo questo task meriterebbe di essere contemplato come entry a se' stante per il Contest. Ad ogni modo credo che l'ostacolo piu' imponente, ovvero la creazione di preview coerenti, sia stato abbondantemente superato, e da adesso la strada e' in discesa: non so se una trovata cosi' modesta possa realmente avere uno spazio all'interno della competizione internazionale (e anche se lo fosse, l'Italia e' storicamente tagliata fuori dei concorsi a premi che si svolgono nel resto del mondo...), ma ribadisco l'intento puramente materialistico dell'opera.
Ogni tanto un qualche simpatico hack per passar la serata e' d'uopo...

Nessun commento: