Un esempio di perfetta integrazione

Non penso di essere l’unico a prendere appunti quando trovo un sito con una buona idea, una di quelle che reputo possa tornarmi utile in futuro.

L’ultima volta è successo quando mi sono collegato, dopo qualche mese, al mio account su Flickr, il bellissimo servizio di confivisione foto recentemente acquisito da Yahoo!.

E ho subito capito che Flickr fa parte della famiglia Yahoo!, visto da chi sono stato accolto, ovvero da una schermata che mi ha informato come il mio indirizzo di posta elettronica fosse presente sia nel database di Flickr, sia in quello di Yahoo!.

Yahoo! mi presenta questa schermata fondamentalmente a mio vantaggio: mi dà la possibilità di legare le mie informazioni su Flickr con l’account di Yahoo!. E lo dice.

Unire un account Flickr e Yahoo! - 1

A me la cosa sta tutto sommato bene, per decido di preseguire. Click.

Conferma di iscrizione con dettaglio operazioni

La schermata informa su quello che sta per succedere, con eventuali limitazioni e un dettaglio delle utenze coinvolte. Notate la pulizia della schermata e i punti elenco alla fine, impossibili da tralasciare. L’utente dispone ora di ogni informazione riguardo a quello che succederà. Poiché infatti non è (almeno ancora) così frequente che due sistemi con registrazioni diversi si integrino in questo modo, è importante spiegare bene al visitatore cosa sta succedendo.

Vi accorgerete anche che tutto sommato di vantaggi in questa operazione ne ha anche Yahoo!, poiché per tutti i dati che avete lasciato a Flickr da questo momento in poi varranno le regole decise da Yahoo!

Operazione conclusa

Ecco infine una conferma che tutto si è svolto nel migliore dei modi, con un riepilogo di quello che è successo e come comportarsi d’ora in avanti.

Dal punto di vista di interazione con l’utente questo esempio non è in realtà nulla di stratosferico, e proprio per questo mi colpisce la semplicità con cui è stato affrontato a livello di intefaccia utente un argomento non banale, come la “migrazione” o – meglio – la condivisione di utenti tra due sistemi che sono nati in realtà distinte. Non oso immaginare come altri (io tra questi) avrebbero progettato la stessa procedura

Il tutto si chiude con un’email che ho ricevuto, e che spiritosamente ringrazia in questo modo:

Thanks, and we hope you enjoy the
sign-on-to-everything-in-one-place goodness!

Sito nuovo, Url vecchi

Nel rifacimento di Fucinaweb si è passati da una piattaforma Microsoft (Asp) a una Linux.

Al di là degli indiscussi vantaggi di questa migrazione, un problema che questo tipo di operazioni comporta è la difficoltà nel mantenere ancora funzionanti i link (sparsi per Internet) diretti al vecchio sito.

Il caso più evidente sono gli accessi provenienti dai motori di ricerca: un utente che compie una ricerca si troverà di fronte ad un “page not found”, almeno fino a quando il motore non aggiornerà i propri indici (sì, ma quando?).

Ma in giro di link sparsi ce ne possono essere a decine, magari provenienti da siti partner o da chi semplicemente ha trovato interessanti gli articoli del sito: in questo caso è molto difficile che vengano aggiornati. Questo ha poi delle dirette ripercussioni sempre sul nostro posizionamento nei motori di ricerca, che dipende anche da quanti link in ingresso (funzionananti) il nostro sito riceve.

Anche se non sempre adottate, esistono in realtà alcune tecniche, basate su file di configurazione, che permettono di associare, tramite opportune mappe, la struttura dei vecchi Url con quelli nuovi.

Se la nuova versione del sito è ospitata da un server Linux/Unix, avete buone probabilità di poter configurare il file .htaccess che, tra le tante cose, permette di convertire un Url in ingresso con uno di uscita.

Proprio questo file è quello che abbiamo usato per fare in modo che Fucinaweb funzioni correttamente sia con la nuova nomenclatura di Url, sia con la precedente.

Un tipico esempio di riga presente nel nostro file .htaccess è il seguente:

RewriteRule ^home/collabora.asp$ /index.php?pagename=collabora

La prima parte indica qual è l’Url in ingresso (in questo caso home/collabora.asp), la seconda parte qual è in realtà la pagina da servire al browser (index.php?pagename=collabora). Il tutto in modo assolutamente trasparente al visitatore, senza che vari neppure l’indirizzo nella finestra del browser.

Le potenzialità del file .htaccess sono in realtà molto elevate, più di quanto appaia da questo semplice esempio. E’ infatti possibile utilizzare delle regole di conversione degli Url che si basano sulle cosiddette espressioni regolari. Un esempio in questo caso è il seguente:

RewriteRule ^blog/([_0-9a-z-]+)?.asp$ /index.php?category_name=news&paged=1

In questo secondo caso, tutto quello che inizia con blog/ ed è seguito da una qualsiasi combinazione di lettere e numeri e da .asp, viene convertito in /index.php?category_name=news&paged=1.

La trattazione completa del file .htaccess esula dai nostri propositi, ma non dovrebbe essere difficile trovare qualche buon tutorial in internet.

E per chi non ha Linux? Anche Asp.Net, tramite il file di configurazione web.config dà la possibilità di specificare mappature tra Url di ingresso e uscita (per saperne di più, esiste un buon articolo di The Code Project).

Qualunque sia la soluzione che adotterete, ecco qualche consiglio per rendere la migrazione meno dolorosa:

  • cercate di associare ad ogni pagina un nome univoco, indipendentemente dalla cartella in cui verrà salvata (es. comunicati2005.asp, promozioni.asp); se possibile, utilizzate dei progressivi numerici (anche se ne perdete un po’ in usabilità)
  • posizionate le pagine sempre allo stesso livello di cartelle (es /cartella/cartella1, /cartella/cartella2 e non cartella/cartella1/cartella11 /cartella, ecc.)
  • non usate link assoluti (http://) per pagine del vostro sito collegate a pagine dello stesso sito