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

domenica 31 gennaio 2010

Uno Scalpello per l'Informazione

0 commenti
A me piacciono un sacco i feeds: ogni giorno dedico parecchio tempo alla loro consultazione, per essere sempre informato di ogni novita' entro il piu' breve tempo possibile, e ne seguo relativamente pochi appunto perche' altrimenti non farei null'altro. Il mio feed reader ha sostituito la TV (poiche' l'unica cosa che guardavo erano i telegiornali, e questi risultano non solo sempre tremendamente in ritardo e schierati ma nell'ultimo periodo ho pure notato che Studio Aperto ha fatto scuola...), occupa quasi tutti i momenti di transizione in cui non scrivo codice o mail o post sul blog, mi porta continue ispirazioni per nuovi progetti o spunti di riflessione. Sono arrivato al punto di riportare in forma di RSS anche le mailing list.
Ma non ne ho mai abbastanza: per l'uso che ne faccio io, qualunque applicazione di tal genere risulta sempre limitata e limitante. Le shortcut da tastiera sono sempre poco efficienti, l'area per leggere il contenuto degli item e' sempre troppo ristretta, ad uno manca una filter bar per eseguire ricerche veloci, l'altro non permette di nascondere i feeds che non contengono nuovi articoli (feature indispensabile se si hanno piu' di una trentina di sottoscrizioni), e alla fine il layout e' sempre lo stesso (lista sopra, contenuti sotto) impedendo di assortire i contenuti in altre maniere piu' produttive e mirate.

Per questo motivo nella mia spropositata lista di todo c'e' da diversi anni l'implementazione di un feed reader fatto a modo mio. E questa potrebbe essere la volta buona che lo realizzi davvero.

Recentemente, per interesse e sfida, ho messo insieme col supporto di Netvandal un miner per Tracker che popoli il database locale con i feeds online: ogni tot tempo scarica dai vari URL memorizzati, parsa l'XML, e carica gli items nuovi. Insomma, funge da backend.
Nel thread in cui annunciavo al team Tracker la release 0.3 del componente (che ha anche riscosso un discreto successo, tale da essere considerato per l'inclusione nel repository mainstream del progetto), e' saltato fuori il mio proposito di provvedere ad un frontend. Qualcuno se ne e' interessato, mi sono un po' allargato con le dichiarazioni, ed adesso qualcuno si aspetta che io lo faccia davvero. Posso mica deludere i colleghi developers, no?
Ora come ora sto specificando l'architettura interna del programma, ma so per certo che dovra' avere almeno una feature: la visualizzazione degli items plugginizzabile. Data una API con cui indicare quali elementi mostrare e nascondere (in funzione dei nuovi feeds scaricati, e/o della filter bar), il plugin fara' quel che deve. E dunque potra' esserci la solita vista "lista sopra, contenuti sotto", ma anche quello che piazza su una mappa gli elementi marcati con GeoRSS, quello che traccia una tagcloud per i termini usati, quello che visualizza in blocchi proporzionali i posts provenienti dai singoli autori, o quello che permette di scorrere una timeline...
Lo scopo e' quello di visualizzare le news secondo vari criteri, si' da aiutare con la rappresentazione grafica l'individuazione di trends e soggetti interessanti, nonche' di nessi logici non immediatamente palesi tra piu' dati. Detto prosaicamente: scolpire l'informazione. Non per caso il nome del progetto e' Phidias, traslitterazione inglese di quello che nella traslitterazione italiana e' Fidia, scultore greco dell'antichita' con un nome incidentamente assonante alla parola "feed".
Non nascondo che il fulcro dell'iniziativa derivi dal desiderio di riportare in un software reale alcuni concetti nati e raffinati nel contesto del Lobotomy Project. In tale ambito ho iniziato ad elucubrare sull'applicazione di diversi "templates" ad oggetti informativi flessibili, in questo caso i detti plugins e i soggetti RDF prelevati da Tracker, e sebbene questa ne sarebbe una versione assai limitata e vincolata ad un ben preciso utilizzo determina comunque un primo esperimento concreto in tal senso.
Spero di riuscire a produrre un prototipo entro breve tempo: certamente non faro' in tempo per il FOSDEM (cui partecipero', e terro' anche un quarto di talk! Pubblichero' un dettagliato report, qui o sull'altro mio blog) ma qualcosina vedro' di mettere insieme negli oramai sempre piu' centellinati ritagli di tempo.
Stay tuned!

sabato 30 gennaio 2010

1000000 Ways to Configure

2 commenti
Per una volta, mi trovo a dar ragione ad Aaron Seigo: codesto articolo non sta ne' in cielo ne' in terra.
L'autore di quest'ultimo mette in discussione i miglioramenti in termini di usabilita' del progetto KDE4, completa riscrittura e revisione del ben noto K Desktop Environment, usando come (infelice) argomentazione la decimazione delle proprieta' configurabili in gwenview, image viewer incluso appunto in tale ambiente. Credo che di per se' questo stringatissimo riassunto basti gia' a farsi una idea dell'inconsistenza della posizione assunta, secondo cui per induzione un software "usabile" e' quello che mette l'utente in condizione di rifinire ogni singolo comportamento dell'applicazione anche laddove tale comportamento sia del tutto secondario e minimale, anziche' fare quel che s'ha da fare e basta. Anche volendo condividere l'opinione generale in merito alla scarsa maneggevolezza ed intuitivita' di KDE4 (di cui recentemente ad esempio mi e' capitato di metter mano all'edizione dedicata ai netbooks: totalmente incomprensibile), comunque viene qui presentata nel peggiore dei modi ed assumendo quello che forse e' il meno rappresentativo dei casi.
Contrariamente a quanto asserito, gli sviluppatori di gwenview meriterebbero un premio per aver rimosso l'armageddon di pulsantini, opzioncine, caselline e iconcine che era il loro pannello di configurazione. E che, non dubito, sono stati via via aggiunti solo ed esclusivamente per la pigrizia del momento nell'individuare un comportamento realmente valido e delegando al disgraziato utilizzatore l'onere di prendere una decisione. Il fatto che l'applicazione ne risulti meno configurabile e personalizzabile, al limite dell'estremo (e della pazzia), e' del tutto irrilevante ai fini pratici: la fascia di utenti disposti a passare un pomeriggio a tarare manualmente la dimensione della cache, o mettersi col righello a scegliere l'esatta larghezza dello spazio vuoto tra una immagine e l'altra, e' infinitesimale o nulla rispetto alla quantita' di persone che desiderano avere un programma che gli permetta di navigare tra le proprie immagini senza patemi. Quei quattro power-user in croce che volevano essere in grado di selezionare ogni minimo dettaglio si sentono "frustrati" di queste nuove limitazioni? Ebbene: il loro sacrificio e' compensato dalla mancata frustrazione di tutti gli altri, la stragrande maggioranza, che facilmente si sarebbero persi in quel marasma di quisquillie gustosamente tecniche rinunciando a fare quello che volevano. E poi i suddetti quattro hanno pur sempre il codice sorgente a disposizione: con quello a disposizione, ed un compilatore, sono liberissimi di cambiare ancor piu' impostazioni di quante siano immaginabili all'interno di un pannello grafico.
Pertanto: un plauso al team gwenview e di tutti gli altri sotto-progetti KDE che hanno approfittato o stanno approfittando della migrazione da 3 a 4 per rimuovere quanti piu' orpelli e facezie possibili tra quelle che si sono accumulate col passare del tempo nelle loro creazioni, e che con buon senso hanno deciso di pensare piu' ai propri utenti che non all'assecondamento del proprio ego programmatorio.

venerdì 22 gennaio 2010

Stay Focus

0 commenti
"Stay focus" e' una espressione spesso usata dal mio attuale project manager in Itsme. Mi piace, nella sua infinita semplicita' (e nella mia personale interpretazione) esprime bene la necessita' di mantenere l'attenzione entro un dato contesto e su determinati obiettivi. Proprio a me, che quasi continuamente zompo tra un blocco di codice e l'altro senza soluzione di continuita'...
La citazione mi e' tornata alla mente leggendo questo articolo, ennesima colonna da opinionista sul gossip nerd del momento, l'oramai imminente iSlate. Al di la' delle speculazioni dell'autore, che tendenzialmente posso anche approvare ma che in mancanza di un prodotto concreto da commentare risultano sterili chiacchere da bar, i primi paragrafi sono assai interessanti. Un po' per i contenuti, un po' per gli stimoli: in essi viene menzionata la figura di Jef Raskin, mia inesauribile fonte di ispirazione diretta ed indiretta, e la sua posizione radicale nei confronti dell'usabilita' degli apparati tecnologici.
Consiglio la lettura del pezzo ma non commento qui nel dettaglio ne' la prima ne' la seconda parte: basti sapere che rileggere tali spunti e tali prospettive e' stato sufficiente per riportarmi alla mente i sopiti ma mai defunti propositi di applicarmi in prima persona, nel mio piccolo, per rendere piu' accessibili e a misura d'uomo gli strumenti offerti dal progresso.
Proprio ieri sera ho partecipato ad una riunioncina con gli altri personaggi coinvolti nel progetto GASdotto, per fare il punto dopo la pausa imposta dalle vacanze natalizie. Pare che gli attuali utilizzatori, in tutto circa un centinaio, siano entusiasti della facilita' d'uso di questa applicazione, e sebbene ci sia ancora parecchio da fare sia in termini operativi che estetici ci siamo spinti a delineare le funzionalita' da includere nella prossima versione 2.0 . Alla luce degli istinti suscitati e risuscitati dalla summenzionata lettura, mi vengono i brividi alla schiena ripensando alla quantita' di pulsantini e opzioncine che tra una birra ed un po' di vino sono stati idealmente introdotti per azioni tutto sommato minime ed oziose, che potrebbero forse risultare comode per chi oramai avvezzo all'impianto ma risulterebbero totalmente incomprensibili a chi si avvicina per la prima volta o anche ad un utente gia' preparato che (ovviamente) non si trova dinnanzi a queste schermate tutti i giorni e legittimamente puo' scordarsi il significato di un determinato quadratino colorato sul monitor. Nei prossimi mesi dovro' studiare qualche soluzione per automatizzare l'automatizzabile, celare il celabile, e svelare alla vista qualcosa solo quanto realmente necessario ed indispensabile. Onde evitare il classico "effetto acccumulo" per cui quasi inevitabilmente ogni nuova versione di qualsiasi software stratifica qualche orpello, qualche ammenicolo, qualche cineseria in piu' rendendo il tutto a lungo andare una accozzaglia indefinita e pesante, sia da vedere che da usare.
Lo stesso vale per ogni altro progetto attualmente in corso, che come al solito sono tanti - e anche troppi -: ad esempio negli ultimi giorni ho giocato un pochino con jQuery con la mira di metter su una sorta di servizio web, e non nego di essermi fatto prendere la mano dalla semplicita' con cui e' possibile aggiungere effetti ed animazioni estremamente cool ma dalla assai scarsa utilita'. Tale genere di garbugli possono sedurre l'occhio la prima volta, la seconda, alla terza diventano una perdita di tempo ed un carico in piu' per il processore.
Insomma: mi rendo conto di aver ultimamente un po' lasciato da parte lo scopo globale, il "focus" appunto, e di essermi fatto coinvolgere un po' dalla immediatezza e dalla spettacolarita' degli strumenti programmatori oggi a disposizione ed un po' dalla necessita' di far le cose magari non proprio sempre in modo ponderato - e di conseguenza male. Dovro' fare un esame di coscienza e stare piu' accorto, rinunciare a qualche evoluzione ed immolarmi maggiormente alla linearita', tenendo sempre ben presente cosa c'e' da fare nel suo insieme.
Stay focus. Always.

domenica 3 gennaio 2010

127.0.0.1 sweet 127.0.0.1

0 commenti
Chiunque abbia mai provato a scrivere anche il piu' semplice programmino in C che faccia uso di socket ha una vaga idea di quanto l'API BSD sia delirante: ci sono quintalate di funzioni destinate ai vari scopi, talvolta sembra ce ne sia pure piu' di una per far la stessa cosa, ed i parametri sono passati per mezzo di struct brutalmente castate l'una con l'altra e di cui sconsiglio l'analisi nei relativi header files.
Finche' si fanno cose semplici (apri la connessione TCP, manda il pacchetto UDP e cose cosi') per fortuna esistono fior di tutorial sparsi sull'Internet. Se si vuol fare qualcosa di un pochino piu' complesso (tipo: parlare con uno STUN server) spesso la documentazione non basta e gia' si deve iniziare a cercare con Google Codesearch o all'interno del codice di programmi che a priori si sa fanno quel che serve. Se poi si aspira a realizzare qualcosa che ancora non e' stato fatto da nessuno, e dunque mancano gli esempi da cui prendere ispirazione, la situazione diventa tragica.
Nel mio caso specifico sto realizzando una implementazione di client PubSubHub da includere in libgrss, libreria GObject per la manipolazione dei feeds di cui probabilmente parlero' su questo blog in futuro e destinata a colmare un vuoto ad oggi inammissibile, per ricevere attivamente le notifiche di nuovi contenuti esposti sull'Internet anziche' "pollare" i relativi files RSS o Atom che siano. I maggiori grattacapi attuali derivano dalla necessita' di scavalcare un eventuale NAT che si trovi dinnanzi al client, possibilita' tutt'altro che remota nel caso di una connessione domestica dotata di un modem ed un router che distribuisce connettivita' al resto della casa, affinche' il server remoto possa pushare le notifiche. Per ora mi accontento di configurare il detto router per forwardare le trasmissioni entranti su una certa porta direttamente sul PC bersaglio (o meglio: faccio fare al mio collega Netvandal questi test, giacche' ci si mette pure Vodafone a troncarmi le connessioni entranti, ma e' un'altro discorso), ma per quanto sia una soluzione di ripiego comunque comporta infiniti problemi.
Non esiste un modo pulito per recuperare il proprio IP NATtato, non esiste una syscall che dato un indirizzo sappia dire se e' pubblico sull'Internet o meno, non esiste una syscall che dica quale delle interfacce di rete routa verso la Rete, insomma si fa tutto per intuizione e contando nella buona sorte. Qualcosina son riuscito a recuperare in GNet, libreria Glib dedicata appunto all'astrazione delle operazioni di rete recentemente deprecata in favore di GIO (che pero' e' ancora abbastanza bacato per le operazioni su HTTP), ma sempre si va a tentoni.
Insomma: ogni 3 per 2 si parla di integrazione col desktop con la Rete (e sia ben chiaro che la soluzione alternativa del cloud computing "puro", con tutti i dati online, semplicemente non funziona: oggi mi son trovato gubb.net assediato dai cybersquatter e mi sono perso mesi di appunti ed idee, e questo fa il paio con Ma.gnolia auto-distruttosi a causa di una politica di backup farlocco), ma alle parole non conseguono i fatti, e non esistono strumenti che permettano di costruire tools senza impazzire appresso a documentazione forfettaria o codice da copiare ed incollare tenendo le dita incrociate.
E' dura la vita del programmatore...

domenica 13 dicembre 2009

Ingenuita' Ingegnerizzata

0 commenti
Avevo scritto un frammento di codice in PHP. Dato un input, impiegava 20 secondi a restituire l'output. Ho aggiunto 10 righe, ed ora ce ne mette un paio.
Il protagonista della storia e' GASdotto (il gestionale per Gruppi di Acquisto qualche volta menzionato su questo blog), applicazione che ho imbastito seguendo il piu' possibile la regola secondo cui e' meglio del codice compatto e generico anziche' una gestione manuale (ed ottimizzata) di tutti i casi possibili. Con risultati evidentemente non sempre gratificanti.
Tutta la componente server del programma (cosiccome del resto anche la parte client, in Java) e' fondata su una classe elementare che funge da astrazione per tutte le altre: le sottoclassi di questa definiscono solo quali sono le variabili che contiene (tipo: lo User ha un firstname che e' una stringa, un lastlogin che e' una data...), e tutta la parte di ricostruzione dell'oggetto dal database, serializzazione e deserializzazione JSON, salvataggio, aggiornamento e cancellazione e' implementata una volta sola nella classe di partenza. Tale meccanismo copre anche il caso in cui un oggetto contenga un array di oggetti di altro tipo, i quali sono mappati sul database seguendo una logica predefinita e dunque uguale per tutti e riportata in forma di codice una volta sola. Insomma: una architettura che mi ha permesso di realizzare pressoche' tutta la parte server del software in 2000 righe di PHP (stando alle attuali statistiche su Ohloh), ed in cui posso aggiungere nuovi elementi completi di tutte le funzionalita' con una manciata di altre righe.
Fin qui tutto bello. Il brutto viene mettendo insieme molti oggetti che contengono a loro volta molti oggetti.
Dato un numero di ordini, i quali contengono un numero di prodotti ordinati, ognuno dei quali fa riferimento ad un prodotto disponibile nell'ordine, ognuno dei quali fa riferimento al fornitore che lo distribuisce, e' evidente (soprattutto col senno di poi...) che la quantita' di componenti coinvolti nella semplice richiesta di avere tutte le merci che sono state richieste dai membri del Gruppo di Acquisto e' elevata. Ed attenendosi al primo modello operativo di riferimento ognuno di essi deve essere ripescato dal database e ricondotto ad un oggetto. Anche se e' gia' stato prelevato all'interno dell'elaborazione della stessa richiesta.
Non voglio neanche sapere quante query venivano eseguite in tal frangente, ma non appena mi sono accorto del problema ho applicato in pochi secondi una soluzione basata su un banale array associativo usato a mo' di cache temporanea per tener traccia di quanto gia' ottenuto e recuperarlo subito senza ricostruirlo daccapo: certamente non ottimale, ma funzionale.
La morale di questa narrazione e' di non fidarsi sempre ciecamente dei dogmi dell'ingegneria software: astrarre e' un'ottima cosa, soprattutto se si e' pigri, ma, giacche' la perfezione non e' di questo mondo, per quanto raffinato il vostro sistema avra' sempre una falla, dunque tanto vale rassegnarsi e prepararsi da subito a dover applicare un salutare ed ingenuo hack di quando in quando.

mercoledì 25 novembre 2009

Il Nome della Cosa

1 commenti
Qualche tempo fa' in Itsme sono passati alcuni ospiti: come sempre abbiamo fatto la nostra presentazione del progetto, come sempre ci sono state domande tecniche e meno tecniche, e tra tutte le osservazioni emerse una in particolare mi ha ispirato il qui presente post. In realta' si tratta di un commento piu' e piu' volte sollevato in merito all'opera in corso, carpito in circostanze piu' o meno ufficiali e che suona come "Itsme e' basato su Linux, ma Linux e' difficile da usare".
Sorvolando sulle obiezioni di natura culturale e pedagogica, per cui un meccanismo complesso come un intero sistema operativo non puo' essere a priori "facile" o "difficile" ma necessariamente richieste un periodo di addestramento ed un disadattamento all'attivita' su altre piattaforme analoghe rendendo di fatto "difficile" tutto quello che non si e' usato fino al giorno prima, cio' che mi perplime e' il pregiudizio di fondo nei confronti di Linux.
Per quanto nel corso delle dimostrazioni Itsme si parli dell'interfaccia che stiamo completamente ri-disegnando e re-implementando per adattarsi alla metafora di riferimento, cosiccome stiamo ri-disegnando e re-implementando gli automatismi di fondo che permettono la configurazione, "Linux e' difficile". Tale assioma e' assunto indipendentemente dalla modalita' grafica con cui il sistema si presenta, degli strumenti di tuning messi a disposizione, dei wizards automatici gia' previsti per sopperire ad eventuali mancanze ed integrare componenti gia' noti nel piano: "Linux e' difficile".
Eppure a me non pare che nessuno si sia mai grattato il capo in modo imbarazzato usando un cellulare Motorola, spedendo richieste a Google, o anche facendo un biglietto della metropolitana qui a Torino. Questo perche' i tre fruitori di cui sopra, e buona parte di tutti gli altri fornitori di hardware e servizi Linux-based, dell'amato sistema operativo utilizzano la tecnologia di base ed hanno personalizzato per conto proprio la parte con cui l'utente interagisce, rendendo piu' o meno "facile" l'uso dell'apparato a seconda del fine predestinato. Ne' piu' ne' meno di quanto fatto da Apple con MacOS X, partendo da una base BSD (che di per se' puo' essere considerato ancor piu' ostico che Linux stesso) e costruendoci sopra il proprio stack applicativo, rinomato come il piu' user-friendly sul mercato: sarebbe sensato affermare che MacOS e' "difficile" da usare perche' ha nel kernel lo stesso scheduler di BSD, laddove l'utilizzatore non sospetta neppure l'esistenza di un'arnese chiamato "scheduler"?
E se anche fosse vero che, diciamo, una Ubuntu e' meno usabile di un Windows (argomento discutibile ed opinabile), e' altrettanto vero che godendo di una netta separazione tra i layer operativi Linux si presta molto di piu' ad una drastica personalizzazione dell'insieme e da esso e' molto piu' facile cavare qualcosa di realmente nuovo e pratico mantendendo intonse le porzioni di basso livello (gestione dei devices, librerie software, toolkits grafici, alcuni applicativi) e stravolgendo il resto, a propria discrezione e secondo la propria necessita'. Stando alla mia esperienza sinora ho lavorato su un apparato embedded per telecomunicazioni ed una workstation desktop, e su entrambi il software di basso livello era lo stesso, ovvero un kernel e qualche libreria.
Stat Linux pristina nomine, nomina nuda tenemus.

lunedì 19 ottobre 2009

Hands on Google Wave

0 commenti
In merito a Google Wave ho gia' fatto un commento (negativo) ai tempi del suo annuncio e della pubblicazione del lungo video di presentazione. Ora che grazie ad un amico ho ottenuto un invito ed ho potuto provarlo con mano, aggiorno il commento e lo rendo ancora piu' negativo.
L'intera Internet, o quantomeno coloro che gia' hanno ottenuto il modo per fare qualche prova col suddetto prodotto, si chiede a cosa serva: non e' uno tool di instant messaging perche' i messaggi sono disposti in threads, non e' un forum perche' e' realtime, non e' uno strumento di editing collaborativo perche' ha una struttura predefinita. Insomma non e' nulla di gia' noto, ma al tempo stesso prende tutti i difetti dei canali menzionati sopra: e' lento e macchinoso come un forum e per pubblicare un nuovo messaggio c'e' da cliccare qua e la', essendo realtime non e' banale tenere una conversazione con qualcuno in quanto viene spontaneo rispondere prima che l'altro abbia finito di esprimersi completamente, ed ha un modello gerarchico dunque non puo' essere usato per scopi "generici" come un foglio su Google Docs.
A seguito del test drive, i miei dubbi diventano certezze: questa baracca non serve a niente. In molti si scervellano per cercare di dargli un significato, una dimensione, un ruolo, ma credo che sforzarsi di assegnare un titolo ad un prodotto solo perche' proviene da una fonte (piu' o meno) amata come Google sia un eccesso. Ammetto di non aver letto proprio tutte le recensioni quotidianamente proposte, ma tra tutte quella che maggiormente mi ha colpito e' questa qui: l'autore sostiene che l'utente piu' indicato per Wave sia quello che in genere e' il peggior consumatore di tecnologia informatica, ovvero l'utente business/corporate, quello che ancora non ha scoperto l'IM o gli altri ammenicoli collaborativi online e a tutt'oggi scambia coi suoi pari via mail gli stessi documenti centinaia di volte per apportare modifiche e correzioni. Ma io mi domando e chiedo: se questo "utente tipo" e' talmente radicato alle sue abitudini da non aver manco mai pensato ad aprirsi il piu' stupido account MSN (e figuriamoci un account su Zoho), come si spera che da un giorno all'altro inizi ad usare Wave???
Da notare poi che codeste mie critiche si limitano al puro scopo funzionale dell'applicazione, in quanto se dovessi puntualizzare anche sul versante tecnico non finirei il post entro oggi: l'interfaccia e' ridondante, non fa niente eppure ci sono troppi tasti e pulsanti e icone (quasi che lo scopo fosse quello di dimostrare la fighettosita' di una applicazione realizzata con GWT anziche' impostare un frontend chiaro ed intuitivo), l'organizzazione dei contenuti e' abbozzata, innumerevoli i difettucci legati alle notifiche ed all'allineamento dei messaggi nonche' le incoerenze dell'interazione. Cui si sommano le limitazioni contingenti di ogni applicazione web, che essendo vincolate all'interno del browser non hanno modo di interagire col window manager e dunque portare all'attenzione dell'utente notifiche e segnalazioni.
Se mai Wave avra' un qualche riscontro e sara' usato da qualcuno il merito sara' certamente piu' della campagna di marketing e dell'hype sorto intorno a codesto oggetto che non per un reale valore operativo. Chi ancora non ha un invito non se ne disperi troppo, non si sta perdendo niente e puo' tranquillamente attendere l'apertura del servizio a tutti.
Anche oggi, l'Internet resta la stessa.

martedì 13 ottobre 2009

Vapore Multitouch

0 commenti
Risale a qualche settimana fa' il meme del tablet targato Microsoft, chiamato Courier. Molti hanno detto la propria, io (sebbene con un poco di ritardo) dico la mia: secondo me, e' una bufala.
Le motivazioni di un gesto di tal fatta sono scontate: rosicchiare un poco della attenzione e della visibilita' offerte sull'argomento "tablet" a seguito dei reiterati rumors in merito ad un nuovo prodotto Apple, destinato (vuoi per tendenza modaiola, vuoi per effettivo grado innovativo tradizionalmente iniettato sul mercato dall'azienda di Cupertino) a ridare nuova vita ad un settore esistente da anni ma che non ha mai scalfito l'interesse del grande pubblico consumer.
Ma la mia affermazione non e' fondata solo sulla pura intuizione (oltretutto neanche tanto originale) e sul pregiudizio nei confronti di Microsoft, ma su riflessioni indotte dalla visione del video di introduzione al suddetto Courier. Osservando quei quattro minuti di filmato, spacciati per tech demo dell'imminente prodotto, a me sembra abbastanza evidente che il modello di interazione e' cosi' artefatto da non poter essere reale: comportamenti grafici diversi, ovviamente sempre i piu' adatti alla regia, si ottengono a seguito delle medesime operazioni dell'utente, ed il pannello giallo che ogni tanto appare (e non ho neanche capito a cosa serva...) sembra dotato di una propria coscienza tanto da apparire solo quando scenicamente opportuno. Per non parlare delle barre in cui si scrive a mano per raggiungere un dato contenuto (bella forza immettere l'URL "afi.com" nel browser, ma come ce lo faccio stare "slashdot.org"?), le tabelline che magicamente vengono estratte e trascinate senza manco sapere qual'e' la porzione di interesse per l'utente, il tratto dello stilo che diventa testo o evidenziatura gialla in modo totalmente arbitrario...
Insomma, piu' che un prototipo di interazione a me sembra un film di azione, in cui i cattivi sparano dozzine di proiettili senza mai neppure ferire i buoni e l'eroe fa di ogni colpo un centro: molto divertente da vedere, ma non credibile. Poi, per la carita', qualcosa di interessante lo si trova anche, come il concetto di piazzare i contenuti di traverso tra le due pagine per, all'atto pratico, metterlo in clipboard, ma cio' non toglie nulla alla mia incredulita' di vedere davvero questo arnese sugli scaffali nei prossimi mesi.
Al contrario, sono ben contento di vedere che una fascia di prodotti su cui da tempo ripongo la mia attenzione stia in qualche modo uscendo dalla nicchia in cui e' stata relegata per anni ed i grandi produttori nel bene e nel male procedano con sperimentazioni e ricerche: continuo a ritenere l'idea del tablet una direzione quasi obbligata per gli sviluppi tecnologici futuri, in virtu' del rapporto dati esposti / superficie ingombrante di cui tali dispositivi godono, e nella speranza di poter presto trovare un degno sostituto al mio Acer C310 (quattro anni fa' il miglior convertibile che ho trovato sulla piazza, e da allora rimasto tale a causa della scarsita' di alternative) continuo a seguire gli sviluppi.

Bronzo

0 commenti
Ed alla fine della fiera al Social Desktop Contest mi sono classificato terzo.
Con libopengdesktop (tra le mie due candidature, quella a minor contenuto innovativo), e dopo l'ExtendedAboutDialog (in effetti molto grazioso) ed il Knowledge Base Widget (quattro righe di C++ in croce, destino vuole scritte da uno di un paesello relativamente vicino a Torino).
Non mi dilungo ulteriormente in commenti, che non possono che essere di parte (esattamente come la giuria del contest, promosso dalla combriccola di KDE e dunque con qualche inevitabile lieve inclinazione...), e soprassedo anche sul fatto che abbiano scritto il mio nome al contrario, prima il cognome e poi il nome; attendo solo di ricevere la gift card da 50 dollari da spendere ancora non so come su Amazon.
Piu' che all'occasione sfumata di ottenere un netbook o un disco da 1TB (rispettivamente, primo e secondo premio della competizione), rifletto sull'immensamente scarso riscontro ottenuto da una iniziativa tutto sommato, come gia' detto, lodevole, mirata a stimolare la produzione di un po' di software in un contesto che merita attenzione da parte della community quale la condivisione di contributi non programmatori al freesoftware. Nonostante la decentemente ampia promozione e risonanza nella pagina dedicata alle candidature appaiono solo nove proposte, di cui almeno due completamente fuori concorso; due di queste sono mie, dunque volenti o nolenti qualcosa avrebbero comunque dovuto assegnarmelo per ragioni statistiche piu' che di merito. Frank Karlitschek, mente dell'attivita' (e proprietario del network di opendesktop.org), con rara maestria dialettica ha prima posticipando la deadline per le consegne ufficialmente adducendo ad una mole di aspiranti partecipanti che non hanno fatto in tempo a completare le rispettive opere (partecipanti i quali, inutile dirlo, non si sono piu' fatti vedere ne' sentire) e poi si e' deciso dopo lungo ritardo a dichiarare concluso il contest, sperticandosi in entusiasmi per l'ottima riuscita del concorso.
Io, che tanto ottimista non sono, mi domando e chiedo il perche' di un cosi' moderato approccio all'opportunita' fornita. Si potevano vincere dei bei premi con uno sforzo limitato, eppure come gia' detto le proposte avanzate sono state ben poche e pressoche' tutte di scarso impatto. La comunita' KDE (cui Social Desktop e tutta la corte di Karlitschek sono strettamente legati) gode di enorme hype e grande coinvolgimento, a volte persino troppo, e non trovo le ragioni di un cosi' netto fallimento.
Il dubbio e la perplessita' si fanno ancora piu' forti adesso che qui in Italia si approssima il Linux Day, apice del lavoro comunitario di promozione del software libero e occasione in cui emergono i piu' disparati propositi (tra cui i miei) per massimizzare il profitto comunicativo verso il grande pubblico: non c'e' bisogno di arguzia per sapere che tra il discutere una idea e realizzarla ce ne corre, e non poco, ma se persino un progetto della popolarita' di opendesktop.org attrae si' ristretta manodopera non c'e' da star sereni per l'avvenire.
Investire nelle nuove leve, su quella schiera di giovini che ad oggi maturano l'interesse al freesoftware solo in virtu' di cubi rotanti e velleitarie filosofie da ostentare nei circoli nerd? Inventare nuove forme di partecipazione, per abbassare la sbarra ed allargare il bacino di contributors? Le possibilita' sono molteplici, forse non tutte valide ma degne di esplorazione. Sta di fatto che l'utenza Linux su desktop si allarga, i numeri sono ancora piccini ma in costante crescita, e la quantita' di apporti non cresce con lo stesso ritmo.
Se un pugno di tecnici altamente specializzati hanno prodotto i risultati oggi sotto gli occhi di tutti, creare e mantenere un ecosistema realmente attivo e partecipativo puo' portarci la' dove nessun PC e' mai giunto prima.

martedì 25 agosto 2009

Sentimento a 8 Bit

0 commenti
Tra i diversi articoli interessanti apparsi (stranamente, essendo estate) negli ultimi giorni, uno mi ha colpito per due distinti e diametralmente opposti motivi: il fascino del tema toccato, e la sua profonda ingenuita'.
Il brano e' questo qua (originariamente letto sulle pagine del New York Times), e parla delle tecnologie disponibili e/o in fase di sviluppo per l'analisi semantica dei contenuti sparpagliati sul web e l'estrazione di dati statistici. Il fine utilitaristico di tale procedura sarebbe, in sintesi, valutare se un dato prodotto (o avvenimento, o azienda...) e' recepita benignamente o malignamente dal pubblico, consultando blogs, news, tweets ed altre disparate fonti per trarne l'opinione di fondo e convertirla in un valore numerico facilmente rappresentabile in un grafico.
La bellezza gustosamente intellettuale ed accademica di codesti strumenti di misura dell'umore, calibri per i sentimenti e righelli dell'animo, e' pero' a parer mio esclusivamente intellettuale ed accademica: allo stato dei fatti attuale, hanno una utilita' prossima a zero.
Facciamo un semplice esempio pratico, partendo da un prodotto a caso. Per comodita' e pigrizia prendo un libro recentemente recensito sul blog di una amica, "Quella Stronza del mio Capo" (sicuramente non e' il mio genere...). Ne piglio il titolo e lo cerco su Google Blogs, motore di ricerca della blogosfera; risultato: 21 menzioni, riportate ovviamente in linguaggio naturale, dunque da analizzare rigo per rigo innanzitutto per capire se effettivamente si sta parlando di quell'opera e poi per trarne l'impressione positiva o negativa avuta dall'autore del post. Ricopio il titolo e lo cerco su Anobii, community dedicata a persone che vogliono condividere le proprie letture con altri appassionati (e di cui sono membro); risultato: 50 voti, espressi per mezzo di un semplice form di rating e rappresentati in forma di media (le stelline a fianco della copertina) e tabellare (le lineette che appaiono al paragrafo "Dettagli del libro").
Ora: senza nulla togliere al valore certamente piu' completo e puntuale che puo' avere un post su un blog, val la pena dispiegare fior di risorse computazionali per setacciare l'Internet, individuare e cavare un dato che invece gia' mi viene fornito altrove secondo la modalita' a me piu' confacente (un numeretto) e con un campione di utenza ampio piu' del doppio?
Da una parte, quella dei brillanti ricercatori descritti nell'articolo di apertura, si cerca di far comprendere al computer la complessa ed intricata mente umana - e di conseguenza prima di tutto il linguaggio con cui essa si manifesta - per trarne delle conclusioni stocastiche; dall'altra, quella dell'utenza, si cerca piu' o meno consapevolmente di assecondare il computer, e strumenti semplici di interazione garantiscono una piu' immediata partecipazione e condivisione, nonche' una piu' radicata sicurezza - cliccare su una stellina da 1 a 4 difficilmente puo' portare ad errori grammaticali di cui vergognarsi col prossimo.
Ad oggi, disponendo sulle nostre scrivanie di PC fondamentalmente stupidi in grado solo di immagazzinare e visualizzare valori finiti, le applicazioni (web e non) tendono a delegare all'utente la classificazione del contenuto, vincolandolo a ragionare sullo stesso piano della macchina, appunto secondo valori finiti: da qui l'introduzione di tags da assegnare a documenti e foto, flags da settare per memorizzare l'importanza relativa di un dato, stelline per misurarne l'apprezzamento...
Interessante notare pero' come codesti paletti e restrizioni non siano solo soluzioni temporanee indotte dalla necessita' (in quanto come detto il computer non sarebbe in grado di estrarre tali metadati emozionali da solo e dunque l'utente dovrebbe proprio farne a meno), ma al contrario secondi i canoni moderni sono visti come rivoluzionari, condizionano la psicologia della interazione uomo/macchina e sono considerati naturali per chiunque. Da questa tendenza emerge del resto il discreto successo delle community wiki (in cui ciascuno aggiunge qualcosina in merito al suo argomento preferito), l'enorme successo del microblogging (ove non e' necessario stilare sermoni come i miei per esporre il proprio pensiero, 140 caratteri bastano ed avanzano), il gigantesco successo dei social network (in cui i contenuti una volta immessi rimbalzano da un utente all'altro, essendo condivisi con un semplice click, ed ogni tanto spunta un breve commento), tutte modalita' in cui l'utilizzatore fa poco dicendo tanto - o quantomeno piu' che non facendo nulla...
Qual'e' la conclusione di questa serie di osservazioni? Assolutamente nessuna. La riduzione della complessita' dell'espressione non e' ne' giusta ne' sbagliata, in quanto da una parte diminuisce la varieta' ma dall'altra garantisce un coinvolgimento di piu' persone, e va presa per quella che e': una evoluzione antropologica. Proseguira' fino all'estremo di ridurre l'intera comunicazione umana ad un ininterrotto flusso di emoticons? Si invertira' al raggiungimento di un maggiore grado di coinvolgimento delle future generazioni di utenti, smaniosi di dir la propria in modo approfondito? Se sapessi predire il futuro starei qui a scrivere su un blog anziche' correre a giocare al SuperEnalotto?
Nel frattempo dobbiamo accontentarci di quel che abbiamo, ovvero un computer che conserva numeri. E dentro questi numeri, volenti o nolenti, dobbiamo farci stare tutto: cifre, informazioni, misure. E sentimenti.