#Flow – Detener el salva pantallas utilizando botones Flic, procesos con @microsoftflow, @powershell y mucho mas ! (gracias @ShortcutLabs)

Buenas !

Llevar adelante un Centro de Innovación es una experiencia que es 50% de problemas y 50% de diversión. En estos momentos estamos actualizando nuestro IC en Toronto, y esto significa que tenemos muchas nuevas screens (entre otras cosas) y esto también supone un desafío al momento de pensar en ahorro de energía.

Por suerte, las TVs se apagan automáticamente cuando no hay signal. El desafío era comprender como enviar signal desde dispositivos con Windows 10, y claro, antes de llegar a este punto, pasamos por la experiencia del Screen Saver.

Hay soluciones completas y complejas para manejar estos escenarios de Digital Signage. En nuestro caso, la idea era ver de hacer algo utilizando parte de la tecnologia que conocemos para solucionar este escenario.  @ChloeCondon escribió un par de tweets donde menciono a los Flic buttons, y se me ocurrió que era el momento de probarlos. Inicialmente pensé en este proceso

  • Clic en un botón Flic
  • El boton lanza un MS Flow
  • MS Flow apaga el screen saver

Parece muy simple, ademas la conexion entre MS Flow y Flic esta disponible en Preview! podemos suscribir los eventos clic, doble clic y hold como triggers de Microsoft Flow.

F1 settings for a button

El siguiente paso es crear un Flow para procesar el evento del botón. De alguna manera tengo que procesar el trigger de MS Flow para detener el screen saver en un ordenador con Windows 10. Una forma casi natural de trabajar con MSFlow es crear un archivo en el ordenador con Windows 10. Inicialmente hice algunas pruebas con Microsoft Flow Gateways, que parece ser la herramienta ideal para compartir información entre origenes de datos on premises y MS Flows en el cloud.

Sobre un MS Flow en blanco, agregue el trigger de Flic button. Las settings del trigger permiten elegir el botón y el tipo de acción para la suscripción.

01 microsoft flow flic button trigger02 microsoft flow flic button settings

Llego el momento de configurar Gateways. Y, básicamente, no fue de mi agrado. Path en modo hard-code, lo mismo para guardar credenciales, algo no me parecía una buena idea. Este fue el momento de salir a correr un poco para tener nuevas ideas.

03 microsoft flow gateway file system configuration

Por suerte, ya tenemos un sistema de archivos distribuido, que es seguro y bastante potente. Tambien tengo la suerte de que el mismo esta funcionando en todos los ordenadores de demo de Windows 10: OneDrive. Y como bonus, OneDrive tiene muchos triggers y acciones para trabajar con Microsoft Flow!

Llego el momento de actualizar mi escenario

  • Clic en un botón Flic
  • Lanzar un MS Flow
  • MS Flow crea un archivo en OneDrive
  • De alguna manera esto deshabilita el screen saver

El MS Flow es mas bien simple

04 microsoft flow flic button trigger and save a OneDrive file

Un par de apuntes.

La expresión convertTimeZone() esta pensada para poder tener nombres de archivos unicos para cada nuevo archivo:

convertTimeZone(utcnow(),’UTC’,’W. Europe Standard Time’,’yyyy MM dd HH mm ss’)

El contenido del archivo no es importante (por ahora). He aquí un ejemplo de archivos creados con este Flow.

onedrive files created by flic clic

Esto va tomando forma. Despues de presionar el boton Flic, en pocos segundos, OneDrive sincroniza el nuevo archivo en todos los ordenadores con Windows 10. Es el momento de crear un File System Watcher para detectar los cambios y detener el screen saver. Como era de esperar, mi primera idea fue crear una .Net Core Console App para hacer esto, sin embargo recorde que mis amigos IT Pro hacen magia con PowerShell.

Una busqueda en internet me llevo a leer el siguiente post de Jessica Cook: Flow of the Week: Local code execution, donde cierra un escenario muy parecido al que comento en este post.  Ella si ha utilizado gateways, y yo me dedique a modificar un poco su PS Script:

$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "<Folder to Watch>"
$watcher.Filter = "*.*"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true 
$action = {
Start-Process "taskkill /f /im bubbles.scr"
} 
Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {sleep 5}

