Machine Learning para principiantes – Capítulo 6: prediciendo el futuro



Continuamos con el desarrollo de smartcontracts con Ethereum


ethereum development smartcontract

Siguiendo con la miniserie de artículos sobre desarrollo de smart contracts con Ethereum que comentamos anteriormente, nuestro compañero @javierglozano ha publicado su siguiente articulo sobre el tema en su blog Minabta.

En este siguiente articulo desarrollaremos nuestro primer smart contract con Solidity (uno de los lenguajes de programación específicos para Ethereum y que se parece muy mucho a javascript) y como buenos desarrolladores además aplicaremos conceptos DevOps como tests unitarios e integración continua utilizando Mocha y Truffle.

Os anticipamos que la serie de articulos es bastante asequible y de momento no tendremos que preocuparnos con cuestiones más "oscuras" relacionadas con blockchain, aunque seguramente la cosa se empiece a poner un poco más "dura" conforme avancéis en la serie de artículos.

Nos ha comentado @javierglozano que está abierto a que le propongáis temas relacionados sobre los que desarrollar las siguientes entregas de su serie de artículos (aunque tiene material para algunos artículos más). Animaos y proponedle temas.

Seguiremos con interés los siguientes artículos y os comunicaremos sus siguientes entregas.


Crea tu primer bot inteligente!


¡Crea tu primer bot con Visual Studio, Microsoft Bot Framework y Microsoft Cognitive Services!

Hemos preparado un taller para entender cómo trabajar con Bot Framework y que sirva de ayuda para crearte tu propio bot.

El resultado del taller es un SheldonBot, un bot capaz de:

  • Hablarte de sus amigos.
  • Recomendarte un plan en función del día de la semana que sea.
  • Reconozca emociones en las caras de una foto que se le mande.
  • Describirte una imagen que le mandes.

bothol

 

El taller se ha dividido en 5 módulos que cubren las distintas áreas de Bot Framework y los Servicios Cognitivos:

  • Módulo 1: Crear un bot simple.
  • Módulo 2: Publicar el bot en Azure, registrarlo en Bot Framework y conectarlo a distintos canales (Skype por ejemplo).
  • Módulo 3: Añadir diálogos al bot.
  • Módulo 4: Añadir inteligencia al bot con el servicio cognitivo LUIS.
  • Módulo 5: Integrar servicios cognitivos de descripción de imágenes y reconocimiento de emociones faciales.

Aquí el enlace al taller: https://github.com/DanyStinson/BigBotTheory

Daniel Mitchell

Technical Evangelist Intern

@danymitb


emPower BI


¡Empieza a crear visualizaciones de tus datos con un par de clicks gracias a Power BI! Podrás diseñar informes y compartirlos en tu organización de una manera muy sencilla. Y lo mejor de todo, es que como parte de los servicios de Office 365, con Power BI puedes acceder a tus informes desde cualquier lugar.

Power BI cuenta con aplicación de escritorio, llamada Power BI Desktop, un portal (Power BI Service), aplicación para la Tablet y para tu teléfono.

Si quieres saber más sobre esta herramienta, hemos creado un taller que te servirá para comenzar a manejarte con Power BI Service, por lo que no será necesario descargar ningún software. Aprenderás a importar datos, analizarlos y a crear visualizaciones.

En este taller dispondrás de una base de datos sobre ventas de varias empresas canadienses, con campos como los productos que se venden, de qué tipo son, la empresa, unidades vendidas, ingresos por las ventas, dónde se han producido las ventas, entre otros.

El taller está dividido en 3 módulos, ¡pero habrá más! Tendrás incluso un módulo con los prerrequisitos necesarios para empezar con esta herramienta.

  • Módulo 0 - Explorando el portal
  • Módulo 1 - Visualizaciones I
  • Módulo 2 - Visualizaciones II
  • Módulo 3 - Dashboard y compartición de datos

¡Aquí tienes el enlace al taller!

 

Daniel Ortiz López

@ortizlopez91

Technical Evangelist Intern


Explorando Stream Analytics


