Jim Bennett
Cloud Developer Advocate

Senior Cloud Developer Advocate at Microsoft, Xamarin Certified Developer, author of Xamarin In Action, blogger, speaker, father and lover of beer, whisky and Thai food. Opinions are my own.

  Reading, UK

See me soon at:

DevItCof
Caribbean Developers Conference
Expert Day For Xamarin

My book:

Xamarin In Action

My podcast:

The Jim And Tonic Show
The Jim And Tonic Show on iTunes

Contact me:

  Xamarin In Action
  Twitter
  The Jim And Tonic Show
  GitHub
  LinkedIn
  YouTube
  Email
  CV

What the @ - fixing weirdness in return JSON from Azure functions using F#

I've been playing a lot with F# recently, both to build Xamarin apps using Elmish.XamarinForms and for some Azure Functions. Whilst building an HTTP trigger I came across some weirdness when serializing a record type to JSON. This is the relevant parts of my code: type Output = { TotalBalance : float } let Run(req: HttpRequestMessage, boundTable: I…

Read More

Xamarin Essentials

TL;DR - check out Xamarin Essentials in the official documentation. Like a lot of developers, I love how Xamarin allows me to share business logic between iOS and Android apps, and share UI using Forms, but still have access to the native APIs. But one thing has been missing - a consistent, out of the box way of accessing native APIs from cross-pla…

Read More

Building mobile apps in F# using Xamarin.Forms and Elmish

FSharp and Xamarin Xamarin is well known for allowing you to build mobile apps in C#, but you can use F# as well. F# is fully supported by the compiler and toolchains in both Visual Studio 2017 and Visual Studio for Mac. It's also pretty much supported by all the Xamarin tools including Xamarin.Forms (except for one bug that should be fixed soon).…

Read More

The Jim and Tonic show

Since starting at Microsoft as a Senior Cloud Developer Advocate I've been hugely privileged surrounded on a daily basis by some of the most awesome people across a wide range of developer communities - the rest of the Cloud Developer Advocacy team. These are engineers who constantly work to make the world amazing for developers across a wide range…

Read More

Face identification with Azure FaceAPI

Recently I've been playing with a lot AI and seeing how it can be used in mobile apps to enhance the experience offered to the user. Currently I am playing with facial recognition using the Azure Cognitive Services FaceAPI. This is a stupidly powerful API that can do a LOT of different things: Detect faces in images Analyze those faces to detect ch…

Read More

Identifying my daughters toys using AI - Part 5, Plugin for on-device models

In the first part of this series I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. In the second part I accessed this model from a Xamarin app, so that I could use the ca…

Read More

Identifying my daughters toys using AI - Part 3, using the models offline in iOS

In the first part of this series I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. In the second part I accessed this model from a Xamarin app, so that I could use the ca…

Read More

Identifying my daughters toys using AI - Part 2, using the model

In the first part of this post I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. Although this works, it's a long winded way of using the model. Ideally I'd want it in a…

Read More

Hiding API keys from Git

I've been working on a Xamarin app using Azure Cognitive Services to do image recognition, and one of the stumbling blocks I've faced is what to do with my API keys. I want to make the app open source as an example of how to use these services, but don't want to check my API keys into Git to be available to all - after all, bad things can happen. I…

Read More

Getting a users Facebook profile after Authenticating your Xamarin app with Azure

I've recently been looking at the authentication offered by Azure for use in a mobile app, specifically using social auth providers like Facebook to allow a user to sign up for my app. The auth setup is incredibly easy, with Azure taking care of a lot of the hard stuff. There are also loads of great docs on how to get it set up - including the Micr…

Read More

Creating Visual Studio project and solution templates - Part 3, VS for Mac extension

In the first part of this set of posts I looked at creating a dotnet new project template, and in the second part I showed how you could easily add this to a Visual Studio for Windows extension. Lets now look at adding it to a Visual Studio for Mac extension, so that our template is available everywhere. It's really easy to create extensions for VS…

Read More

Creating Visual Studio project and solution templates - Part 2, VS for Windows extension

In the first part of this set of posts I looked at creating a dotnet new project template. These are great if you like the cli, but if, like me, you'd rather be able to do File->New then dotnet new is not much use. Instead you need a Visual Studio extension that provides a new project or solution type to the IDE. The good news is that you can easil…

Read More

Hitting refresh on my career