Listo! Una vez agregado el PowerShell script al inicio de Windows, los ordenadores de demo, ya estan en modo “sync to stop screen saver”. Y es presionar el boton y ver como se deshabilitan los screen savers!

El proceso

  • Clic en un botón Flic
  • Lanzar un MS Flow
  • MS Flow crea un archivo en OneDrive
  • PS Script para detectar nuevos archivos en un directorio
  • Cuando se detecta un archivo, se detiene el proceso del Screen Saver

Hay mucho margen de mejora, como por ejemplo detener el screen saver, en lugar de matar el proceso del mismo. He intentado con SendKeys y moviendo el mouse con PS, pero lo unico que me ha funcionado es el kill process!

Importante tambien es recordar que esto no es realtime, algunas veces tarda 1 segundo y otras 10 segundos. Lo importante es que funciona y es una buena historia para contar en el IC.

Happy coding!

Saludos @ Toronto

El Bruno

References

Advertisements

#Event – Materiales utilizados durante #GlobalAINight con los amigos de @metrotorontoUG

 

Buenas !

Después de una noche genial con los amigos de Metro Toronto UG, llega el momento de compartir los materiales que utilice durante la sesión. La idea inicial era hablar un poco de Azure Notebooks, y de alguna manera terminamos hablando también de Cognitive Services y Custom Vision, fue genial!

Para comenzar, los 15 min con el video de la Keynote:

Mis Slides

Y algunos de los links que utilicé durante la sesión

My posts on Custom Vision and ONNX

  1. Object recognition with Custom Vision and ONNX in Windows applications using WinML
  2. Object recognition with Custom Vision and ONNX in Windows applications using WinML
  3. Object recognition with Custom Vision and ONNX in Windows applications using Windows ML, drawing frames
  4. Object recognition with Custom Vision and ONNX in Windows applications using Windows ML, calculate FPS
  5. Can’t install Docker on Windows 10 Home, need Pro or Enterprise
  6. Running a Custom Vision project in a local Docker Container
  7. Analyzing images in a Console App using a Custom Vision project in a Docker Container
  8. Analyzing images using PostMan from a Custom Vision project hosted in a Docker Container
  9. Building the CustomVision.ai project in Docker in a RaspberryPi
  10. Container dies immediately upon successful start in a RaspberryPi. Of course, it’s all about TensorFlow dependencies
  11. About ports, IPs and more to access a container hosted in a Raspberry Pi
  12. Average response times using a CustomVision.ai docker container in a RaspberryPi and a PC

Windows 10 and YOLOV2 for Object Detection Series

Saludos @ Toronto

El Bruno

#Office – Ideas Tool para Microsoft Excel basado en AI (#Excel, #AI)

Buenas !

Hoy voy a cambiar a Excel para compartir algunas de las otras increíbles características de Inteligencia Artificial en Microsoft Office: Excel Ideas.

Excel Ideas es esta nueva herramienta que tenemos en Excel que nos permitirá obtener algunas ideas sobre información seleccionada en una hoja de trabajo. Para utilizar esta herramienta, necesitamos seleccionar un conjunto de datos y hacer clic en el botón [ideas] en la cinta de opciones

Microsoft Excel Ideas.jpg

Para escribir este post, he descargado un conjunto de muestra de datos espaciales de SpatialKey (ver referencias). El archivo de seguro de muestra contiene 36.634 registros en Florida para 2012 de una compañía de muestra que implementó un plan de crecimiento agresivo en 2012. Hay columnas de valor asegurado total (TIV) que contienen TIV de 2011 y 2012, por lo que este conjunto de datos es ideal para probar la característica de comparación. Este archivo tiene información de dirección que puede elegir para geocodificar, o puede usar la latitud/longitud existente en el archivo.

Una vez que seleccioné el conjunto completo de datos, es bueno ver las siguientes ideas

Si usted es un usuario de PowerBI, este tipo de información y análisis será familiar. Para mí es bueno ver que tenemos estas capacidades en un solo clic en una herramienta popular como Excel.

Hay más de + 40 Insights y es agradable para navegar por ellos y encontrar que en el Condado de Miami Dade, el deducible del sitio es mayor para las construcciones de marco de acero y hormigón armado.

Microsoft Excel Ideas Sample 03

Con 2 clic podemos analizar algunos datos abiertos relacionados con el tráfico en Ontario y ver cómo el tráfico aumenta lentamente en Hwy 69 desde 1988 hasta 2010.

