domenica 21 dicembre 2008

memoria storica di internet

Ho trovato questo interessante sito web.archive.org che mantiene vecchie versioni di tantissime pagine internet. Volete vedere come si presentava un sito 5 o addirittura 10 anni fa? Allora andate su web.archive.org, digitate il nome del sito e cliccate su "Take me back". La visualizzazione è piuttosto lenta ma dopotutto non è ottimizzato per un uso quotidiano...
Penso che sia una importante iniziativa per mantenere la memoria storica di tutte le informazioni digitali su internet: si possono tenere giornali stampati e riguardarli tra 10, 20, 100 anni... ma sarà lo stesso per le informazioni che si trovano solo sui siti internet?

domenica 23 novembre 2008

Un occhio su internet

Ecco una nuova frontiera delle ricerche che esce dai laboratori per diventare qualcosa di "usabile". Riporto la notizia che ho letto in un post dell'ottimo blog di Paolo Attivissimo: un motore di ricerca per immagini che si chiama TinEye. Non si tratta di una copia della "ricerca immagini" che troviamo su Google e molti altri motori di ricerca. Questi motori cercano le immagini in base al testo che le circonda, in questo caso invece viene sftuttata una una tecnologia che "vede" le immagini in internet e le trova per somiglianza come faremmo noi con i nostri occhi. In pratica è possibile inserire un immagine nel motore (o il suo indirizzo internet) e in pochi decimi di secondo verrano ricercate tutte quelle simili. Attualmente il numero di immagini indicizzate non è altissimo ma ho fatto alcune prove e il risultato è molto buono. Ad esempio cercando questa immagine:
Si trovano anche queste:
Che sono ovviamente ricavate dalla prima con ritagli e ritocchi; a prova del fatto che l'algoritmo di ricerca è abbastanza elaborato.
Un altro utilizzo che mi viene in mente è quello di cercare eventuali pubblicazioni di foto fatte da noi: qualcuno sta usando le vostre foto su internet senza avere una vostra autorizzazione? Con TinEye dovreste riuscire a trovarle. Oppure un giornale documenta fatti recenti con immagini di repertorio? Basta inserire l'immagine nel motore di ricerca e subito potremo vedere se è già stata usata altrove. Penso che questo tipo di ricerca si evolverà velocemente e sarà sempre più usata: staremo a vedere gli sviluppi.

domenica 2 novembre 2008

Riflessione sui social network

In questi giorni sta diventando disponibile per gli utenti di blogger il gadget "Lettori" con l'elenco degli utenti che seguono il proprio blog. Una funzionalità che rende la piattaforma di Google più vicina ad un social network, cioè permetterà di rendere più evidenti gruppi di interesse ed amicizie tra gli utenti.
In questi ultimi mesi le piattaforme di social network, e parlo soprattutto di Facebook, stanno letteralmente spopolando. Non dico questo basandomi su statistiche ufficiali, ma riporto l'impressione che ho avuto parlando con diverse persone che conosco e sperimentando io stesso Facebook: ho trovato tantissime persone che conosco, molte più che tra i blog, i siti o i forum. Ormai quello che viene comunemente chiamato "Web 2.0" non è più il futuro ma la realtà.
Mi chiedo: perché  investire tempo e denaro in queste piattaforme? Perché spingere sempre di più le persone a "vivere" i loro rapporti, esprimere opinioni, raccontare se stessi sul web? Una parziale risposta l'ho avuta indirettamente ad un seminario a cui ho partecipato settimana scorsa: il futuro della pubblicità e anche delle indagini di mercato è su internet, e soprattutto sulle piattaforme di social network. Provate ad immaginare: un software molto complesso analizza tutto ciò che scrivete, valuta le vostre amicizie, considera le cose che preferite guardare e... può proporvi spazi pubblicitari ultra personalizzati oppure può stabilire se alcuni prodotti vi piacciono oppure li odiate. Queste sono tutte cose che nell'economia attuale valgono un sacco di soldi! Software di questo tipo non sono solo esperimenti ma esistono e funzionano già oggi: si basano soprattutto sull'analisi semantica (capacità di comprendere il significato delle parole e delle frasi) e diventeranno sempre più precisi. Un esempio "rudimentale" di software che si basa sull'analisi semantica (con altri scopi) lo possiamo trovare da diversi anni nel correttore grammaticale di Word, ma in futuro saranno sempre più importanti e  a breve avremo a che fare spesso con programmi di questo tipo. Infatti quello che già oggi viene chiamato "Web 3.0" sarà, dicono gli analisti, basato sulla semantica: ad esempio sarà possibile fare una domanda ad un motore di ricerca, proprio come la faremmo ad una persona, ed ottenere una risposta. Vedremo se il tempo confermerà la previsione.
P.S. Non è che voglia demonizzare queste cose mettendole in una luce negativa: come al solito sono strumenti e dipende dall'utilizzo che ne facciamo, inoltre le cose è sempre bene saperle!