Cuando hablamos de las últimas innovaciones, es inevitable pensar en el Internet of Things, o más bien conocido por sus siglas, IoT . Sobre los cimientos del IoT residen gran cantidad de dispositivos y tecnologías que no suponen ninguna novedad, sin embargo, su propósito es proporcionarles una capa de conectividad digital a través de la red por excelencia, Internet, aportándoles de esta manera más inteligencia.

Por tanto, el IoT supone una convergencia entre el mundo de los dispositivos cotidianos e Internet, y su idea principal es tener todos nuestros dispositivos conectados a la red, de manera se puedan comunicar entre sí.

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Por ello, resulta esencial utilizar herramientas que analicen en tiempo real todos los datos que producen los aparatos que nos rodean. Con Stream Anaytics  podrás implementar soluciones para obtener la información que generan tus dispositivos, sensores o aplicaciones en tiempo real. Así, actuarás como supervisor y administrador, de manera remota.

Configuración de Stream Analytics

2

 

 

 

 

 

 

 

 

 

 

 

En este artículo vamos a ver cómo procesar datos en tiempo real a través de un Blob Storage, es decir, una vez hayamos ejecutado el Stream Analytics, subiremos un archivo a nuestro Blob Storage, que servirá como entrada. Le aplicaremos una función, y a continuación almacenaremos la salida de la función en otro contenedor Blob Storage.

Lo primero que haremos es crear una cuenta en Azure.

Una vez tengamos nuestra cuenta preparada, podemos empezar a crear y configurar el Stream Analytics. Desde el panel de la izquierda, añadimos un nuevo elemento " +" apoyándonos en el buscador:

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A continuación, tras la búsqueda seleccionamos el Stream Analytics Job - Crear:

4

 

 

Ahora tendrás que asignarle un nombre y un grupo de recursos. En mi caso, le he asignado un grupo de recursos que ya tenía creado, pero si tu cuenta de Azure es nueva, necesitarás uno nuevo. Selecciona la opción de Crear Nuevo, introdúcele un nombre y solucionado.

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Podrás acceder a los recursos que crees en el portal de Azure desde el botón que está debajo del "+" . Así pues, abrimos el Stream Analytics y nos encontramos con la siguiente interfaz: 6

 

En los siguientes pasos configuraremos la entrada, salida y la función a aplicar.

 

Configuración del almacenamiento

En primer lugar, necesitaremos una cuenta de almacenamiento de tipo Blob Storage y a continuación crear dos contenedores. Puedes consultar este artículo en el que se explica cómo crear y manejar contenedores Blob Storage desde el Azure Storage Explorer.

Una vez tenemos el almacenamiento listo, volvemos al Stream Analytics y empezamos configurando la entrada: 78

 

En mi caso, he introducido un nombre, he especificado que quiero usar un Almacenamiento Blob, y tras introducir mis credenciales, le asigno un contenedor ya creado, que he llamado contenedorblobs. Le he especificado en el Formato de serialización de eventos, que va a estar en formato CSV. Podrás usar también el formato JSON o Avro.

La configuración de la salida es muy similar. Introducimos un nombre, especificamos el almacenamiento que queremos, en nuestro caso Almacenamiento de blobs, indicamos el contenedor de salida y elegimos el formato de almacenamiento de tipo CSV.

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Si todo ha ido bien, en "Información General" te debería aparecer una entrada y una salida: 10

 

Ejecución de Stream Analytics

El siguiente paso es configurar el apartado < > Consulta. Con esto lo que hacemos es aplicar una query a los datos de entrada. En este ejemplo simplemente seleccionamos la columna Text del contenedor de entrada y la enviamos al de salida:

11

 

 

 

Le damos al botón de Iniciar y especificamos que queremos empezar el Stream Analytics ahora, ya que lo podemos programar para que comience en el momento que nos venga mejor. Por tanto, nuestro panel tendría que tener este aspecto:

12

 

Ahora si, desde el Azure Storage Explorer introducimos un archivo .CSV, que en mi caso se llama book2.csv y poco después aparecerán en el portal de Azure tres entradas, correspondientes a las tres líneas que tiene mi archivo.

 

 

13

 

La mejor opción para comprobar si nuestro sistema funciona correctamente es ir al contenedor de salida y ver que efectivamente se creó un nuevo archivo con los datos del primero.

 

14Funciones Agregadas

