Llevo unas semanas verdaderamente alucinando. Hasta hace nada, si me querías encontrar en la red, me buscabas por mi nick en los canales de IRC Hispano o en algún foro de programación oscuro. En MySpace la gente se ponía nombres como "DarkSkater99" o "ChicaGoth_Madrid". El anonimato (o al menos, el pseudónimo) era la norma básica de supervivencia en Internet.

Pero de repente, ha llegado Facebook a España de forma masiva (bueno, y Tuenti, que le está comiendo terreno en las universidades, pero de esa plataforma ya hablaremos otro día) y todo ha saltado por los aires. Compañeros de la carrera, gente del instituto de la que no sabía absolutamente nada desde hace años... Y lo más loco y perturbador de todo: están usando sus nombres y apellidos reales.

¿En qué momento decidimos todos a la vez que era una buena idea subir nuestra identidad civil, nuestra foto de cara real y decir en qué empresa trabajamos en una base de datos pública de la que no tenemos el control?

Las tripas técnicas: El grafo social y el colapso de las bases de datos

Lo que realmente me tiene fascinado de Facebook como programador es lo que están construyendo por debajo. No es una simple página estática de perfiles de usuario. Es una gigantesca base de datos relacional de conexiones humanas. Ellos lo llaman el "Social Graph" (Grafo Social).

Arquitectónicamente, hasta donde he podido investigar en los blogs técnicos de los americanos, están tirando de una bestialidad de granjas de servidores con nuestro clásico stack LAMP (Linux, Apache, MySQL y PHP). Sí, PHP. Ese mismo lenguaje del que muchos programadores de Java se ríen en la máquina de café, está sirviendo decenas de millones de peticiones diarias en todo el mundo.

El problema técnico aquí es que cruzar datos de "quién es amigo de quién" a esta escala hace que cualquier motor de base de datos colapse. Un JOIN en MySQL para calcular el "News Feed" (el muro de noticias) en tiempo real para millones de usuarios destrozaría los discos duros de cualquier servidor. Su solución ha sido tunear MySQL hasta límites absurdos, no usar apenas JOINs relacionales en caliente y cargar toda la capa de lectura en un sistema de cachés distribuido en memoria RAM enorme basado en Memcached.

Además, acaban de abrir una API REST y un lenguaje de marcado bastante marciano llamado FBML (Facebook Markup Language) para que cualquiera de nosotros pueda programar aplicaciones que corran directamente dentro del ecosistema de Facebook. Estuve jugando anoche con curl desde la consola de mi equipo Linux para ver cómo te escupen los datos por debajo, y es un XML bastante limpio y estructurado si le pasas el token correcto:

# Petición de prueba a la API REST de Facebook (versión 1.0)
curl -d "method=facebook.users.getInfo" \
     -d "api_key=TU_API_KEY" \
     -d "call_id=1210771200" \
     -d "v=1.0" \
     -d "uids=12345678" \
     -d "fields=first_name,last_name,pic,affiliations" \
     -d "sig=HASH_MD5_DE_LA_FIRMA" \
     http://api.facebook.com/restserver.php

Lo que te devuelve es un bloque de datos salvaje con la universidad donde estudió el tipo, sus apellidos, sus intereses y su red de afiliación. Están literalmente empaquetando nuestras vidas privadas en nodos y aristas de grafos. Y le estamos dando esta información GRATIS.

¿El fin de Internet como lo conocíamos?

Toda esta movida me genera sentimientos encontrados. Por un lado, puramente a nivel de ingeniería de producción, construir una arquitectura de servidores que escale a este nivel y permita renderizar el muro de actividad de un usuario cruzando los eventos de cientos de amigos simultáneamente, me parece un reto técnico absolutamente brutal. Chapó por los ingenieros de sistemas de Mark Zuckerberg.

Pero por otro lado, me pregunto si no estamos cometiendo un error garrafal como usuarios. Hasta ahora, la regla de oro era que lo que pasaba en la red, se quedaba en la red. Si decías una tontería en un foro a las tres de la mañana, se quedaba atada a un nick inventado. Ahora, si subes una foto de borrachera el sábado por la noche (o peor, si alguien te "etiqueta" sin tu permiso, que esa es otra funcionalidad que me da bastante miedo), se queda indexado permanentemente a tu DNI digital y a la vista de todo tu entorno y lo que no es tu entorno...

Quizás simplemente soy un paranoico de la vieja escuela aferrado a sus foros de toda la vida, pero regalar voluntariamente nuestro grafo social completo a una empresa privada en California me parece un experimento sociológico peligroso. Veremos si esta moda egocéntrica del nombre real aguanta el paso del tiempo, o si en un par de años volvemos todos a escondernos sensatamente detrás de avatares pixelados.