Il progetto Mosaic e idee su un “Personal Expression System”

Voglio presentarvi un progetto su cui lavoro, di codice e di fantasia, da molto tempo: un’applicazione web di nome Mosaic. Credo sia un progetto valido, e qualcosa di complessivamente nuovo. Qualcosa di così grande, però, non posso realizzarla da solo. Chiedo quindi aiuto a voi della blogosfera per idee (serve qualcuno che possa inquadrare la cosa da altri punti di vista), grafica e codice (che rilascerò sotto licenza open). Il sistema è già funzionante, seppur con un minimo di funzionalità.

Scrivo quindi qui sotto lo scopo, le varie caratteristiche ed i principi su cui si basa Mosaic.

Scopo

Fornire all’utente un modo di esprimersi in modo completo, quanto più svincolato possibile da schemi esistenti, ed integrato con le altre risorse del web. Esistono molte applicazioni web, ma nessuna centra esattamente il punto. Mosaic non vuole essere semplicemente un sistema di pubblicazione come lo sono i blog o i microblog. Vuole essere un sistema con cui l’utente può riflettere online il suo mondo: Post, Link, Citazioni. Non un pubblicare, quindi, ma più semplicemente un aggiungere al proprio profilo.

 

Screenshot di Mosaic
Screenshot di Mosaic. Potete cliccarci su per accedere alla provvisorissima versione online

 

Funzionalità

  • Un sistema a griglia, funzionalità fin ora riservata a portfolio o siti di testate giornalistiche, con cui l’utente possa disporre i contenuti a piacimento nelle pagine, dando evidenza a quelli che ritiene importanti, raccogliendoli e collegandoli come vuole. Vari widget permetteranno di creare vere e proprie pagine di presentazioni con, ad esempio, gli ultimi Tweet, una descrizione del libro che stiamo leggendo, una lista dei nostri album preferiti, degli ultimi post ecc….
  • Un complesso sistema di tagging che permetta non solo di catalogare i post, ma anche di unirli fra loro, dare loro un filo conduttore. Un sistema di tagging che vada ben oltre le categorie o le keyword, ma che tramite un sistema RDF dia un vero e proprio significato semantico ai post. Per esempio, dare ad un post il tag “date:2-10-09” indicherà al sistema che quel post tratta di eventi avvenuti in quella data.
  • Un modo automatizzato con cui l’utente possa interfacciare facilmente il sistema con altri contenuti sul web, link a Youtube, Anobii, Last.fm, Deezer. Gestione, ad esempio, delle citazioni. Musica, foto, libri collegabili con facilità al post, arricchito in questo modo di nuove informazioni.

Stato Attuale

  • Sistema multiutente con registrazione e login (Restful-authentication)
  • Funzioni base di un cms, creazione di pagine-griglia, articoli, possibilità di impostare una pagina come home
  • Parsing di feed rss e importazione (parziale)
  • Creazione di Widget (Articolo, Feed Rss, lista ultimi articoli, bottone, contenuto statico html) inseribili nelle pagine o richiamabili ovunque tramite Ajax
  • Sistema di editing visuale della griglia tramite drag&drop e modal windows jquery. L’output è puro html, il sistema di gestione dei widget lo elabora come xml e inserisce all’interno i widget. Il css si occupa dell’impaginazione
  • Nice urls: mosaic/nomeutente/nomepagina
  • Sistema di riferimenti: da un articolo è possibile inserire riferimenti ad altre opere (film, canzoni, libri) provvedendo anche un url. In futuro si potranno sfruttare per reperire informazioni aggiuntive e arricchire il post, inserire link semantici, ed aggiungere in modo facile preview direttamente nell’articolo (copertine di libri, spezzoni di musica, link a youtube).
  • Possibilità per l’utente di cambiare il nome e la descrizione del sito, nonché di scegliere il tema.
  • Tag tipo:tag, che dovrebbe permettere tutte le funzioni di cui prima (implementato ma ancora non utilizzato)
  • Possibilità di taggare i contenuti, e di richiamarli per tag. (funzionalità decisamente limitata)

