Archive for 2010
octubre 14th, 2010

Actualización 20-10-20110: La grabación de la primera jornada del Taller disponible aquí
Ayer por la tarde nos reunimos en CAMON Madrid unos cuantos entusiastas de la visualización. Como era de esperar ha sido grupo heterogéneo que hemos llegado a la visualización desde distintas profesiones pero con similares necesidades: transmitir información, conocimiento o ideas mediante un impacto visual. El taller fue emitido en streaming por Camon y La Información el primer medio español con una sección de visualización.
En mi caso la visualización me ayuda a analizar los datos que investigo, a validar los algoritmos y a presentar los resultados de una forma más divulgativa. Lo que he aprendido ha sido gracias a Internet y a bastantes horas de autoaprendizaje.
Este primer día de taller he presentado una visión global del estado del arte de la visualización, el data set que se va a utilizar en los talleres y he realizado algunas visualizaciones con el servicio ManyEyes.
Aquí está la presentación:
Aquí las primeras visualizaciones:
¿Quién fue más mencionado Navarro o Gasol? interactuen y vean..
¿Cuantas palabras españolas hay entre las más pronunciadas?
Agudeza visual: ¿qué dos paises se parecen más en sus menciones?
¿Cuantos twitean desde su iPhone?
¿En que lugar esta España en cuanto menciones en el Turkey2010?
octubre 6th, 2010

