WinFS
Ed Bott ha scritto un interessante articolo
intitolato «Why do you want WinFS?». Ne consiglio caldamente la lettura. Io invece prendo la palla al balzo per raccontare la (tanto attesa?) mia.
Innanzitutto su cos’era WinFS.
Uno dei “motti” passati di Microsoft è stato quello di “information at your fingertips”. Era stato partorito da BillG in persona, probabilmente in un momento di difficoltà mentre cercava qualche documento elettronico sparsi per i mega-giga del suo hard-disk. La visione si è poi concretizzata meglio in quella di un OS search centrico. WinFS voleva essere l’implementazione di quella visione, ma non solo. L’idea dietro WinFS era di esporre un Framework estensibile di oggetti (anch’essi estensibili) persistenti verso un contenitore opaco ottimizzato per lo storage di tali oggetti. Il contenitore opaco altro non era che una versione ‘speciale’ di SQL server. Anche se il contenitore a tutti gli effetti può somigliare ad un file system, non lo è. WinFS è l’acronimo di Windows Future Storage e non di Windows File System come qualcuno può credere. WinFS quindi si può pensare come l’insieme di tre cose:
- lo storage (SQL Server su NTFS)
- un Framework di oggetti desktop built-in (Document, Mail, Contact, etc.)
- un set di API per manipolare e fare ricerche su tali oggetti (WinFS API)
[Parentesi storica. Le API del punto 3. hanno una somiglianza formidabile con le più tradizionali API per fare ORM (Object to Relational Mapping). In Microsoft c’era già un team a cui era stata assegnata la missione di costruire il layer ORM per .Net e si trattava di ObjectSpaces. Per motivi ovvii quindi WinFS ha preso molto in prestito da ObjectSpaces fino al punto che le due codebase sono confluite in WinFS + Relational Provider, essendo quest’ultimo un “plugin” per le WinFS API che permettesse di mappare gli oggetti a mo’ di un ORM verso un DB SQL “tradizionale”. Durante la coinfluizione (?) confluenza il team di ObjectSpaces ha cercato un altro posto al sole infelice e perplesso per il merge e proprio qualche settimana prima dell’addio definitivo ai monti si racconta che un manager abbia chiesto ad un suo sottoposto di rilasciare una versione “ridotta” di ObjectSpaces; il sottoposto non l’ha presa bene e visto che l’abbandono ormai era già dichiarato, un membro storico del team ha deciso di giocare una burla lanciando la seguente affermazione alquanto provocante sul tavolo: “questo team può riscrivere un ORM in 6 mesi mentre si è appesi in ufficio a testa in giù, bendati e con le mani legate dietro la schiena”. Il manager-sottoposto non l’ha presa bene ed ha cominciato ad urlare ed inveire. Chiusa parentesi storica]
Per una serie di motivi poco interessanti il progetto WinFS è stato dapprima rimosso da Longhorn e poi definitivamente cancellato nella definizione data sopra, non senza aver rilasciato qualche beta.
La parte API-esca è diventata LINQ + EntityFramework; le funzionalità interessanti di storage sono state rilasciate con SQL 2005/2008, il Framework definitivamente abbandonato: in parole povere dal punto di vista del search (information at your fingertps) è risultato molto più “semplice” usare tecnologie di indicizzazione tradizionali basate su filtri pluginabbili che cercare di “normalizzare” formati come quelli di Office in continua evoluzione.
Dal punto di vista degli utenti WinFS non ha lasciato nessun vuoto in Vista. Dal punto di vista dei developer neanche, anche se il rilascio di LINQ non è coinciso con quello di Vista. Ciononostante molti – senza neanche sapere cos’è – lo vorrebbero in Windows 7. Forse solo per validare la teoria che Vista è stato un fiasco anche per colpa di WinFS.
-quack