Tecniche

Mosaic è costruito interamente in Rails per la parte server-side e in Jquery per la parte client-side.
I layout e il sistema per le pagine-griglia in particolare si basa su 960gs, sovrascritto in piccolissima parte per permettere agli utenti, tramite un sistema drag&drop di inserire, modificare, ordinare, ridimensionare i widget in modo facile ed intuitivo. Un sistema di classi css permette di applicare temi al sito facilmente.

I widget sono scritti nella pagina attraverso un sistema lato server basato su Xml, questo sistema permette, a differenza di Ajax (anche supportato) usato da altri sistemi (netvibes) per caricare i widget nelle pagine, l’indicizzazione, da parte dei motori di ricerca, dei widget stessi.

Il motivo

Internet, fino a poco tempo fa era un mero sistema di fruizione di servizi e contenuti. Sono nati poi i blog, sugli argomenti più disparati, in cui è l’utente ad esprimersi ed a creare contenuti. Su questa scia sono nati Deviantart, Youtube, Blogger, WordPress.com, Anobii, Last.fm… seguiti dai social network e dai servizi di microblogging.

Non si tratta più solo di scrivere articoli, o di mettersi in contatto con altra gente. Né di dire online quello che si sta facendo. Si tratta di mettere online una parte di sé stessi, che sia scrivendo articoli, condividendo le proprie preferenze musicali, esprimendo parere sui libri letti, schizzi e disegni o dicendo al mondo cosa si sta facendo.

Io ho inziato, come fanno quasi tutti gli utilizzatori del servizio, con lo scrivere quello che mi passava per la testa sui messaggi personali di msn. È su quei messaggi che dovrebbero servire a dire la nostra disponibilità alla chat, infatti, a migliaia, scrivono citazioni, emozioni, dediche… esprimono la loro personalità.

A pensar bene, però, non era per niente una buona idea. C’è il limite dei caratteri, e, soprattutto, il fatto che i messaggi personali, una volta cambiati, sono definitivamente perduti.

E’ questa la ragione che mi ha spinto, tempo fa, a rivedere seriamente il blog. L’avevo usato, fino a quel momento, per scrivere articoli sull’informatica. Quello che cercavo era, invece… beh, qualcosa a metà tra un diario e una bacheca personale in cui poter riversare tutto quello che mi passava per la testa. Citazioni (I Radiohead iniziavano a sostituire gli U2 e la musica pop sul mio lettore mp3) e riflessioni, più che altro.

Purtroppo un blog non funziona così, in un blog… beh, scrivi un articolo, lo pubblichi, quello va nei feed e gli altri lo leggono. I vecchi articoli vanno giù indipendentemente, nel dimenticatoio. No, non va bene per buttarci dentro qualche riga di una canzone. Scrivendo lì pensieri e citazioni, però, i feed sarebbero pieni di quelli. Per non contare che chi avesse visitato il blog avrebbe avuto molta difficoltà ad “incontrare” gli articoli “completi” come quello che state leggendo.

Poi ho scoperto Twitter, che ho trovato semplicemente fantastico. Lì potevo finalmente scrivere quello che mi passava per la testa (solitamente meno di 140 caratteri), e sarebbe stato comunque accessibile ad un pubblico molto più ampio e vario di quello dei miei contatti msn. Per non contare l’esperienza social (tramite cui, direttamente o indirettamente, ho conosciuto molti dei miei amici).

Twitter ha però un problema: Tutto, alla fine, è rumore di fondo, che il sistema di risposte non fa altro che alimentare. I tweet più antichi vengono irrimediabilmente perduti (nessuno andrà mai a sfogliarseli a ritroso). Il sistema è diventato molto più del “cosa stai facendo”, ha aperto le porte su una nuova fase del web2.0 e del social web, ma diventa inefficente e, soprattuto, per niente adatto a mettere online i propri contenuti (citazioni e brevi messaggi).

