Desarrollo

Azure Durable Functions | Suborquestaciones

Azure Durable Functions es una gran extensión de las Azure Functions que nos permite generar «recetas» o definir procesos que involucren diferentes Azure Functions para llevar a cabo una tarea cuyo resultado conjunto no pueda ser resuelto por una de ellas debido a su complejidad. De esta forma, una Durable Function comienza con un «Orquestador» que definirá las reglas o el flujo que deben seguir en la actuación de las diferentes Azure Functions involucradas . Hasta aquí todo es relativamente sencillo pero, ¿qué ocurre cuando el proceso incluye a su vez subprocesos complejos? Es aquí donde aparecen las Suborquestaciones y os lo enseño en este artículo con código y en el vídeo incluído al final.

Continue reading…

Tips & Tricks | Combinar dos listas sin duplicados con Linq

En muchas ocasiones es necesario combinar dos listas de elementos del mismo tipo de objeto sin tener la certeza de que puedan o no existir duplicados. Realizar esta combinación es, a priori, una tarea sencilla puesto que podemos resolverla usando un bucle y realizando todas las comprobaciones pertinentes pero, ¿es la forma más elegante y legible? Gracias a Linq podemos resolver esta tarea, y otras muchas, sin necesidad de escribir grandes cantidades de código y haciéndolo mucho más legible y mantenible.

Continue reading…

Windows Phone 8.1 | Usar el flash de la cámara ¿Torch o Flash?

posterMientras desarrollaba la aplicación Torch8 me encontré con estas dos formas de controlar el flash de la cámara pero, ¿cuál es la adecuada para qué momento y cómo debo usarla?

Si vamos a la documentación podemos observar que la ayuda para tomar esta decisión es mínima y que depende en gran medida de la interpretación que hagamos sobre la descripción.

  • TorchControl : Provides functionality for controlling the torch LED settings on a capture device.
  • FlashControl : Provides functionality for controlling the flash settings on a capture device.

Y os preguntaréis… WTF!! Pero si es análogo!! Pues no exactamente. Digamos que la diferencia es que Torch está pensado simplemente para alumbrar porque sí y Flash está pensando para realizar la acción de flash durante una captura de una foto o un vídeo aunque en definitiva, sea prácticamente lo mismo. De hecho, FlashControl contiene alguans propiedades más como RedEyeReduction y RedEyeReductionSupported que nos dan esa misma idea.

Sea cual sea lo que decidamos usar y que vaya acorde con nuestra aplicación, su uso es muy similar, necesitando únicamente una instancia de MediaCapture desde la que obtener el acceso al controlador tal y como muestro en los ejemplos

TorchControl

public void TurnTorch(bool on)
{
if (mediaCapture.VideoDeviceController.TorchControl.Supported)
{
if (on)
{
if (mediaCapture.VideoDeviceController.TorchControl.PowerSupported)
mediaCapture.VideoDeviceController.TorchControl.PowerPercent = 100;
mediaCapture.VideoDeviceController.TorchControl.Enabled = true;
}
else
mediaCapture.VideoDeviceController.TorchControl.Enabled = false;
}
}

FlashControl

        public void TurnFlash(bool on)
{
var flashControl = mediaCapture.VideoDeviceController.FlashControl;

            if (flashControl.Supported)
{
if (on)
{
if (flashControl.PowerSupported)
flashControl.PowerPercent = 100;
#if WINDOWS_PHONE_APP
if (flashControl.AssistantLightSupported)
flashControl.AssistantLightEnabled = true;
#endif
if (flashControl.RedEyeReductionSupported)
{
flashControl.RedEyeReduction = true;
}
flashControl.Enabled = true;
}
else
flashControl.Enabled = false;
}
}

 

Como podéis observar, con el control del flash se pueden realizar más tareas que sólo tienen sentido en la captura de una imagen pero, que en el caso de mi aplicación de linterna no tendrían razón de ser, por eso, debéis usar la que se adapte mejor a vuestra aplicación en cada momento.

Notas importantes

Como siempre, recordad liberar los recursos de la cámara como os indiqué en el artículo anterior y, como apunte a este artículo, no os asustéis si el led no se enciende cuando estéis desarrollando, simplemente, tened en cuenta que si el dispositivo está conectado al PC (o a la corriente) el led no se activará con este código

 

