20 cosas que aprendí sobre la web (según Google)
El equipo de Google Chrome acaba de publicar 20 Things I Learned About Browsers and the Web, un recuento de la historia de la web y tecnologías relacionadas en formato de cuento para niños. Además de ser interesante y bonito, hace uso de los más recientes avances (siendo “reciente” los últimos cinco años en algunos casos) en técnicas y tecnologías web.
Lo que más me gusta es la comparación que hace con un juego de ping-pong (por obvias razones).
Vale la pena darle una leída.
(vía tputh)
Aventuras con Bancolombia: Episodio II La Guerra de los Navegadores
Ya anteriormente me había quejado de la Sucursal Virtual Empresas de Bancolombia. Sin embargo me parece buena idea seguir chuzando al burro, de pronto solo porque así podré calmar el estrés que me produce usar semejante porquería de servicio.
Si algún empleado de Bancolombia con capacidad (y ganas) puede arreglar este “problemilla” le agradecería enormemente (no solo porque estoy pagando por ese servicio). Este problema se puede reproducir en MacOS en cualquier navegador (probé en Firefox 3.6.12, Safari 5.0.2 y Chrome 7.0.517.44):
Si quiero transferir a otra cuenta, en este caso a un proveedor, debo usar esta interfaz (primeros campos completados ya):
Necesito asignar una fecha para la transferencia así que hago clic en el botón ese que parece un calendario. Aparece el diálogo de selección de fecha:
Selecciono hoy 7 de Noviembre de 2010. El diálogo de fecha se cierra y llena el campo “Fecha aplicación (dd/mm/aaaa)”:
Todo parece estar bien así que hago clic en “Continuar” y sucede esto:
¿Cómo así que “La fecha no puede estar antes de la presente“? Pues si se fija, el campo de fecha ahora tiene un cero menos y dice “07/11/201″. ¡Quien hizo el Javascript de alguna forma está modificando/validando la fecha y en el proceso elimina el último caracter del campo! Adivine: esta interfaz solo funciona bien en Internet Explorer para Windows. Obviamente para quien lo hizo el 55% de los navegadores no son importantes. Y no, si cambio manualmente la fecha tampoco funciona.
The Thought Factory
I was invited by my colleagues Hernando Barragán and Annelie Franke to collaborate with the Thought Factory, a project that started in their Design Studio 6 course for the second semester 2009. The project was commisioned by the XII Iberoamerican Theatre Festival in Bogotá, one of the most important festivals of its type in the world. The idea was to create a collaborative work that would allow people to interact with the festival.
With this in mind, the Thought Factory was created and its main purpose was to save and classify the thoughts of festival visitors. Thoughts are abstract and intangible notions (we can’t read minds… yet). The Factory was made to make those thoughts somewhat tangible, “saving” them in bottles that can later be opened and their contents made visible as the genius in the lamp.
Each bottle represents an inquiry made by festival organizers. Every hour and a half a new bottle is placed in the filling station:

A bottle being filled
From that moment, and during the next ninety minutes, that bottle will be filled with thoughts from people who type them in the input stations:

Thought input machine
Thoughts can also be sent as an SMS message via mobile phone.
Since the Festival as for all ages it was necessary to curate these thoughts (basically removing obscene ones… let’s be honest, there’s plenty of obscenities in our thoughts :P).

Curating machine
Once approved, the message enters the bottle in the filling station:
When removed from the filling station, the bottle is labelled and placed with the rest of the full bottles so its thoughts can be read in the viewing station.
At the end of the Festival (in april 4, 2010) there will be sixty bottles full of thoughts that can be read in the project website.
My main tasks were developing the visual interfaces (thought input, thought curating, filling station, bottle visualization), the database that manages thoughts and inquiries and all communication happening between these and the bottles. SMS message service was kindly provided by Contacto SMS.
If you are curious about the tech side of the project: interfaces are made with Adobe Flash which communicate with a MySQL database via PHP and AMFPHP. Filling and viewing stations communicate with the bottles via Wiring using sockets and an RFID tag. ActionScript programming was made in FDT.
La Fábrica de Pensamientos
Fui invitado por mis colegas Hernando Barragán y Annelie Franke a participar en la Fábrica de Pensamientos, un proyecto que se deprendió de su curso Estudio 6 del segundo semestre de 2009. El proyecto fue comisionado por el XII Festival Iberoamericano de Teatro de Bogotá, uno de los festivales de este tipo más importantes del mundo. La idea era hacer una obra colaborativa que permitiera a la gente interactuar con el festival.
A partir de esa premisa, se realizó la Fábrica de Pensamientos cuya idea principal es guardar y clasificar los pensamientos de los visitantes al festival. Los pensamientos son nociones abstractas e intangibles (aún no podemos leer la mente). Con la Fábrica se busca hacer esos pensamientos tangibles de alguna forma, “guardándolos” en botellas que luego pueden ser abiertas y su contenido se hace visible como el genio de la lámpara.
Cada botella representa una inquietud planteada por el festival. Cada hora y media se pone una nueva botella en la base de llenado:

Una botella en proceso de ser llenada
A partir de ese momento, y durante los siguientes noventa minutos, se llenará esa botella con los pensamientos que la gente escribe en las máquinas de entrada:

Máquina de entrada de pensamiento
Pensamientos también pueden entrar en la botella vía mensaje de texto de teléfono celular.
Dado que el Festival es un evento para toda la familia es necesario hacer una curaduría de los pensamientos (básicamente prevenir el ingreso de obscenidades… seamos honestos, hay mucho pensamiento obsceno sucediendo en nuestras cabezas :P ).

Máquina de curaduría
Una vez aprobado, el mensaje entra a la botella que se encuentra en la base de llenado:
Cuando se retira la botella de la base, se etiqueta y se guarda para luego ser consultada por los visitantes en cualquier momento en la estación de visualización.
Al finalizar el Festival en abril 4 de 2010 habrá sesenta botellas llenas de pensamientos que podrán ser visualizadas en el sitio web del proyecto.
Mi labor principal fue desarrollar la parte visual (interfaz de entrada de pensamientos, interfaz de moderación, interfaz de llenado, interfaz de visualización, sitio web), la base de datos que soporta el sistema de pensamientos e inquietudes y toda la comunicación que sucede entre estas y las botellas. El sistema de mensajes de texto fue amablemente provisto por Contacto SMS.
Si tiene curiosidad de saber qué tecnologías están involucradas: las interfases están hechas en Adobe Flash y se comunican con la base de datos MySQL usando PHP y AMFPHP. Las interfases de llenado y visualización de botellas se comunican vía sockets con Wiring usando un tag RFID.
The videogame history timeline
This is an english translation of a previous post. I believe english readers could be interested in this project.
For a long time I have wanted to do a videogame history timeline. It would combine several of my interests: information visualization, history, time and, of course, videogames. Currently I have a class on videogame history (class blog in spanish) as a lecturer in the Design Department at the Universidad de los Andes and such a timeline would be useful (and neat).
I had the opportunity of creating a history timeline for a client and decided to use that code as the starting point for my timeline. This is why I can now present (drumroll):
The videogame history timeline
The URL is: http://www.mauriciogiraldo.com/vgline/beta/
The timeline showcases eight types of events:
- people (birthdates) of relevance: game designers and developers, scientists, artists, entrepreneurs.
- business: companies or important business events.
- consoles (or hardware such as PCs) where videogames are executed.
- games
- accessories and controls: peripherals that are connected to consoles.
- technologies of importance.
- cultural: events that have somehow influenced the world of videogames (books, movies, ideas or theories, etc.).
- other events that contextualize what was happening worldwide when the other types of events happened.
Every event can be related to other events in three ways:
- creation (event A created event B): mostly used to relate a person with the games he/she created
- inspiration (event A was inspired or is “plainly” related to event B)
- series (event A precedes event B): for “sequences” of events (eg.: the “Mario” series by Nintendo are assumed to be sequential editions even though they were developed for different consoles)
Presenting this information clearly to the user is rather complicated. Not to say that I am finished with the interface. It still needs work and I want to explore more possibilities.
You need to press SPACEBAR in order to see the relationships between events:
Given that you see a lot of relations between events in the default display mode (and even more events are missing from the timeline) I decided to allow the user to turn on/off event types and relation types. This way, if I turn off all events except people and games, I can see the screen with less “noise”:
It’s difficult (maybe even impossible) to plot all events and relations while completely avoiding superposed lines (or maybe I need to investigate a little more). However, I believe that the current solution is easy to understand once you have played with it for a few minutes (I didn’t set out to create a conventional interface; I wanted to experiment a little).
This is what I see if I turn on series and games:
You can see that Doom II goes after Doom and that there is another later game in the series. Riven goes after Myst, etc.
Search
Users are lazy (okay, all but you) and if they don’t find what they are looking for in a few seconds they will go somewhere else. Also, in large sets of information (even though the timeline currently has only a few hundred events) it is difficult to predict how a user expects to find some particular data point. This is why the timeline has a search box:
Viva la open source!
In my web developing years I have benefitted from a large amount of open source libraries/programs/content and, every time I can, I try to give something back. In this case I have created a Google Code project so, whoever knows ActionScript 3 and Flash, can take a look and see what benefits he/she can find there (I don’t plan on supporting this code, use under your own risk).
Things to do
The timeline is far from finished. Among the things I want to do:
- content in spanish: I am using this timeline in my Videogame history class and I want the content to be fully translated
- complete content: a lot of information is missing or incomplete
- experiment: this basic information setup can be explored in many different ways
- share: there is an RSS feed with the whole content so anyone can use it to visualize it (an API would be more elegant) although my current server is a little unsteady at the moment
Technical stuff (and other)
Several people have collaborated, inputting data or with their opinion. Among them: Nicolás Arteaga, Vanessa Gómez, Andrea D’Macedo, Manuel Piñeros, Sebastián Ramírez, Rafael Tudela y Cárlos López. If you want to collaborate or if you find any innaccuracies, please contact me.
If you want to know what powers the timeline: content is fed via Drupal (which works on top of PHP, MySQL and Apache) to which I connect from Flash using AMFPHP (Drupal has a module for AMFPHP which I had to modify a bit). This has the benefit of automagically generating a plain text version of the content. The server is a little bit slow (the whole database is loaded in the first request… that’s why you see the quiz). Any performance ideas are welcome. Keep in mind it is a shared hosting environment.
This project has been supported by Powerflasher, the people behind FDT (the cool software I use to write all the ActionScript you see in Google Code).