L’utente di twitter si trova davanti una pagina home sovraccarica, che non fa distinzione tra tweet letti e tweet non letti. Le risposte, non si capisce a quale discussione appartengano. E, per essere sicuri di non perdere neanche un tweet dei nostri amici, dobbiamo sfogliare a ritroso le pagine di twitter fino a che non troviamo che “ok, da qui in poi li ho già letti”.

Esistono molti servizi sulla scia di twitter, tra cui voglio citare Jaiku, Pownce (il mio preferito), FriendFeed e Meemi. Che, con tracking delle conversazioni, #tag, possibilità di postare qualsiasi cosa (immagini, citazioni… non di solo testo sono fatti i pensieri), offrono all’utente un esperienza decisamente più completa, sia dal punto di vista sociale, sia come sistemi di espressione personale (poter inserire citazioni con una categoria apposita è senza dubbio molto meglio).

Da bravo incontentabile, però, trovo che a questi servizi manchi ancora qualcosa.

Il motivo per cui mi sono iscritto a questi servizi era di riversare online quanto più di me, di rendere pubblici ed accessibili a tutti i miei pensieri. I miei pensieri sono sì online, ma sono accessibili?

I tweet, post (come si voglia chiamarli), però, vanno giù con il tempo, perdendosi negli archivi. Benché siano presenti categorie e tag, i nostri contenuti, si perdono subito sotto una valanga di altri tweet, o nelle seconde o terze pagine dei blog. E se invece volessi poter mettere in risalto alcuni miei pensieri? Dare loro un importanza, conservarli?

Da qui nasce l’idea di Mosaic, e di un sistema di contenuti che, fuori dalle categorie fisse quali i blog o i servizi di microblogging, dia all’utente la piena libertà di espressione.

Elenco ora, in diversi punti, le varie idee che mi hanno portato a Mosaic (e su cui questo si basa).

Spiegazione delle Features

1: I nick e la griglia

La prima viene da una ragazza a cui voglio troppo bene, ed, in particolare, dal suo chilometrico nick su msn. Scriveva, in pratica, nel suo nick, molto di quello che voleva dire, c’erano dediche alla sua migliore amica, al suo libro preferito, ecc… tutto accostato in questo modo:

Nick (che continuava a cambiare :)) | Dedica/frase1|Dedica/frase2|Dedica/frase3

A tutte le parti uno spazio (qui però vado un po di immaginazione, l’idea mi è piaciuta troppo) ed un ordine. E se si potesse fare così anche con i nostri blog? Se si potessero mostrare, così, con questa facilità, le cose che amiamo di più, gli articoli che vogliamo mettere più in mostra? E se, allo stesso modo, si potesse dar loro uno spazio ed un ordine in base alla loro importanza?

L’unico modo per sfruttare questa libertà è, secondo me, tramite un sistema a griglia. Un sistema che vediamo spesso in alcune pagine di portfolio professionali. Quello che voglio ottenere è qualcosa di simile, deve essere però facilmente e velocemente editabile e a disposizione di tutti.

2: I post collegati e filo logico

Per questa idea devo ringraziare storytlr, un servizio web che ho scoperto, apprezzato moltissimo, e mai usato. Ve lo spiego in breve: si importano tutte le nostre “tracce sul web”, si da loro un ordine, un filo logico, per narrare una storia (la nostra) attraverso questi “frammenti” importati da altri servizi web.

Non è fantastico? E’ ben oltre le categorie, ben oltre i “post forse correlati” che si trovano dopo i post in molti blog wordpress.

Ordinare e commentare una storia usando i nostri frammenti è però decisamente impegnativo, e non sempre facilmente fattibile… Penso che lo stesso effetto si potrebbe avere tramite un sistema di tag, ordinando i frammenti secondo la data di pubblicazione. Più facile e veloce.

E se non si fermasse solo ai nostri, di “frammenti”? Se, ad esempio (qui ringrazio Nicola Greco per aver scritto in chat “Meme tracker”), si potessero collegare nello stesso modo post di blog diversi? Creare vere e proprie conversazioni tra blog?

