¡MVP por cuarto año!
· ☕ 1 minutos lectura · ✍️ Saturnino Pimentel
¡Hola de nuevo! El primero de Julio ha llegado el tan esperado correo de renovación del programa MVP, mismo que se recibe con la misma emoción y expectativa que el primero, este año me han ubicado en la categoría de Developer Technologies, tengo que agradecer a toda la comunidad de desarrolladores en México, a mis compañeros MVP y a mi familia que siempre tolera y apoya en las actividades con las comunidades.

Iniciando con Cognitive Services
· ☕ 4 minutos lectura · ✍️ Saturnino Pimentel
En la actualidad es cada vez más común escuchar de servicios de Inteligencia Artificial que hacen cosas increíbles desde permitir identificar si en una imagen se encuentra o no un hotdog hasta algo realmente importante como ayudar a personas con capacidades diferentes a mejorar sus vidas , existen en la actualidad varias empresas que están compitiendo por el mercado de lo que ahora se conoce como Machine Learning as a Service, las compañías que destacan son Amazon, Google Cloud y por supuesto Microsoft Azure, quienes en la competencia por ofrecer estos nuevas características tiene en su cartera varios servicios que nos permiten incluir por ejemplo análisis de imágenes en nuestras aplicaciones, en esta serie de post estaré hablando de los Cognitive Services, pero primero revisemos algunos conceptos básicos.

Azure Functions [Webcast]
· ☕ 1 minutos lectura · ✍️ Saturnino Pimentel
Hola, El día de hoy he participado en los webcast que organiza @hjaimesdev donde hemos hablado de Azure Functions les comparto la grabación. ¡No olviden dejar sus comentarios!

Serverless con Azure Functions
· ☕ 4 minutos lectura · ✍️ Saturnino Pimentel
¡Hola de nuevo a todos! En este post les hablaré de conceptos base a la hora de trabajar con Azure Functions y que creo que les serán de utilidad si es que aún no los conocen, dicho esto iniciemos por la siguiente pregunta. ¿Qué es Serverless? Suena bastante espectacular, sin servidor, pero sí existe un servidor, solo que para ti son transparentes las tareas que se realizan en él, es decir delegas la administración de los servidores que soportan las tareas que tú quieres, actualizaciones de SO y de framework, auto escalado, etc.

How to: Eliminar opciones de copiar/pegar en UITextField [Xamarin.iOS]
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
¡Hola de nuevo! En algunos casos nos resultará necesario deshabilitar las opciones de copiar y pegar de controles de texto (UITextField) en iOS, para realizar esto se deben seguir los siguientes pasos. 1.- Crear una clase que herede de UITextField. [Register(nameof(MyCustomTextField))] public class CustomTextField : UITextField Es este paso debemos recordar registrar nuestra clase utilizando el atributo Register. 2.-Sobrescribir el método CanPerform Se necesita sobrescribir este método y regresar false para indicar que esa opción no está disponible en el control tal como se muestra en el siguiente código para las demás opciones puedes retornar la implementación base del método.

Resumen 2017
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
Después de varios años de escribir el blog este es el primer resumen anual que me decido a hacer. En años anteriores he sido más constante, pero este año fue difícil en varios aspectos, así que el blog ha quedado en pausa, sin embargo otras actividades ocuparon mi tiempo como lo fue organizar el meetup de c# (es probable que comparta algunas de las experiencias aprendidas en posts durante el 2018 aunque aún no estoy convencido).

Agrupación de marcadores en Xamarin.iOS 11.0+
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
Hace no mucho tiempo estaba investigando sobre el uso de mapas en Xamarin.iOS en específico de la agrupación de marcadores, para versiones anteriores a la 11 del SDK en iOS no encontré una implementación que ya fuera manejada por el MKMapView aunque había otros proyectos que ya te permitían implementar la funcionalidad, después de esa búsqueda me di una vuelta por Xamarin University (algo que debí hacer desde el inicio :D) y me encontré con el material actualizado y la grata sorpresa de que ya existe una forma de hacer una agrupación sin mucho esfuerzo haciendo uso del tipo MKMarkerAnnotationView.

How to: utilizar datos de prueba para diseño en Xamarin.Forms
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
Durante el proceso de desarrollo de interfaces de usuario dentro de Xamarin.Forms es necesario contar con datos para ayudarnos con el diseño ya que es difícil esperar hasta ejecutar nuestra aplicación para ver cómo se comportarán nuestros controles y en caso de no obtener los resultados deseados detener la aplicación, realizar los cambios necesarios y volver a ejecutar la aplicación. Ciertamente existen herramientas muy potentes como livexaml (del que seguramente ya habrás leído y del cual @jsuarezruiz tiene un excelente post que te invito a leer) o puedes hacer uso del Xamarin Live Player que se encuentra en preview, pero también tienes como opción el Xamarin.

Definir keystore en proyecto Xamarin.Android en Visual Studio
· ☕ 1 minutos lectura · ✍️ Saturnino Pimentel
Hola, Algunas ocasiones en el desarrollo de aplicaciones con Android es necesario firmar la aplicación con un keystore diferente del que se genera por defecto en Visual Studio, para estos escenarios puedes agregar las siguientes configuraciones de construcción en el archivo csproj del proyecto de android para que tome esos datos para firmar tu aplicación en lugar de tomar los que se tienen por defecto. 1 2 3 4 5 6 7 8 <PropertyGroup Condition="'$(Configuration)' == 'Debug'"> <!

Apuntes SQLite
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
¡Hola! En algún post anterior ya había escrito de SQLite, ahora me gustaría compartirles algunas notas adicionales que he ido recolectando de cursos y experiencias. Cómo utilizarlo en UWP En el post que he mencionado anteriormente me ha faltado agregar UWP, los pasos adicionales a realizar es agregar la referencia a Microsoft Visual C++ 2013. Y regresar la ruta del folder local con el siguiente código. string path = ApplicationData.Current.LocalFolder.Path; string fullPath= Path.