Microsoft Excel Ideas Sample 04

Una herramienta increíble dentro de Excel para obtener rápidamente información sobre nuestros datos.

Happy coding!

Saludos @ Toronto

El Bruno

References

My posts

#AI – Los proyectos de CustomVision.ai se pueden exportar para ser utilizados con el Vision AI Developer Kit

Buenas !

Estaba planeando escribir un par de posts sobre las características de Inteligencia Artificial en la suite de Microsoft, cuando comprobé esta característica disponible en CustomVision.ai.

Custom Vision export to Vision AI Dev Kit.jpg

El año pasado, Microsoft lanzó un programa llamado [Vision AI Developer Kit for IoT Solution Makers]

Integrado con Azure IoT Edge y trabajando con el servicio de aprendizaje automático de Microsoft Azure (versión preliminar pública), este kit de inicio de Azure IoT permite a los desarrolladores crear una solución de IA de visión y ejecutar sus modelos de IA en el dispositivo.

vision ai dev kit camera.png

El dispositivo utiliza la plataforma de inteligencia de Qualcomm Vision para la aceleración de hardware del modelo de AI para ofrecer un rendimiento de inferencia superior. Y está diseñado específicamente para implementar modelos de AI creados con Azure Machine learning con Azure IoT Edge.

Después de leer un poco me di cuenta, que también se puede desplegar en esta cámara, Modelos ONNX de la galería de Azure AI, modelos de Azure ML y, por supuesto, modelos personalizados creados con CustomVision.ai. Todo es compatible y administrado con Azure IoT Edge.

Por lo tanto, ahora es el momento de comprobar mis fechas de entrega para ver cuánto tiempo tengo que esperar a que llegue mi dispositivo y empezar a comprobar la opción de exportación disponible en el portal CustomVision.ai!

Happy Coding!

Saludos @ Toronto

El Bruno

References

My posts on Custom Visopn

  1. Object recognition with Custom Vision and ONNX in Windows applications using WinML
  2. Object recognition with Custom Vision and ONNX in Windows applications using WinML
  3. Object recognition with Custom Vision and ONNX in Windows applications using Windows ML, drawing frames
  4. Object recognition with Custom Vision and ONNX in Windows applications using Windows ML, calculate FPS
  5. Can’t install Docker on Windows 10 Home, need Pro or Enterprise
  6. Running a Custom Vision project in a local Docker Container
  7. Analyzing images in a Console App using a Custom Vision project in a Docker Container
  8. Analyzing images using PostMan from a Custom Vision project hosted in a Docker Container
  9. Building the CustomVision.ai project in Docker in a RaspberryPi
  10. Container dies immediately upon successful start in a RaspberryPi. Of course, it’s all about TensorFlow dependencies
  11. About ports, IPs and more to access a container hosted in a Raspberry Pi
  12. Average response times using a CustomVision.ai docker container in a RaspberryPi and a PC

Windows 10 and YOLOV2 for Object Detection Series

 

#CognitiveServices – Nuevo Servicio: Anomaly Detector

Buenas!

Durante estos días, estoy totalmente centrado en un increíble evento en Avanade Canada: Canada !nnovate Event, y casi me pierdo el lanzamiento de este nuevo servicio, en la familia Cognitive Services: Anomaly Detector.

Este fin de semana tenia pensado terminar mi sesión para la próxima Global AI Night (link), sin embargo, me parece que dedicaré un poco de tiempo para poder hablar del mismo en el próximo evento.

Después de pasar hoy en día leyendo sobre el servicio, parece que funciona con series de tiempo de datos y el uso de modelos específicos, se centran en las anomalías de los datos de la serie y .. ¡Magia! Creo que la documentación oficial lo explica mejor:

The Anomaly Detector API enables you to monitor and detect abnormalities in your time series data with machine learning. The Anomaly Detector API adapts by automatically identifying and applying the best-fitting models to your data, regardless of industry, scenario, or data volume. Using your time series data, the API determines boundaries for anomaly detection, expected values, and which data points are anomalies.

Detect pattern changes in service requests

More information: https://azure.microsoft.com/en-us/services/cognitive-services/anomaly-detector/

Saludos @ Burlington

El Bruno