martedì 9 settembre 2008

Old news

Mi trovo ancora una volta a scrivere di Google e di come stia "invadendo" con il suo stile moltissimi campi in cui la ricerca delle informazioni è cruciale. L'ultima notizia è l'inizio di un lavoro di digitalizzazione di vecchi giornali ricercabili da google news. Ecco un esempio che ho trovato.
Ovviamente per ora sono disponibili solo alcune testate negli U.S.A. ma chissà se prima o poi si vedrà qualcosa del genere anche in Italia.
Molto interessante la ricerca del testo evidenziata direttamente nelle immagini (già usata da Google in altre applicazioni come Books o nella ricerca dei brevetti)
Colgo l'occasione per una riflessione.
Da una parte sembrerebbe  che Google voglia concorrere con Microsoft nella fornitura di software (vedi Chrome, Google Docs, Picasa) ma sono convinto che il suo vero obiettivo sia il possesso delle informazioni, a partire da quelle condivise (giornali, siti web, mappe, ...) fino a quelle personali (posta, documenti, fotografie, diario...): la logica è: "ti fornisco un software gratuito ma tu mi lasci informazioni su di te".
Con questo non voglio dire che Google sia in malafede perché le possibilità di ricerca che fornisce sono utilissime a tutti e io, personalmente, non ho problemi a lasciare le mie foto o i miei documenti sui server di Google, anche se verranno utilizzati per tracciare il mio profilo ed inviarmi pubblicità "mirata" ...ma bisogna saperlo!

mercoledì 3 settembre 2008

Google lancia il suo nuovo browser: Chrome

Non scrivo da tanto tempo ma meglio raramente che mai! Ieri sera Google ha reso disponibile il download del nuovo browser Chrome: l'ho installato subito per curiosità e perché sono sempre interessato alle novità di Google. Risparmio le discussioni sulle caratteristiche e racconto solo la mia
 esperienza sottolineando le cose che più mi hanno colpito.