Las funciones agregadas pueden realizar cálculos directamente sobre los datos que le entran, devolviendo un único valor. Además, estas funciones son determinísticas, de modo que devuelven el mismo valor cada vez que las llamamos con las mismas entradas. En este ejemplo vamos a probar la función MAX, aunque hay otras más:

AVG COUNT Collect
CollectTOP MAX MIN
Percentile_Cont Percentile_Disc STDEV
STDEVP SUM TopOne
VAR VARP

Ventanas Temporales

En muchos escenarios se analizan datos en tiempo real y es necesario establecer una ventana temporal para especificar cuándo quiero procesar estos datos. Este procesado se aplicará al final de cada ventana, sobre todos los datos recogidos en ese intervalo de tiempo.

 

16

 

Existen varios tipos de ventanas : Trumbling, Hopping y Sliding. Para este ejemplo utilizaremos la Trumbling, que consiste en un conjunto de intervalos de tamaño fijo, no superpuestos y contiguos. En nuestro caso, crearemos una ventana de 5 minutos: 17

 

 

 

 

 

 

 

 

 

 

Cargamos la nueva consulta en el Stream Analytics:

SELECT MAX (Views) AS allEvents

INTO articleOutput

FROM articleEntry

GROUP BY TumblingWindow(minute,5)

Así, recogeremos eventos cada 5 minutos y los procesaremos al final de este intervalo, filtramos los eventos y seleccionamos el que tenga el campo Views más alto.

Este es un ejemplo de cómo puedes cargar y procesar datos en tiempo real con la herramienta Stream Analytics. En este caso, establecemos ventanas de tiempo de 5 minutos y aplicamos una función agregada (MAX), todo ello mediante entradas y salidas de archivos desde el Storage Explorer. También tenemos la opción de poner queries o incluso funciones dentro de las propias queries.

 

Daniel Ortiz

Technical Evangelist Intern

@ortizlopez91


GRACIAS por un Global Azure Bootcamp 2017 increíble


Queridas comunidades técnicas españolas:

Este año, de nuevo, habéis vuelto a dejarnos sin palabras con el Global Azure Bootcamp que habéis organizado. Más de 500 personas estuvieron este pasado sábado 22 de abril de 2017 en los eventos de Madrid, Barcelona, Palma de Mallorca y Tenerife. Eventos organizados í­ntegramente por la comunidad para la comunidad que se replicaron en todo el mundo hasta llegar a la cifra de 252 eventos por todo el planeta con más de diez mil asistentes en total.

dsc_0023

El Global Azure Bootcamp es una demostración innegable del increí­ble poder de las comunidades técnicas a escala global. Es un evento de comunidad en estado puro, sin intereses comerciales, sin más ánimo que compartir conocimiento con todo aquel que esté interesado y hacer crecer la comunidad, una comunidad abierta e inclusiva a la que es una verdadera alegrí­a pertenecer. Es un ejemplo de colaboración entre diferentes comunidades con diferentes intereses que se unen para aprender unos de otros y compartir la experiencia con personas de todo el mundo. Es increíblemente hermoso.

Este año, además, hemos tenido el privilegio de contar en Madrid con la presencia de Sebastián Hidalgo, el Doctor en Astrofísica del IAC artí­fice del algoritmo SELIGA - el centro del Science Lab del Global Azure Bootcamp de este año. Sebastián nos ha hecho comprender la complejidad detrás de la determinación del proceso de formación estelar y la importancia de la computación distribuida para poder afinar muchí­simo más nuestra comprensión de ese proceso. Para mí­, que he tenido experiencia personal en algunos campos de la supercomputación donde un simple milisegundo es una magnitud de tiempo elevada, fue revelador entender que conseguir afinar el modelo de SFH de una galaxia a una delta de Dirac que representaba, literalmente, "unos pocos millones de años"? nos iba a permitir comprender mucho mejor el proceso de formación estelar. Me emociona haber sido partícipe del Science Lab de este año, y estoy deseando que Sebastián consolide todos los cálculos hechos por todos nosotros con más de 100.000 horas de computación en más de 2000 cores para continuar con su investigación y compartir sus conclusiones.

