Greg Shackles

Navigation

Creating Slack Slash Commands With Azure Functions

One of the nice features of Slack is how easy they make it to add custom slash commands simply by providing an HTTP endpoint for them to call. This is the kind of scenario where a "serverless" architecture shines, allowing you to create these HTTP endpoints without having to maintain any actual infrastructure for it. In this post I'll show how easy it is to write a custom Slack slash command that is backed by Azure…

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 the entire…

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…