Tanto los que estén interesados en la visualización de datos como los que sientan curiosidad por ella, ya pueden ir reservando en su agenda los días 13,14, 20, 21, 26, 27 y 29 de octubre porque CAMON Madrid organiza unos talleres de entrada libre sobre visualización de datos.
El espacio de CAMON Madrid, situado en Plaza de Moncloa, 1, (acceso por calle Princesa) es un espacio tecnológico de interacción y creación que inicia su actividad en Madrid siguiendo los pasos que su hermano mayor de Alicante.
La visualización de datos es una materia que no tiene un encuadre concreto en los espacios académicos. Tal vez por su diversidad y por su naturaleza transversal. Se ha desarrollado desde distintos frentes como ayuda al análisis de redes y sistemas complejos, como herramienta de comunicación avanzada o como expresión artística. Se ha divulgado generalmente por Internet y cada vez hay más herramientas de visualización y plataformas para desarrollar visualizaciones ad hoc.
El objetivo del taller es reunir la información sobre Visualización dispersa por Internet y poder evaluar y comparar los recursos existentes.
El taller lo impartiré junto a Ana Belén García Parra, Juan José Martín Rodríguez y Miguel Ángel Cañas Vaz y se ha estructurado en cuatro módulos:
- Estado del arte y visualización básica: taller compuesto de teoría y una práctica con la herramienta Many Eyes. Orientado a un público general interesado en conocer lo que es la visualización. No requiere ningún conocimiento técnico previo.
- Visualización de redes: taller eminentemente práctico sobre como realizar visualización de redes utilizando cuatro herramientas diferentes. Se explicarán los distintos formatos que utilizan las herramientas y cómo generarlos. Orientado a personas interesadas en análisis de redes. No requiere requiere conocimientos de programación.
- Visualización en entornos Javascript/java: Taller práctico de uso de los APIs o las librerías de visualización. Orientado a desarrolladores en entornos javascript/java con conocimientos de programación en estos entornos.
- Visualización en entornos flash: Taller práctico de uso de la librerías de visualización en estos entornos. Orientado a desarrolladores en entornos flash con conocimientos de actionscript.
Se van a utilizar los datos de Twitter del pasado mundial de baloncesto y se realizan distintos tipos de visualizaciones para comparar el grado de funcionalidad e interactividad de las distintas herramientas.
En la web de CAMON encontrarás toda la información sobre los módulos del taller de visualización. El acceso es libre y sólo tenéis que apuntaros aquí.
octubre 1st, 2010
Llevo unos meses sin actualizar el blog debido a mi dedicación con pico y pala a la extracción y análisis de datos en Twitter, labor nada trivial ni exenta de riesgos como se podrá constatar tras leer los obstáculos más importantes que me he encontrado en el ejercicio del data mining Twitter:
- No hay conexión que tres días dure: El uso del streaming API requiere una conexión permanente. Pero esta conexión se puede romper (y se rompe) por unos de los dos extremos: el de Twitter y el del propio servidor. Dado que la captura de datos para un experimento puede durar meses, es evidente que hay un problema importante que resolver.
- Agua que no has de beber, déjala correr: desde que el flujo de tweets es del orden de 700 TPS (Tweets Per Second) no hay conexión que los soporte ni servidor que lo almacene, aparte de que Twitter no permite la modalidad de statuses/firehose a cualquiera. Por tanto, hay que elegir lo que se quiere recibir y consecuentemente renunciar al resto.
- ¿Qué fue antes la gallina o el huevo? Cuando se quiere monitorizar un evento anunciado no se sabe de antemano cuales serán los hashtag dominantes ya que son los usuarios de Twitter los que mandan y marcan las tendencias. Cuando se quiere monitorizar un hashtag que es trendring es ya too late: con el Streaming API se habrán perdido todos los tweets que lo auparon a la cima y con el search API solo se obtendrá los 1.500 últimos tweets. Véase el caso de la huelga general del 29-O ¿Quién iba a saber de antemano cual serían los hashtags más usados?
- Nunca están todos los tweets que son ni son todos los que están: Cuando se escogen los hashtags para monitorizar la información deseada es como jugar a las siete y media: que te pasas o que no llegas: Si se eligen hashtags que no son muy específicos se corre el riesgo de que haya tweets que no sean relevantes (problemas de ambiguación) y si se opta por otros más específicos se quedarán muchos tweets en el tintero, eso sin contar a la cantidad de tweets que no se etiquetan mediante hashtags.
- El tamaño sí importa. Una captura de continua de tweets durante meses significa un volumen de información muy considerable, tanto para almacenar como para procesar. A 50 TPS, guardando la información en modo texto plano (200bytes) son 10K por segundo, 600K por minuto, 36 Megas por hora, 864 megas, casi un giga, al día.
El data mining en Twitter requiere paciencia, perseverancia e ingenio. Es necesario saber de antemano que se trabaja en un entorno difuso y que hay que adaptarse al medio para capturar la información de la manera más eficiente. Estos son unos consejos para obtener tweets y no morir en el intento:
- Para mantener la conexión siempre viva es necesario realizar una aplicación de captura de tweets robusta y resolver el problema de la disponibilidad de servidores
La aplicación de captura de tweets cuando pierda la conexión con Twitter debe intentar restablecerla de nuevo hasta que lo consiga y dejar toda la historia de las conexiones en un fichero de log.
Es preciso crear un daemon para arrancar esta aplicación automáticamente en el inicio del sistema y para pararla de una manera ordenada antes del apagado del servidor. Si la captura de tweets no se realiza en paralelo con un servidor de backup es conveniente que el daemon avise mediante un email de alerta antes de ser apagado para activar la captura en un servidor provisional.
- Para elegir los hashtags hay que anticiparse “adivinando” los hashtags triunfadores, monitorizar por exceso e ir ajustando los hashtags conforme vayan definiéndose. Esto requiere estar pendiente de lo que ocurre en Twitter hasta que se tengan identificados los hashtags relevantes y que la aplicación de captura de tweets permita ser reconfigurada sobre la marcha.
- Para seleccionar la información relevante hay que posprocesar la información obtenida actuando en tres frentes: crear filtros para eliminar posible spam, suprimir información no relevante, y refinar la selección que ofrece Twitter:
- Filtrar spam es fácil porque los spamers son muy cansinos: Twittean siempre lo mismo y los hacen con algún bot de forma compulsiva. Cuando se selecciona el top de los autores quedan al descubierto. Solo es necesario crear un filtro de tweets con los nombres de usuarios spamers más destacados.
- Filtrar información no relevante lo más práctico es buscar el top de los hashtags y ver cuales de ellos no son relevantes con los datos que estamos analizando y se les añade al filtro de tweets.
- Refinar selección de Twitter: Twitter intenta dar información por exceso, por ejemplo si monitorizamos el hashtags #esp, enviará los tweets que contengan esp o #esp, tanto en mayúsculas como en minúsculas. En algunos casos esto no es conveniente y se debe hacer un filtrado más estricto de los hashtags.
- Para aliviar el uso masivo de disco se pueden almacenar los tweets en módulos de un tamaño manejable y comprimirlos. Algunos lenguajes como Python son capaces de abrir ficheros comprimidos e incluso leerlos a la misma velocidad que a la de los descomprimidos.
Espero que estos consejos sean de utilidad y si alguien está trabajando con datos de Twitter y quiere compartir experiencias, me encantaría que contactase conmigo.
julio 9th, 2010
Hoy se ha celebrado la primera Thinking Party que ha organizado Fundación Telefónica como jornada de clausura del Ciclo: Diez conceptos que están cambiando el futuro” Esta ha sido la agenda del día.
Las ponencias han sido muy interesantes y amenas, @sandopen ha sido un magnifico anfitrión, he tenido la oportunidad de conocer en persona a @yoriento, de compartir la jornada con mis ex-colegas de Telefónica, de charlar con los amigos de la red y con bastantes ponentes. Hemos pasado un poco de calor pero los abanicos de movistar nos han ayudado a aliviarlo.
He recogido los datos de Twitter de la jornada (me faltan las dos primeras horas) con este dataset he realizado la siguiente infografía.

