Mapas del silencio: ¿Qué tan bien usan el Ministerio TIC de Colombia y sus (ex)funcionarios las TIC para comunicarse con los ciudadanos? El caso de Twitter

¿Qué es más demorado: un trino (tuit) o un derecho de petición para obtener una respuesta de entidades públicas y sus (ex)funcionarios? En esta entrada al blog lanzamos experimento público al respecto, usando como ejemplo intentos de comunicación establecidos con el Ministerio de las TIC de Colombia y sus (ex)funcionarios. Se emplean técnicas de extracción y visualización de datos con datos pequeños (small data) y se habla de cómo esto puede estar al alcance de más ciudadanos y ayudar a un diálogo más fluido entre gobierno, funcionarios y ciudadanos. Al final se mencionan algunas exploraciones, escritos y tentativas futuras que surgen de esta iniciativa.

La idea es crear un ciclo de realimentación positiva en el que podamos enviarle a distintas instituciones, funcionarios públicos y otras entidades, estas visualizaciones de datos, para ver si esto puede ayudarles a detectar asuntos importantes desatendidos o no contestados, de manera que puedan responderlos de maneras más incluyentes, abiertas y eficientes.

Experimento público y abierto: ¿Qué es más demorado: un trino (tuit) o un derecho de petición para obtener una respuesta de entidades públicas y sus (ex)funcionarios? A menudo escuchamos el discurso triunfalista de que las TIC puede mejorarlo casi todo (empresa, educación, trabajo, salud, gobierno, etc) de manera prácticamente automática con sólo introducirlas en los distintos contextos. Creo que es un discurso al que hay que aproximarse con una mirada crítica y sano exceptisismo, como lo han hecho figuras como Bill Gates, así como expertos en el tema de TIC para el cambio social, (un ejemplo se puede ver en libros como geek heresy), particularmente si uno se dedica al tema de las TIC. Si nos apegaramos a esa narrativas, uno esperaría que en esta época de vértigo e hiperconectividad, los trinos fueran la marca de la eficiencia y la rapidez, no sólo en el rumor cotidiano y el flujo de noticias, sino en la gestión pública, particularmente en el caso de las instituciones y funcionarios que impulsan las tecnologías digitales para lograr metas asociadas a la eficiencia. Muchas instituciones gubernalmentales tienen cuentas de twitter, así como los funcionarios y exfuncionarios públicos que están o estuvieron en ellas ocupando altos cargos directivos. Y a pesar de ese hecho, tanto instituciones como (ex)funcionarios parecieran estar permanentemente en un monólogo público, ejerciendo algo que parece ser comunicación y participación, pero que no tiene el caracter de doble vía esencial de los actos comunicativos. Ojalá nos equivoquemos y efectivamente la incorporación de las TIC establezca canales públicos y eficientes de comunicación en doble vía que permitan ejercer el diálogo, la deliberación, la toma de decisiones y veheduría ciudadana las mismas, sobre la función pública, los presupuestos nacionales y los dineros de todos, entre otros temas importantes.

Daré cuenta de un experimento abierto y público para respondernos la pregunta con la que iniciamos. El experimento es sencillo, usanto técnicas de extracción y visualización de datos, sobre pequeños datos siginificativos (small data [1]) y miramos qué tanto tardan sin responder los (ex)funcionarios e instituciones públicas y crearemos unos "mapas del silencio" para los mismos. Acá mostraremos el inicio de tales mapas del silencio. Luego tomaremos varias de las cosas a las que no contestaron o lo hicieron superficialmente y redactaremos un derecho de petición que use el comportamiento en línea auditable de tales entidades y funcionarios, para indagar sobre sus formas de presencia en línea (empezando con Twitter, pero yendo más allá a sitios web y presupuestos de contratación), como argumento a favor de prácticas más eficientes, transparentes y empoderadoras de la ciudadanía. Enviaremos los mapas de silencio a los (ex)funcionarios e instituciones vía Twitter para ver si efectivamente contestan o cambian sus silencios y, con algo de éxito, estos ciclos de realimentación iniciaran formas de diálogo distintas entre (ex)funcionarios, instituciones y ciudadanía. Todo ocurrirá con de manera abierta y auditable, que hagan trazable la información que acá se presenta y la forma como se trata ésta (algoritmos, datasets, documentos de soporte, interfaces, etc), usando software libre, datos abiertos y públicos y repositorios de código

El experimento

El experimento se concretó, hace poco, en la última semana de junio, durante el primer Dataweek, que en sí mismo dejó un muy buen balance (aunque eso sería motivo de otras publicaciones, como las memorias en la página web y la respectiva nota al pie [2] ). Pasamos, en casi una semana, de la imagen garabateada a mano que ven a la izquierda al prototipo preliminar a la derecha, que no sólo es una imagen hecha en computador, sino un algoritmo completo de extracción y visualización de información para Twitter, escrito, de manera colectiva, en grafoscopio.

Mapas del silencio, del tablero al código: El tablero Mapas del silencio, del tablero al código: El código
^Arriba | Mapas del silencio, del tablero al código: Dos versiones de los mapas de silencio. Izquierda: garabato hecho a mano alzada en tablero a mediados del Data Week. Derecha: prototipo hecho en grafoscopio al final del Data Week, más unas pocas horas extra de afinamiento. (Click en cada imagen para agrandarlas)

Leer más…

Visualizing politicians/political discourses on Twitter

Attention!

Check out also our News Challenge Knight's campaign website here

Recently we apply for second time to the Knight Foundation News Challenge. Both times we're proposing hacker/maker spaces as places for bootstrapping social transformation, using education, playfullness and civic empowerment, but this time we want to offer another aproach to build on the experience of our first participation. This post is about what we learned (both times) and what we're doing using the visualization of politicians/political discourses on Twitter as a particular example of the technology and social dynamics we're trying to build.