La prima nota positiva è che il download e l'installazione sono rapidissimi, l'applicazione è leggera ed essenziale come nello stile di Google. La prima cosa che ho notato è che l'indirizzo e i pulsanti di navigazione sono sotto i tab delle schede e non sopra come in Firefox e IE, cioè nel punto più "logico" (ogni scheda ha un indirizzo diverso e una diversa storia di navigazione...).
La casella dell'indirizzo è una vera e propria casella di ricerca: non è più necessario digitare precisamente l'indirizzo della pagina ma sono sufficienti alcuni indizi (parte del nome ,titolo) e vengono mostrati "al volo" molti suggerimenti sia dalla cronologia che dalla ricerca in Google. In realtà questa funzionalità c'era già in Firefox3 ma implementata da Google, che è maestra nelle ricerche, funziona molto meglio.
Altra nota positiva è il considerare le schede come vere e proprie applicazioni (esiste anche un task manager che indica l'utilizzo di memoria e di CPU). Questo proietta il browser in un futuro (ma forse già presente) di un web che non è più un insieme di pagine di testo e immagini ma una vera e propria piattaforma di applicazioni.
Tra le funzionalità per sviluppatori ho notato una bella "console javascript" che sembra molto potente, ma mi riservo di provarla.
Bella la traduzione in italiano che, rompendo un po' gli schemi, ha adottato un linguaggio molto vicino a quello parlato tutti i giorni, ad esempio le schede delle opzioni sono "Impostazioni di base", "Piccoli ritocchi" e "Roba da smanettoni". Sono anche riusciti ad essere simpatici!
Veniamo alle cose negative.
Il primo problema fastidiosissimo è il malfunzionamento della scroll bar se si usa, come me, un touchpad synaptic: funziona lo scroll verso il basso ma non verso l'alto! Il bug è già segnalato
ma potevano accorgersene prima del rilascio!
Altra nota negativa è, paradossalmente, la mancanza della Google Toolbar che uso molto e che mi manca: ho verificato che non è installabile su Chrome.
In sintesi mi piace ma è ancora una beta, comunque penso che inizierò ad usarlo, sicuramente crescerà molto (e vedremo tra qualche mese come saranno le percentuali di utilizzo dei vari browser!)

giovedì 10 gennaio 2008

Macchina virtuale per VMware "da zero" (parte II)

Provo ora a costruire un hard disk virtuale. La prima buona notizia è che, a differenza del file di configurazione vmx, il file vmdk, che definisce i dischi, ha una documentazione ufficiale scaricabile dal sito di VMware. Mi sembra abbastanza chiara. Prima di tutto viene definito cosa è un disco virtuale. In generale un disco può essere composto da una catena di link dove il primo elemento è il disco base e tutti i successivi (collegati in catena) sono i delta link che vengono creati ogni volta che viene generato uno snapshot (cioè una foto istantanea) del disco. Questa architettura permette di avere quindi delle istantanee in momenti precisi e poter eventualmente ripristinare il disco a questi punti. A me per ora interessa creare solamente un "disco base", quindi cercherò di evitarmi complicazioni in questo senso. Ogni link è composto da uno o più extent, un extent è uno spazio "fisico" nel quale sono memorizzati i dati e generalmente è un file del sistema "reale" (ma potrebbe essere anche un hard disk reale o una partizione di un hard disk reale)
  • il link può utilizzare un singolo extent oppure l'insieme di più piccoli extent
  • lo spazio utilizzato può essere allocato tutto in fase di creazione del disco, oppure può crescere dinamicamente nel momento in cui c'è l'esigenza di archiviare i dati.
La struttura di link di un disco virtuale è definita in un file di configurazione ("descriptor file", cioè un file di testo con estensione .vmdk) Dopo questa premessa (essenziale per capire) inizio a creare il file di configurazione (xubuntu.vmdk) secondo le specifiche. Prima di tutto la versione che è 1:
version = 1
Successivamente devono essere inseriti due parametri che definiscono un identificativo univoco del link (CID) e l'identificativo del link padre (parentCID). Gli identificativi sono valori casuali a 32bit e nel file di configurazione sono espressi in forma esadecimale. Nel mio caso il disco base non ha un link padre, quindi parentCID deve essere impostato ad un valore predefinito che da specifiche è (~0x0) (cioè la negazione di uno zero che nella rappresentazione esadecimale diventa ffffffff). In pratica i parametri da impostare sono:
CID=fffffffe
parentCID=ffffffff
Il parametro successivo consente di definire il tipo di disco. Tra le varie opzioni possibili scelgo "twoGbMaxExtentSparse" che genera, per ogni link, diversi extent (con una dimensione massima di 2Gb ciascuno) e alloca lo spazio dinamicamente (così non ho bisogno di occupare effettivamente tutto lo spazio del disco virtuale. Scrivo quindi: createType="twoGbMaxExtentSparse" Ora devono essere definiti i singoli extent. Vorrei un disco da 10Gb, quindi lo costruisco con 5 extent di 2Gb l'uno. La sintassi per definire un extent è la seguente:
modalità dimensione tipo nome
modalità
indica se è in scrittura o in sola lettura, imposto RW (lettura e scrittura)
dimensione
è la dimensione dell'extent espressa in settori, 1 settore = 512 byte. Se voglio un extent da 2 Gb scrivo 2 * 1024 * 1024 * 1024 / 512 = 4194304
tipo
uso SPARSE che indica che lo spazio viene allocato solo quando serve
nome
è il nome del file che contiene i dati. Utilizzando la sintassi consigliata lo chiamo xubuntu-s0001.vmdk la "s" indica che è di tipo SPARSE mentre 0001 è un numero progressivo. Riassumendo scrivo:
RW 4194304 SPARSE "xubuntu-s0001.vmdk"
RW 4194304 SPARSE "xubuntu-s0002.vmdk"
RW 4194304 SPARSE "xubuntu-s0003.vmdk"
RW 4194304 SPARSE "xubuntu-s0004.vmdk"
RW 4194304 SPARSE "xubuntu-s0005.vmdk"
L'ultima parte del file di descrizione del disco definisce come sarà visto l'hardware dalla macchina virtuale. È necessario definire il tipo di interfaccia (adapterType) che imposto a "ide" e la geometria del disco; uest'ultima mi risulta un po' più complessa da capire, e deve essere coerente con la dimensione effettiva del disco. Un'altra volta proverò ad approfondire il significato dei parametri, per ora mi limito ad utilizzare questa tabella. Quindi, copiando, scrivo:
ddb.adapterType = "ide"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "16"
ddb.geometry.cylinders = "16383"
Ora il file di configurazione dovrebbe essere completo. Mi resta solo un dubbio. I file del disco (xubuntu-s0001.vmdk) vengono generati direttamente da VMPlayer all'avvio o devono già esistere? Proviamo a partire senza. Niente: non parte! Proviamo a partire generando dei file vuoti... non parte! Probabilmente è necessario generare i file degli extent già nel formato corretto. La cosa è diventata un po' più complessa del previsto. Ma penso che questa sarà un'altra puntata!

mercoledì 9 gennaio 2008

OpenID

Da qualche tempo ho notato che è possibile autenticarsi per i commenti su blogger utilizzando un OpenID ed il nome mi ha incuriosito. L'idea è intrigante: un solo utente per tutto internet (almeno in teoria). Purtroppo c'è anche il rovescio della medaglia: nella definizione in inglese su wikipedia vengono sottolineati alcuni aspetti critici sul piano della sicurezza. Secondo me non è da trascurare nemmeno il problema della privacy: se ogni sito che supporta OpenID deve verificare le credenziali sul server del provider OpenID, indirettamente quest'ultimo può conoscere i siti visitati dall'utente. Comunque la cosa merita un approfondimento: prima o poi cercherò di capirci qualcosa in più.

sabato 5 gennaio 2008

Macchina virtuale per VMware "da zero" (parte I)

Mi trovo ad aver bisogno di un PC con linux ma non possiedo un hardware sul quale installarlo. Ho però un bel portatile con Windows Vista 1G di RAM e molto spazio sull'HD: vorrei provare ad installare Ubuntu su un server virtuale con VMWare. Nulla di particolare: ci sono molte guide in rete per questo tipo di operazione ma proviamo in diretta. Gli ingredienti sono:
  • VMWare Player (scaricabile dal sito di VMWare)
  • Immagine ISO del CD di installazione di XUbuntu Linux (Ho scelto la distribuzione Xubuntu al posto della "sorella maggiore" Ubuntu poiché è più leggera.
Prima di tutto è necessario generare una macchina virtuale da utilizzare per installare il sistema operativo. Su internet esiste un ottimo sito (EasyVMX) che permette di configurare online la propria macchina virtuale e scaricarla. Purtroppo, sebbene l'avessi già usato con buoni risultati altre volte, la macchina generata da EasyVMX non ne vuole sapere di funzionare: sembra che vada tutto bene ma poi dopo alcuni secondi l'applicazione non risponde più. Tempo sprecato. Decido di tentare un'altra strada: creare a mano i file di configurazione! Dopotutto è sufficiente un file di testo contenente la configurazione ed eventualmente i file di descrizione degli hard disk virtuali. È l'occasione per sperimentare qualcosa di nuovo! Per fortuna qualcuno ha già pensato di scrivere qualcosa sulla sintassi dei file di configurazione vmx! Seguirò le regole suggerite dall'autore del sito: "i file di configurazione piccoli sono meglio di quelli grandi" e "fatto in casa è meglio". Iniziamo. Creo il file xubuntu.vmx contenente il minimo indispensabile:
config.version = "8"
virtualHW.version = "6"
guestOS = "ubuntu"
Provo a far partire la macchina: non farà nulla ma almeno vediamo se parte. Tutto OK: mi dice che non trova il sistema operativo :). Dopo aver eseguito VMware Player con la configurazione creata, vengono aggiunte automaticamente alcune righe al file .vmx: in particolare
floppy0.fileName = "A:"
Questa non mi piace: ha impostato di default un lettore floppy mappato sul drive A: del mio PC reale, siccome non ho il floppy, per evitare problemi la sostituisco con:
floppy0.present = "false"
Inizio ad aggiungere "pezzi" alla macchina. Per la scheda di rete scelgo la modalità NAT che permette di condividere semplicemente la connessione a internet del PC reale e imposto "e1000" come modello di scheda siccome è consigliato per sistemi operativi "moderni":
ethernet0.present= "true"
ethernet0.startConnected = "true"
ethernet0.virtualDev = "e1000"
ethernet0.connectionType = "nat"
La RAM (deve essere un multiplo di 4) la imposto a 256 Mb... meglio non esagerare, altrimenti mi occupa tutta quella reale!
memsize = "256"
La scheda audio (impostazioni minimali consigliate):
sound.autodetect = "TRUE"
sound.fileName = "-1"
sound.present = "TRUE"
Ora aggiungo il lettore CD-ROM mappandolo sull'immagine ISO di Xubuntu:
ide1:0.present = "true"
ide1:0.deviceType = "cdrom-image"
ide1:0.filename = "xubuntu-7.10-desktop-i386.iso"
ide1:0.startConnected = "TRUE"
Provo di nuovo ad avviare la macchina: manca ancora l'hard disk ma il CD di Xubuntu parte anche come "live CD" e posso comunque vedere se funziona. Anche questa volta la fortuna mi assiste: funziona perfettamente, compreso l'accesso a internet. Ora viene la parte che mi sembra più difficile: aggiungere un hard-disk. Nella configurazione aggiungo
ide0:0.present = "TRUE"
ide0:0.deviceType = "disk"
ide0:0.filename = "xubuntu.vmdk"
e dovrebbe essere sufficiente. Ora devo costruire il file di configurazione del disco (.vmdk)... ma meglio rimandare alla prossima puntata!

Iniziamo!

Ci provo un'altra volta. Dopo anni passati a "succhiare" informazioni dalla rete vediamo se riesco a mettere la mia esperienza a disposizione di chi ne dovesse avere bisogno. Gli argomenti di cui parlerò riguarderanno la tecnologia, principalmente informatica e simili... ma chi lo sa... potrebbero esserci anche altre cose. Mi auguro buona fortuna da solo!