Espero que os sea de ayuda. Enjoy coding!!

Codemotion 2015 | Resumen de mis sesiones sobre Branding y Universal Windows Platform Apps con Machine Learning

posterUn año más, Codemotion ha sido uno de los mayores eventos sobre tecnolgías de desarrollo de software de España y, este año, me ha tocado el privilegio de participar por partida doble con sesiones sobre Branding en SharePoint (Online y OnPremises) y sobre Aspectos útiles de Machine Learning en Universal Windows Platform Apps. Además, como siempre, Microsoft ha participado muy activamente arropando a los que íbamos a hablar sobre tecnologías .NET y relacionadas así como ofreciendo a todos los asistentes la posibilidad de pasarse por una amplia zona de entretenimiento y networking en la que se podía contactar con cualquiera de los miembros de DX e informarse de todas las ventajas que se ofrecen.

En la primera sesión sobre Branding en SharePoint hablé sobre cómo aplicar técnicas modernas de desarrollo web a la hora de aplicar Branding en los sitios de SharePoint Online u OnPremises.

2

 

En la segunda sesión, compartía cartel junto con el gran Adrián Díaz para hablar sobre “Aspectos útiles de Machine Learning en Universal Windows Platform Apps” con la sala llena a reventar, teniendo incluso gente de pie y más personas que entraron durante la sesión.

320151231053259WP_20151127_15_47_58_Pro

Ésta última sesión fue grabada y podéis ver el vídeo en Youtube

 

Las slides las podéis obtener de SlideShare

Modern Branding en SharePoint desde todos los ángulos

Aspectos útiles de Machine Learning en Universal Windows Platform Apps

 

Espero que os haya gustado el evento a los que estuvísteis y a los que no, el próximo año más 🙂

 

Enjoy coding!!!

Talks4Kids | Evento benéfico en favor de los niños

imageEl próximo viernes 4 de diciembre, gracias a la iniciativa de Josué Yeray, se celebrará el primer Talks4Kids en las instalaciones de Microsoft Ibérica (Urbanización La Finca en Pozuelo de Alarcón, Madrid) y tendré el enorme placer de poder impartir una sesión con un título atópico “Por qué los espartanos molan y Gerges debe morir”, pero no os asustéis, que no va a haber lanceros, ni persas, ni espartanos… ¿o sí? jjjj

 

¿Qué es Talks4Kids?

Bueno, lo mejor es que entréis en la web del evento para informaros de todo lo referente al mismo, pero en resumen, es un evento técnico, como todos los que solemos organizar y realizar, en el que algunos de los mejores ponentes/profesionales del territorio español impartirán charlas dirigidas a profesionales y estudiantes pero, con la diferencia de que esta vez os pedimos un poco de ayuda para los niños hospitalizados en forma de “entrada/donativo”. Todo lo recaudado (absolutamente todo) irá a parar a la Fundación Theodora para que haga más feliz la vida de los niños en los hospitales por medio de la risa.

 

Sorpresas por objetivos

Como objetivo, nos hemos propuesto dar las sesiones disfrazados si llegamos a los 1500€ de recaudación… y ya nos queda poco para tener que pasar vergüenza jjjj Si alguno sufre de problemas del corazón que lleve una venda y así no tendrá que pasar el mal rato viéndonos enseñar cuerpazos y además se evitará las pesadillas jjjj.

 

Me apunto!!

¿Aún no tenéis vuestra entrada? ¿A qué esperáis? O al menos colaborad de alguna de las tres formas que os he propuesto.

  • Entrada General: Si queréis asistir, la entrada/donativo será de 10€
  • Sólo donar: Si no podéis asistir al evento, podréis colaborar de igual forma mediante una donación (o las que queráis) de 5€.
  • Patrocinio: Si queréis patrocinar el evento, el donativo ascenderá a los 150€

Recordad que todo lo recaudado está destinado íntegramente a la Fundación Theodora.

 

Sinceramente os esperamos en el evento porque hay muchos niños que ya están esperando también a los chicos de la Fundación Theodora para alegrarles un poco la estancia en los hospitales. De verdad, ayudadnos a sacar la sonrisa de los niños que no hay cosa más bonita que ver a un niño sonreír.