Chatbots – Nuestra gata ahora habla

Si habéis usado Telegram quizás habréis oído hablar de los Chatbots: son usuarios ficticios a los que puedes indicarles una serie de parámetros o acciones para obtener una respuesta. Por ejemplo, personalmente un bot que uso todos los días es el del tiempo, cada mañana me manda un mensaje a una hora concreta informándome si va a llover hoy y la temperatura que va a hacer.

Podemos decir que un chatbot es un Siri pero por escrito y que se puede programar para que te de los resultados que tú quieras, esto abre la posibilidad de poder hacer cosas realmente chulas.

En Sopinet Software hemos desarrollado un bot en Telegram: @SopinetAzurBot, (Azur es el nombre de nuestra gata) que nos ayuda con el trabajo y que ahora mismo tiene estas funcionalidades:

  • Nos notifica las llamadas entrantes en la oficina y genera el contacto en Redmine.
  • Informa quien está en la oficina.
  • Nos avisa sobre los tickets de mantenimiento que hay sin atender.
  • Nos permite saber a quien le toca poner el desayuno
  • Nos informa cuando un compañero nos asigna una tarea en Redmine.
  • Y varias frikadas nuestras 😉

Dejo un par de capturas de pantalla para que me creáis de que esto realmente mola.

Varias frikadas nuestras

Comando desayuno (ese dia me tocaba a mi 🙁 ) y enlaoficina

Azur recordando que hay tickets abiertos

¿Que opinas sobre los chatbot? ¿Tienes ganas de hacer uno?

Leer Más

Trazeo (II): Algo más que ir caminando al colegio.

¿De qué iba todo esto?

Trazeo es un proyecto OpenSource y sin ánimo de lucro, está buscando financiación a través de la Comunidad y, al momento de escribir estas líneas, lleva recaudado un 72% de los 9140€ que necesita para llevarse a cabo.

Ya se ha explicado por activa y por pasiva qué pretende Trazeo, qué es, por quién está impulsado, etc. Este post pretende entrar en detalle técnico sobre uno de los bundles que Sopinet desarrollaría y liberaría para el proyecto: PlantillaBundle (o TemplateBundle). Por tanto, si tu perfil no es técnico, quizás te pierdas un poco entre tanta extraña nomenclatura.

¿Qué es un Bundle?

Un Bundle, en Symfony2, es un conjunto de ficheros estructurados que cumplen con una funcionalidad. En el caso que nos ocupa y, según explicamos en: Trazeo (I): Algo más que ir caminando al colegio desarrollaremos hasta 5 bundles para Symfony2 si conseguimos la financiación necesaria.

TemplateBundle

Uno de los bundles que queremos programar, consiste en la integración de un tema de Bootstrap bajo el sistema de plantillas Twig. Es decir, crearíamos y liberaríamos un paquete que serviría de base para cualquier proyecto web tipo panel de control, red social, etc.

¿Por qué?

  • No hemos encontrado nada parecido. Cierto es que existen Bundles como Mopa que facilitan la integración de Bootstrap en Symfony2. Sin embargo, quedan lejos de dar una solución rápida al problema de tener que crear un panel completo para un proyecto web.
  • Entendible y modificable. Al basarnos en Bootstrap3, la plantilla será entendible por una gran cantidad de diseñadores y maquetadores y también podrá ser modificada fácilmente.
  • Twig no sólo es el sistema de plantillas de Symfony2. Se está convirtiendo en un peso pesado en PHP. Proyectos como Drupal8 ya lo incorporan de serie y muchos otros están haciéndolo. No sólo PHP, también Djando o ChicagoBOSS, por citar algunos, tienen un sistema de plantillas muy parecido a Twig. Es decir, este bundle no sólo serviría para Symfony2, sino que podría reutilizarse en otros lenguajes.

¿Cómo lo vamos a hacer? El poder de Twig

Twig es un sistema de plantillas que se caracteriza por ser: rápido, flexible y seguro, y eso mismo vamos a hacer con nuestro TemplateBundle.

  • Modularización: Separaremos los elementos de nuestra plantilla en distintos ficheros twig, de manera, que haciendo uso de la función include y extends iremos formando nuestro Bundle de una forma sencilla y organizada.
modularbundle
Ejemplo de modularización en una plantilla
  • Uso de variables: Cualquier elemento que no sea de diseño (nombre de usuario, avatar, etc), será enviado mediante variable twig, por lo cual, desacoplaremos completamente el layout final de la maquetación ofrecida.
export
Captura real del fichero navbar.html.twig usado en SusPasitos2. Se puede ver el uso de variables y la modularización.
  • Integración Symfony2: Además, desarrollaremos los elementos de paginación (knp_paginator), menú, formularios, login,… que se usan con normalidad en Symfony.

Experiencia y más

Cierto es que desde Sopinet aún no hemos liberado ningún Bundle de este tipo, sin embargo, tenemos la experiencia necesaria para realizarlo y mantenerlo. Como ya hemos adelantado un poco más arriba, en el proyecto SusPasitos2 (www.suspasitos.com) implementamos dos bundles de este tipo, que se pueden ver funcionando. Además, en la actualidad estamos trabajando con otros dos proyectos en los que estamos realizando el mismo trabajo para la parte visual.

En el caso de Trazeo, es especial, nosotros hemos trabajado internamente con plantillas bootstraps comerciales, sin embargo, para poder liberar completamente el Bundle, pensamos que lo mejor es partir de una plantilla bootstrap completamente OpenSource. Eso, no obstante, nos gusta.

Hasta el momento tenemos varias candidatas, he aquí algunas de ellas:

http://vinceg.github.io/Bootstrap-Admin-Theme/

https://github.com/divshot/geo-bootstrap

http://startbootstrap.com/sb-admin

https://github.com/onokumus/Bootstrap-Admin-Template

Todas son plantillas con bastante comunidad detrás, ya que nuestra intención es que el Bundle generado pueda conservarse y sea mantenido.

Por último, comentar, que también estamos pensando en la posibilidad de hacer uso de las plantillas de: http://bootswatch.com/ Con la ventaja principal de que tendríamos una personalización aún mayor en el futuro y con la desventaja de que tendríamos que trabajar un poco más elementos como Notificaciones y demás.

Y bien, ¿qué os parece todo esto? recordad que estamos hablando sólo de 1/6 parte del código modularizado que el proyecto http://www.trazeo.es pretende liberar. Yo creo que cuanto menos es interesante. Comentarios y sugerencias son bienvenidas.

Leer Más

Trazeo (I): Algo más que ir caminando al colegio.

¿Qué es Trazeo?

Trazeo es un proyecto para apoyar, con un carácter tecnológico, que los caminos al colegio andando vuelvan a producirse.

Desde que entramos como Socios en este proyecto, hace ahora más de un año, hemos analizado, madurado y debatido mucho sobre qué debería llevar este sistema formado por una web y una aplicación móvil. Trazeo es un proyecto ambicioso y que no sólo ayudaría técnicamente a la ejecución de estos caminos escolares, sino, que podría ayudar a mejorar muchos otros procedimientos con puntos en común (o no).

(más…)

Leer Más