domingo, 30 de junio de 2019

Implementar Inteligencia artificias fácil en las aplicaciones


Como desarrolladores en muchos casos ocupamos hacer tareas de Inteligencia Artificial (AI) y no tenemos ni la experiencia o el conocimiento para hacer estas tareas. Pero podemos investigar un poco sobre los servicios de Azure para hacer algunas tareas de Machine Learning (ML), Deep Learning (DL), etc. Los servicios cognitive nos permiten por medio de un API utilizar todo el poder Azure AI.

Existen servicios para hacer muchas tareas como, por ejemplo, podemos hacer tareas de reconocimiento de imágenes, para reconocer idioma, podemos reconocer texto en fotos, corrector de ortografía, etc.

Estos APIs tienen una cantidad de llamadas gratis con las que podemos iniciar hacer pruebas y esta cantidad de transacciones gratuitas serán por siempre, es decir, que iniciamos a pagar después de gastar este limite gratuito. Vamos a poder usar 5000 transacciones gratuitas por mes.

Otra gran ventaja es que no importa cual lenguaje de programación usamos o queremos usar para las tareas a resolver ya que todo lo podemos configurar en Azure y simplemente haciendo la llamada al API podemos tener los resultados necesarios.

Para el ejemplo que queremos hacer lo vamos a desarrollar con javascript.
  • Lo primero que tenemos que hacer es ir al portar de Azure.
  • En el Marketplace buscamos los Cognitive Services
  • Buscamos el que deseamos usar
  • Seleccionamos nuestro servicio y damos clic en create


Después de dar clic en Create vamos a tener la siguiente pantalla


Aquí vamos a crear nuestro servicio podemos usar el gratuito. Cuando se crea el recurso nuevo vamos a buscar el API y los keys

En Overview tenemos el endpoint que vamos a utilizar para hacer los llamados. Para poder hacer esto vamos a ocupar dos pasos.

Lo primero es llamar al API que nos permite autenticarnos

Como podemos ver en el momento de dar clic al botón que dice enviar llamamos una función de Ajax con jquery que nos permite llamar el token de seguridad. En el url debemos pasar el endpoint que sale en la ventana de overview. El key que podemos obtener de azure lo tenemos que pasar como header en el Ocp-Apim-Subscription-Key pasamos nuestro key el resultado de la función done nos retorna el token. Luego de esto llamamos la función detectLanguage y espera el token de autorización.


Debemos pasar en ese segundo paso el token con la palabra Bearer en el campo que se llama Authorization. En el url llamamos el API de congnitive services para detectar el idioma junto con su versión. Enviamos el texto que escribimos en la caja de texto en el espacio de data. Cuando el API nos responder podemos ver el resultado en el console imprimiendo la variable de data.



De esta manera podemos usar los APIs de Azure donde se pueden implementar tecnología de AI en nuestras apps.

Tenemos que recordar que se puede manipular imágenes, texto, audio, etc. para poder desarrollar aplicaciones más flexibles y con alta tecnóloga.


Etiquetas: , , ,

martes, 18 de junio de 2019

Devintersection Jueves 13 junio 2019


Jueves 13 de junio del 2019 ultimo día de la conferencia dev intersection. Realmente fue super interesante todo lo que vimos en tan corto tiempo

Key Note
Con Brad Green



Iniciamos con un key note sobre angular con las nuevas herramientas que tiene y la gran cantidad de aplicaciones que se han desarrollado con esta tecnología. Es simplemente increíble. Cosas super interesantes el comando de ng update en el CLI que nos permite actualizar la aplicación de una manera fácil y sin que tengamos que hacer nada. Esto permite fácilmente la continuidad de nuestra aplicación con una migración limpia y simple.

Otra característica muy importante es que la nueva versión de angular 8 permite crear aplicaciones más pequeñas. Haciendo que se carguen más rápido para el usuario.

El framework es un OpenSource que vive en github el cual el equipo de Google lo clona a G3 antes de trabajar en las nuevas versiones, en este punto se hacen todas las pruebas necesarias para que la versión que liberen este en las mejores condiciones para producción.

Ya esta por salir la versión Angular 9 con muchas nuevas características para que las apps sean mejores.

Increase your .net productivity and streamline Azure development with Visual Studio 2019
Con Allison Buchholtz y Kendra Havens


Cosas que están saliendo nuevas para el VS2019 son refactor en los ciclos de foreach para mejorar estas estructuras.

Los if son otras estructuras con las que están implementando mejoras.

Las interfaces vienen con mejoras para fácilmente mover propiedades de una clase a una interfaz. Además, si esta no existe se crea de manera automática.

Las expresiones regulares vienen con colores nuevos para poder visualizarlas con mayor facilidad. Con esto se pueden evaluar las expresiones regulares y mostrar posibles errores.