#Event – Disrupt AI: #Hackathon

disrupt ai banner

Buenas !

DisruptAI es un hackathon de dos días patrocinado por Microsoft que te reta a crear soluciones de industria usando IA y datos, muchos datos.

¡ Voy a aprender y a guiar equipos para hackear y construir cosas asombrosas!

Más información y registro: https://www.eventbrite.ca/e/evoke-disruptai-hackathon-tickets-54971356808

Saludos @ Toronto

El Bruno

#AI – Subtítulos en tiempo real también disponibles en #PowerPoint para #MacOS

Buenas !

Wow, no he utilizado mi Mac en un par de días y hoy que he vuelto a utilizar la misma me he dado cuenta que la funcionalidad de subtítulos en tiempo real de PowerPoint is también esta disponible para Mac ! So cool !

Powerpoint subtitles in MacOS.png

Saludos @ Toronto

El Bruno

#AI – Otra característica genial basada en Inteligencia Artificial en #PowerPoint: subtítulos en tiempo real

Buenas !

Hace unos días, escribí sobre una característica interesante en PowerPoint que es 100% basada en Inteligencia Artificial: PowerPoint Idea Designer.

En PowerPoint, ademas de ayudarnos con el diseño de slides, también es posible utilizar Inteligencia Artificial en escenarios para ayudar a las personas a comunicarse en diferentes idiomas o con problemas de accesibilidad.

Sólo tenemos que hacer clic 2 veces para activar subtítulos en tiempo real en PowerPoint.

Esta función está disponible, en las últimas versiones de PowerPoint (o tal vez en el canal Insider, he perdido el rastro). Y es muy fácil de usar.

Es necesario habilitar el acceso a su micrófono principal y eso es todo. Una vez que la función está activa, verá los subtítulos en modo de tiempo real mientras está hablando.

Saludos @ Toronto

El Bruno

#AI – Multi-Task Deep Neural Networks para Natural Language Understanding

goku at keyboard

Buenas !

Un equipo de Microsoft Research ha lanzado una nueva Deep Neural Network para el aprendizaje de universal language embbedings: Multi-Task Deep Neural Networks for Natural Language Understanding (MT-DNN).  Language embbedings es un proceso que se utiliza para asignar elementos en sentencias o párrafos a representaciones vectoriales. Esto se utiliza principalmente en herramientas como LUIS (Language Understanding) para analizar texto e identificar intenciones, entidades y más.

Una descripción completa de MT-DNN se puede encontrar en el blog oficial de Microsoft Research (ver referencias). Me pareció interesante que el enfoque es añadir un modelo de lenguaje transformador bidireccional pre-entrenado, conocido como BERT, desarrollado por Google AI.

Como de costumbre, el código, basado en PyTorch, está disponible en GitHub: https://github.com/namisan/MT-DNN. El repositorio contiene los modelos previamente entrenados, el código fuente y el archivo Léame que describe paso a paso cómo reproducir los resultados notificados en el MT-DNN paper,

Más información: Towards universal language embeddings

Saludos @ Toronto

El Bruno

References

#Event – Global #AI Nights en Toronto, 2 de April con @metrotorontoug

global ai night.png

Buenas !

El pr’oximo 2 de Abril tengo la suerte de participar en el 1er Global AI Night en Toronto con el increíble equipo de Metro Toronto User Group (@metrotorontoug) !

La descripción oficial del evento es la siguiente:

The Global AI Night is a free evening event organized by local communities all over the world that are passionate about Artificial Intelligence on the Microsoft Azure.
The event takes place on the Tuesday 2nd of April on venues all over the world centrally organized by our HQ in the Netherlands, supported by Microsoft. The event is the perfect balance between quality content, awesome lectures, getting your hands dirty and learn & share with other community members.
Dive in and learn how to implement intelligence into your solutions with the Microsoft AI platform, including pre-trained AI services like Cognitive Services and Bot Framework, as well as deep learning tools like Azure Machine Learning, Visual Studio Code Tools for AI, and Cognitive Toolkit.
During this AI Night you will get inspired through sessions and get your hands dirty during the workshops. By the end of the night you will be able to infuse AI into your applications.

Registro: https://www.meetup.com/metrotorontoug/events/258705791/

Más información https://global.ainights.com/

Saludos @ Toronto

El Bruno