- Page rendering time: 653 millisecs
dixit:
La cosa ancora più ridicola è che gli stessi utenti che vorrebbero WinFS, sono gli stessi che, non capendo nulla, si lamentano che l'indicizzatore della ricerca istantanea di Vista gli fa sempre lavorare l'hard disk e che è un ciuccia-risorse.
Permalink - Edit
dixit:
mi piacerebbe proprio vederli con quel bel mattone di WinFS per vedere le loro reazioni...
Permalink - Edit
dixit:
Magari "confluenza"
Permalink - Edit
dixit:
@ paperino: temo che l'ambiguita' dell'acronimo WinFS abbia causato tutto questo bailamme: uno degli miti di Longhorn era proprio l'introduzione di un nuovo file system, che (come nelle migliori speculazioni) avrebbe fornito performance superiori a NTFS (mah), sarebbe stato basato su un database relazionale con infiniti attributi (mi ricorda il vecchio BeFS, che nostalgia! In NTSF esistono gia' gli Alternate Data Stream, ma nessuno li sfrutta per creare attributi alternativi: forse perche' sarebbero persi copiando i file sulle onnipresenti chiavette formattate in FAT16/32 o sui cd/dvd?) e, mito di tutti i tempi, avrebbe eliminato la frammentazione. Poco importa se la frammentazione influisce in modo visibile ad occhio nudo quando il disco e' occupato per almeno 2/3 o in casi particolari, doveva essere eliminata.
Ovviamente Microsoft, la matrigna di Biancaneve/Longhorn, ha fatto di tutto per azzerare questo sogno ...
@ gigi: per me WinFS sarebbe disattivato all'istante. Ma riconosco di essere parte di una minoranza ...
[leggermente OT]Forse sono un caso raro, ma l'indicizzazione dell'hard disk e' uno di quei servizi che disabilito al primo avvio e il motivo e' semplice: i miei file sono sistemati in cartelle e sottocartelle organizzate in modo gerarchico, idem il menu di avvio. Non serve indicizzare perche' ritrovo i file risalendo la gerarchia. Molte cartelle, poi, hanno nomi di 8 lettere o meno (cartelle? Le chiamo directory, diamine! :D).[/OT]
@ ilSilente: giusto, a furia di masticare inglese si dimenticano i termini corretti in italiano. Se mi scopri a scrivere "verboso" al posto di "prolisso", ti autorizzo a bacchettarmi telematicamente
Edward
Permalink - Edit
dixit:
Chi è che all'epoca parlò di WinFS come un elemento importante di Longhorn? Avrà qualche responsabilità se ancora si chiede che fine ha fatto?
Perché i motivi dell'abbandono di WinFS sarebbero poco interessanti?
Embe', questo non è interessante?
@Edward
Mi pare che il primo BeFS fosse un DB, abbandonato poi per un filesystem con supporto per l'indicizzazione e la ricerca. Chi si immagino WinFS avrebbe dovuto informarsi prima su tentativi analoghi di ingabbiare le informazioni in strutture preimpostate. Penso anche ad OpenDoc di Apple, che aveva anche la pretesa di far sparire le applicazioni come sono intese comunemente.
Permalink - Edit
dixit:
Ma la cosa più interessante dell'indicizzazione è che in caso di file di testo viene indicizzato anche il contenuto.
E ad esempio per alcune cose (conversazioni in primis) è fondamentale poter ricercare in questo modo.
Magari se sei ordinato non è necessario indicizzare tutto l'hard disk ma alcune cartelle credo sia oggettivamente comodo indicizzarle per poter fare ricerche immediate sui contenuti.
Permalink - Edit
dixit:
@ilSilente: denghiù!
@FDG:
Per quanto riguarda il responsabile del "pillar": credo che avere una 'visione' non sia un peccato, in quanto la visione non arriva con tutti i dettagli implementativi attaccati. Che la visione sia stata un successo, al contrario di WinFS così com'era, lo dimostra che tutti i sistemi operativi desktop lo hanno implementato (spotlight, beagle, ecc.)
WinFS non è fallito per motivi tecnici in senso stretto. Non so se ha senso paragonarlo ad un FS per via di alcune peculiarità (il frameword di oggetti preconfezionati).
Permalink - Edit
dixit:
@Edward
guarda che i metadati ci sono già con Windows Search di Vista. Può inserire tutti i metadati (tag) che ti pare, c'è ne sono già di predefiniti, puoi crearne di nuovi e usarli per organizzare/ricercare i tuoi file dal menù di start o in qualunque finestra dotata di ricerca istantanea.
Permalink - Edit
dixit:
Ancora una volta mi ritrovo a dire che "è tutta colpa del marketing". Ricordo ancora gli articoli fiume su LongHorn e il suo nuovo WinFS che avrebbe risolto un sacco di problemi. Nessuno si è uscito WinFS dal cassetto, è venuto da MS! Inoltre, in quegli articoli, si leggevano tutte le pecche del sistema NTFS (sempre a detta di MS, non di un cattivone anti-MS) e del perchè WinFS sarebbe stata la soluzione ottimale! E' chiaro che un utente non addentro a tutte le meccaniche, nè alla struttura stessa della cosa, si sia trovato spiazzato dal fatto che questo miracolo d'informatica fosse scomparso!!
Insomma è come pubblicizzare una auto che ha un sistema di consumi innovativo che permette di usare la metà della metà della benzina e poi poco prima della messa in vendita dire "non c'è più!". Non importa che non ci sia mai stato o che in verità si potevano ottenere gli stessi risultati sfruttando meglio quello che si aveva, perchè nella visione dell'utente finale avete azzoppato il cavallo!
Per fare un altro paragone (così Dovella non si inc*** con me) è come quando hanno pubblicizzato Safari "with security in mind" e poi però non c'era nulla di sicuro nè innovativo.
Permalink - Edit
dixit:
@ FDG: BeFS (originariamente BFS, BeFS e' una storpiatura che ha attecchito) e' un file system con supporto e indicizzazione di un numero illimitato di attributi: l'os permette una ricerca per attributi in modo simile ad un database [1].
Comunque la differenza la fanno le applicazioni, pensate per scrivere ogni file come il contenuto a cui sono aggiunti gli attributi necessari: il client di posta BeMail salva ogni mail come un file di testo il cui contenuto e' il messaggio e i vari campi mittente/destinatario/cc/allegati ecc sono memorizzati come attributi; analogamente People (la rubrica) salva i contatti come file di zero byte pieni di attributi.
Il discorso potrebbe estendersi con profitto a quasi tutti i documenti che attualmente incorporano attributi in un formato proprio: documenti di testo (autore, numero di parole, revisioni, ecc), file multimediali (tag ID3 come attributi, risoluzione, codec usato, attori, regista, ecc), immagini (dati EXIF, risoluzione, ...): se tutte le applicazioni scrivessero metadati, per es. la ricerca del termine "Mozart" mi fornirebbe sia il file Flac de "Il flauto magico" sia il trailer del film "Amadeus" (incentrato sulla vita del compositore) sia lo spartito di "Eine kleine Nachtmuesik".
Rispetto all'indicizzazione di Vista, manca lo strato intermedio dei plugin (che leggono il file su cui possono operare ed estraggono gli attributi) e l'indice vero e proprio non e' un semplice file-database ma il file system stesso: piu' semplice, con performance potenzialmente maggiori ma cozza con i documenti privi di atributi o con attributi contenuti al proprio interno.
Non conosco OpenDoc, ma dalla voce di wikipedia [2] sembra un approccio alternativo a COM/OLE (in Windows) per la creazione di documenti compound (incorporati?) orientato ai documenti stessi; l'approccio di BeOS era differente: il programma (es. visualizzatore di immagini) registrava il tipo di formato (es immagine jpeg) in modo da renderlo accessibile in lettura e scrittura ad altre applicazioni simili (es editor di immagini, altri visualizzatori, editor di testo che incorporano immagini, ecc) [3].
@ Scrooge: solo file di puro testo? Peccato non possa estendersi agli altri formati ...
@ gigi: non ho Vista, uso XP: ho scaricato una copia dimostrativa di 2008 Server, appena ho del tempo libero la installo e ci smanetto un po'.
@ tutti: non sono temporaneamente impazzito da un lato elogiando BeOS e dall'altro affermando che disattivo l'indicizzazione in Windows. Semplicemente l'abitudine di fare a meno dell'indice risale ai tempi del Dos, quando l'organizzazione gerarchica in cartelle era vitale; inoltre all'epoca (2001) BeOS mi aveva favorevolmente impressionato e fui colpito dall'uso estensivo degli attributi, con la ricerca abbastanza veloce e poco invasiva (nessuna scansione in background come in XP: sempre retaggio del Dos, tengo un occhio puntato sulla spia dell'hard disk ed ogni lampeggio sospetto mi spinge ad investigare ...).
Edward
[1] www.birdhouse.org/.../24-scripting_th
[2] en.wikipedia.org/.../OpenDoc
[3] www.tunetrackersystems.com/.../Advanced06_Open
Permalink - Edit
dixit:
@Edward
Guarda che lo strato dei plug-in non manca nell'indicizzazione di Vista.
L'indicizzazione di Vista supporta i filtri per far si che l'indicizzazione sia in grado di indicizzare il contenuto dei file proprietari delle applicazioni di terze parti. Per esempio esistono dei filtri per adobe reader, foxit reader, office 2007, autocad, ecc.
Permalink - Edit
dixit:
@Edward
guarda che anche Windows Mail fa la stessa identica cosa, permette all'indicizzazione di salvare i metadati dei messaggi email (autore, data, mittente, destinatario, ecc.) e così li puoi ricercare
Permalink - Edit
dixit:
@ gigi: mi sono spiegato male: e' l'indicizzazione di Vista che usa i plugin, quella di BeOS no.
Edward
Permalink - Edit
dixit:
Non mi riferisco alla visione, alla necessita di recuperare le informazioni rapidamente, ma alla scelta della soluzione. Però, anche questa scelta non è detto fosse sbagliata a priori.
Si, ha senso come archivio di sistema di informazioni con una struttura nota, che possono così essere raggiunte ed usate appunto perché la loro struttura è nota. E per me questo è un concetto ancora valido, però da applicare nel giusto contesto.
@Kersal
Mi trovi d'accordo. Ricordo anch'io...
È stato questo il problema? Oppure era solo prematuro proporre WinFS?
@Edward
Si, ma credo che originariamente era diverso rispetto a quello scritto da Dominic Giampaolo. Io quel BFS non credo di averlo usato mai. Sembra che fosse differente rispetto ad un normale filesystem (reminescenze di qualche lettura qua e la).
I metadata generici purtroppo non sono portabili (e mi piacerebbe che non fosse così). Quando definisci un formato devi tenerne conto se non vuoi restringere l'uso del formato ad un solo sistema. Puoi usarli come metodo per esporre informazioni contenute nel file verso l'indicizzazione del sistema. Ma per l'indicizzazione non servono metadati persistenti.
Si. Parlavo del formato dei dati di questi documenti composti. Le singole parti vanno incapsulate in un formato comune. Cioè, il formato non è più quello dell'applicazione specifica, a parte il frammento d'informazione che la riguarda. E questo vuol dire che hai altri nuovi formati, e i vecchi li butti (non so se OpenDoc permettesse incorporazione di oggetti serializzati su file esterni); questo nuovo formato di file lo puoi solo leggere col tuo framework. Non cambia molto dall'avere i dati in uno storage di sistema.
OpenDoc poi imponeva agli sviluppatori di rifare il lavoro (a parte Apple, lo usarono pochi sconosciuti). Per me era pure realizzato male. Un difetto evidente era la scarsa integrazione col sistema ospite.
Non poteva che finire male.
Tu pensa, mi ero assemblato un PC con doppio pentium III apposta per farlo girare. All'epoca la motherboard, visto che era difficile trovarne senza controller SCSI, mi costò parecchio... ce l'ho ancora a casa conservata da qualche parte.
Permalink - Edit
dixit:
Si, esistono due versioni di BFS: della prima so poco, pare fosse un filesystem con abbinato un database quindi le modifiche erano registrate in entrambi [1]. Doveva avere basse performance e dei problemi di integrita' dei dati (la sincronizzazione fra fs e database era asincrona e, secondo Benoit, il ripristino da un crash di sistema non era un qualcosa di indolore sempre risolvibile con uno scandisk [2]), cosi' Giampaolo e Meurillon riscrissero il file system incorporando l'idea del database dentro gli attributi e l'indicizzazione. Io conosco solo la R5 che usa il nuovo BFS: probabilmente il vecchio fs (chiamato OFS con un retronimo) era utilizzato ai tempi del Bebox e delle R3-R4 per PowerPC.
Capisco il problema: differenti file system hanno differenti limitazioni e nel caso di quelli piu' consciuti e implementati da quasi tutti gli os, Fat e iso9660, i metadata nel fs proprio non esistono.
Se ho capito bene, avere metadati come attributi del file system e' sufficiente ma non necessario per l'indicizzazione: potrei leggere i file e ricavare i metadati inclusi in essi.
Nell'intervista che ho citato [2] parlano anche di OpenDoc.
Ultima nota: la motherboard e' la mitica Abit VP6 [*]? Se si, hai tutta la mia stima
Be', ti stringo la mano comunque anche se e' un'altra scheda con il Via Apollo Pro 133A.
Quanto a BeOS e' ancora vivo: chiusa la Magnussoft, azienda tedesca che aveva ripreso i sorgenti di Dan0 (senza il consenso di Palm) e li aveva sviluppati sotto il nome di Zeta OS, ci sono Haiku (una riscrittura opensource di BeOS, ancora in stadio alpha) e BeOS Max, la vecchia R5 Personal con nuovi driver, programmi e un installer con partizionamento. Per hardware diffuso prodotto fino al 2003-04 ci sono buone chances di trovare driver sotto BeBits; in alternativa puoi rispolverare il dual 370 o installarlo in una macchina virtuale.
Edward
[1] arstechnica.com/.../7
[2] www.theregister.co.uk/.../windows_on_a_da
[*] lo dico da possessore di una scheda bipro per P3 da server di fascia medio-bassa
Permalink - Edit
dixit:
Non so ragazzi, ma alle volte mi lasciate un po' perplesso...
Dal post quello che "traspare" è :
1. WinFS non era poi questa rivoluzione
2. Averlo "perso" non è poi un grosso problema
3. Dovremmo essere contenti di non averlo in Vista
4. Le vere "innovazioni" sono state riutilizzate
5. "Ciononostante molti – senza neanche sapere cos’è – lo vorrebbero in Windows 7. Forse solo per validare la teoria che Vista è stato un fiasco anche per colpa di WinFS."
Insomma, un post un po' sulla difensiva, non trovate?
Personalmente credo che:
1. Microsoft abbia buttato via dei soldi nel progetto
2. Microsoft ha fatto una gran brutta figura con WinFS perchè di fatto lo avevano pubblicizzato come una grossa innovazione e poi lo hanno ucciso in "sordina".
E' strano vedere come spesso si tenda a "difendere" a tutti i costi la propria bandiera.
La verità è che WinFS è stato un grosso fallimento. Come lo è stato (inizialmente) MobileMe della Apple o quella porcheria (perchè di questo si trattava) di KDE 4.0 per linux. ***
MrSelfDistruct
*** Di esempi ce ne sono un milione, ne ho fatti 3 per non fare torti a nessuno.
Permalink - Edit
dixit:
@mrselfdestruct
Non volevo animare troppo la discussione, comunque...
Hai riassunto bene. Insomma, il marketing di MS ha fatto fin troppo bene il suo lavoro. Ricordo di aver discusso sun un fan di MS quando Apple annunciò SpotLight e lui si divertia a dire quanto fosse una brutta copia di WinFS, quanto WinFS fosse figo, rivoluzionario, potente...
E quando senti queste storie a lungo, immaginati che risate ti fai quando il nuovo sistema inizia a perdere dei pezzi. Perché, checchè ne dica Paperino, da come ci veniva presentato quello che sarebbe stato il futuro Windows, Vista i pezzi li ha persi.
Ma forse stiamo solo parlando dei danni prodotti dal marketing.
Permalink - Edit
dixit:
WinFS non è stato introdotto come affermato da Microsoft, questo è vero, ma non c'è stata una perdita di funzionalità. Per il resto Mac OS X non è allo stesso livello di Windows Vista per quanto riguarda i metadati sui file, su Windows Vista son ben più personalizzabili, come anche le ricerche.
Permalink - Edit
dixit:
@mrselfdestruct:
Bicchiere mezzo pieno o mezzo vuoto?
Non saprei: come utente e developer mi sento appagato.
Come azionista quasi per niente: WinFS è stato uno spreco di risorse ma tutto diventa chiaro solo con il senno di poi; e come avevo accennato i motivi del fallimento non sono solo tecnici, basta leggere il post di Matt Warren linkato nell'articolo di Ed Bott. Lui è stato tra i primi transfughi a seguito della confluenza. Come contributor lo sono ancora di più perché WinFS ha spazzato quel molto di buono che avevamo fatto con ObjectSpaces. L'EF è bello e carino ma ha un sapore molto 'diverso'.
D'altra parte se non ci fosse stata l'incubazione di WinFS a quest'ora i file system gerarchici ci costringerebbero ancora ad estenuanti esercizi di memorizzazione.
@FDG:
Da utente dual, anche se sotto certi aspetti Spotlight è decisamente migliore, non riesco a fare a meno di una delle feature più importanti di Windows Search: la ricerca parentale. Da quello che ho provato la search box in MacOS è dappertutto come in Explorer, ma non ha nessuna possibilità di ridurre lo scope della ricerca alle solo sottocartelle. Una mia svista o limitazione di Spotlight?
Permalink - Edit
dixit:
Puoi cercare nelle sottocartelle della cartella in cui ti trovi, basta cliccare la scritta di fianco a "This mac"
Qui uno screenshot
Permalink - Edit
dixit:
Si, dal box del Finder. Ti sposti su una directory, fai la ricerca e poi selezioni in alto "Cerca in: <nome directory>". Non è molto chiaro, però c'è.
Permalink - Edit
dixit:
Scusate, seguo questo sito a spizzichi, e ne approfitto anche per chiedere a Paperino se si è trovato bene con Dopisp, quel software per sincronizzare l'ipod via WMP...
A parte questo, ritengo che il paradigma gerarchico dei filesystem abbia fatto il suo tempo, le cartelle alla fine stanno sempre più strette, sarebbe meglio parlare di attributi (o metadati) per tutti i file (e non solo i file!).
Personalmente Winfs poteva (può?) esser il fulcro per un'operazione di riunificazione "concettuale" del sistema, in cui, se vogliamo parafrasare unix, ogni cosa è un OGGETTO (e non un file), e come tale memorizzata nel filesystem.
Così possiamo trattare come oggetti i file, i contatti, le periferiche, le installazioni di programmi, le relazioni tra gli stessi, le dipendenze (che potrebbero migliorare i meccanismi di installazione e disinstallazione molto meglio di quanto oggi non si faccia), gli utenti stessi e le acl. Una sorta di approccio unificato sulle informazioni memorizzate che avrebbe avuto poi ripercussioni notevoli anche sull'interfaccia d'uso.
Tutto questo è stato soppiantato da un motore di ricerca integrato "a la spotlight" (ma sensibilmente più lento), che lascia un po' l'amaro in bocca a chi pensava a qualcosa di nuovo.
Questi delusi adesso aspettano windows 7, ma credo che difficilmente qualcosa del genere andrà in porto. Ed è un peccato, a mio avviso.
Permalink - Edit
dixit:
Endymion, se può servire la mia testimonianza, io ho acquistato tempo fa MGTEK Dopispp per sincronizzare l'ipod della mia ragazza via WMP. Funziona perfettamente (almeno con un iPod mini da 6 gb e Windows Vista).
Permalink - Edit
dixit:
Endymion, ti ringrazio davvero tanto per il suggerimento. Anche io ho fatto installare DOPISPP (ma che razza di nome). Poi il turista si è fatto prendere la mano: iTunes -> Aggiornamento -> mattone.
Permalink - Edit
dixit:
Se l'argomento B(e)FS vi solletica, date un'occhiata a "practical file system design" (http://www.letterp.com/~dbg/), scritto dall'autore del file system in persona
Permalink - Edit
dixit:
@Endymion:
personalmente, sono ancora molto legato ad una struttura gerarchica, che è vero che non serve al pc, ma personalmente serve a me, perchè mi piace sapere che determinati file li devo cercare solo in determinati settori, ossia le cartelle.
Quanto al sistema di ricerca di Vista, non ho idea se sia più lento o meno di spotlight, so solo che lo trovo di una comodità bestiale, specie quello integrato nel menu start, che trovo utilerrimo.
Infine, per quanto riguarda il fatto di trattare tutto come oggetti, sul modello *NIX che tratta tutto come file, mi rimane un po' di perplessità: sui sistemi unix, trattare tutto come file è un'arma a doppio taglio, perchè se da un lato ti consente tante belle cosette, dall'altro può essere un limite, ricordo che c'era un articolo su zdnet (appena lo ritrovo lo posto) in cui spiegava come questo può diventare un limite noioso. Ecco, non vorrei che una struttura che considera tutto oggetto (sicuramente sarebbe più "potente" rispetto al considerare tutto un file, almeno a livello di astrazione) possa presentare limiti analoghi. Magari mi sbaglio, ma è una perplessità che mi rimane...
Permalink - Edit