Failure is inevitable


Practical Promises in JavaScript - Returning New Promises with Chaining Promises

Welcome to part 4 of my Practical Promises series! In part 1, we talked about what promises are an [More]

Practical Promises in JavaScript - The Basics of Promise Chaining

Welcome to part 3 of my Practical Promises series! In part 1, we talked about what promises are and what they can be used for. In part 2, we started looking at how we can create promises. Today, we're going to look at how promises can be chained together. More...

Practical Promises in JavaScript - Making Promises

In part 1 of our series, we covered the basics of promises. We know what they are. We know how to use then to receive the value of a promise once it's available. We know how to use catch to be notified when something goes wrong. But we haven't yet created a promise! In this post, we'll learn how to create promises. More...

Practical Promises in JavaScript - What are they, and how do I use them?

JavaScript promises are a concept that I see developers, both pros and novices, struggle with on a regular basis. For those of us that come from a synchronous-programming background, using them effectively and understanding what's happening can be challenging, especially if you don't have a good grasp on all the ways that promises can be manipulated and used. In this new series of posts, we'll be looking at how to use promises effectively. More...

Altering a JSON Response with Azure API Management Portal Policies

Altering a JSON Response with Azure API Management Portal Policies One of my clients has started using Azure API Management (APIM) on top of their ASP.NET Web API endpoint. This worked fine for just about everything, with very few changes, until we started returning paged result models. Suddenly, our clients were making requests to the internal URL, and not the APIM URL, and things started blowing up. There's a happy ending to this story though, as fixing the issue was easy, thanks to APIM's built-in Policies. More...

Handling Environment-Specific Configuration with Visual Studio Tools for Apache Cordova

I would wager that just about every app you work on is actually deployed in multiple environments. [More]

SpecsFor and SpecsFor.Mvc Updated!

Thanks to some nice pull requests by Gheorghe Bulicanu, both SpecsFor and SpecsFor.Mvc have been updated! SpecsFor 5.0.1 fixes the annoying issue regarding incompatibility with NUnit 3.0. The SpecsFor now correctly restricts to versions less than 3.0 (which isn't currently supported.) SpecsFor.Mvc 4.8.0 includes updated Selenium WebDriver support, which will work with the latest versions of Chrome and IE. Both packages are available on NuGet now. Thanks again, Gheorghe, for the pull requests!

Turn an Array into Proper-English with an AngularJS Filter

I needed a way to display a nicely-readable list of strings for an app I'm working on. And by that, I mean that I wanted to display, "Mary, John, and Mark" instead of "Mary, John, Mark". A simple ngRepeat would have been too complex for this, so, filters to the rescue! More...

CodeStock 2017 Voting is Open!

It's that time of year again. Another CodeStock is right around the corner, and that means it's time to vote for sessions! More...

What Time is It (in the cloud with .NET and Azure)?

Seriously, I just need to know what time it is! But that's a harder question to answer these days. *At least* half the apps I work on require some form of "Tell me what's happened **today**" reporting. And **today** depends on where the user is. And **today** where the user is doesn't match **today** where the app is running in Azure, which uses UTC. [More]