Archive for the 'Web' Category

Regression Testing

Monday, January 30th, 2012

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

A me non “Mi Piace”

Monday, August 22nd, 2011

E loro se ne accorgono solo ora!

Controlli HTML disabilitati ed accessibilità

Monday, May 2nd, 2011

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;
}

Cosa si potrebbe fare con gli OpenData?

Wednesday, December 1st, 2010

E perché alcuni amici spingono molto per averli?

Tanto per cominciare, provate a dare un’occhiata a questo…

Il link per cancellarsi da Facebook

Sunday, May 23rd, 2010

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!)

Tuesday, May 18th, 2010
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…

Thursday, May 6th, 2010

“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.

Adrenalina ancora sul Podio!

Thursday, April 22nd, 2010

Andrea – a bordo del suo Adrenalina ITA 156 insieme a Tommaso Stella – centra il secondo eccellente risultato di fila, piazzandosi terzo nei proto (stando almeno all’attuale classifica provvisoria) nel Gran Premio d’Italia. Grande!

iPad, prova sul campo

Monday, April 12th, 2010

Fra qualche ora cercherò di pubblicare un resoconto, necessariamente limitato dal tempo che ho a disposizione.

Schininà.it visto dall'iPad

Schininà.it visto dall'iPad

Facebook, how to become a fan…

Tuesday, March 2nd, 2010

Irresistibile….

Facebook: become a fan

Facebook: become a fan

Via il buzz di Gigi.