tecnología


Hace al menos un par de meses, mientras conversábamos con Filupa acerca de la página web de SINCRO y de posibles mejoras e innovaciones, le sugerí de que tuviese presencia en Twitter. Como Filupa no es muy dado a las redes sociales, me preguntó “¿Y para qué va a estar SINCRO en Twitter?”. Y ahí fue cuando le sugerí que tuviese un bot que realizara tiradas de dados. Buscamos por la web, y no había nada funcional que hiciese lo mismo (sólo por web o por correo electrónico). Definimos nuestros usuarios objetivo: quienes juegan rol por foro, correo, chat o similares y necesitan un notario, o ministro de fe, que realice tiradas de dados en forma neutral. Delineamos un poco los requerimientos y le dimos la partida.

Lo primero fue escoger un lenguaje de programación con el que el programador voluntario (yo) se sintiese cómodo. Eso fue fácil, pues la mayoría de mis proyectos de programación recreativa los hago en java. Luego debíamos encontrar alguna API para Twitter escrita en java (no queríamos reinventar la rueda). Encontramos twitter4j y después de algunos errores de principiantes, teníamos un programa mínimo que lograba conectarse a Twitter con una cuenta de prueba. A eso lo siguió el programa para hacer follow a todos los followers. Y luego el programa que hacía las tiradas de dados.

Ahí fue cuando tuvimos que sentarnos y pensar en la forma en que queríamos que se realizara la interacción entre el usuario final (quien quiere realizar una tirada de dados) y el sistema (que haría la tirada e informaría algo de vuelta). La idea es que para un fin específico, el usuario debiese recordar un set de instrucciones lo más pequeño posible y no un manual de uso de 50 páginas.

La tirada de dados más básica ya tenía una notación ampliamente difundida y aceptada, por lo que fue la primera en ser implementada. Tirar X dados de Y caras, o XdY en notación estándar. Luego vino la composición de tiradas, los bonos, los malus, y varios otros tipos de tiradas asociados a diversos sistemas de juego: World of Darkness, New World of Darkness, Roll and Keep, Fudge, One Roll Engine y algunas otras menos ortodoxas como clima y rumbo.

Hasta el momento, el servicio operaba en modo de prueba, con una cuenta de prueba, en computadores de escritorio o notebooks. Si deseábamos que estuviese en producción necesitaríamos encontrar un lugar dedicado para poder albergar el servicio. Cotizamos algunos servicios de hosting, pero finalmente, gracias a donación de espacio, energía y conectividad, y al préstamo de un Asus Eee PC, no fue necesario desembolsar dinero alguno.

Ha sido un proceso entretenido, gratificante, en el que el trabajo de equipo con Filupa y el esfuerzo invertido, permitieron que el proyecto diese los frutos esperados y llegase a buen término, el servicio operando en Twitter, bajo la cuenta @dadinci.

Anímese y mándele un mensaje a @dadinci, la página de ayuda es esta.

Advertisements

Desde que me incorporé al mundo laboral, hace unos 12 años, siempre nos hemos visto enfrentados al mismo problema. Llega la hora de almuerzo y nos empezamos a mirar las caras, proponer lugares, descartar otros tantos, tolerar a los mañosos, mirar por la ventana para ver si está lloviendo, todo esto para finalmente poder salir a almorzar.

Muchas veces el tomar la decisión fue un proceso bastante complejo, más aún si la cantidad de comensales era mayor a cuatro. Y otras muchas veces, el destino fue cambiado durante la caminata al lugar original, o bien al comprobar que no quedaban mesas disponibles.

Para resolver este problema, primero en modo de broma y luego más en serio, junto a los compañeros de trabajo actuales ideamos un algoritmo para decidir donde almorzábamos:

Algoritmo de Almuerzo

Algoritmo de Almuerzo

Por un par de semanas funcionó sin problemas. Incluso algunas veces servía para poder oponerse a la opción predeterminada. Pero luego nos dimos cuenta que la selección diaria empezaba a volverse rutinaria y que, de no haber lluvia, nuestro universo de locales de almuerzo se reducía a 6 (5 de Lunes a Viernes y uno más a fin de mes).

Esto planteó el desafío de un nuevo algoritmo, que permitiese tener más variedad de lugares. Luego se agregó como requerimiento que se pudiese poner una nota a cada lugar y que se llevara registro de la cantidad de veces que habíamos asistido a cada uno.

El modelo preliminar resultante fue bastante más complejo que el anterior. Dependiendo del puntaje de cada lugar, se llenaban lugares en una suerte de ruleta, la cual luego era revuelta. Aleatoriamente se elegía uno de los lugares de la ruleta y se procedía a lanzar la moneda.

