Bi0[x]iD's WaY oF LiFe

Un blog a 60 pulsaciones por minuto


Twitpocalypse

El día 13 de Junio de 2009, a las 01:52:04 hora española, llegó el Twitpocalypse.

¿Qué es el twitpocalypse?

Es el nombre que le han dado algunos a un error basado en twitter. La forma más sencilla de explicarlo es compararlo con el efecto 2000 (Y2K). Como todos sabemos, los contadores de todos nuestros ordenadores y aparatos electrónicos pasaron del año 1999 al 2000 sin pena ni gloria, a la vez que aparecían múltiples errores de software en los programas más famosos por no haber tenido en cuenta ese cambio. El error básico fue utilizar un campo de dos dígitos para guardar la fecha (los dos últimos) sin tener en cuenta los dos primeros que, al cambiar, hicieron que algunos programas se rompieran y se necesitaran complejos parches para devolver los datos a su estado normal.

¿Por qué ha ocurrido?

twitpocalypse

Mientras que la gente de twitter tenía el supuesto problema solventado, muchos programadores, al codificar sus gestores para twitter, no han tenido en cuenta que el identificador único de cada twit (el numerito ese que aparece al final cuando alguien escribe) se podía hacer grande, como cuentan en Twitpocalypse. El ejemplo más claro el twit de Nick Kallen (ingeniero de Twitter), que escribió el primer twit que muchos programas no llegaron a ver.

No me entero

Vamos allá. En programación, un entero con signo puede albergar 2,147,483,648 números (negativos y positivos) –curiosamente, el 8º primo de Mersenne (231 ? 1) y el 3º doble primo de Mersenne–. Cuando se llega a ese límite positivo, los números empiezan a aparecer como negativos. El twit que escribió Nick tiene la ruta http://twitter.com/nk/status/2147483649, lo que significa que es el siguiente twit después del twitpocalypse.

¿Cómo se soluciona?

Pues de una forma muy fácil. El campo asignado en nuestros programas para albergar el identificador debe ser un entero sin signo (que nos permitiría guardar el doble de información, 4,294,967,295) o superior. Viendo la velocidad a la que crece twitter, sería recomendable utilizar un número long, que nos permitiría guardar 9,223,372,036,854,775,807 números, o 18,446,744,073,709,551,615 sin signo.

¿Qué programas se han roto?

Muchos. Os damos dos ejemplos:

En el caso de Nambu, el número se ha salido de la pila y ha empezado a mandar replies aleatorios a cada cosa que alguien escribía. Ya está solucionado.

En el caso de Twitterrific, se ha roto totalmente, y todavía sin solución (EDIT: A las 9 de la mañana han publicado la nueva versión, que vuelve a funcionar). Que algunos programas de pago se hayan roto por el nuevo efecto Y2K dice muy poco a favor de los desarrolladores.

(Si quieres saber más sobre los números en programación puedes mirar en la wikipedia o en la página de Twitpocalypse).

Artículo publicado originalmente en Mecus. Comentarios allí.