Gracias a todos los que habéis hecho posible los eventos de Madrid, Barcelona, Palma y Tenerife. Desde los patrocinadores locales (Kabel, Sogeti y Tokiota en Madrid y Barcelona; Avanade, Encamina, Insight, Intelequia, Pasiona, y Plain Concepts en Madrid; XML Travelgate en Palma; Intech en Tenerife) hasta las numerosas comunidades técnicas que estuvisteis directamente involucradas en la organización (disculpad si dejamos de mencionar a alguna, decídnoslo por Twitter o en los comentarios  y nos aseguraremos de añadiros!):

34088967601_08b4beb73e_o capture img_1890 img-20170422-wa0002 img_1889 c-axpn_wsaes0ug c-b_iqrxgaavigt wp_20170422_09_29_11_pro dsc_0025 dsc_0031 dsc_0037 dsc_0445 dsc_0450

A todos los que asististeis, gracias por apoyar esta iniciativa de la comunidad. A los que no pudisteis asistir, podéis disfrutar de las grabaciones del track principal de Madrid aquí  y os animamos a que no os lo perdáis el año que viene.

Queridas comunidades técnicas, a todos los que formáis parte de una manera u otra de esta gran familia, por vuestro trabajo para difundir las posibilidades que nos brinda la tecnologí­a en cada ciudad en la que estáis, a cada persona que muestra interés, donando vuestro tiempo libre de manera incansable, estando siempre dispuestos a ayudar a quien lo necesite, solo podemos daros las gracias. Gracias de corazón. Sois un ejemplo y una inspiración para todos.

A todos los que aún no sois parte de esta increí­ble gran Comunidad Técnica con mayúsculas, os esperamos con los brazos abiertos 😊

Ester de Nicolás

Chief Evangelist - DX Spain

@esterdenicolas


Guía para principiantes de Xamarin


Desde Microsoft estamos apostando fuerte por herramientas que nos permitan desarrollar aplicaciones multiplataforma. En el caso de los móviles no iba a ser menos, y para ello contamos con Xamarin.

Es la herramienta con la que podrás desarrollar aplicaciones móviles nativas para Android, iOS y Windows Phone. Es decir, un único proyecto de código compartido te servirá para cada una de estas plataformas.

Eso sí, una herramienta de estas características precisa de bastantes dependencias, como del JDK de Java, SDK de Android, los emuladores e incluso un MAC para compilar las aplicaciones de iOS. Por ello, es imprescindible configurar bien el IDE, así como saber algunos trucos básicos a aplicar durante el desarrollo de nuestras apps móviles.

Ya que la mayoría de los problemas surgen al principio, cuando instalamos Xamarin, configuramos el entorno, y creamos nuestro primer "Hello World" , vamos a ver los pasos a seguir durante la instalación y configuración.

xamarin-logo

Como este post está dirigido a aquellos que estáis empezando con Xamarin, seguro que os viene muy bien la documentación oficial, así como el enlace al foro oficial de Xamarin.

A día de hoy no hay ninguna comunidad o foro público de Xamarin en castellano que tenga gran actividad. Así que os animamos a que forméis vuestros propios foros para hacer crecer esta comunidad de developers.

Instalación

Lo primero y más importante de todo, instalar bien el entorno de desarrollo. Una buena instalación va a evitar muchos problemas en el futuro y sobre todo va a hacer que nos ahorremos gran cantidad de tiempo en intentar solucionarlos.

Para desarrollar Xamarin vas a necesitar el Visual Studio, si estás con un Windows, o Xamarin Studio para el MAC. Ambas herramientas son gratuitas. Podrás descargar la versión Community  del VS desde aquí o el XS en este enlace.

Ya que los proyectos de Xamarin dependen de varios paquetes y SDKs del Visual Studio, en este video se muestra cómo configurar su instalación para Visual Studio 2015, así como la compilación de la plantilla que viene por defecto, en las tres plataformas.

 

Un Clean soluciona muchos problemas

La opción de Clean nos sirve para borrar las variables que ha utilizado el Visual Studio al hacer la compilación. Si hubiese archivos en el directorio al que se dirige cuando compila (/bin y objetos), estos no se van a borrar, a no ser que hagamos un clean.

Por tanto, ante un error de este tipo:

