exportedFrom: acfdb64b48b8b45ea73a9581822c0e996f54ebe6 title: Microblog y micropolítica: Retratos de datos y data selfies en Twitter lang: es pandocOptions: | [ ' --pdf-engine=lualatex -H preamble.tex --variable fontsize=12pt --variable documentclass:book --variable papersize:letter --variable classoption:openright --top-level-division=chapter ' ]
Presentamos los proyectos.
Taller de Personal Data.
breaks: false
Data Selfies Día 3, en Visualizar 2018
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
Presentación de los asistentes, panorámica y de la metodología
Cuatros pasos:
- Colectar los datos.
- Publicarlos.
Procesarlos y Visualizarlos.
Apuestas de carácter estético y ético:
- El Data Week:
(Anti)hackatón+taller:
- Anti: no es la hackatón fashionista.
- hackatón: Intensiva y orientada a prototipos.
- Taller: aprendemos haciendo y mediante ejemplo, mutuo.
- Una "hackatón" es:
- Puente entre el pasado y el futuro de una comunidad (usualmente de caracter festivo).
- Un lugar de diálogo entre las comunidades de base y las instituciones, usando el lenguaje de los prototipos.
- Fortalecer y mostrar capacidades en comunidades de base.
- El Data Week:
(Anti)hackatón+taller:
Apuestas de carácter tecnológico:
- "Infraestructuras de bolsillo":
- Simples.
- Autocontenidas: no requieren de muchas dependencias externas.
- Online + Offline.
- Perspectivas críticas en tecnología.
- Herramientas amoldables
- Mapa mental:
- Vectorial (SVG).
- Web (HTML).
- Reproducible:
- "Infraestructuras de bolsillo":
Documentación Ágil
Después de hacer nuestro ejercicio de aprendizaje, compartamos el enlace acá:
De los data silos a los data commons
Queremos alentar una perspectiva crítica sobre alfabetismo digital y los datos, diferente a la introducción tipo "hola mundo"
Extenderemos lo hecho para celebrar el Open Data Day.
Pedíamos dos cosas: - Invitar a los políticos e instituciones. - Publicar nosotros mismos los datos. Esta segunda parte es la que explicamos a continuación.
:::info Es diferente la portabilidad a la transparencia. Recomendamos leer este artículo de la EFF al respecto :::
Colectar los datos (de los silos)
Seguimos las instrucción de exportación.
Publicalos en los commons
Seguimos las instrucciones de publicación.
breaks: false
Data Selfies día 4, en Visualizar 2018
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
Recuento
- Mejorar la navegación: Registro en CodiMD.
Ubicar el problema:
- Estamos navegando océanos Azules y Rojos y ubicando nuestro propio oceáno azul (puede ser una laguna).
- Qué parte del oceáno habitamos:
- Documentación y Datos.
- Ejp: Manual de Periodismo.
- Código e infraestructura:
- Documentación y Datos.
Abrir el problema:
Eso implica considerar la relación entre:
- Los datos,
- las preguntas,
- las respuestas/visualizaciones.
Esto es lo que hemos hecho previamente es una maqueta de los data selfies,
Ejercicio
Ahora consideraremos un catalogo de visualizaciones: - Por función: Qué quiero mostrar. - Por técnica: Cómo puedo revisarlos.
La intención es revisar el catálogo anterior y mirar si podemos preguntarnos nuevas preguntas o responder las antiguas con las técnicas que el catálogo presenta, de modo que aumentemos el repertorio de data selfies posibles.
Al final la intención es proponer un técnica de visualización y una pregunta que podamos responder con ella.
Pregunta | Técnica | Por que |
---|---|---|
¿Cuántas variables hay un tuit | Nos permite cartografiar las preguntas posibles | |
¿Cuando son más activos los retuits con respecto a la época electoral? | Bar Char | Es una visualización rápida y fácil de entender |
¿Cuándo/Dónde están las contradicciones en su discurso? |
Otras preguntas abiertas:
- ¿Dónde están ubicados los participantes en una conversación?
- ¿Hasta dónde acotar la cantidad de tuits o retuits en un visualización?
- ¿Qué tanto aportan los colores en la distinción del tipo de mensaje?
- ¿Están al mismo nivel los conceptos de tuit, retuit, y reply?
- ¿Cuándo parte de tu discurso público se vuelve en tu contra?
Instalar Grafoscopio
Seguimos las instrucciones de instalación de Grafoscopio.
:::danger Es importante actualizar Grafoscopio y su documentación desde el menú "Update" de la barra superior, después de la instalación. :::
Usar Grafoscopio
Explorando algunos elementos del Manual de Grafoscopio:
- Crear jerarquías de documentos.
- Tipos de nodos: texto y de código.
- Cargar libretas de la web.
- Salvar una libreta (terminan en
.ston
). - Ejemplos de libretas:
- Dataviz (Panama Papers, preempaquetado).
- Manual de Periodismo de Datos.
Explorar los datos de Twitter
Vamos a abrir una libreta interactiva de Grafoscopio y desde ella vamos a explorar el Dataset que ayer exportamos, intentando contestar las preguntas que nos hemos formulado al respecto, e introduciendo de manera paralela, el lenguaje de Smalltalk.
- Abrir el archivo data-selfies.ston.
- Intentamos ejecutar el ejemplo. No funciono, y vamos a depurarlo.
Compatir trozos de código
Publicación de scripts, es una manera de compartir trozos de código, similar a lo que en otros sistemas se conoce como Pastebin.
En caso de Pharo, este cuenta con sus propio sistema de pastebin (cesta de pegado), para publicar y compartir trozos de código.
Hacemos click en el ícono de la puerta ("Remote publish") y nos preguntará si queremos publicarlo en línea:
decimos que sí y esto nos dará un enace que podemos compartir con el resto, en este caso: http://ws.stfx.eu/2G0DJ43LQOEC
Vamos a aprender cómo leer y depurar el código (corregir lo que no funciona).
Notas sobre el código
En Smalltalk siempre voy a programar de la forma
Objeto mensaje
Que se parece mucho a las formas de los lenguajes naturales con:
Sujeto predicado
por ejemplo:
robot sacaLaBasura: delPatio
En este caso nuestro sujeto es el robot
el predicado es sacaLaBasura: delPatio
que tiene como acción, sacaLaBasura:
y como argumento para esa acción delPatio
- Para depurar nuestro script vamos a descargar uno de los archivos que colocamos en los data commons, que sea del tamaño pequeño. Este es un buen candidato.
- Descomprimos el archivo previo en (una subcarpeta de) la carpeta temporal.
Leyendo el archivo JSON
Al final estaremos leyendo un archivo JSON que se parece a esto:
Grailbird.data.tweets_2011_10 =
[ {
"source" : "\u003Ca href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003ETwitter for iPhone\u003C\/a\u003E",
"entities" : {
"user_mentions" : [ ],
"media" : [ ],
"hashtags" : [ ],
"urls" : [ ]
},
"geo" : { },
"id_str" : "129556479207419904",
"text" : "Prova",
"id" : 129556479207419904,
"created_at" : "2011-10-27 13:54:06 +0000",
"user" : {
"name" : "Ferran Morales",
"screen_name" : "ferranmorales",
"protected" : false,
"id_str" : "301136196",
"profile_image_url_https" : "https:\/\/pbs.twimg.com\/profile_images\/1708373856\/DIBUIX_JAVIER_SOTERAS_normal.jpg",
"id" : 301136196,
"verified" : false
}
} ]
breaks: false
Data Selfies día 5:
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
Hoy trabajamos de manera distribuida en algunos aspectos:
- Depurar la instalación de Grafoscopio en Windows (aún la biblioteca libgit2 sigue molestado).
- Algunas maneras gráficas de expresar la interacción en Twitter.
Intentando la instalación de Grafoscopio en Windows
Parece ser que el problema lo genera la biblioteca libgit2
, que
es requerida para mejorar la integración de Pharo con Git y que en máquinas
Linux y Mac se resuelve en minutos, pero en Windows es bastante más complicado.
Probamos copiando este binario en C:\Windows\System32\
Al final, tras probar varios métodos durante varias horas, incluyendo Moose, y máquinas virtuales de 32 bits para Pharo, ninguna acabó de funcionar, por lo cual decidimos probar para el día siguiente un LiveUSB que contuviese Linux y trabajar todos con plataformas Unix.
Live Coding para visualizaciones
Mostramos y conversamos con motivo del live coding (código en vivo) para visualización de datos en Pharo, mostrado en este video:
{%vimeo 94724841 %}
Actualizando Grafoscopio
Estamos teniendo algunos problemas de actualización, por lo cual debemos depurar el proceso. Empezamos a hacerlo ejecutando este playground: http://ws.stfx.eu/898CUI1J8ZYO, pero el tema aún está pendiente.
La lógica general de visualización
Lo que hacemos es modelar nuestros datos, diciendo:
- de dónde los extraemos (fuente),
- cuáles propiedades nativas (presentes ya en los datos) o derivadas de ellos nos importan,
- y cuáles acciones queremos realizar con nuestros datos.
Dos ejemplos previos de este flujo de trabajo son:
- Mirar el histograma de todos nuestros datos de Twitter a partir del archivo zip que nos entrega, cuando este los subimos a una url podemos ejecutar el script en http://ws.stfx.eu/H0U9V2XR1E5A
- Por ejemplo el script que permite extraer sólo los datos de un mes y clasificarlos por tipo de mensaje (tweets, retweets o replies) es: http://ws.stfx.eu/EJBJK2Z02DJY. (Advertencia para poder ejecutar este último es conveniente ejecutar el del punto anterior).
Lo siguiente que querremos hacer es explorar los datos extendiendo los pasos previos y creando visualizaciones a la medida. Para esto último es conveniente contar con un catálogo de visualizaciones posibles. Hay varias fuentes que nos dicen de dónde proviene este catálogo:
- Desde la barra superior de Grafoscopio seleccionamos
Launch > Roassal visualizations gallery...
, que nos desplegará una galería previa de visualizaciones en miniatura y dentro de ellas podemos verlas en tamaño ampliado y el código fuente que las produce. - Revisar el libro de Agile Visualization
breaks: false
Data Selfies, día 6
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
En el marco de Visualizar 2018.
Agenda:
- Recuento
- Continuación:
- Tutorial Agile Visualization Techniques: Nos dará una introducción a los elementos básicos para realizar visualización de datos con live coding..
- Crear los primeros paquetes.
Elementos básicos del lenguaje
- Cargar el tutorial interactivo, usando
Launch > Notebook from the internet
. - Recorrer el tutorial interactivo leyéndolo y realizando los ejercicios propuestos.
- Las soluciones las vamos a guardar en esta libreta de aprendiz que nos sirve de plantilla.
Mob programming para visualización
:::info Suponemos que estás familiarizado con la introducción al mob programming :::
Para nuestro ejercicio de Mob Programming vamos a detectar la frecuencia de la palabras.
- Partimos de una visualización preexistente que la detecte, por ejemplo una nube de etiquetas:
cuyo script de producción es este: http://ws.stfx.eu/95UE5WY7OQZ0.
Empezaremos a personalizar este código de forma que podamos adaptarlo a nuestro propio dataset. Para lo cual tomaremos una lista de palabras controlada y aplicaremos el mismo script, y luego lo adaptaremos para un subconjunto de nuestros datos en Twitter (luego lo generalizamos).
- Importante Descargar un dataset de pruebas, ejecutando http://ws.stfx.eu/FJCGV99F82N8 antes de hacer cualquiera de los pasos previos. Luego empezar por el último paso, pues los previos son aquellos que nos permitieron construir el último.
- Seleccionamos los trinos de un mes particular de este dataset: http://ws.stfx.eu/6ZIA8USZOYXE.
- Aplicar nube de etiquetas a los trinos de un mes: http://ws.stfx.eu/IO4XU8UBX2UJ.
El script con código modularizado, por tipo de mensaje: http://ws.stfx.eu/BMRRWTAW87U3, lo cual nos produce algo así:
Ya que tenemos esta visualización, vamos a depurar los datos que no queremos en ella, creando un a colección de palabras no interesantes. Una vez lo hemos hecho, llegamos a este script: http://ws.stfx.eu/HQ6P8VVEVMVP.
breaks: false
Data selfies día 7, en Visualizar 2018
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
Agenda:
- Continuar con la visualización de ayer, extrayendo las n palabras más frecuentes en un discurso.
- Construir el histograma de palabras.
- Crear una composición de las visualizaciones que tenemos hasta el momento.
- Crear un builder.
Extraer las n palabras más frecuentes
Ayer logramos crear una nube de palabras y ahora partiremos de ahí para extraer las n palabras más frecuentes.
Recordemos el script en el que estábamos por últimas vez http://ws.stfx.eu/HQ6P8VVEVMVP, que produce este resultado:
Estamos consultando en los canales de discord, de la comunidad de Pharo sobre la plantilla que tenemos para la visualización. Estos son los canales de discord:
- Enlace de invitación: http://discord.gg/Sj2rhxn
- Invitación instantánea: https://discord.gg/gtKeHne
- Canal de Roassal en Discord: https://discord.gg/bAuNJMP
Esta parte ya funciona y el script que lo hace es este:http://ws.stfx.eu/1BC6RI4PLI70
Histograma de las palabras más frecuentes
Empezamos por este script: http://ws.stfx.eu/JXFI848SZUW6, pero resolvimos cómo integrar las dos visualizaciones, sobre las que veníamos conversando, en una sola, que muestre tanto la dimensión de tiempo, como la del perfil de interacción, es decir el balance o acento entre tweets, retweets y replies.
breaks: false
Data selfies día 8, en Visualizar 2018
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
Agenda: Desarrollar la estrategia de visualización:
- Ejecutar Grafoscopio en máquinas con Windows vía un LiveUSB con Linux.
- Recolectar información por años.
- Definir una carpeta de datos, como parte del modelo de objetos.
- Agregar los mensajes para todos los meses de una año en particular, y partirlos por tipo de mensaje, guardándolos para el histograma (todos los tweets, retweets, y replies de todos los meses de 2010).
- Crear el histograma.
- Recomponer el infograma central (el triángulito con paticas y bracitos asimétricos).
:::info Es recomendables que abras en Grafoscopio esta libreta interactiva de trabajo y la personalices de acuerdo a cómo avanza el evento. Nuevas versiones se colocaran en el mismo enlace. :::
Grafoscopio vía Live USB
Descargamos MX Linux que se puede usar en modo LiveUSB y almacenar de
modo persistente los cambios hechos de vuelta a la memoria USB.
Si bien usamos la persistencia desde el disco duro, esta alternativa puede facilitar el
uso de la plataforma en entornos Windows no actualizados o donde la instalación de dependencias,
como libgit2
es difícil, como ocurría con las máquinas de algunos participantes.
De este modo todos pudimos trabajar replicando y sincronizando los resultados de la visualización en las máquinas de todos los participantes, por primera vez, y no sólo en máquinas que ya traían instalado Mac y Gnu/Linux, como hasta el momento.
Recolectar la información por años
Extendemos la funcionalidad de TwitterMessages
usando este par de scripts:
- Exploratorio original: http://ws.stfx.eu/72MAXSBV95D4
- Con la nueva funcionalidad implementada: http://ws.stfx.eu/PFJ2HTD8H117
Actualizar el sistema vía Monticello
Seguir las instrucciones en este enlace.
Preguntas y referencias
- Cómo saber los mensajes que se pueden enviar a un objeto.
- Si pensamos desde la perspectiva de libro para programadores con alguna experiencia, una buena introducción son este par de libros:
- Live Coding.
breaks: false
Data selfies día 9, en Visualizar 2018
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
Agenda:
- Integrado de la visualización
- Ejercicio práctico: seleccionar los datos por mes y por tipo de mensaje, con lo cual podremos crear diferentes visualizaciones (histogragramas, apiladas, etc.). Para ello vamos a introducir el tutorial de la sintaxis de Pharo e intentar responder esa preguntas.
Tutorial introductorio de Pharo
Abriremos una de las libretas interactivas listadas acá
Drawing with data: http://ws.stfx.eu/OBJIN05SJJBX
Extraer los datos por mes y tipo de mensaje
- Nos actualizamos a la versión
Dataviz-OffrayLuna.176
o posterior. - Importamos y ejecutamos: http://ws.stfx.eu/NW6VEF636ZS4
Explorar visualizaciones con los datos antes extraidos
Lanzamos la galería de visualizaciones de Roassal y miramos gráficas que se puedan hacer con los datos que ya hemos extraído en el paso anterior (histogramas, gráficas apiladas, etc.)
Compartamos el código de las visualizaciones base que estamos probando acá:
exampleMultiDataPoint
: http://ws.stfx.eu/5ML4L2UO0WJI .- Explorar un archivo de Tweets: http://ws.stfx.eu/1BYDSRUTEMTC.
- Script para histograma anual de mensajes: http://ws.stfx.eu/8NP2E2P3E1R3
breaks: false
Data selfies día 10, en Visualizar 2018
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
Agenda:
- Llenar la ficha del proyecto.
- Tabla y visualización del histograma:
- Gráfica apilada (stack plot) y otros tipos de gráficas.
- Nubes de palabras (mejorar los filtros de palabras) y hashtags.
- Visualización a lo "hoja de vida" (resume o curriculum vitae): Inyectar en una plantilla de LaTeX los gráficos "tradicionales" que hemos obtenido como paso intermedio hacia el Data Selfie que hemos pensado
- Otras formas de consultar los datos y otras visualizaciones:
Ficha del proyecto
Visualizaciones alternativas
En otras tecnologías
Se plantean alternativas complementarias de trabajo según:
- Fuente de los datos
Además del archivo propio que se pueda descargar cada uno de twitter, también podemos scrapear los tweets de otra persona (por ejemplo un político).
Para ello es puede usar: - la herramienta twarc. - servicios on-line como tweetbeaver que nos ofrece completos datos. También hay servicios online especializados en detectar seguidores falsos como twitteraudit.
- Visualización de los mismos
En una visualización se pueden distinguir tres fases de desarrollo:
- A. Planteamiento de una pregunta (por ejemplo "¿una persona manda más mensajes propios o repite lo que escucha?").
Posibles preguntas
REFERIDOS A UNA SOLA PERSONA (SELFIE) - ¿cuál es la proporción entre seguidores y friends (a quién seguimos)?. - Cuán interesante el para el ciudadano su discurso. Es decir, los temas que preocupan al ciudadano qué lugar ocupan en su wordcloud.
DATOS ENTRE VARIAS PERSONAS - ¿Qué friends tienen en común? - ¿Qué conversaciones han mantenido entre pares?
- B. Pregunta + visualización resuelta "a mano" con una serie de datos dada
- Herramientas de wordcloud online.
- Una foto de la persona donde sus facciones se "deforman" según la proporción entre tweets, retweets y replys.
- C. Pregunta + visualización resuelta por código para cualquier serie de datos
Se plantea, además de llegar a la fase C. con una visualización, plantear nuevas visualizaciones complementarias o alternativas, bien sea en fase A o B.
En Pharo/Grafoscopio
Explorar visualizaciones pre hechas y alimentarlas con los datos obtenidos a partir de un script parecido a este:
| messages |
messages := TwitterMessages new
dataFolder: FileLocator temp asFileReference / 'samuelnacar'.
messages monthlyMessagesSizeByTypeAsTableIn: 2011.
También se puede importar desde http://ws.stfx.eu/G4W4LS18EFWC.
Lo clave es usar el método #monthlyMessagesSizeByTypeAsTableIn:
o afinar aquellas visualizaciones que produzcan nubes de palabras, para que no incluyan enlaces o incluyan hashtags.
- Visualizar hashtags: http://ws.stfx.eu/IP73KI1D0V4H
Inyectar las visualizaciones en una plantilla de LaTeX
Inyectar en una plantilla de LaTeX los gráficos "tradicionales" que hemos obtenido como paso intermedio hacia el Data Selfie que hemos pensado
Una plantilla interesante puede ser esta:
Que se puede descargar en detalle desde acá.
Otras plantillas interesantes son:
breaks: false
Data selfies día 11, en Visualizar 2018
misref(https://docutopia.tupale.co/vis18:dataselfies) | < Anterior | Siguiente > |
---|
Agenda:
- Preparar el material para la exposición cuyo montaje inicia el próximo lunes.
Dicho material estará recopilado en la página de la expo.
- Recopilar preguntas.
- Mejorar la exportación desde CodiMD/Docutopia de los documentos en Markdown.
Exportar de Docutopia a PDF
Vamos a crear unos libritos que puedan agregarse a nuestro stand de exposición con la documentación que hemos creado durante este encuentro. Para ello, continuaremos con los pasos realizados acá.