Inspired by Satya Nadella's Hit Refresh, a book well worth reading, I thought I'd write about my Hit Refresh moment. Hit Refresh is inspired by refreshing your browser - it doesn't reload everything, instead it just reloads part of the page. This is reflected in how we can change our lives, not by a complete change, but by refreshing a part. In my…

Read More
 

What the @ - fixing weirdness in return JSON from Azure functions using F#

I've been playing a lot with F# recently, both to build Xamarin apps using Elmish.XamarinForms and for some Azure Functions. Whilst building an HTTP trigger I came across some weirdness when serializing a record type to JSON. This is the relevant parts of my code: type Output = { TotalBalance : float } let Run(req: HttpRequestMessage, boundTable: I…

Read More

Xamarin Essentials

TL;DR - check out Xamarin Essentials in the official documentation. Like a lot of developers, I love how Xamarin allows me to share business logic between iOS and Android apps, and share UI using Forms, but still have access to the native APIs. But one thing has been missing - a consistent, out of the box way of accessing native APIs from cross-pla…

Read More

Building mobile apps in F# using Xamarin.Forms and Elmish

FSharp and Xamarin Xamarin is well known for allowing you to build mobile apps in C#, but you can use F# as well. F# is fully supported by the compiler and toolchains in both Visual Studio 2017 and Visual Studio for Mac. It's also pretty much supported by all the Xamarin tools including Xamarin.Forms (except for one bug that should be fixed soon).…

Read More

The Jim and Tonic show

Since starting at Microsoft as a Senior Cloud Developer Advocate I've been hugely privileged surrounded on a daily basis by some of the most awesome people across a wide range of developer communities - the rest of the Cloud Developer Advocacy team. These are engineers who constantly work to make the world amazing for developers across a wide range…

Read More

Face identification with Azure FaceAPI

Recently I've been playing with a lot AI and seeing how it can be used in mobile apps to enhance the experience offered to the user. Currently I am playing with facial recognition using the Azure Cognitive Services FaceAPI. This is a stupidly powerful API that can do a LOT of different things: Detect faces in images Analyze those faces to detect ch…

Read More

Identifying my daughters toys using AI - Part 5, Plugin for on-device models

In the first part of this series I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. In the second part I accessed this model from a Xamarin app, so that I could use the ca…

Read More

Identifying my daughters toys using AI - Part 3, using the models offline in iOS

In the first part of this series I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. In the second part I accessed this model from a Xamarin app, so that I could use the ca…

Read More

Identifying my daughters toys using AI - Part 2, using the model

In the first part of this post I used the Azure Custom Vision service to create an image classifier to allow me to easily identify my daughters cuddly toys. Once created I tested it by uploading an image and seeing what tags the classifier found for the image. Although this works, it's a long winded way of using the model. Ideally I'd want it in a…

Read More

Hiding API keys from Git

I've been working on a Xamarin app using Azure Cognitive Services to do image recognition, and one of the stumbling blocks I've faced is what to do with my API keys. I want to make the app open source as an example of how to use these services, but don't want to check my API keys into Git to be available to all - after all, bad things can happen. I…

Read More

Getting a users Facebook profile after Authenticating your Xamarin app with Azure

I've recently been looking at the authentication offered by Azure for use in a mobile app, specifically using social auth providers like Facebook to allow a user to sign up for my app. The auth setup is incredibly easy, with Azure taking care of a lot of the hard stuff. There are also loads of great docs on how to get it set up - including the Micr…

Read More

Creating Visual Studio project and solution templates - Part 3, VS for Mac extension

In the first part of this set of posts I looked at creating a dotnet new project template, and in the second part I showed how you could easily add this to a Visual Studio for Windows extension. Lets now look at adding it to a Visual Studio for Mac extension, so that our template is available everywhere. It's really easy to create extensions for VS…

Read More

Creating Visual Studio project and solution templates - Part 2, VS for Windows extension

In the first part of this set of posts I looked at creating a dotnet new project template. These are great if you like the cli, but if, like me, you'd rather be able to do File->New then dotnet new is not much use. Instead you need a Visual Studio extension that provides a new project or solution type to the IDE. The good news is that you can easil…

Read More

Hitting refresh on my career

Inspired by Satya Nadella's Hit Refresh, a book well worth reading, I thought I'd write about my Hit Refresh moment. Hit Refresh is inspired by refreshing your browser - it doesn't reload everything, instead it just reloads part of the page. This is reflected in how we can change our lives, not by a complete change, but by refreshing a part. In my…

Read More