Build action 'EmbeddedResource' is not supported by one or more of the project's targets.

C:\Users\daorti\Microsoft\OneDrive - Microsoft\Charlas\Academic Tour\Xamarin\4_Xamarin_Forms\XamarinDemo.Forms\XamarinDemo.Forms\MainPage.xaml clean-1

Lo mejor es hacer un Clean desde el Solution Explorer.

clean-2

Evitar rutas largas

Muchas veces surge este tipo de problema con Xamarin. Seguramente se solucione en la siguiente release, pero hasta entonces, lo ideal es almacenar nuestro proyecto en rutas cortas. Por ejemplo en C:/ . Este sería el típico error que nos salta cuando tenemos este problema:

The "CreateAdditionalLibraryResourceCache" task failed unexpectedly.System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.InternalGetDirectoryName(String path) at Xamarin.Android.Tools.Files.CopyIfChanged(String source, String destination) at Xamarin.Android.Tasks.CreateAdditionalLibraryResourceCache.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

Si no hemos creado el Proyecto en una ruta corta, sino que lo estamos moviendo desde una larga, lo recomendable al reabrir el proyecto es hacer un Clean antes de recompilar de nuevo.

Configuración del JDK de Java

Es posible que tengamos problemas con el JDK de Java o bien que no lo tengamos descargado o que la versión no es la última. Si se diese la ocasión, podríamos tener este tipo de error:

java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0

En tal caso, hay que dirigirse a la web de Oracle y descargar la última versión de Java. A continuación, tienes que indicarle al Visual Studio dónde está el JDK, desde Tools – Options – Xamarin. Una vez configurado, debería aparecerte un tick verde:

java-jdk

Configuración del MAC

Aunque en el vídeo de instalación se muestran unas pequeñas pinceladas de cómo ejecutar la aplicación en iOS, en este apartado veremos los pasos necesarios para poder compilar este proyecto:

  • Conectamos tanto el equipo Windows donde estemos desarrollando en Xamarin como el MAC a la misma red. No hace falta que estén físicamente en la misma LAN, ya que si ambos ordenadores pertenecen a la misma VPN, podréis acceder al MAC de manera remota.
  • En segundo lugar, hay que instalar en el MAC el xcode y Xamarin Studio .
  • Asegúrate de tener actualizados tanto el Xamarin de Visual Studio como el Xamarin Studio del Mac.
  • Ahora necesitaremos o bien la dirección IP del MAC (la puedes sacar con el comando ifconfig desde el terminal) o el nombre del ordenador. Para el nombre del ordenador hay que ir a Preferencias del sistema -> Compartir -> Gestión Remota -> Nombre del ordenador.

mac-compartido

  • Ya tenemos configurados ambos entornos. Lo único que queda es la comunicación. Abrimos el Mac Agent desde Visual Studio, clickamos en Agregar Equipo e introducimos el nombre del ordenador. Seleccionamos Conectar, esperamos un rato y ya tenemos Visual Studio sincronizado con nuestro MAC.

mac-agent

Finalmente, establecemos el de iOS como proyecto de inicio, elegimos un dispositivo iPhone y lo ejecutamos. Tras un rato, debería abrirse el emulador de iOS en el MAC y lanzarse la aplicación.

ios-compilada

 

Estos son algunos de los consejos a seguir para empezar a programar con Xamarin. Procura tener todas tus herramientas actualizadas porque van saliendo mejoras cada mes.

Xamarin es una herramienta muy potente, pero requiere de paciencia ya que se compone de muchas dependencias y como haya alguna mal configurada o desactualizada vamos a perder mucho tiempo tratando de resolverlo. Merece la pena pararse un momento a pensar qué necesito instalar y por qué, ya que luego no vamos a saber por dónde vienen los fallos.

Y una vez tengamos el entorno configurado, a partir de aquí empieza lo divertido :)

 

Daniel Ortiz

Technical Evangelist Intern

@ortizlopez91


Hackathon Online de Xamarin #apps4good


Aplicaciones para conseguir un mundo mejor.

Seguro que hay algún problema social (o muchos) que personalmente te afecta o te preocupa. Es el momento de hacer algo con las herramientas con las que somos buenos: ¡programando!

