Reliably Processing Azure Service Bus Topics with Azure Functions


At ASOS, we’re currently migrating some of our message and event processing applications from Worker Roles (within classic Azure Cloud Services) to Azure Functions. A significant benefit of using Azure Functions to process our messages is the billing model. As an example, with our current approach, we use a Worker Role to listen to subscriptions to Azure Service Bus topics. These Worker Roles are...

Disable gzip responses in Azure Functions


By default, responses from Http Triggered Azure Functions are gzipped: Not all clients are able to handle this (although they should be) Turning it off isn’t particularly trivial. A change needs to be made to applicationhost.config – which is located in LocalSiteRoot/Config However, this file is readonly, so the change needs to be made via a xdt transform. In the Azure portal...

A Seller On Amazon Offered Me An Incentive To Leave A 5* Review


I buy a lot on Amazon. Probably too much. I enjoy the convenience, pricing (mostly) and reviews. Reviews, however, have to be looked at carefully. Some sellers, particularly new sellers (or selling new products) offer incentives for 5* reviews. I knew this practice happened, but I’d never experienced it first hand. I recently bought a product on Amazon, with a smattering of 5* reviews. I...

Some products on Amazon cost MORE on Amazon Prime, Even For Prime Members!


Earlier today I was looking to purchase an item on Amazon. (2x VonHaus Vertical Wall Mount Bike Cycle Storage Hooks to be specific) I found them for £7.99 – available next day, on Prime. However, I noticed it was available £1 less in the “other sellers” bit. Curious, I took a look: Both same product Both same vendor Prime was however £1 more. This was despite me being a Prime...

Better assertions when verifying Moq’d methods have been called

Man wearing fake glasses and moustache

Moq, according to its GitHub page, is “The most popular and friendly mocking framework for .NET”. Mocking frameworks allow you to create a ‘fake’ version of a dependency (typically an interface, or abstract class). With this fake, you can then instruct the methods return values, or invoke behaviour. Alternatively you can assert the methods were called, with a certain set...