El lanzamiento de moneda fue un detalle algo sádico que permitió incorporar el número de visitas en el algoritmo. Por cada visita que hubiésemos hecho al lugar preseleccionado, se lanzaba una moneda. Si salía cara, se volvía a lanzar. Si salía sello, se descartaba el lugar preseleccionado y se volvía a la ruleta. Luego, si un lugar había sido visitado 5 veces, debían salir 5 caras seguidas para que pasara de preseleccionado a seleccionado. Claramente si un lugar no había sido visitado nunca y era preseleccionado, automáticamente pasaba a seleccionado.

Luego, dado que se usa la nota de cada lugar para determinar la cantidad de veces que se repite en la ruleta, la probabilidad de preseleccionar un lugar es:

Probabilidad de Preselección

Probabilidad de Preselección

Y la probabilidad de selección de un preseleccionado es:

Probabilidad de Selección

Probabilidad de Selección

De esta forma, en general se privilegian los lugares mejor evaluados, pero evita que salga siempre el mismo al que vamos siempre, con lo que debería quedar un poco más parejo.

Comentarios, críticas, observaciones, oportunidades de mejora, todos son bien recibidos.

Para comenzar, debo decir que mis expectativas eran altas. El tema ya no es tan nuevo, hay mucho trabajo realizado en Internet, libros escritos, herramientas y gente que se ha adentrado en la materia. Desgraciadamente mis altas expectativas no fueron del todo satisfechas, creo que había más revuelo que contenido. Pero desde la perspectiva de que era necesario que existiese algún referente local, está bien. Es un buen punto de partida, porque permitió, entre otras cosas, tomarle el peso al arrastre que tiene el tema, a la necesidad de saber que tienen muchos, y a tener una pequeña vitrina donde poder aspirar a mostrar sus trabajos.

Hilando más fino, creo que la organización en general estuvo bien. El punto negro fue la falla de la videoconferencia con Sheila Pontis, quien se notó que tenía la mejor disposición del mundo, y por lo mismo duele más que las fallas técnicas locales (previsibles) frustraran su participación. El coffee break de 45 minutos para tratar de corregir el problemano fue suficiente. Y tener problemas de ancho de banda, cuando estás en la casa matriz de Movistar, se ve peor.

Me quedo con la sensación de que mucha de la gente que fue al evento esperaba que le dijeran el como hacer visualización de datos. Si esa era su expectativa, creo que se quedaron con las ganas.

Curiosamente, cuando vi el programa, pensé que la charla que menos me interesaría sería la de Paulo Saavedra, pues hablaría de los esfuerzos del gobierno para estandarizar la web de servicios. Y finalmente, sin sentir que directamente fuese sobre visualización de datos/información, fue la charla que más disfruté. Entre su capacidad de entregar su charla en forma amena y presentar un desarrollo de un tema en forma coherente, y con resultados concretos, fue el que más brilló.

Respecto de los otros charlistas, Christián Oyarzún pudo haber mostrado su proyecto Fault en 5 minutos y haberse retirado. En cambio, tuvimos que soportar su volada y en los últimos 5 minutos presentó Fault. Rodrigo Duarte le puso empeño, pero sentí que estaba mostrando un proyecto comercial y que respondió desde esa perspectiva las preguntas que buscaban a un evangelista de la visualización de datos.

Destacaron algunos integrantes del público que hacían preguntas de 3 minutos, donde los primeros 2 minutos y medio eran autoreferencia y el remanente era una pregunta casi retórica.

Dignos de destacar en la mesa redonda fueron Herbert Spencer, que nos trajo el fuego de Fry, y Mario Saavedra que habló desde la experiencia concreta y con mucha sensatez (y con un par de zapatillas con personalidad propia).

Espero ansioso la próxima iteración de Big Bang Data porque sé que será mejor. Era necesario tener una primera instancia para poder empezar a iterar y mejorar. Se ha cumplido con ser la primera instancia, esperamos que de ahora en adelante todo mejore.

#BigBangData #bbd10

Es normal para mí, pasar por ciertos períodos en que siento la inquietud de crear, de inventar. Y dependiendo del problema o situación que tenga a mano será el destino que tenga dicha energía creadora.

En algunos casos me ha servido en lo laboral, pues me ha permitido entregar una solución novedosa o entregar un aporte inesperado. En esos casos los llamo “pet projects”, porque son eso, una suerte de proyecto mascota, el que con algo de suerte y bastante esfuerzo, se puede convertir en algo de utilidad práctica. Recuerdo con especial cariño varios programas y una intranet que levanté en Entel, los que les hicieron más sencillo el trabajo a los usuarios.

