Greg Shackles

Navigation

Getting Started with Azure Functions and F#

While it's been possible to use F# in Azure Functions for some time now, it wasn't until this week that it really became a first class citizen. Previously it would execute your F# scripts by calling out to fsi, but now the runtime is fully available, including input and output bindings, making it a far more compelling option. I recently built a somewhat complex "serverless" application using AWS Lambda and JavaScript, thinking to myself…

Exposing ADO.NET Performance Counters through Datadog

There are a number of useful performance counters exposed for System.Data.SqlClient that can provide some nice insight into what's going on under the hood of your applications. Today I found myself monitoring the NumberOfReclaimedConnections counter to track down some connections that weren't being properly disposed. It's certainly not ideal to need to log into the servers to monitor this, so I went off looking for how to expose this through our Datadog dashboards. On…

Using Speech Recognition in iOS 10

There's a lot of awesome stuff coming in iOS 10, but one of the things I'm most excited about is that now there's actually an API for doing speech recognition in your apps. It was sort of possible to do this previously through some hackery (I have a bit of experience there), but now Apple is finally making it easy to leverage their great dictation feature in any app. Let's take a look at how easy…

Composable Customizations with Xamarin.Forms

In the early days of Xamarin.Forms, if you wanted to start customizing any of the built-in controls in ways beyond what were explicitly exposed on those controls, you probably found yourself creating a lot of custom renderers. Renderers can be a great way to hook into the Xamarin.Forms rendering pipeline and inject your own customizations, but it can quickly get unwieldy if you do it a lot, and is often a larger hammer than…