2147483647

Wednesday, 16 May 07
2147483647 e' il piu' grande numero che puoi rappresentare in un sistema a 32bit e con tipo di dato signed (un bit va perso per il segno, anche se la rappresentazione interna non e' quella che ti puoi aspettare per ragioni di prestazioni, se non amate l'inglese guardate qui).

2147483647 ha un'altra interessante proprieta', a dire il vero e' molto comune tra i numeri ma poiche' si tratta di un numero particolare e' una coincidenza simpatica il fatto che ...
blu-antirez.0% factor 2147483647
2147483647: 2147483647
... sia un numero primo.

Come se non bastasse, il numero e' strettamente connesso con la nostra azione sempre piu' abituale di effettuare il login in una applicazione web. Infatti per qualche astrusa ragione il cookie di autenticazione emesso da molti servizi web scade nel giro di alcune settimane. Di conseguenza noi poveri utenti siamo costretti a rifare il login periodicamente, non ne capiamo il perche', dimentichiamo le password, e in conclusione siamo stressati da questa barbara pratica.

2147483647



e' anche, essendo la maggior parte dei computer a 32 bit, e rappresentando questi il tempo come secondi trascorsi dalle 00:00 del primo Gennaio del 1970 in un intero con segno a 32 bit, la data piu' nel futuro che possiamo usare come tempo di scadenza di un cookie, ovvero:

Il pomeriggio del 19 Gennaio 2038



sarebbe proprio ora che questo numero entrasse nelle menti di quanti mi costringono ad effettuare il login ogni paio di settimane. Dopo tutto basta questo:
setCookie("auth",$mysecret,2147483647,"/");
5254 views*
Posted at 04:43:46 | permalink | 6 comments | print
Do you like this article?
Subscribe to the RSS feed of this blog or use the newsletter service in order to receive a notification every time there is something of new to read here.

Note: you'll not see this box again if you are a usual reader.

Comments

davidonzo writes:
16 May 07, 09:49:13
Io faccio fare il login ogni volta che si è chiusa la finestra del browser e dopo 30 minuti di inattività (anche a finestra aperta).

Niente cookie, solo variabili $_SESSION che devono corrispondere tramite un algoritmo ad una riga di tabella creata subito dopo il login effettuato con successo.

Mi odiano per questo...
anonimo writes:
16 May 07, 10:20:57
i cookie fino al 2038 vengono usati anche per pratiche meno nobili del login automatico: il tracking degli utenti...google per esempio!

Non lo so... mi sembra un po' invadente un cookie eterno....
antirez writes:
16 May 07, 10:32:48
@davidonzo: $_SESSIONE usa un cookie ;) Sempre li siamo, ma e' appunto un cookie di sessione, che si cancella quando chiudi la finestra.

Lo stesso effetto si puo' ottenere omettendo l'expire time di un cookie.

@anonimo: Dipende per cosa lo si usa, se e' un cookie per il login l'utente davvero non ha alcuna violazione della privacy con un cookie eterno.

Ci sono altri casi in cui risulta utile per il tracciamento e non se ne puo' fare a meno.
Ad esempio analytics e lloogg usano un tale cookie
per poter dire se un visitatore e' di ritorno o no.
antirez writes:
16 May 07, 10:37:50
Dimenticavo... 2^31-1 e' un primo di Marsenne! Che sono numeri primi dati dalla funzione 2^n-1. I primi numeri di Mersenne sono 3, 7, 31, 127, 8191, 131071, 524287, 2147483647.
davidonzo writes:
16 May 07, 11:09:00
@antirez: ma $_SESSION mi sa più di volatilità degli eventi... Sarò pazzo, ma un pizzico di romanticismo in questo mare di bit...
TixXio writes:
16 May 07, 12:56:31
Io ho sempre messo la scadenza dei cookie di login (con l'opzione "ricordami") dopo un anno...

I cookie a scadenza 2038 mi han sempre fatto insospettire :D
comments closed