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

venerdì 25 maggio 2007

Webmaster si nasce

0 commenti
Dietro suggerimento del buon HS1 (mio affezionato lettore, e potenziale prossimo developer del team di Lobotomy ;-P ) stasera gioco al webmaster, modificando il template del qui presente blog. Sinora ho usato uno degli schemi standard di Blogger, leggermente modificato, ma mi e' stato appunto segnalato che il testo chiaro su sfondo scuro risultava di difficile gestione per coloro (e sono tanti, me compreso) che saltano da una pagina all'altra nel browser e sono abituati ad un abbinamento inverso di colori. Non so pero' se cosi' sia meglio: gli accostamenti cromatici non sono mai stati il mio forte, spero di non aver creato ancor piu' danni di quanti gia' non ce ne fossero ;-P. Domani provvedero' magari anche a realizzare un loghino un po' piu' carino da piazzare in cima alla pagina...
Ultima nota, ben poco attinente: un paio di ore fa' ho avuto una (ennesima) ispirazione per un tool che si integrerebbe perfettamente con lo spirito di Lobotomy, e su cui mi prodighero' un giorno o l'altro. Spesso mi capita di avere qualche piccola illuminazione su utility e strumenti secondari che potrebbero essere inclusi nel progetto, presto o tardi dovro' dedicarvi una pagina sul sito principale...

lunedì 21 maggio 2007

Lobotomia a la carte

0 commenti
Lobotomy cresce. E, con esso, la difficolta' di eseguire la procedura di build dai sorgenti.
La prossima release di Hyppocampus avra' come dipendenza la libreria che verra' distribuita con SubConsciousDaemon (che contiene le funzioni per le notifiche di creazione e modifica dei files contenuti nel filesystem), la quale pero' dipende dalla libreria LibHyppo distribuita con Hyppocampus stesso. Questa si potrebbe definire una dipendenza ciclica, oppure (in modo piu' naive) una gran seccatura per coloro che vogliono compilarsi il sistema sulla propria macchina.
E nel prossimo futuro le parti potrebbero incastrarsi ancora di piu', data l'imminente (!) ripresa dei lavori su BrainTop.
Da qui, l'idea di adottare la stessa soluzione prevista dai teams di GNOME e di XFCE: una utility standalone che scarichi dall'Internet i diversi pacchetti di cui Lobotomy si compone, permetta di eseguire una sommaria configurazione, e li compili nel corretto ordine.
Con ogni probabilita' la prima versione di questo tool sara' esclusivamente destinata all'utilizzo da linea di comando, non esistendo al momento particolari configurazioni attuabili in fase di compilazione e data l'urgenza di uno strumento di tal fatta, ma prossimamente potrei dedicare un poco di tempo alla creazione di un wizard grafico che assista l'utente in questa delicata fase.
Non mi resta che trovare un nome adatto ed in tema per questo (ennesimo!) componente della famiglia Lobotomy ;-P

venerdì 18 maggio 2007

Tre dimensions is megl' che two!

0 commenti
Da qualche tempo vado meditando su un uso concreto del 3D sul desktop casalingo. Sorvolando sugli affascinanti ma ben poco pratici Compiz e compagnia cantante, credo che la possibilita' di disporre informazioni su tre anziche' due dimensioni possa solo potenziare l'ambiente grafico.
Giusto per fare un esempio: per il prossimo futuro avrei intenzione di abbozzare un RSS reader che disponga le news in una struttura tridimensionale "pesata" in funzione dell'importanza assegnata (secondo espressioni regolari) alle notizie disposte sui vertici, si' da poterne visualizzare un maggior numero nella stessa schermata ed incrementare le possibilita' di poggiare lo sguardo su qualcosa di interessante (essendo io iscritto ad una quindicina di feed, ben difficile mi e' leggere proprio tutto tutto, e non posso far altro che discriminare il materiale che puo' fare al caso mio scorrendo le voci alla ricerca di parole chiave).
Proprio oggi le mie velleita' di grafico 3D si son ravvivate scoprendo per caso VTK, ed ora ero alla ricerca di qualche applicazione che sfrutti GtkGLExt per sopperire alla mancanza di documentazione. Vedremo se nel prossimo futuro saltera' fuori qualcosa di interessante...

giovedì 17 maggio 2007

Parallelizzazione: Architettura Futura

