Imagínese lo siguiente: Son las 8 AM, tiene la mente fresca después de una noche bien dormida, tiene todas las energías para empezar este nuevo proyecto que tiene entre sus manos, pero primero necesita entender los datos con los que va a estar trabajando. Quizás son las respuestas de una encuesta, una mezcla de datos numéricos y respuestas en prosa… una larga prosa.
Pero el destino tiene otro plan para usted y es que su tabla explota con los datos que tiene, y se encuentra con una muralla de texto frente a sus ojos. Su plan de trabajar inmediatamente se arruinó. Ahora, para poder hacer su trabajo, que es entender estos datos, primero tiene que tener una batalla campal con el Software que tiene al frente.

Creo que tal vez exageré con batalla campal, porque la realidad es otra, es una labor sisifesca. ¿Por qué? se preguntará. Bueno, pues porque usted está abriendo un archivo csv, y su Software favorito toma ese archivo y se lo muestra sin formato, quizás para castigarlo y para llevarlo de vuelta a un formato propietario como xlsx o numbers. Abrir ese archivo sin formato, con murallas de texto, sin encabezados persistentes, e incluso con letra fea, es una decisión de producto: usted está haciendo algo que los ejecutivos de Microsoft, de Apple o de Google no encuentran que sea correcto.
Luego, usted naturalmente empieza a usar un formato propietario de ellos, le agrega formato a su tabla, le agrega colores, congela la fila del encabezado, y recién a las 8:30 AM puede usted realmente sumergirse en sus datos. Lamentablemente el sistema que le genera el reporte se los entrega como csv cada vez. Así que como buen Sísifo, usted reformatea sus datos cada vez que genera un nuevo reporte.
Tabula Rasa evita todo eso, y va más allá. Abre csvs y les agrega un formato amigable por defecto para que pueda inmediatamente ponerse a trabajar. Si no le gusta el formato, lo cambia, y el Software va a acordarse la próxima vez que abra el archivo. En este artículo vamos a ver un par de ejemplos de cómo Tabula Rasa lo acompaña en su viaje por los datos.
Los defectos que desaparecen1
Tabula Rasa intenta ayudarlo cuando usted trabaja con los datos, y particularmente, busca que sus datos estén ahí. El valor de un dato se encuentra en su contexto, y Tabula Rasa hace lo posible para poder entregarle ese contexto al usuario: buscamos encontrar un sano equilibrio entre cuántos datos y cuánto contexto queremos mostrarle al usuario.
Es por lo anterior, que buscamos que los valores por defecto de la aplicación desaparezcan, que el usuario no se dé cuenta por qué funciona Tabula Rasa, pero que por alguna razón siempre es fácil usarla. Un problema difícil de resolver es que nadie es “monedita de oro”2, pero nuestro amigo Pareto viene en nuestra ayuda, el objetivo es que el ~80% de los usuarios se sientan cómodos con los valores por defecto, pero, y quizás mas fundamentalmente, que el otro ~20% pueda modificar la interfaz a su gusto, de forma flexible e intuitiva.
Fundamentalmente, el problema al que nos enfrentamos es que los datos son muy diversos (por eso somos austeros y solo buscamos acomodar al ~80%), y por lo mismo, no buscamos adaptar los datos a Tabula Rasa, si no que Tabula Rasa se adapte a los datos. Y en general tenemos tres perillas para lograr esto: Truncaciones, Ancho de Columna y Alto de Fila. Con esas tres perillas tenemos una libertad enorme para acomodar los datos y que nunca pierdan su contexto.
Truncaciones
Las truncaciones fueron las más simples de modelar.
Podríamos decir que en una tabla se manejan dos tipos de datos: textos y números, y estos deben ser truncados de forma diferente. Si usted ve "832...", ¿Qué puede concluir de ese número? Prácticamente nada, no sabe si es 832.3, 832000, 832 trillones, o un infinito etc. Pero por otra parte si usted ve "Tabula Rasa es..." inmediatamente sabe que la frase termina "...El mejor Software de visualización de datos que existe."… Ok tal vez no lo piense, pero claramente la cantidad de contexto que se pierde al truncar un texto es diferente al truncar un número, más aún, yo argumento que un número truncado es inútil, mientras que un texto truncado no lo es. Por lo mismo, Tabula Rasa nunca trunca un número, solo lo aproxima, le muestra ~8320 en vez de truncarlo, y cuando no puede mostrarle una aproximación gruesa, le muestra un ###.
En el ejemplo anterior se observa cómo Tabula Rasa hace una degradación elegante de cómo muestra los números cuando falta espacio. Primero intenta compactarlo visualmente, después lo aproxima, y finalmente, la aplicación lo oculta. Lo importante es que en ningún momento hay ambigüedad de qué es lo que representa el número. En el último caso, cuando el número está oculto, siempre se puede hacer pasar el mouse encima y esperar a que el tooltip haga lo suyo.
Ancho y Alto de celda
Querido lector, si usted piensa que nos vamos a meter en todo el entramado de algoritmos para calcular el Ancho y Alto de celda que usa Tabula Rasa, le tengo una buena y una mala noticia. La mala noticia es que eso no lo veremos hoy. La buena noticia es que podrá leerlo en un post futuro.
En una tabla, y en mi experiencia, el valor de un dato está en su contexto, y por lo mismo, Tabula Rasa va a luchar si es necesario hasta con los mismos datos para lograr mostrarlos en su contexto. De ahí, que dediqué una gran cantidad de energía al algoritmo de cálculo de Ancho y Alto de celda que permitiese acomodar una gran cantidad de datos sin perder su contexto, y en consecuencia que sean útiles, no una muralla de texto deforme. Mire las siguientes imágenes, haga click, y vea la diferencia:
En la imagen anterior usted puede ver este csv, desplegado en Tabula Rasa y LibreOffice, tal y como se ve al abrir las respectivas aplicaciones. ¿Necesita más argumentos para cambiarse? No se preocupe, se los daré. Note que la tabla la generé automáticamente con una LLM, con un par de instrucciones completamente plausibles: que el largo de las respuestas fuese heterogéneo (algunas largas, otras cortas).
Mi idea no es hablar mal de LibreOffice, un Software Open Source, que ha hecho bastante por la comunidad, pero creo que la comparación muestra la fortaleza de Tabula Rasa inmediatamente: los datos se pueden ver, la densidad de información es superior, y no hay murallas de texto.
Para lograr lo anterior, el algoritmo usa algunas heurísticas muy útiles
- Los anchos de columna dependen de lo que contienen
- Ninguna Columna puede ser más ancha que cierto porcentaje de la pantalla.
- Las columnas negocian su ancho con las otras columnas. Si hay espacio disponible, una columna puede ser más ancha que lo normal
- La relación entre ancho y alto no puede superar cierto umbral.
Con esas 4 heurísticas, usted puede observar lo eficiente de la representación de los datos en la tabla.
Con la primera heurística el Software se asegura que una columna dé el ancho suficiente para mostrar los datos, si los anchos de columna dependen de lo que contienen, nunca le damos espacio extra a una columna, en caso contrario, si la columna tiene datos angostos, entonces va a ocupar poco espacio. La heurística 2 asegura algo así como lo contrario a la heurística 1, pues si el texto es muy largo, no queremos que se coma toda la pantalla. La heurística 3 agrega un factor muy importante, pues puede ocurrir (y ocurre) que la tabla consista de muchas columnas delgadas, y una columna muy ancha, y ahí no tiene sentido limitar el ancho de una columna grande si aún queda espacio.
La heurística número 4 vamos a discutirla con más detalle en el post del algoritmo, pues no tiene que ver con los valores por defecto, es decir, el cálculo que hace la aplicación al abrir un archivo, si no que tiene que ver con cómo la aplicación calcula la relación alto/ancho cuando el usuario hace click en ajustar a los datos, pero le puedo adelantar que busca evitar que una celda consuma mucho espacio vertical si los datos que tiene son muy largos.
Lo que nos trae de vuelta a la truncación de datos. Por defecto, si los datos no caben en un alto de 3 (equivalente a 3 filas de alto 1), entonces se trunca el texto, como se puede observar en la siguiente figura
Tabula Rasa tiene decenas de otros valores por defecto que desaparecen, o de comportamientos que se adelantan a su intencionalidad (tooltips con histéresis, absorción de valores NULLs, o un “Word Wrap” inteligente). No los vamos a explorar todos, pues me imagino que usted terminará aburriéndose, pero una vez más lo invito a visitar tabularasa.cl, descargar la aplicación y maravillarse con los defectos que desaparecen.