Here is an outline of this blog post:

  • The main learning: campaigns (Knight's News Chalenge and others) as bootstrappers for long lasting dynamics and projects: Or how we want to enable a critical broader discourse (beyond Knight Foundation site, but interconnected).
  • Our bet: building continuoums between data+code+document+app & people & places. Here I will point to previous explorations about data narratives and visualizations and why that continuoum is necesary and why Pharo/Smalltalk is particulary well suited for the task, bringing moldable tools and fluent interfaces. People and places are at the core of our bet because informed voting can be a form of social empowerment, and tools are catalizers for that people in these places/contexts.
  • The particular process/tools for the visualizations showed here, where I will show how to get the data (scraping and saving) from Twitter, where the data is published and how it can be loaded from our interactive documents on grafoscopio with a walk through for the shor code snippets (6 lines long or less!) that made the visualizations possible.
  • What's next? , where I talk about what happens If the convocatory is successful and if it's not.

Here is a sneak preview of our advances of data visualization of politicians discourses on Twitter (click on any picture to launch it full screen and browsers back button to return here).

/galleries/projects/datapolis/politicians/word-clouds/angelicaLozanoC-word-cloud.thumbnail.png /galleries/projects/datapolis/politicians/word-clouds/antanasMockus-word-cloud.thumbnail.png /galleries/projects/datapolis/politicians/word-clouds/cLopezAnalista-word-cloud.thumbnail.png /galleries/projects/datapolis/politicians/word-clouds/ginaParody-word-cloud.thumbnail.png /galleries/projects/datapolis/politicians/word-clouds/jERobledo-word-cloud.thumbnail.png /galleries/projects/datapolis/politicians/word-clouds/juanManSantos-word-cloud.thumbnail.png /galleries/projects/datapolis/politicians/word-clouds/oscarGSanchez-word-cloud.thumbnail.png /galleries/projects/datapolis/politicians/word-clouds/petroGustavo-word-cloud.thumbnail.png

So, if you're insterested, continue reading.

Leer más…

Charla de grafoscopio en Science Hack Day 2015 de Bogotá

Este fin de semana estuve en el Science Hack Day de Bogotá dando la primera charla pública sobre grafoscopio (las memorias están, como es habitual en mi, en forma de mapa mental, y las referencias completas al pie de la imagen). El evento fue muy interesante por el espacio y sobre todo las personas y fue un encuentro para establecer lazos que espero se vuelvan, en algunos casos, duraderos.

Durante mi charla dije que yo haría una "media hackatón" y que esperaba al final de la misma lanzar el alfa de grafoscopio. Pues bien, esta entrada al blog es un informe de lo que se logró y de porqué es mejor aplazar nuestro primer lanzamiento abierto del software, que en esencia se resume en sincronizarnos con el lanzamiento de Pharo 4, que está próximo a realizarse..

Detalle mapa de la charla
^Arriba: Detalle del mapa de la charla sobre grafoscopio. Enlaces a la imagen completa y al código fuente para Xmind

Lo que se hizo el fin de semana fue empaquetar las versiones para Windows y Gnu/Linux de grafoscopio. Después de más de una década sin usar Windows (desde el 1999), salvo para cosas esporádicas, debo decir que desarrollar en esa plataforma, comparado con un sistema Gnu/Linux es dispendioso. Sin una consola de comandos poderosa las tareas sencillas, como buscar un archivo, o navegar en carpetas, toman eternidades, ni qué decir de cosas que en Gnu/Linux tomamos como garantizadas, como la auto-instalación de software y la resolución automática de dependencias. Así que busqué un paliativo al desarrollo en Windows, un editor de comandos decente y finalmente use clink, que además de ser de código abierto, es extensible en Lua.

Grafoscopio sobre windows
^Arriba: Grafoscopio, ejecutándose en la plataforma Windows.

Pude correr Pharo/Moose, que son las techologías bases para grafoscopio, en un Windows emulado en mi Manjaro Linux sin mayor inconveniente y me dediqué a pescar unos pequeños errores originados en las diferencias en las rutas de los archivos debido a cómo se empaquetan Pharo/Moose para Windows y Gnu/Linux (las capturas de pantalla muestran grafoscopio ejecutándose en un Windows emulado). A medio día del domingo estaba listo para liberar el alfa y decidí que sería un buen cierre aprovechar que estaba en el centro para ir a almorzar y como recompensa una película de fin de semana, aprovechando el lunes festivo para publicar los instaladores para Gnu/Linux y Gnu/Linux.

Hoy lunes sin embargo pude ver un trino (o tuit/tweet), que me hizo cambiar de opinión:

Efectivamente la comunidad de Pharo está próxima a liberar la próxima versión y si bien había hecho algunas pruebas en el pasado que no me convencían de portar grafoscopio a esta versión, las pruebas que hice hoy sí me convencen de hacerlo, pues me muestran un producto más amigable y maduro: el molesto cambio en las teclas Ctrl y Alt ya fue arreglado, el auto-completado de código está rehabilitado por omisión y hay coincidencia de los playgrounds en los menús y en el nombre de la ventana. Esos son los tecnicismos más sobresalientes, que si bien pueden sonar desconocidos a un lector desprevenido, si mejorarán mucho su experiencia cuando use grafoscopio por primera vez.

Aprovechando que grafoscopio tiene pocos usuarios actualmente, que el único que lo usa de modo continuo soy yo y que sólo se tiene un chance para una primera buena impresión, decidí postegar el lanzamiento de grafoscopio para que esté basado en Pharo 4.0 y podamos sincronizarnos mejor.

¿Cuando sería la fecha de lanzamiento? Dependerá seguramente de la participación que tenemos planeada en el venidero Festival Internacional de la Imagen, pero ocurriría en algún momento de abril. Mientras tanto, mejoraremos la documentación y funcionalidad del software, empezando por portarlo a Pharo 4.0.

Si definitivamente quiere probarlo en su estado actual, lo invitamos a los talleres de los sábados, que anunciamos periódicamente en la página de HackBo, para que nos visite y lo instale con nosotros, o escríbanos un correo y le enviaremos un enlace a nuestros descargables más recientes.

Grafoscopio: Iceberg metaphor for writing and data visualization

This post describes a project I have been working on in Smalltalk as an alternative way to approach open/garage/citizen science & research by bulding a tool for "deep" / emergent data narratives and visualization, or what I call the "iceberg metaphor". It starts with some community context about the blog post itself and then introduces the project and my advances and difficulties so far.

This is a post which started as a mail in the Moose project mailing list, but got no answers. So I'm trying another aproach: Write longer details on my blog to point interested readers here, and combine it with particular questions in the mailing list. Seems that striking the proper balance between broader context for asking questions is the difference between 4 kind of reponse patterns: a) quick reponses, b) "more details please", c) longer mail takes longer to answer and d) longer mail gets not answer at all. Let's see how works with this new combination.

Last June or July I started a project with an alternative approach to writing and visualization. It was my bet to build a tool to express some long standing ideas about how to write in a non-linear fashion and beyond the white page metaphor of common word processors, focussing mainly on words and structure, instead of typography, margins and all the unnecesary stuff you start to care of, while you're trying to explore/express your ideas in "black on white". Also I would like to have interactive writing where I can explore ideas by computation, simulation and visualization.

Previously I had tried IPython and Leo for that, and I wrote some ideas about how to mix them, but Leo and IPython were not maleable enough, without deep understanding of their inner workings and/or by combining several technologies: python, qt, xml, json, javascript, html, zeromq, server programming, client programming, etc, with different paradigms and ways to think: markup, serialization and scripting languages, imperative and object oriented programming, etc.

Iceberg

So I thought in another way to combine the programmable tree like document of Leo and interactivity of IPython without such cognitive burden, by choosing a more uniform platform. My medium to explore that ideas was Moose, a platform for software and data visualization made on top of Pharo Smalltalk and the related ecosystem, for example by using the lightweight serialization language STON for document storage/representation and citezen for the integration with zotero bibliographies. I started to make prototypes and even I got a small fund, thanks to the people from the starting HiTec Lab [3], to write an academic draft article in the context of how this new kinds of metaphors for writing can be used to bootstrap open/citizen/garagen science & research.

I'm advancing at making my interactive notebook for open/garage/citizen research & science in Moose called Grafoscopio (SmallHub repository, Fossil repository). This are baby steps towards an alternate approach to what Andrei, Jan and Doru, from Moose community, are trying for documentation [1][2], that begins with a document tree inside the Pharo image and "projects" the files to the file system (Grafoscopio produces markdown by traversing the tagged tree and then latex and html, via pandoc and pdf via pdftex / luatex). In this way you can have a complete interactive document (some few pages or book size) inside the image, stored/shared/versioned in STON with arbitrary levels of deepness and only think about files when you are exporting to pdf or intermediate formats. (Also I think that this solution is easier to run on Windows that Pillar Book Skeleton.)

Markdown (pandoc's variant) express only the "surface" of the writing, while deeper structure is stored in the image and STON. I call this the "iceberg metaphor" for writing and data visualization, so instead of WYSIWYG (What You See Is What You Get) of common word processors you have WYSIOTSOWYH (What You See Is Only The Surface Of What You Have) ;-) which is what happens most of the time and the common word processing and file oriented metaphors can not capture/express. New metaphors for writing are needed if we want to bootstrap more open/inclusive ways to do science and research, coming not only from academia but also from non canonical places like garages, maker/hacker spaces and from citizens in general and not only from scientist.

Tags are the way to introduce modal behaviour/interface in grafoscopio. So if I tag a node, the look and feel is going to change accordingly. You can see this in the following small video of how interface looks/behaves today (for a better playback look the video on Chrome/Chromium. Firefox shows a pixelated video):

As you can see, I can tag a node as code (código) and the node view and behaviour gets updated after revisiting the node, providing auto-completion and syntax highlighting. There are also tags for "transmedia" content that arrange the layout for showing the original content and the transmediated one. I have thought about tags for "data" which will contain data sources, queries, tables of values and visualizations. Even could be tags for showing a mind map and start to add nodes inside a visualization instead of operating the tree directly (in a similar fashion to xmind).

The way to share look and feel for tags is still a pending issue. It could work like now, by extending the source code of grafoscopio to add new tags, but It could happen with grafoscopio "documents". So a document could define a new tag, its GUI and behaviour and populate the class browser. Of course this could lead to security concerns, but I imagine a set of repositories working in a similar way to Arch Linux repositories, with proper separation of trusted users and a community curated repositories for non verified tags. This scenario would happen if someday grafoscopio has a big enough community, but for the moment is working fine as is (I think it will be pretty modest and small).

This ideas about tags were announced since the first academical draft paper on grafoscopio, and were the evolution of a "vocabulary of special words" I developed while writing my PhD thesis in Leo (I am still writing it), but they were implemented only recently with the Transmedia Hackathon we made with Adriana (we call it "Transmediatón") on January 16 and 17, this year and it solved a way of expressing/storing several interactions in a single tree [4].

I'm trying to evolve grafoscopio organically in this way, by using it myself and in the research and consultancy I'm doing and by sharing and asking in the Moose community about this process. After all this, I have some ideas to explore next, that is where this post started, like:

  1. Updating instantly the node view/behaviour without the need to revisit the node.
  2. Geting the code executed, inside a code node, so documents will become interactive (like in IPython).
  3. My idea in the future is to make the node view of the tree at the right side a complete playground instead of a workspace, with their emergent lateral panels when an object is selected. For more information about playgrounds in Moose you can look at this introductory blog post or the several videos at here http://gt.moosetechnology.org/.
  4. At the very end of the video you see the trace of an error that is raised when I select and empty part of the tree. This is the most annoying behaviour and can create lost of information if you have write a node and not saved the tree just before clicking and empty tree space. I need to solve this bug and is urgent. I need to solve issules with automatic backups and fossil integration. This is a priority. Information should not be lost... never!
  5. At this moment all external transformations from markdown to pdf and latex are managed by pandoc using pdftex and xetex, as I said, but I would like a better integration, without calling it from shell, and start to test a more minimalist/programmable LaTeX engine vía luatex.
  6. There is still no web site for grafoscopio and I would like to create one for the next event related to it (may be the next hackathon on transmedia or data journalism) to deliver a more solid and friendly release. Ideally the website for grafoscopio would be done on grafoscopio itself, but time will tell.

It has been a pleasure to work with Pharo and Moose for this project. Is a very empowering platform to express ideas about how interactive documentation could be done, among other things and the community is welcoming and awesome! My thanks goes also to the folks of HackBo, specially the ones attending to the Indie Web Science workshops. It has been a place to get inspiration, tinker with this ideas and to share with friends.

[3] HiTec is not the acronym for High Technology, despite of what it evokes. Is more about Hipermedia Tecnologies... kind of a bitter sweet coincidence.
[4] May be there was somekind of similar idea on Leo nodes, but I never could see this working. I know for sure that Leo can show information in nodes in several ways by the use of "@-directives", but I use them mostly for syntax highlighting and not much for redefining the interface or behaviour inside the tree (adding/enabling plugins by editing files was kind of "too geeky" for my taste).

Tragicomedia sobre la toma de una decisión

Esta historia está basada en la vida real. Los nombres de personajes y lugares han sido cambiados para proteger su identidad y las situaciones caricaturizadas. Cualquier parecido con la realidad no es pura coincidencia. (Leer con tono grave y serio, tipo comienzo de película de misterio).

Los siguientes hechos tienen lugar entre el 30 de diciembre de 2014 y el 2 de enero de 2015.

  • Día 1: Fulano hace una propuesta a una comunidad debido a que el nuevo año pinta bien respecto a un proyecto. Para concretar el apoyo hace preguntas a la comunidad de selección múltiple (no de si/no ni falso/verdadero) sobre espacios y tiempos.

  • Día 2: Fulano recibe las felicitaciones respectivas. Es año nuevo. No se tomará ninguna decisión y es comprensible.

  • Días 3 y 4: Sutano propone usar Loomio para decidir al respecto. Mengano lo apoya y argumenta a favor de ello. Perencejo dice que es demasido demorado y usa la tradicional táctica matrimonial: "si alguien se opone que hable ahora, o calle para siempre". Se procede al "+1 argumentativo": 4 votos a favor y ninguno en contra

    Sutano se baja de su propia propuesta y contraargumenta contra Mengano por apoyarla. Perencejo contraargumenta también, agregando presagios apocalípticos, maldiciones inexorables y dejá-vus comunitarios.

    Sutano hace gala de su habilidad para "caer bien" y "caer de pie" y Mengano de la suya para quedar en el centro del huracán, aguantando el clásico todos contra uno.

Balance:
  • Cantidad de participantes en la decisión: 5.
  • Tiempo para decidir: 2 días.
  • Posibles flamewars: 1.
  • Trazabilidad de las opciones, argumentos y votaciones a futuro: baja.
  • Respuestas a las preguntas específicas de Fulano en su propuesta: 0.

Moraleja: En boca cerrada no entran moscas... ni alimento :-/

Roleplaying, micropayments, co-creation and the commons

This post will talk about a way to explore sustainability for digital goods and creations. For that, an example will be given using roleplaying games, some with classical copyright license, some with a more liberal licenses (ie. something in the creative commons licenses family) and how I can relate with both schemes. This will be talking with some readings from Who Owns the Future and, of course, the games themselves.

I have just finished Who Owns the Future by Jaron Lanier. It was a really enjoyable reading and I think that Jaron has a lot of really good points. My favorite one is that "information is people in disguise". There is no information by itself without people creating it or making sense of it. I share the idea of current information economy being a feudal system where cyber-landlords (Google, Yahoo, Facebook, Twitter, etc) let us inhabitate the cyberspace with the condition of making them richer (I have called this cyberfeudalism). I think also the we need a better way to make sustainable for the people the worth creation that they made through information. I differ with Jaron in important issues. That happenned also in my reading of his previous book: You're not a gadget. Despite of Jaron's clear sight for a lot of grey areas in the information landscape, his view seems binary in other aspects: individuals versus hive mind, capitalism versus communism, State versus Private Corporation. It seems that there is no place for third places like communities or The Commons which do not participate of the mentioned disyuntives. Elinor Ostrom and Biella Coleman have shown us that there is room for places between binaries, in the perspectives of hacker communities and knowledge as a common, among others.

I'm willing to pay more for digital goods after reading Jaron's book, as a way to recognize the people behind the creation of such goods, but also I want to make evident that there are some other ways to be part of the sustainability of the information economy and the people behind it, that are related with what some have called post-capitalism practices. For that I will take a particular example with roleplaying games and the way I participate in both schemes: capital oriented and commons oriented. Hopefully, this example will show that there are possible bridges between them and that you can explore them as a person or as a small group of persons. Of course, top-down explorations are necesary and bigger institutional oriented frameworks like corporations and goverments surely are exploring or will explore some other bridges. And hopefully we will get some convergence between these bottom-up and top-dwon explorations

Leer más…

Narrativas de datos sobre medios en colombia: Aprendizajes y aportes

Este sábado estuve en el evento de Medios en Colombia. Fue un encuentro interesante y creo que se está gestando un colectivo bien chévere de personas deseosas de visibilizar cosas y contar historias basadas en la evidencia. Definitivamente un plan que me gusta.

Destaco principalmente:

  • Primero la gente: ya lo dije, pila e interesante, además en un entorno incluyente, tranquilo y de mucha colaboración.
  • Segundo, La WiFi. Una vez acreditatos, era rápida y sin bloqueos absurdos de firewall. Incluso permitía conexiones por protocolos como el ssh.
  • Tercero, el mecato: Hacia mitad de la jornada llegaron unos jugos con fruta y un croassant de jamón y queso, además del tinto. Un pequeño tentempié para la conversación relajada con otros.

Creo que se podría mejorar:

  • La duración: Digamos que a 9 horas en dos días le falta el caracter de maratónico. Sería más como una media maratón. Se está pensando en el alargue en 15 días y empezar desde las 11 am y sugeriría que acabase a la misma hora (8 pm) para lograr ese tono intensivo propio de las hackatones. Allí se podrían ultimar los detalles de los prototipos que se empezaron en esta ocasión y escuchar nuevas propuestas.
  • El ingreso: A pesar de lo diligentes de nuestros anfitriones, fue inevitable para el evento caer en la burocracia institucionalizada y la clásica "conversación" con el celador sobre si los invitados contaban con su venia para entrar o no. Creo que es normal cuando se trata de insituciones del tamaño de una universidad terminar en este tipo de situaciones. Para las hackatones y otros eventos que organizamos en HackBo intentamos tener la menor burocracia posible, pero es porque el tamaño del espacio y la comunidad alrededor lo permiten. Unas por otras.
  • Portátiles extra para los asistentes: Estos no llegaron y limitan la posibilidad de participar de algunas personas ya en la creación de los artefactos digitales propiamente dichos y aunque finalmente se pudo con lápiz y papel y de viva voz, su presencia hubiese facilitado distintas actividades (recolectar información, integrarla, visualizarla y compartirla). Muy chévere que el evento los haya ofrecido y, de nuevo entiendo, las dificultades burócráticas antes mencionadas que pudo haber para su entrega.
  • Tutoriales y articulación con eventos preparatorios como "entrenamiento" para la hackatón: Algo que nos pasó en la Gobernatón es que los participantes llegaban con ganas pero sin mucha preparación de cómo participar. Esto es normal de estos eventos y será la regla mientras aprendemos de ellos. Es como correr en la media maratón de Bogotá (que es un espacio deportivo muy incluyente) sin llevar los tenis ni haber entrenado antes. Creo que le podríamos sacar mucho más provecho si tuviéramos un material y actividades preparatorias que permitan a los novatos "entrenar" para el evento. Incluso, si vienen sin preparación, son bienvenidos, pero la existencia de dicho material les puede ayudar a una participación más dinámica dentro del evento como tal. Tutoriales introductorios a la visualización de información, la instalación previa de plataformas, referencias de visualización ya hechas, etc, serían de gran aporte, así como eventos que, sin tener el caracter intensivo de una hackatón, alisten a los participantes para ellas (como pequeñas pistas antes de la media maratón). Precisamente desde esta idea fue que empezamos los talleres de Indie Web Science en HackBo y estamos creando parte de ese material preparatorio como resultado de los talleres. Se van consolidando de a pocos y los aportes de Rafa, Camilo e Iván, en la escritura de dicho material han sido claves. Esperamos publicarlos en la medida en que vayan quedando más maduros y el proceso de publicación sea más fluido.

Ahora bien, respecto a los proyectos, voy a hablar brevemente del que nosotros realizamos e invito a los participantes de otros grupos a que documenten en su blog, wiki o lugar personal/comunitario favorito sus otros proyectos y los compartan por la página del Meetup.

Decidimos hacer una visualización que mostrara las relaciones familiares, de formación y laborales que hay en los medios de comunicación en Colombia. Como decía Diego, su papá escuchó los mundiales de Futbol narrados por un Pelaez y los nietos de él los escucharán narrados por el hijo de Pelaez, así que indudablemente se conforman "familias" en torno a los medios de comunicación y sus temáticas. Esto ocurre en otras profesiones, pero al ser los medios un incluenciador de opinión tan importante, no deja de ser interesante evidenciar estas relaciones.

A pesar de lo corto del tiempo, creo que el encuentro fue sustancioso en términos del desarrollo del problema:

  • Hicimos un pequeño documento con memorias de la exploración de herramientas, su instalación y las visualizaciones que podrían servir.

  • Encontramos y reportarmos un error en la visualización sencilla cuya solución también fue conversada (ver el hilo de conversación)

  • A pesar de que, como todos los grupos, sólo mostramos avances preliminares, esta jornada nos permitió entrever los elementos que pueden ser útiles en una visualización de este estilo. Así se vería un avance preliminar (gracias a Peter y Alexandre de la comunidad de pharo que ayudaron a depurar el código con el que iniciamos):

    ../galleries/objetos/grafo-medios-colombia-inicial.png

    Y este el código de la visualización anterior:

    | vista e1 e2 e3 e4 e5 e6 e7  line edge1  |
    
    "Se crea un objeto tipo vista"
    vista := RTView new.
    
    "Definimo los elementos, que denominamos simplemente e1, e2, etc, con
    su color y su tamaño"
    e1 := (RTEllipse new color: (Color blue alpha: 0.4); size: 20) elementOn: 'Juan Gossain'.
    e2 := (RTEllipse new color: (Color red alpha: 0.4); size: 20) elementOn: 'Daniel Coronel'.
    e3 := (RTEllipse new color: (Color yellow alpha: 0.4); size: 20) elementOn: 'Diego Santos'.
    e4 := (RTEllipse new color: (Color green alpha: 0.4); size: 20) elementOn: 'Vanessa De La Torre'.
    e5 := (RTEllipse new color: (Color green alpha: 0.4); size: 20) elementOn: 'Juan Diego Alvira'.
    e6 := (RTEllipse new color: (Color green alpha: 0.4); size: 20) elementOn: 'Ana María Escobar'.
    e7 := (RTEllipse new color: (Color green alpha: 0.4); size: 20) elementOn: 'RCN Radio'.
    
    "Decimos que los elementos antes definidos se podrán arrastrar"
    vista add: e1; add: e2; add: e3; add: e4; add: e5; add: e6; add: e7.
    
    vista elements do: [ :each | each @ RTDraggable @ RTLabelled ].
    
    
    "Adicionamos los elementos a la vista"
    
    "Decimos qué propiedades va a tener la línea que los conecta los elementos"
    line := RTArrowedLine  new color: Color red.
    line withOffsetIfMultiple.
    
    "Decimos de dónde a dónde van las líneas que unen los elementos en la vista
    y qué propiedades tienen"
    edge1 := (line edgeFrom: e1 to: e7).
    vista add: edge1.
    edge1 @ (RTLabelled new text: 'Exdirector de Noticias de').
    
    
    "Decimos que dispocisión van a tener los elementos en la vista.
    En este caso se van a disponer de manera circular"
    RTCircleLayout on: { e1 . e2 . e3 . e4 . e5 . e6 . e7 }.
    
    "Abrimos la vista"
    vista open
    

Esto en líneas generales. La siguiente parte del texto se pone más técnica y habla precisamente de las reflexiones que me dejó el encuentro a ese nivel de detalle.

Tablas en la plataforma de Agile Visualization.

El encuentro me dió algunas ideas sobre grafoscopio, un software en el que he venido trabajando ultimamente (articulo académico) para hacer ciencia e invstigación abiertas, ciudadanas y de garage, desde cosas como las narrativas visuales de datos. Como dije en el encuentro, en mi percepción muchos eventos de narrativas de datos tienen una la lógica de cadena de montaje: el que extrae y procesa la información, el que la visualiza, el que crea una historia, con claras funciones asignadas de acuerdo al tipo de profesional: el programador, el diseñador gráfico/web, el comunicador/periodista. Así, a pesar de que se produce un artefacto que requiere de múltiples saberes, cada uno aporta desde su saber específico sin crear mayores conocimientos interdisciplinares. Creo que el abordaje interdisciplinar de problemas complejos requiere la construcción de lenguajes comunes e infraestructuras que permitan fronteras más gruesas entre los saberes. No se trata de que cada uno se vuelva experto en el saber del otro, pero sí que entendamos más de lo que el otro habla desde su saber específico (como dirían en Valve, requerimos más gente con "forma de T") y para ello son necesarias las infraestructuras que conecten los saberes particulares desde los quehaceres conjuntos. Con grafoscopio quisiera aportar desde esta perspectiva.

En particular la manera de visualizar grafos en la plataforma de Visualización Ágil requiere una experiencia más fluida para ingresar la información en lugar de a través del código o la importanción de archivos externos y creo que se puede hacer con dos tipos de tablas: Una que represente los atributos de un tipo de entidad y otra que represente las conexiones entre las entidades antes definidas. Por ejemplo tanto la entidad persona, como la entidad insittución tiene como atributo el nombre. Así tendríamos una persona con nombre "Juan Gossain" y una institución con nombre "RCN Radio" y en la tabla relaciones tendríamos una tripleta de la forma: "Juan Gossain, Exdirector de noticias de, RCN Radio" que establecería el tipo de conexión entre esas dos entidades. El Glamorous Toolkit incluido en la plataforma de visualización ágil permite construir tablas rápidamente (ver imagen lateral) y habría que ver qué tan fácil es actualizar la información y exportarla a un formato que permita la colaboración fácil entre diferentes personas que agreguen tal información (CVS, como opción para los valores en las tablas y JSON, STON para los grafos). La ventaja de esos formatos ligeros, como los mencionados, es que representan a través de texto la esencia de las entidades en el grafo y sus relaciones, y pueden ser escritas colaborativamente en tiempo real, usando por ejemplo un Etherpad [1] [2]. Incluso, como primera aproximación, antes de tener las tablas soportadas en Grafoscopio, se puede pensar en un script que lea un etherpad con datos creados entre varios y a partir de allí cree el grafo. Cada vez que se ejecute el script, nos daría una versión actualizada del grafo con los datos recopilados entre todos y todas.

En esas ideas trabajaré en el siguiente encuentro, que al parecer será el sábado 6 de diciembre, aunque, por supuesto estoy abierto a sugerencias. Si Poseidón y los sistemas dinámicos no lineales (en especial los del clima y los vuelos) lo permiten, allá nos vemos.

Borrachos, bochinche, futbol

De los tiempos en que escuchaba radio y veía televisión colombiana, mi impresión de Felix de Bedout es el de un periodista serio y crítico. Por los reenvíos que me llegan en twitter de quienes siguen su cuenta, mantengo esa impresión. Con motivo de la ley seca en Bogotá durante los partidos de la selección Colombia en el mudial de Brasil 2014 trinó:

Como entre meme y meme, y broma y broma la verdad se asoma, me parece que es importante no considerar ese mapa de prohibiciones en el vacío, sino asociarlo con otro que nos permite triangular la correlación que podríamos expresar como fútbol + violencia = ley seca. Como para formalizarlo un poquito más, en lugar de un meme, voy a usar un trino como mi fuente para los paises que reportan más de 100 heridos después de que juega su selección:

y usando Pharo más Roassal y ese trino (tweet) del Alcalde Petro tendremos nuestro nuevo mapa:

^Arriba | Paises con más de 100 heridos cuando "celebran" que juega su selección y código para construir la imagen. (Click en cada imagen para agrandarla)

A la izquierda están las instrucciones para crear el mapa (código fuente) y a la derecha la gráfica resultante (click para agrandar). En la parte inferior hay más detalles para las personas interesadas.

Esto nos ayuda a poner el mapa de la prohibición trinado por Felix en perspectiva e indirectamente pone a conversar este trino con el del Alcalde Petro sobre las cifras de violencia en correlación con el fútbol (no he visto conversaciones entre ellos a través de este medio).

Ojalá este deporte ocupase un lugar más sosegado junto a las demás actividades recreativas. No me imagino gente con temor de salir a la calle porque quizás se encuentre con un violento hooligan debido Nairo Quintana tuvo un excelente desempeño ciclístico, o por que a bailarines de Colombia hicieron un inmejorable trabajo en el Mundial de Salsa.

Afortunadamente estamos teniendo celebraciones más tranquilas y entendiendo de los logros del proceso, al margen de los resultados, como el del pasado domingo 6 de Julio de 2014, cuando cerca de $125.000 personas se reunieron para darle la bienvenida a jugadores y cuerpo técnico de la selección Colombia de fútbol. Yo, que soy indiferente a éste deporte, sí disfruté de que la celebración haya sido en calma y multitudinaria, a pesar de que no comparto ese discurso totalitario del fútbol que supuestamente pone a vibrar a 47 millones de colombianos, como si fuera incomptable la nacionalidad con que ese deporte esté por fuera de nuestras preocupaciones y reconocer que entonces quien celebraba era una parte numerosa de Colombia, pero no total del país. Ojalá la "pasión del fútbol" no cometa el error tan desafortunadamente generalizado en los medios de comunicación de invisibilizar a las minorías y lo diferente, por ejemplo a quienes no disfrutan de ese deporte y sirva como escenario de reflexión y diálogo sobre otras cosas, como bien lo decía Mauricio Albarracín en su artículo de la silla vacía, que recomiendo sobre manera, al respecto de las relaciones raciales y de género. El título de este texto lo he mantenido para mostrar que podemos ir más allá de las relaciones evidentes y de las reaciones habituales con respecto al fútbol, al menos eso me ha hecho pensar este mundial.

En este texto, quiere aportar en ese sentido, por ejemplo nos permitió juntar conversaciones como las de Felix de Bedout, Gustavo Petro, Mauricio Albarracín y la mía, hablar de convivencia y la posibilidad de reconocer la diversidad y a las minorías, eso gracias a Internet y al Fútbol.

Más detalles sobre el algoritmo de visualización

El argumento está esencialmente hecho: pongamos al fútbol en perspectiva, miremos qué diálogos posibilita y qué nos enseña a través de ellos. Para mantener la argumentación fluida sólo hice unos pequeños enlaces, pero en esta parte ampliaremos más los aspectos técnicos.

Acá está el código fuente del mapa generado acá por fuera de la imagen, por si se quiere copiar (contenido entre las comillas triples):

In [3]:
codigo_smalltalk = u"""
    "@md:
    # Ley Seca en Bogotá

    Un pequeño ejercicio de 'periodismo de datos' amateur ;-)
    "

    "Definamos nuestras variables"
    | mapa datos |

    "Los datos será una tabla que guarda tripletas de la forma:
     ' Pais | Cantidad de heridos | Fuente' "
    datos := RTTabTable new.
    datos input: 
        'Colombia 	110 	https://twitter.com/petrogustavo/status/479464213640130560' 
        usingDelimiters: String tab.
    datos convertColumn: 2 to: [ :t | Integer readFrom: t ].

    "Ahora dibujemos nuestros datos en un mapa mundi"
    mapa := RTMetricMap new.
    mapa allCountriesColor: Color white.
    mapa countries: datos values named: #first metric: #second.
    mapa open setLabel: '
            Paises con más de 100 heridos reportados cuando "celebran" 
            que juega su selección'.
"""

Debido a que el IPython Notebook, la herramienta de escritura para este texto no soporta (aún) el resaltado sintáctico para Smalltalk (el entorno en el que está basado Pharo), usaremos pygments para colorearlo manera más adecuada.

In [4]:
from pygments import highlight
from pygments.lexers import SmalltalkLexer
from pygments.formatters import HtmlFormatter
from IPython.core.display import HTML

html_snippet = highlight(codigo_smalltalk,SmalltalkLexer(),HtmlFormatter(full=True, style='trac'))
HTML(html_snippet)
Out[4]:

    "@md:
    # Ley Seca en Bogotá

    Un pequeño ejercicio de 'periodismo de datos' amateur ;-)
    "

    "Definamos nuestras variables"
    | mapa datos |

    "Los datos será una tabla que guarda tripletas de la forma:
     ' Pais | Cantidad de heridos | Fuente' "
    datos := RTTabTable new.
    datos input: 
        'Colombia 	110 	https://twitter.com/petrogustavo/status/479464213640130560' 
        usingDelimiters: String tab.
    datos convertColumn: 2 to: [ :t | Integer readFrom: t ].

    "Ahora dibujemos nuestros datos en un mapa mundi"
    mapa := RTMetricMap new.
    mapa allCountriesColor: Color white.
    mapa countries: datos values named: #first metric: #second.
    mapa open setLabel: '
            Paises con más de 100 heridos reportados cuando "celebran" 
            que juega su selección'.

Tan pronto se obtuvo ese código coloreado el esquema de colores no era de mi agrado. Para saber qué estilos estaban disponibles ejecuté el siguiente código y probé los resultados hasta que encontré alguno que me gustara.

In [43]:
from pygments.styles import get_all_styles
estilos = list(get_all_styles())
print estilos
['monokai', 'manni', 'rrt', 'perldoc', 'borland', 'colorful', 'default', 'murphy', 'vs', 'trac', 'tango', 'fruity', 'autumn', 'bw', 'emacs', 'vim', 'pastie', 'friendly', 'native']

¿Puede el mismo mapa ser dibujado en IPython? Según este enlace es posible, sin embargo esto requiere la instalación de cartopy, la cual puede ser dispendiosa y no alcancé a resolverla en el tiempo que tuve y nos muestra la ventaja de tener un entorno totalmente integrado, como Pharo/Roassal. En caso de curiosidad, este es el código base en Python (y el error que arroja). La extensión es casi la misma, aunque el código en Smalltalk no sólo es más corto sino mucho más legible a mi juicio.

In [2]:
import matplotlib.pyplot as plt
import cartopy
import cartopy.io.shapereader as shpreader
import cartopy.crs as ccrs

ax = plt.axes(projection=ccrs.PlateCarree())
#ax.add_feature(cartopy.feature.LAND)
ax.add_feature(cartopy.feature.OCEAN)
#ax.add_feature(cartopy.feature.COASTLINE)
#ax.add_feature(cartopy.feature.BORDERS, linestyle='-', alpha=.5)
#ax.add_feature(cartopy.feature.LAKES, alpha=0.95)
#ax.add_feature(cartopy.feature.RIVERS)
ax.set_extent([-150, 60, -25, 60])

shpfilename = shpreader.natural_earth(resolution='110m',
                                      category='cultural',
                                      name='admin_0_countries')
reader = shpreader.Reader(shpfilename)
countries = reader.records()

for country in countries:
    if country.attributes['adm0_a3'] == 'USA':
        ax.add_geometries(country.geometry, ccrs.PlateCarree(),
                          facecolor=(0, 0, 1),
                          label=country.attributes['adm0_a3'])
    else:
        ax.add_geometries(country.geometry, ccrs.PlateCarree(),
                          facecolor=(0, 1, 0),
                          label=country.attributes['adm0_a3'])

plt.show()
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-2b0609bfd57d> in <module>()
      1 import matplotlib.pyplot as plt
----> 2 import cartopy
      3 import cartopy.io.shapereader as shpreader
      4 import cartopy.crs as ccrs
      5 

ImportError: No module named cartopy

Perspectivas y enlaces extra

Acá hay algunos enlaces que no alcancé a mencionar antes y que ayudaron a escribir la publicación:

En cuando a lo venidero, me gustaría trabajar más con Smalltalk/Pharo como entorno de visualización. He estado pensando en algo que por lo pronto tiene el nombre tentativo de [Tweetom] por (tweet + atom) o quizás trinomo en su acepción en español (tríno + átomo) que intentaría visualizar una "unidad de conversación" en esta y otras redes de microblogging desde una metáfora similar a las de los átomos. Ya hablaré de ello.

Pharo by Visualization

In this blog post I will talk about my long path into Pharo/Smalltalk and inmersive programming and how after almost a decade of trying to find my way into it, it seems that finally is happening. That path is not the usual by learning how to program (I'm not a programmer myself), but by learning how to create data narratives using Moose's playgrounds, structuring them in tree/outliners and trying to communicate better with the external world. The tools are almost there, but still there is work to be done. Hopefully I could help with it. To talk about this I will tell a story of how things are falling into place and after that, which is the proper proposal.

Leer más…

Creatón: hackatón para contribuir a la visibilidad, articulación y sostenibilidad de los creadores

Attention!

Las fechas de la hackatón han cambiado y el tiempo se redujo en consideración con el Paro Campesino y la jornada de protesta del 1 de mayo de 2014.

Hemos estado hablando con la gente de Visonte sobre una manera para contribuir a la visibilidad, articulación y sostenibilidad de los creadores. La idea tuvo originalmente el pedido de una tienda de artesanía de autor y responsable, pero luego de una conversación en Manizales, y una conferencia sobre recursos educativos abiertos en la Universidad del Quindio, que ameritann sus propio post, la cosa se extendió más allá de sólo las artesanías y le dimos la forma de un catálogo de creadores y creaciones.

En línea con la idea de artesanía de autor, este catálogo está inspirado en tiendas alternativas como Grand St, que son hechas propiciando una relación de hobistas para hobistas intentando crear una relación más personal entre el creador y su público y una labor de intermediación entre ellos que aporte valor.

Los tres elementos que queremos abordar son:

  • Visibilidad: que las personas conozcan más y mejor a los creadores y sus creaciones.
  • Articulación: Que los creadores tenga la posibilidad de crear en conjunto.
  • Sostenibilidad: Que la creación sea una actividad economicamente viable y ojalá uno de los métodos principales de sustento de los creadores, si esto es lo que ellos quieren.

Para lograr esto pensamos que este sitio en línea debería tener:

Leer más…