0 commenti
Da due giorni, sul Web si propaga l'eco della notizia del rilascio di GCC 4.2, quello che probabilmente e' il compilatore C piu' usato ed apprezzato al mondo. Le nuove release di questa cruciale ed indispensabile applicazione sono sempre accompagnate da un notevole riscontro, ma questa volta in particolare una nuova feature or ora introdotta rende l'evento ancora piu' interessante: l'implementazione di OpenMP.
Che e' sta' roba? La spiegazione su Wikipedia e' abbastanza chiara, ma la riassumo qui: si tratta di uno standard, che si materializza in forma di librerie e (soprattutto) micro-istruzioni per il processore, che facilita estremamente la gestione della parallelizzazione all'interno del proprio codice. Ovviamente la piu' immediata (e piu' succulenta) applicazione di questa tecnologia sta nello sfruttamento dei processori multi-core, che attualmente sono quasi la norma per quanto riguarda il mercato dell'home computing.
La parallelizzazione e' destinata a divenire il prossimo modello di riferimento per lo sviluppo del software (quantomeno, quello destinato all'ambito desktop. In altri contesti e' cosi' gia' da tempo...), ed oserei aggiungere "era ora": sinora abbiamo avuto nelle nostre case computers estremamente potenti ma abili a svolgere un solo compito alla volta (molto velocemente, certamente, ma uno solo alla volta, avendo un solo processore ed un'unica unita' dedicata alla computazione), ed il fatto di avere piu' cores incrementa implicitamente le prestazioni della macchina (basti pensare a come venga drasticamente ridotto l'overhead dovuto al content switching) e, dal punto di vista operativo, permette alle applicazioni di svolgere piu' tasks nel medesimo istante. L'estrazione dei metadati dai files, ad esempio, o il data mining su di essi, o l'accelerazione delle procedure di formattazione e renderizzazione della grafica. Le possibilita' sono infinite, e personalmente vedro' di esplorarne il maggior numero nel contesto del progetto Lobotomy ;-P
Mi spiace assai non possedere una macchina multi-core su cui sperimentare, ma vedro' di provvedere a qualche test al piu' presto.

domenica 6 maggio 2007

Trasloco

0 commenti
Basta! BerliOS fa schifo, e' lentissimo, o almeno e' lentissimo le rare volte che e' online! Gli strumenti fanno pena, il tracker fa pena, le statistiche fanno pena, lo sconsiglio fortissimamente a tutti coloro che hanno un pezzetto di software da rilasciare... Ho gia' avviato la procedura di registrazione di Synapse presso Savannah!
Le copie sinora rilasciate rimarranno nel repository originario, ma tra un mese o due vedro' di cancellare la pagina presso BerliOS: non vorrei mai occupargli risorse preziose, a quei fagnani!
Gia' che son qui, qualche news sul filemanager ufficiale del progetto Lobotomy: ho buttato l'ultima settimana per modificare la IconView inclusa in Kiazma, con l'idea di astrarre meglio le rappresentazioni dei files e wrapparle in widgets/contenitori dedicati anziche' spatarrare le informazioni nel GtkTreeModel usato originariamente dalla struttura, ma
1) sono troppo pigro per perfezionare il meccanismo, che allo stato corrente, dopo giorni, ancora lascia moltissimo a desiderare e, quando va bene, mostra rettangoli neri al posto delle icone
2) mi sono illuminato d'immenso scoprendo che avrei ottenuto lo stesso risultato con molto meno sforzo, mascherando le informazioni nel GtkTreeModel stesso e provvedendo ad una funzione di rendering composito delle icone

Sorvolando sulla mia scarsa lungimiranza: lo scopo finale di tutto questo lavoro e' quello di avere delle icone che vengono realizzate al volo, visualizzando le informazioni esplicitamente richieste dall'utente nella query di interrogazione al filesystem relazionale (nello statement di SELECT), e di poter nel prossimo futuro implementare la tecnologia di mappatura dell'ambiente grafico proposta qualche tempo fa'. C'e' ancora molto da fare...

venerdì 4 maggio 2007

Plugging Plugins

0 commenti
L'ultima sballata idea che giusto quest'oggi e' affiorata dalla mia mente rientra perfettamente entro gli scopi della serie 0.2.X di Lobotomy: l'espandibilita' dei componenti del progetto mediante plugins.
Cos'e' un plugin? Esso e' un file (un modulo, in C e' un oggetto linkabile dinamicamente esattamente come una libreria) che va piazzato nella cartella predefinita per l'applicazione che si vuole estendere; generalmente, all'avvio l'applicazione cerca in suddetta cartella, si linka ai moduli, e parte.
Perche' non permettere il link "a caldo" dei componenti esterni?
Due sono le soluzioni che al momento mi sovvengono (probabilmente ne esistono altre): inotify o DBus. La prima si concretizza con un file descriptor aperto sulla cartella dedicata ad ospitare appunto i plugins, il quale, grazie all'aiuto del kernel e una callback registrata sul mainloop di glib, permette di rilevare automaticamente la creazione di un nuovo file e la conseguente procedura di verifica/caricamento; la seconda con la presenza di un daemon presso cui le applicazioni si registrano e che, dato in ingresso un file, chiede a tutte (attraverso DBus) se il plugin avanzato e' di loro proprieta'.
Quest'ultima opzione e' quella che richiede maggiori risorse (e' per l'appunto un processo in esecuzione, un componente attivo del sistema) ma che garantisce la maggiore trasparenza per l'utente, il quale ha un'unica interfaccia per il caricamento di nuovi plugins e non ha da sapere dove piazzare il file sul filesystem. Teoricamente, sarebbe possibile aggiungere un nuovo plugin trascinando il link al file dal browser ad una icona nella traybar.
Prossimamente meditero' ancora sulle potenzialita' dell'idea, che spero di implementare al piu' presto onde permettere una facile e veloce estendibilita' dei vari componenti di Lobotomy.