3: Le liste di Live spaces ed Anobii

Questa idea la prendo invece dalle liste dei Live Spaces di Msn e da social network quali Anobii e Last.fm.

L’idea è questa: I libri che abbiamo letto, la musica che ascoltiamo… sono tutte cose che fanno parte di noi, che nel “profilo online” che vogliamo crearci non possono mancare. Sarebbe bello poterli importare dai Social Network specifici, tramite api, o dare agli utenti un modo semplificato per mostrare nel loro profilo i “badge” già pronti. le nostre preferenze musicali, i libri che abbiamo letto, come lista ed esporli in bella vista con un widget.

Trovo inoltre che le liste siano un tipo di contenuto valido quanto gli articoli di testo semplice, le citazioni, le immagini. Si può fare una lista di qualsiasi cosa, dei tuoi migliori amici, dei tuoi libri preferiti… (fare liste non è una pratica tanto infantile :P), dovrebbero esserci. Se legate poi a questi servizi esterni sarebbero, secondo me, una funzione di grande utilità.

4: Le reference e i link semantici

Questa è una funzione per di più semantica. Non capita di rado che un post faccia riferimenti, direttamente o indirettamente a Canzoni, Libri o altri post (a me capita spessisimo). E’ possibile creare un interfaccia utente che, tramite ajax, permetta a questo di inserire dei “riferimenti” all’interno del post, sfruttando le grandi capacità del web semantico: non sarebbe difficile, integrando il sistema con Anobii, Amazon ed altri (ad esempio per i riferimenti ad i libri) creare poi collegamenti semantici tra post ed elementi, come anche arricchire il Post con contenuti correlati.

Il blogger sarà così in grado, ad esempio, di recensire un libro, che verrebbe automaticamente collegato (tramite rdfa) al post. Il sistema potrebbe in automatico reperire la copertina del libro e le sue tag da Amazon, e “attaccare” entrambe al post in questione.

L’idea è semplice, e credo aprirebbe un mare di possibilità all’applicazione web.

5: Il controllo sul flusso

Pubblicare qualcosa significa di più che scriverla. Significa, appunto, renderla pubblica, legarla al preciso momento in cui si preme l’apposito tasto, alle condizioni di quel momento, ecc.

Esempio veloce: Che succede se scrivo un post pessimistico sull’amore mentre sono fidanzato? Niente, se lo metto nella mia pagina web e basta. Il post viene pensato come semplice “aggiunta al profilo”. Se lo pubblico, però, sul mio blog? Quello finirà in automatico sui feed. Non ho solo scritto un post sull’amore, ho scritto un post sull’amore, essendo fidanzato, e facendo sapere a tutti che l’ho scritto. (facendo nascere, così, strani pensieri nella mente perversa dei lettori e della fidanzata)

Sono due cose diverse, secondo me, esprimere qualcosa e urlarla ai quattro venti. Scrivere (aggiungere al blog) e Pubblicare (mettere nel nostro “flusso in uscita”, nei nostri feed) devono essere, a mio parere, due cose distinte e separate. E dovremmo poter gestire questo flusso in uscita (che sia un FriendFeed oppure un Feed Rss) in tutto e per tutto.

Applicare questa distinzione è facile. Basta che, accanto al tasto pubblica, si metta una form in cui si può scegliere se aggiungere l’articolo nel flusso, con quale data, e con quale messaggio.

Appello

Prego chiunque fosse interessato o volesse collaborare di contattarmi via email a vigliag@gmail.com
Si accettano altresì consigli, idee, impressioni.

Chi fosse interessato può anche fare un giro nelle pagine di amministrazione, il tutto però è ben lontano dall’essere usabile.

http://mosaic.vigliag.co.cc

user: guest

passw: guestpsw

Grazie per la vostra attenzione

 

Screenshot di Mosaic
Screenshot di Mosaic

 

Annunci

Un pensiero su “Il progetto Mosaic e idee su un “Personal Expression System”

I commenti sono chiusi.