Sunday, June 3, 2012

Un año después de la campaña de Kickstarter

Ha pasado ya un año desde la campaña de Minibloq en Kickstarter. Así que este es un buen momento para hablar del estado del proyecto y especialmente, de los planes para el futuro.
Mayo ha sido un mes de mucha actividad para el proyecto (¡hicimos 12 posts en un sólo mes!). Liberamos la versión v0.81.Beta el 1ero de Mayo, y a lo largo del mes actualizamos toda la documentación online. Además, dimos charlas, hicimos demostraciones y cerramos nuevos acuerdos con fabricantes. Ahora, estamos trabajando pricipalmente en 6 cosas:
  1. Versión nativa para Linux (la cual ya funciona, pero tiene aún agún algunos problemas). ¡Gracias Juan! 
  2. Traducciones (junto con la ayuda de gente que está ayudando muy amablemente).
  3. Más documentación, incluyendo un nuevo manual en inglés apto para impresión (tanto en formato PDF como en ODT -LibreOffice-), más actividades listas para usar, y nuevas guías para Desarrolladores, anticipándonos a la próxima liberación de todo el código fuente de Minibloq (estamos también preparando una sorpresa antes de liberar los fuentes).
  4. Nuevos acuerdos con fabricantes, especialmente de Estados Unidos y de China. Queremos que  Minibloq funcione con todo el hardware que sea posible (si eres un fabricante, puedes enviarnos una solicitud a través de este hilo del foro. Hay un proceso, ¡pero nos encantaría agregar tu hardware!).
  5. Un nuevo sitio web (para reemplazar este blog, que es ahora pequeño para el tipo de proyecto en el que se ha convertido Minibloq).
  6. La nueva versión v0.82.
Hoja de ruta del proyecto
Como muchos de ustedes probablemente ya saben, hemos estado trabajando mucho en las partes estructurales de Minibloq.Y aún quedan por terminar muchas cosas importantes (como el subsistema multihardware, por ejemplo). Pero hay también un montón de cosas que mejorar para las próximas versiones. La actual interfaz de usuario de Minibloq es una mezcla entre lo que quisiéramos tener y lo que hemos podido implementar con el tiempo disponible. Sabemos que hay muchas cosas que mejorar, cambiar y corregir. Pero lo más importante es que tanto el proyecto en sí como la comunidad están muy activos. Así que a continuación enumeramos algunas de las características en las que estamos trabajando:
  • Una manera sencilla para agregar hardware de terceros. Estamos diseñando un motor muy flexible para esto. Va a tomar tiempo, pero es posible que para la próxima v0.82 ya haya una versión reducida de esto.
  • Mejor manejo de tipos de datos. Estaremos agregando soporte para los tipos de datos básicos. En el futuro queremos además que los usuarios puedan definir sus propios tipos de datos, como en cualquier lenguaje de alto nivel. 
  • Bloques definitidos por los usuarios. Esto es complejo, pero estamos trabajando en ello.
  • Mejoras de la interfaz gráfica de usuario (GUI): Hay también sugerencias de los usuarios. Vamos a intentar mejorar la experiencia del usuario tanto como sea posible.
  • ¡Traducciones a todos los lenguajes que se pueda! (necesitamos ayuda con esto, y muy muy pronto vamos a publicar un compelto tutorial acerca de cómo traducir Minibloq utilizando herramientas de código abierto).
  • ¡Más bloques! Estamos preparando algunos bloques muy interesantes para la próxima versión...
  • Acuerdos con fabricantes de hardware abierto compatible con Arduino.
  • Optimizaciones: Es tiempo de hacer que Minibloq ejecute más rápido y ocupe menos espacio.
  • Código fuente: Hemos enviado el código fuente a prácticamente todos los que lo solicitaron. Liberar los fuentes implica realmente mucho trabajo, y queremos hacer esto muy muy pronto. De todos modos, si quieres el código fuente, puedes enviarme un mensaje privado a través del foro o puedes hacerme una @ mención en Twitter.
  • ¡Se vienen también algunas características sorpresa!
Estado del proyecto
Dicho todo lo anterior acerca del futuro, hablemos un poquito del presente, y del pasado. ¿Cómo ha evolucionado Minibloq durante este primer año?

Hardware
Cuando lanzamos la campaña de Kickstarter, el 1ero de mayo de 2011, había sólo unas pocas placas Arduino-compatibles soportadas. Ahora hay una buena cantidad de placas diferentes, desde "Arduinos estándar" (como el Uno, el Mega o el Duemilanove) hasta placas de 32 bits basadas en procesadores ARM, como el Maple, pasando por los pequeños ATTinys de 8 pines y los nuevos DuinoBots HID fabricadas por RobotGroup (puedes ver la imagen más arriba). Y hay más: hay también placas soportadas indirectamente, como el Arduino™ Diecimila, el Nano, y otros (puedes ver la sección "Supported hardware" en la documentación online). Pero aún más importante es el hecho de que hemos estado ocupados cerrando acuerdos con fabricantes de hardware. Así que esperamos tener una buena cantidad de nuevas placas y sensores soportados en la próxima versión, como la mayoría de los sensores y accesorios de la línea Grove de Seeedstudio, o el controlador Romeo de DFRobots:
También con respecto al hardware, estamos felices con la adición de bloques para nuevos sensores complejos, con la ayuda de desarrolladores que contribuyeron con librerías de linealización, filtros, y otros.  La actual versión de Minibloq tiene bloques listos para usar (y además fáciles de utilizar) para receptores infrarrojos de control remoto RC5, sensores ultrasónicos, sensores de distancia infrarrojos estándar (tanto en versiones de 80 como de 150 cm) y además puede manejar muchísimos sensors analógicos con el bloque AnalogRead. También hay un nuevo bloque PulseIn para leer sensores que devuelven señales del tipo PWM. ¡Y como un secreto podemos contar que estamos trabajando en sensores I2C/TWI para la próxima versión!

Documentación
La documentación para el usuario final requiere mucho trabajo. Y estamos intentando realizarlo. Minibloq es en este momento quizá uno de los entornos de programación gráfica para hardware abierto mejor documentados. A lo largo de este año hemos terminado la documentación online (en inglés), el manual apto para imprimir en PDF/ODT en español (¡pronto lo tendremos también en inglés!), y una pequeña página con ejemplos completos, incluyendo diagramas de circuitos en Fritzing y videos. Además hemos puesto en línea el foro. Pero quizá lo más importante de todo es que hubo usuarios que contribuyeron escribendo sus propios manuales y ejemplos. Quiero mencionar algunos de ellos aquí:
¡Gracias, de nuevo!
Finalmente, quiero decir gracias a muchas personas que se han involucrado en el proyecto de diferentes formas , y a los backers de Kickstarter, por supuesto.