Greg Shackles

Navigation

Building a Voice-Driven TV Remote - Part 1: Getting The Data

When thinking recently about the types of things I wish I could control by voice in my house, one of the obvious answers was everything in my media center setup. I've had a Harmony One for over eight years now which has always done a great job at helping coordinate all the different devices and activities (seriously, few products age as well as that thing has), but that of course requires actually using the remote. I…

Building Flexible and Efficient Xamarin Apps with GraphQL

There are a lot of ways to approach building APIs for your apps, and no shortage of arguments that ensue whenever discussing them. One of the more standard approaches is to go with a RESTful design (cue the obligatory argument on what this actually means...), which has its advantages but can also lead to needing to make several requests to get the data you want, and can sometimes have a negative impact on mobile performance. Similarly…

Getting Started With Serverless and TypeScript

If you're doing any "serverless" development on AWS Lambda, you should definitely check out the similarly named Serverless framework. Serverless makes it much easier to build manageable applications with this sort of architecture, taking away a lot of the painful things you would otherwise need to manage and automate yourself. As you write these event-driven systems, a lot of your functions end up looking like data pipelines - your function receives some input, processes or transforms…

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…