julio 6th, 2010
Actualmente Twitter es una de las mayores fuentes de información en tiempo real de Internet alimentada por millones de usuarios. Durante el último mes he intentado buscar respuestas estas preguntas:
- ¿Cuál es la cantidad de tweets?
- ¿Qué se puede obtener con los APIs de Twitter?
- ¿Cuáles son las limitaciones del API de Twitter?
- ¿Qué persistencia tienen los tweets?
Lo que he averiguado lo he representarlo en una infografía para los muy ocupados y en modo textual para los que su curiosidad sea aún mayor.

¿Cuál es la cantidad de tweets?
El número de usuarios de Twitter y por tanto el de tweets generados tiene un crecimiento espectacular. El despegue comenzó en el 2009 y en un año se ha multiplicado por 25. Con este tráfico de entrada cualquier evento global es una prueba de fuego para Twitter, como ha sido el caso de la Wold Cup que nos ha traído de nuevo a la ballena azul.
Durante la segunda semana de la World Cup se ha alcanzado el record de 3.283 TPS (Tweets Per Second) y la media actual es de 750 TPS. Esto hace casi inalcanzable obtener tal cantidad de información (y almacenarla) por lo que habrá que pensar en soluciones creativas para poder obtener los datos que se deseen.
¿Qué se puede obtener con los APIs de Twitter?
Twitter ofrece tres APIs: Streaming API, REST API y Search API aplicables a necesidades diferentes.
El Streaming API proporciona un subset de tweets en casi tiempo real. Se establece una conexión permanente por usuario con los servidores de Twitter y mediante una petición http se recibe un flujo continúo de tweets en formato json. Se puede obtener una muestra aleatoria (statuses/sample), un filtrado (statuses/filter) por palabras claves o por usuarios. Sin embargo, los métodos más interesantes cómo obtener todo el caudal de tweets (statuses/firehose) o sólo los tweets que tienen enlaces (statuses/links) o los tweets con retweets (statuses/retweet) “Is not a generally available resource” :-(
El Search API suministra los tweets con una profundidad en el tiempo de 7 días que se ajustan a la query solicitada. Es posible filtrar por, cliente utilizado, lenguaje y localización. No requiere autenticación y los tweets se obtienen en formato json o atom.
El REST API ofrece a los desarrolladores el acceso al core de los datos de Twitter. Todas las operaciones que se pueden hacer vía web son posibles realizarlas desde el API. Dependiendo de la operación requiere o no autenticación, con el mismo criterio que en el acceso web. Sopota los formatos: xml, json, rss, atom.
El Search API ofrece una información más limitada del tweet, en concreto sobre los datos del autor en el que solo indica el Id, el screen_name y la url de su avatar. Los otros dos APIs si ofrecen el perfil completo del autor en el momento de la escritura del tweet.
¿Cuáles son las limitaciones de los APIs de Twitter?
En el Streaming API el flujo es continuo y la velocidad de recepción de tweets tendrá fluctuaciones que dependerán del ancho de banda de los dos extremos de la conexión y la sobrecarga de los servidores de Twitter. Actualmente estoy haciendo medidas en dos servidores y publicaré los resultados tan pronto como estén disponibles.
En el Search API y en el REST API existe una limitación de 150 peticiones a la hora por usuario o por IP si la llamada no está autenticada.
Es importante saber cómo realizar la paginación de las peticiones de una manera óptima para sacarle el máximo partido.
| API |
Petición |
Max. Tamaño Pagina |
Max. Total |
| Search |
search |
200 tweets |
1500 tweets- |
| REST |
statuses |
200 tweets |
3200 tweets |
| REST |
friends/ids |
5.000 id users |
Los que haya (*) |
| REST |
followers/ids |
5.000 id users |
Los que haya (*) |
(*) hemos obtenido los seguidores de Barack Obama que sobrepasa los 4,5 millones de followers
¿Qué persistencia tienen los tweets?
Aunque todos los tweets residan en las BB.DD. de Twitter hay una limitación temporal para obtenerlos.
| API |
Limitación temporal |
Limitación tamaño |
| Streaming |
Solo tiempo real |
- |
| Search |
-7 días |
1500 últimos tweets |
| REST |
NO |
3200 últimos tweets |
-