En este momento estoy pasando por una de esos períodos creativos, y he decidido atacar un área relativamente nueva, la Visualización de Datos. Porque no da lo mismo mirar una tabla de varios cientos de filas de datos, que una infografía o diagrama que a primer golpe de vista te transmite mucho más que solo los datos. Dado que el campo de la Visualización de Datos es muy amplio, decidí comenzar por la automatización en la generación de diagramas de anillo y luego ver a donde me lleva la inspiración, la necesidad y el efecto serendipity.

El valor agregado fue el de elegir un formato astuto para generar los diagramas, de modo que si necesitasen retoques, no fuese una pesadilla y requiriese usar Photoshop. Por esas razones elegí el formato SVG, el cual esencialmente es texto. Con más detalle es un XML. Desde ese punto de vista, con cualquier editor de texto se puede modificar un SVG, pero si se quiere editar en forma gráfica, sé de al menos de un programa gratuito, Inkscape (licencia GNU GPL), por lo que me quedo tranquilo con lo de portabilidad y openness.

Les dejo los primeros diagramas generados por el programa que desarrollé (bash y awk). Como observación al margen, convertí los archivos de SVG a PNG solo para poder publicarlos, pues WordPress no permite archivos gráficos de formato SVG. Lo triste es que el tamaño del archivo aumenta en un factor de 10 (o más).

1. Aporte Fiscal del Presupuesto 2009 de Chile (fuente)

Aporte Fiscal Presupuesto Chile 2009

Aporte Fiscal Presupuesto Chile 2009

2. Votantes Inscritos por Región a Septiembre del 2009 (fuente)

Votantes Inscritos por Región a Septiembre del 2009

Votantes Inscritos por Región a Septiembre del 2009

3. Composición del Senado Chile 1990 – 2010

Composición del Senado Chile 1990 - 2010

Composición del Senado Chile 1990 - 2010

Personalmente me queda más clara la evolución de cada partido de esta forma que de la forma utilizada por emol.

En la medida que vaya fabricando nuevos programas para nuevas visualizaciones los iré agregando aquí. Espero sus comentarios.

    2010 Google integra imágenes metereológicas a Maps
    2011 Google Latitude se integra a los GPS de los automóviles
    2012 Google incorpora imágenes de cámaras de video públicas a Maps, refrescando Google Street View
    2013 Google habilita Checkout para poder realizar pagos presenciales, no sólo en línea
    2014 Google ofrece cámaras de seguridad a bajo precio a cambio de usarlas para alimentar Google Street View
    2015 Google Checkout puede ser usado en reemplazo de las tarjetas de crédito convencionales
    2016 Google crea Cyborg, un notebook ultraligero sin disco que inicia desde la nube y almacena todo en la nube.
    2017 Google ofrece WiFi gratis en las principales ciudades del mundo, solo debes autenticarte con tu cuenta
    2018 Google crea la primera inteligencia artificial en la nube
    2019 Google compra fabricantes de equipos de red y proveedores de enlaces para asegurar su crecimiento
    2020 Google crea el microchip “G” para poder embeber acceso a la nube a cualquier dispositivo en el hogar
    2021 Google compra las redes de satélites de telefonía satelital y los reutiliza para potenciar Maps

    2022 Google lo sabe todo, controla todo, y no puedes hacer nada para detenerlo. Y es gratis. Y es beta.

      ¿Quieres vender poleras, tazones, chapitas y similares por Internet? ¿Pero no tienes dinero? ¿No sabes nada de comercio electrónico? ¿Los términos hosting, housing, hacking, gestión, costos, materias primas y similares te dan jaqueca? ¡No te preocupes! Existen sitios que están dispuestos a vender tus ideas. Diseña un logo para una polera, un mensaje chistoso para un tazón o incluso aquella novela que siempre quisiste publicar y estás listo para empezar a vender.

      En mi caso particular, descubrí a Café Press, sitio que ofrece todo lo que indico y algunas otras cosas más. Cualquiera de los productos que puedes vender tiene un precio base con el que cubren sus gastos de materiales, operación y les genera algún tipo de utilidad. Lo que tú decidas cobrar sobre ese precio base, es ganancia para tí.

      Para probarlo me tomó cosa de unos 30 minutos el generar estos tres productos que vivían solo en mi imaginación, y que ahora vendo en mi tienda.

      Simplemente rol Yo juego rol

      Hoy revisé las estadísticas de Google Analytics acerca de mi blog literario (Sacar a 100) y por primera vez registro visitas desde los 5 continentes:

      Desglose

      5 continentes

      Next Page »