Vienen nuevas características como la capacidad de editar el archivo de configuración más fácil, se puede agregar validaciones de compilación propias como en que orden se quieren crear las clases. Por ejemplo, abstract public class.

Con más y nuevos colores para la sintaxis. Además de nuevas opciones para unit testing.

Cognitive services - Machine Learning for developers
Chris Noring



Con los servicios de machine learning de Azure cualquier desarrollador puede crear aplicaciones con implementaciones de ML.

Por medio de servicios de Rest podemos crear ejecutar las tareas de ML y obtener una respuesta. Existen algunos límites para uso gratuito, pero sigue siendo más cómodo usar estos servicios que desarrollarlos, buscar el equipo de especialistas, hospedar los servicios, etc.

Podemos usar los servicios tal cual están, pero si se requiere de algunas cosas diferentes se pueden mejorar por nosotros mismos. Lo primero que debemos hacer es tratar de ver si lo que ya tenemos nos funciona y usarlo ya después si requerimos algo más se pueden adaptar.

Key note
John Papa

En el Keynote final lo que podemos rescatar es que tenemos herramientas para trabajar de manera colaborativa con VS2019 y trabajar dos o mas al mismo tiempo sobre el mismo archivo.

Todas las herramientas de git están integradas con VS2019 y permite hacer todas las tareas desde el IDE.

Y finalmente super importante es que se requieren muchos especialistas en el área de IA. Al parecer un campo que no requiere de mucha preparación si la persona es desarrolladora. Conocimiento que se puede aprender fácilmente. Esperando que el futuro sea Quantum Computer….

¿Quieres aprender java y C#?

Etiquetas: , , , , , ,

martes, 11 de junio de 2019

DevIntersection 2019 Orlando. Domingo 19 de junio

La primera charla que fui a ver en devintersection me pareció muy interesante. El tema ere “Deep learning for developers” con Zoiner Tejara y Ciprian Jichici. Lo que voy a escribir son las ideas que me parecieron mas importantes documentos o links que se presentaron que pueden ser de utilidad para todos.

Lo primero que definieron fue el concepto de Machine learning de una manera muy simple el cual es la capacidad de aprender de las computadoras sin tener que explicarle de manera explicita con un programa. Es decir, que la computara después de datos, un modelo y entrenamiento de los datos ya puede generar sus propios resultados.

Detalles importantes es que el Deep learnig no requiere mucho conocimiento matemático para usarlo. Es una actitud más orientado a la ingeniería. Lo que se requiere es iniciar, probar y probar hasta lograr el resultado esperado.

Debemos de pensar diferente para entrar a este tipo de desarrollo ya que es un nuevo paradigma de hacer las cosas. Ya que primero iniciamos con los datos y las respuestas, luego el modelo debe de entender como hacer para encontrar las respuestas futuras.

Actualmente para trabajar con machine learning (ML) o Deep learning (DL) ocupamos conocimientos en Python.

Aquí algunas de las tecnologías que podemos usar para trabajar DP o ML
  • Python
  • Azure compute
  • Azure storage
  • Azure machine learning



El proceso de DL requiere que iniciemos recolectando los datos y preparándolos. Después vamos a tener que entrenar al modelo y evaluarlo. Finalmente se puede publicar el modelo y dependiendo de las necesidades y cambios en los datos se puede regresar a entrenar nuevamente al modelo para mejorar los resultados.



El cambio de los datos puede requerir nuevos entrenamientos para la mejora.

Detalle importante es que podemos usar muchos de los servicios ya existentes para hacer el proceso de DL o ML que existen. Por ejemplo, en Azure ya existen servicios que podemos usar para el reconocimiento y trabajo con las imágenes. Otro servicio que se puede usar es el de texto para evaluar y buscar datos que se requieren.


Si lo que deseamos no está disponible podemos hacer nuestros propios modelos o algoritmos para lograr los resultados, pero lo mejor seria primero investigar que podemos usar y de esta manera ahorra tiempo y dinero. Ahora no tenemos que olvidar que los modelos que ya existen también debemos entrenarlos.

Un 85% del tiempo para este tipo de tareas se va a estar usando en la recolección de datos y la preparación.

Otra herramienta que vamos a usar o podemos usar para nuestro proyecto de DL y ML es Jupyter Notebook. Esta herramienta nos permite escribir código en el browser que se restar ejecutando en el servidor donde tenemos nuestras herramientas de ML. Se puede correr Python, R o SQL. Se pueden hacer ejecuciones paso a paso usando las celdas que son text box en el navegador.

El mundo está buscando más personas que puedan realizar trabajos de ML o DP para las nuevas aplicaciones que se están desarrollando. Por eso es bueno que iniciemos a estudiar más sobre estas herramientas y mejorar nuestras habilidades en este campo.

Pueden visitar la pagina de Solliance donde van a tener mas contenido sobre este tema e información relevante

Etiquetas: , , ,