Desde Microsoft queremos animarte a participar en el Hackathon Online que organizaremos los próximos 16, 17 y 18 de junio.
Este hackathon persigue un claro objetivo: conseguir entre todos resolver o ayudar a alguno de los problemas que nos preocupen a través de una aplicación móvil.
¿Cómo?

Paso 1: Forma parte del Hackathon online. Sólo tienes que formar parte de la iniciativa haciendo like en este grupo de Facebook.

Paso 2: Estrújate un poco el coco y saca una buena idea en forma de aplicación que ayude a los demás.

Paso 3 (la parte fácil): Crearla.
Hemos organizado este hackathon online para ayudarte con ello a través de Xamarin. Para que aprendas a desarrollar (o profundices en tus conocimientos) sobre esta plataforma que nos permite crear aplicaciones nativas para iPhone, Android y Windows 10 compartiendo código.

Paso 4: Tras el hackathon online tendréis unas semanas de margen, por si necesitaras ultimar detalles y presentar tu app después a este fantástico concurso que patrocinamos desde Microsoft: #apps4good https://www.campusmvp.es/concurso-xamarin.htm en el que puedes ganar un primer premio de 5.000€ u otros cuatro de 1000€ en metálico, cada uno.

 

¡¡Seguro que ya estás convencido!! ¿Quieres saber más?

El formato es el siguiente.

Antes del Hackathon
1. Toma contacto con Xamarin y resuelve dudas previas al hackathon: Nos basaremos en el Hand On Lab de Pierce Boggan, "Spent", que tiene un contenido muy organizado y completo: https://github.com/pierceboggan/spent
En él, exploraremos las características y funcionalidad de Xamarin.Forms desde una aplicación de prueba para hacer el seguimiento de los gastos.

2. Si no tienes tu entorno de Xamarin instalado, puedes ver cómo instalarlo en una máquina limpia en el siguiente video: https://channel9.msdn.com/Blogs/channel9spain/Instalacin-de-Xamarin
No lo dejes para el último día, y si surge alguna duda, escrí­benos un mensaje en el foro: https://aka.ms/foroapps4good

3. Todos los recursos que necesitas puedes encontrarlos en Visual Studio Dev Essentials: https://aka.ms/dev-essentials

Durante el Hackathon
Durante tres dí­as contaremos con los mejores expertos de desarrollo de aplicaciones móviles y Xamarin para ayudarte.
Ellos estarán pendientes de los mensajes que nos dejes en el foro de desarrollo en Xamarin.

 

"No sé Xamarin" no es una excusa: Si aún no conoces Xamarin, durante el primer dí­a (viernes 16 de junio), además de la resolución de dudas a través del foro, emitiremos en directo un workshop totalmente práctico (en español). Y te permitirá dar tus primeros pasos en Xamarin.

(mira el evento que hemos creado en nuestra página de Facebook para ver la agenda del Hackathon)

En este workshop veremos una introducción a qué es Xamarin, y cómo hacer paso a paso una aplicación desde tu primer "Hola mundo".
Podréis seguir este workshop en este grupo de Facebook: https://www.facebook.com/hackathonapps4good/

A partir de este workshop tendréis los conocimientos necesarios para poder implementar tu propia aplicación.
Además, implementaremos el backend de tu aplicación móvil en Azure, veremos qué servicios de Azure nos facilitan la vida a la hora de hacer aplicaciones móviles e incluso veremos cómo hacer Integración Continua, tests y despliegues de tus aplicaciones.

Si ya tienes experiencia con Xamarin, o has hecho nuestro curso de Introducción a Xamarin y Azure de Campus MVP, simplemente céntrate en programar los tres dí­as porque....¡rara vez tendrás la oportunidad de tener este elenco con los mejores expertos ayudándote!

Todo ello en un formato del siglo XXI: online.
Sin tener que moverte de casa, no hay desplazamiento, participar no tiene ningún coste!!!  ¡todo son ventajas!
¿Te está emocionando la idea de participar tanto como nosotros estamos disfrutando organizándolo?
Porque.....  contamos contigo en este hackathon online: #apps4good

El equipo de Evangelismo Técnico. Microsoft Ibérica.
@msdev_es