Los versos de Gabriel Celaya me han venido a la mente a la hora de escribir este post. La Ciencia, como la Poesía, es un arma cargada de Futuro:
Maldigo unos presupuestos de I+D concebidos
como un lujo social por el Gobierno
que lavándose las manos se desentiende y evade
Maldigo unos presupuestos que no toman partido
por la Ciencia, partido hasta mancharse
Tengo que definir qué es Twitter para que un alumno realice un PFC (Proyecto Fin de Carrera) y me doy cuenta lo difícil que es explicar algo que se aprende mediante el uso. Vaya este intento que espero que sea útil a quién esté interesado en saber qué es eso de Twitter.
¿Qué es Twitter?
Es una aplicación encuadrada en el concepto de microblogging cuya unidad de publicación se denomina tweet (trino, gorjeo) y consiste en un texto de un máximo de 140 caracteres. La limitación del tamaño del mensaje viene dada por la longitud de los SMS (mensajes de texto) de los teléfonos móviles. En un principio se pensó que éste sería el canal de difusión de los tweets pero en la práctica se utilizan los teléfonos con GPRS o 3G para acceder a Twitter. Esta plataforma ha nacido con el despegue del uso de los datos en movilidad y es una de las aplicaciones que, junto al correo y las plataformas de redes sociales, está favoreciendo más al crecimiento de teléfonos con acceso a Internet.
¿Cómo son las relaciones en Twitter?
Lo normal en las plataformas de redes sociales es que para que dos usuarios puedan compartir información tiene que haber un consentimiento mutuo entre ellos. Sin embargo, en Twitter se ha roto esta regla. Las relaciones que se pueden establecer entre los usuarios de Twitter son asimétricas, tal vez sea esta la causa de su éxito, como dijo el pasado día 15 de septiembre de 2009 Albert-László Barabási en una conferencia en Fundación Telefónica. En Twitter, cada usuario tiene un conjunto de usuarios favoritos, denominados Following, a los que puede ver sus tweets y a su vez posee un conjunto de usuarios de los que es favorito, llamados Followers, que pueden leer lo que él escribe. Cuando dos usuarios de Twitter se corresponden, es decir, ambos siguen los tweets del otro se les denomina Friends, aunque en la plataforma solo se muestran los Following y los Followers, se pueden deducir los Friends de ambos conjuntos.
¿Qué perfiles de usuarios hay en Twitter?
Dependiendo de la proporción entre Following/Followers se pueden agrupar en tres perfiles:
Es una respuesta al mensaje de otro usuario y comienza por el carácter @ seguido del nombre del usuario (@usuario) y a continuación el texto del mensaje. Ejemplo
Es un mensaje privado entre dos usuarios. Ambos tienen que ser Friends. Se envía escribiendo el carácter d seguido de un espacio, el nombre del usuario (d usuario) y a continuación el texto. Estos mensajes se reciben como si fueran correos y se almacenan en la carpeta correspondiente de enviados/recibidos.
¿Hay propiedades emergentes en la red social de Twitter?
Sí, los usuarios de Twitter han “estandarizado” de forma espontánea alguna funcionalidad en el contenido del mensaje, como es el caso de:
RT
Retransmisión de Tweet. Se utiliza para difundir mensajes interesantes vistos en Twitter de forma que se propaguen por las distintas subredes de Twitter. Comienza por el carácter RT seguido por @usuario y el texto del mensaje. Ejemplo:
Son palabras claves para poder etiquetar los tweets. Comienzan por el carácter # que va seguido de la etiqueta (#etiqueta). Se utilizan para poder agrupar información relacionada y sobre todo en los eventos en los que se utiliza Twitter. Ejemplo:
El contenido de los Tweets invita a contestar a la pregunta “¿Qué estás haciendo?” pero los usuarios de Twitter también responden a otras cuestiones o le dan otros usos:
Comunicación personal: Era su uso inicial. Mensaje solo de texto diciendo lo que se está haciendo, leyendo, música que se está escuchando, etc.
Comunicación de grupos de interés: Nace junto con el hash tag, y se utiliza para comunicación en torno a un tema concreto. Muy usado en eventos que interactúan con Twitter o para investigar o para conocer gente con intereses similares.
Difusión de información: Mensajes de recomendación de lectura de un post o artículos mediante una URL. Es un mecanismo muy utilizado para difundir los posts del blog del propio usuario. No se considera autobombo. Existen aplicaciones que traducen URLs largas en otras más cortas (ejemplo: tinyurl.com) para poder aprovechar mejor los 140 caracteres del mensaje.
Información gráfica: Compartir fotos. Twitter no permite subir imágenes pero es posible publicarlas por medio de otras aplicaciones como son Twitpic.com o yfrog.com
¿Cómo es la interfaz de usuario de Twitter?
Twitter ofrece un API público que ha dado lugar a un amplio número de aplicaciones de escritorio y de dispositivos móviles que permiten acceder a Twitter como una alternativa a su web Twitter.com. Básicamente se accede a la misma información que es la siguiente:
Los tweets de sus following ordenados cronológicamente de más recientes a más antiguos. Esto implica que cada usuario tiene una visión personalizada de Twitter
Los mensajes de respuesta a su usuario
Los mensajes directos
Los hash tag más populares en Twitter
También es posible vigilar lo que se habla sobre un tema concreto desde la página http://search.twitter.com. Por ejemplo:#simonetwork, el hash tag para interactuar con las mesas redondas de evento Simo Network que se ha celebrado la semana pasada.
¿Merece la pena investigar sobre el contenido de Twitter?
Una vez que he definido los elementos de los que consta Twitter he pasado a analizar la información que se podría obtener y me he sorprendido de que de algo tan simple sea posible cruzar tanta información de interacción social. Promete ser muy interesante este PFC.
Twitografía:
Algunos tweets de los ejemplos han sido extraídos de esta mágnifica recopilación de Alfónso Alcántara, aka @yoriento, fructifero bloguero y Twitero compulso.
Recursos de microblogging recopilados por los aprendices
Aquí tienen un ingenioso vídeo que explica twitter en 30 segundos. Este vídeo forma parte de un proyecto colaborativo del grupo VideoWeb (organizado por Hombrelobo), donde unas 10 personas se han apuntado para hacer un vídeo sobre Twitter que se integrará en un único vídeo.
Los errores sintácticos han sido uno de los problemas que me he encontrado al analizar el código HTML de los blogs con el programa Lestat, como ya escribí hace tiempo en el post titulado El diablo cojuelo. Hace unas semanas Norberto Fernández, profesor de mi Departamento me sugirió que convirtiese el HTML de los blogs a XHTML y me indicó dos herramientas para hacerlo: tidy y html2xhtml.
Estas herramientas son capaces de convertir HTML en XHTML, ordenando, limpiando y corrigiendo los errores de markup. Las ventajas de trabajar con XHTML son múltiples: es un lenguaje de marcas bien estructurado, permite de recorrer el documento con XPATH o con XSLT.
Is an open source utility for tidying up HTML. Tidy is composed from an HTML parser and an HTML pretty printer. The parser goes to considerable lengths to correct common markup errors. It also provides advice on how to make your pages more accessible to people with disabilities, and can be used to convert HTML content into XML as XHTML. Tidy is W3C open source and available free. It has been successfully compiled on a large number of platforms, and is being integrated into many HTML authoring tools. Recently the maintenance of Tidy has been taken over by a group of dedicated volunteers on SourceForge
La herramienta html2xhtml se ofrece como servicio web y su código fuente está disponible en lenguaje c que funciona tanto en plataformas GNU/Linux como Windows, aunque en su versión compilada sólo se ofrece para Windows, siendo necesario en otras plataformas compilarlo a partir de su código fuente. Ha sido desarrollada por Jesús Arias Fisteus, profesor de la Universidad Carlos III y como dice su autor:
Is an open-source converter from HTML to XHTML. it converts HTML files into XHTML. It can fix many common errors in HTML files (e.g. missing end tags, elements with incorrect content model, non-standard elements or attributes, etc.) The output document type can be selected among several XHTML DTDs (1.0, 1.1, Basic, etc.).
He realizado una prueba de estas dos herramientas sobre 100 blogs de la tesis de Tíscar Lara
Los tiempos de ejecución están medidos realizando la conversión desde fichero.
Estos han sido los resultados:
La herramienta tidy ha podido convertir 88 de los 100 blogs analizados(1) mientras que la herramienta html2xhtml ha conseguido convertir 99 sobre 100 blogs. Las herramientas muestran un buen comportamiento, sobre todo html2xhtml, dado que los errores de sintaxis del código HTML de los blogs son muy frecuentes. Esto abre la posibilidad de poder analizar el contenido de los blogs por otros medios a demás de los clásicos parsers. Respecto al tiempo de ejecución la herramienta html2xhtml ha utilizado 0 min 48 seg(2) mientras que tidy ha tardado 3 min 6.629 seg(3).
Después de esta prueba se me abren nuevos caminos para continuar el desarrollo de lestat. Pero como decía Scarlett O’Hara, “eso lo pensaré mañana”.
——–
(1) Utilizando algunas opciones en tidy es posible mejorar este porcentaje, pero para realizar la comparación de herramientas se ha invocado el comando de la manera más elemental
(1) html2xhtml real 0 min 48 seg, user, 0 min 16 seg, sys 0 min 10,685 seg
(2) tidy real 3 min 6,629 seg, user 0 min 36,049 seg, sys 0 min 59,186 seg
Tíscar habló de su tesis sobre “Construcción de identidad profesional a través el blog personal de periodistas”, las dificultades de manejar los datos y de nuestra colaboración que se inicio en el Medialab Prado. Enseñamos nuestra primera maqueta de Barriblog de la que nos llevamos un feedback de Jose Luis Molina, que espero poder implementar.
Aproveché la ocasión para hablar de las experiencias en visualización con las que he experimentado este ultimo año y que se pueden ver a continuación
Allí me reencontré con Edgar Gómez recién llegado de México y dispuesto a escribir su tesis y con Enric Senabre del equipo de OCS que conocí en el Madialab Prado. Pudimos interactuar con los asistentes antes y después del seminario en torno a unos refrescos. Qué menos que socializar en un seminario sobre redes sociales :-) y quedar enlazados por Twitter o Facebook.
Fue muy agradable conocer a Jose Luis Molina que presentó sus trabajos de antropología basados en los estudios de las migraciones. Se apoya en la visualización para crear modelos visuales de representación de relaciones sociales que le permiten comparar comportamientos sociales. Además de un trabajo de investigación muy interesante tiene una aplicación práctica a la mejora social.
He despertado a Lestat para ampliar y mejorar sus funciones. Es una dura tarea retomar un programa que se ha dejado reposar demasiado tiempo. Con paciencia y perseverancia estoy intentando volver a entenderlo como el día que lo dejé aunque esto tiene su precio.
Una de las facturas que me ha pasado Lestat por este abandono ha sido un bug que me ha costado un poco encontrarlo. Estoy falta de reflejos pero en mi favor tengo que decir que el bug tenía un sentido del humor muy sutil. Aquí lo cuento para que juzgue el lector:
Una de las funciones que le he añadido a Lestat es un fichero de configuración para darle más flexibilidad en la ejecución. Para ello he definido una gramática que permita describir la configuración y la he analizado con lex/bison. Además de la definición del léxico de la gramática puse una expresión regular para descartar caracteres en blanco, tabulaciones y saltos de línea de esta manera [\ \t\n]* y un default para gestionar errores léxicos que ejecutaba lo siguiente:
fprintf(stderr, "Error lexico en linea %d. Mira a ver si \'%s\' es el culpable.\n", yylineno, yytext);
fprintf(stderr,"Lestat le desea mejor suerte la proxima vez \n");
Al ejecutar el analizador del fichero de configuración obtenía un resultado incomprensible:
' es el culpable.inea 1. Mira a ver si '
Lestat le desea mejor suerte la próxima vez
Primero sospeché que la función fprintf tenía un error en los parámetros y que el stack estaba corrupto. Lo miré con tanta fijeza como incredulidad. Tras muchas trazas y muchas vueltas encontré la explicación:
El fichero de configuración lo había escrito en Windows por lo que el salto de línea era <CR><LF> (\r\n) en vez de carácter de salto de línea <LF> (\n) que utiliza unix. El análisis léxico detectaba el carácter <CR> como error léxico y se ejecutaba la sentencia:
fprintf(stderr, "Error lexico en linea %d. Mira a ver si \'%s\' es el culpable.\n", yylineno, yytext);
yytext contenía un <CR> que hacía que cuando se había escrito
Error lexico en linea 1. Mira a ver si '
Se volviera al inicio de la línea para escribir lo restante:
es el culpable.inea 1. Mira a ver si’
La solución al problema era tan sencilla como poner la expresión regular [\ \t\r\n]* para filtrar blancos, tabulaciones y salto de línea.
Estas son las cosas que pasan en la programación y que nos hacen perder mucho tiempo