Di #VeryBello non c’era bisogno

No, davvero non avevamo bisogno dell’ennesimo sito di promozione turistica, dal nome quantomeno improbabile, e dal formato probabilmente poco innovativo. I commenti di Fabio Lalli e Paolo Iabichino sono accurati ed esaurienti.

L’ironia scatenata sui social (seguite l’hashtag #verybello su twitter) ne è la dimostrazione.

Ci sono già siti che collezionano in maniera egregia gli eventi sul nostro territorio, a cominciare da WeeKeep / finesettimana.it.

 

Tempo di bilanci

Tempo di bilanci.

Espressione a dir poco abusata, specialmente in questo periodo dell’anno.

In fondo male non fa, tirare una riga di quando in quando. Allora perchè non cogliere la Gregoriana occasione offertaci.

Un anno da papà. Non ho dubbi che questa sia la cosa più importante, la più gioiosa, la più impegnativa. E certamente è anche ciò che ha condizionato di più tutto il resto, soprattutto le attività non core come il golf e la vela. Ecco, la vela, per esempio. Credo non capitasse davvero da tanto tempo, ma gli ultimi 365 giorni sono passati senza che io mettessi piede in barca, né per una regata né per una piccola uscita giornaliera. Chissà se quest’estate ci decideremo a fare la prima, con la pupa poco più che unenne.

Nel bilancio non può mancare ovviamente il lavoro. Bilancio positivo, per una nuova posizione che ho fortemente voluto, e che ricopro da dodici mesi esatti. Bilancio positivo, decisamente, nonostante non sia riuscito ad ottenere tutti gli obiettivi che personalmente mi ero prefissato.

Con un occhio al passato, ed uno, non troppo fiducioso, al futuro – al futuro di questo paese, intendo – guarderò gli ultimi 5 giri di orologio di questo 2014.

E poi si riparte.

Regression Testing

Test di Regressione, ovvero la pratica di eseguire una intera serie di test sul codice pre-esistente, in occasione di ogni nuova modifica apportata, alla ricerca di un potenziale errore introdotto con la modifica stessa. Sistemo il nuovo, rompo il vecchio. Capita più spesso di quanto possiate immaginare.

La pratica della Continuous Integration, e soprattutto dell’esecuzione automatica dei test aiuta molto, ed è ormai diffusa nelle software house anche di piccola o media dimensione.

Allora proprio non mi spiego perché questo errore nel codice del Google Reader ricompaia periodicamente.

Errore di Regressione
Errore di Regressione

Controlli HTML disabilitati ed accessibilità

Lo sapevate che i controlli disabled o readonly, grazie anche al comportamento abbastanza insano di MSIE, mandano letteralmente a ………..  l’accessibilità? Questo perchè il browse disegna testo grigio su sfondo sempre grigio. Addio contrasto epr gli ipovedenti.

Fortunatamente basta qualche furbo selettore CSS per riprendere il controllo.

input[disabled], input[readonly], select[disabled], 

select[readonly], checkbox[disabled], checkbox[readonly],

textarea[disabled], textarea[readonly]

{
  background-color: #dcdcdc;
  color: #000000;
  cursor: default;
}

Il link per cancellarsi da Facebook

A quanto pare è parecchio difficile da andare a trovare, fra le decine e decine di pagine di opzioni ed impostazioni. Quindi, per i più pigri, eccolo qui:

Clicca qui per attivare la procedura di cancellazione del tuo account Facebook.

Facendo click sul link si apre – supponendo che abbiate già fatto il log-in in Facebook, il form che vi consente, dopo averci ulteriormente riflettuto, di cancellare il vostro account.

Non venite a lamentarvi con me dopo che l’avrete fatto.

Facebook, il pulsante “Mi Piace” e la Privacy (alle ortiche!)

GET /widgets/like.php?width=300&show_faces=1&layout=standard&href=http://www.imdb.com/title/tt1470023/
HTTP/1.1 Host: www.facebook.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.38 Safari/533.4
Cache-Control: max-age=0
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utma=87286159.95024650.1229115815.1257501181.1257504432.15;
locale=it_IT; lsd=oXejW; c_user=713360587; datr=1232743389-2[…..][…..]a82db3f71bcfb4e652b6;
lo=bG3rNTGVwNb_XhGkftfasg; lxe=eugenio%40schinina.it; lxs=2; sct=1274172610; xs=ca120d8ee7341b01dc86ee8a74c18154;
x-referer=http%3A%2F%2Fwww.facebook.com%2Fhome.php%23%2Fhome.php;
presence=DJ274172612G27[…..][…..]72612QQQ
RESPONSE
HTTP/1.1 200 OK P3P: CP=”DSP LAW” Content-Encoding: gzip Content-Type: text/html;
charset=utf-8
X-Cnection: close Date: Tue, 18 May 2010 08:50:49 GMT
Transfer-Encoding:  chunked
Connection: keep-alive
Vary: Accept-Encoding Connection: Transfer-Encoding

Qualche giorno fa ho espresso agli amici le mie preoccupazioni sulla presenza ormai irrimediabilmente diffusa del pulsante “Like” (da poco riadattato in italiano con “Mi piace”).

Davanti alle loro facce un po’ spiegavo che Facebook è in grado adesso di conoscere le nostre abitudini di navigazione. Sa cioè esattamente quando e su che pagina passiamo, da quale link arriviamo e varie altre cose, probabilmente.

La cosa incredibile è che – in barba a qualunque criterio di privacy – è in grado di associare in maniera diretta questa serie di informazioni al nostro profilo. Vedere sotto per credere.

I (don’t) like this fu*%#g pixel tracking!

Ogni sito che intenda inglobare il pulsante “I like” non fa altro che aprire un IFRAME verso un altro dominio (facebook.com, nella fattispecie). Nella chiamata che ne consegue vengono scambiate interessanti informazioni.

Quello che segue è l’estratto di uno sniffing effettuato accedendo non a Facebook ma ad uno di questi partner sites, nella fattispecie IMDB.com. Di tutto il traffico ho isolato la porzione che accede al widget di FB.

Nei log ho evidenziato quello che mi interessa far notare: nella seconda chiamata, quella fatta da un computer su cui l’utente (il sottoscritto) è loggato su Facebook, noterete la presenza di un paio di dati interessanti, fra cui il mio facebook userid. Devo andare oltre o posso fermarmi qui?

GET /widgets/like.php?width=300&show_faces=1&layout=standard&href=http://www.imdb.com/title/tt1470023/
HTTP/1.1 Host: www.facebook.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT ...... Safari/533.4
Accept: application/xml,application/x[.....]age/png,*/*;q=0.5
Accept-Encoding: gzip,d[.....].8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utma=87286159.95024650.1229115815.1257501181.1257504432.15;
lo=6xfx4qgM83b_WezVn2tp-Q; datr=1232743389-2c1f750af4cf324[.....]e652b6;
locale=it_IT

Il server risponde

HTTP/1.1 200 OK P3P: CP="DSP LAW" Content-Encoding: gzip Content-Type: text/html;
charset=utf-8
X-Cnection: close Content-Length: 2465
Vary: Accept-Encoding Date: Tue, 18 May 2010 08:48:51 GMT
Connection: keep-alive
Set-Cookie: reg_fb_gate=http%3A%2F%2Fwww.facebook.com%2Fwi[.....][.....]e%252Ftt1470023%252F;
 path=/; domain=.facebook.com
Set-Cookie: reg_fb_ref=http%3A%2F%2Fwww.facebook.com%2Fwi[.....][.....]e%252Ftt1470023%252F;
path=/; domain=.facebook.com

Poco male. Tanti dati in qualche modo oscuri (c’è sicuramente già qualche tipo di tracking), ma niente di così evidente come invece avviene nella caso che segue…

GET /widgets/like.php?width=300&show_faces=1&layout=standard&href=http://www.imdb.com/title/tt1470023/
HTTP/1.1 Host: www.facebook.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows[.....] ri/533.4
Cache-Control: max-age=0
Accept: application/xml,application/xhtm[.....]=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate,sdch[.....]US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: __utma=87286159.95024650.1229115815.1257501181.1257504432.15;
locale=it_IT; lsd=oXejW; c_user=713360587; datr=1232743389-2[.....][.....]a82db3f71bcfb4e652b6;
lo=bG3rNTGVwNb_XhGkftfasg; lxe=lamia%40email.it; lxs=2; sct=1274172610; xs=ca120[.....]c18154;
x-referer=http%3A%2F%2Fwww.facebook.com%2Fhome.php%23%2Fhome.php;
presence=DJ274172612G27[.....][.....]72612QQQ

E la risposta del server…

HTTP/1.1 200 OK P3P: CP="DSP LAW" Content-Encoding: gzip Content-Type: text/html;
charset=utf-8
X-Cnection: close Date: Tue, 18 May 2010 08:50:49 GMT
Transfer-Encoding:  chunked
Connection: keep-alive
Vary: Accept-Encoding Connection: Transfer-Encoding

Ho omesso il resto in quanto non interessante.

Notare che il parametro c_user è quello usato da Beacon, prima che venisse spento proprio per questioni di privacy.

Embè, dove sarebbe il problema?

Il problema non c’è, se accettate di fornire gratuitamente ad un operatore d’oltre oceano i dettagli delle vostre abitudini di navigazione. Probabilmente (ma io non ho modo di saperlo, vedi disclaimer) Facebook utilizza questi dati per personalizzare gli annunci che vi propone. O forse li vende ad altri. Chi lo sa?

Cosa posso fare per evitarlo?

Al momento credo che evitare di stare loggati su Facebook (Account, poi Logout) possa mitigare il problema, come documentano i traffici che ho riportato sopra, ma dovrei approfondire.

Alcuni doverosi disclaimer: primo, non sono uno specialista di sicurezza, anche se me ne interesso, quindi è possibile che in alcuni passaggi abbia preso delle cantonate. Secondo, non ho alcun elemento per dire che Facebook con quei dati ci faccia chissà che porcherie. Anzi, per essere precisi non ho neanche elementi di prova per dire che li memorizzino e li utilizzino in qualche modo. So però che cosa sarei in grado di farci io, avendoli a disposizione. E vi assicuro che potrebbe non piacervi. Terzo, Facebook non è certamente il primo è certamente non sarà l’ultimo sito web a fare uso di qualche variazione della tecnica del pixel tracking: la cosa (per me) sconvolgente è che lo faccia associando la navigazione in maniera assolutamente diretta al singolo utente. Infine, devo precisare che la mia analisi è tutt’altro che completa, per questioni di tempo, principalmente. Spero di poter dedicare un altro paio d’ore per completare gli scenari. Mi interessa capire in particolare se il problema si presenta anche quando non si è loggati in Facebook.

Per favore spiegategli che…

“Il decreto legge che sarà approvato domani dal Consiglio dei ministri ci consente di intervenire in modo flessibile, con emissioni a medio e lungo termine e anticipazioni di tesoreria”, ha spiegato il ministro, aggiungendo che il finanziamento ad Atene produrrà un “differenziale positivo per l’Italia, tra il tasso applicato alla Grecia e nostro costo di raccolta“.

Per favore, qualcuno spieghi a Tremonti che i soldi non crescono sugli alberi.

Se 100 Euro prestati alla grecia rendessero davvero 5 Euro l’anno (mentre il debito pubblico italiano viene pagato molto meno), tutti farebbero la corsa a prestare i soldi. Ma così non è. Anzi, la banche ed i fondi pretendono dalla Grecia il 14% di interesse, proprio per coprire il rischio di insolvenza. Che poi è il motivo della crisi, proprio perchè la Grecia non riesce più a “comprare debito” sul mercato.

PS: Lo so che Tremonti non è un idiota. E’ che trovo scocciante che l’italiano medio venca costantemente preso per il culo.