Windows 10 Launches Tomorrow. Get It Free Today.

This my Tech PSA for everyone out there not following Windows 10 or tech news in general.  Windows 10 launches tomorrow and if you are running Windows 7 or 8, you get it free. So how do you get it?  Easy.

Look in the system tray for the Windows logo.  For those less tech savvy, that’s the area in the lower right next to the clock.

Click on the Windows logo and follow the prompts to reserve your copy.

Windows 10 should start downloading in the background and as soon as it is released tomorrow you will be able to start the upgrade.

If you’re not sure if Windows 10 is right for you, you can check out all the new features here.  My answer is: If you’re running Windows, yes, you want Windows 10.

Delete cookies for a single site or domain in all browsers


Sometimes when debugging a web site you are working on, you want to clear out cookies for a single site however you don’t want to clear out all of your cookies.  Some cookies you want to leave there, like your cookies that are set by Gmail/Facebook/Twitter/ for 2 factor authentication or many other reasons.  Up until now I have cleared them all out each time I need to clear cookies for a single web site I am working on.  Here’s how you can clear cookies for a single domain and keep those time saving cookies.


  • Hit F12
  • Click on Network
  • Click Clear Cookies for domain


  • Click the Chrome menu Chrome menu on the browser toolbar.
  • Select Settings.
  • Click Show advanced settings.
  • In the “Privacy” section, click the Content settings button.
  • In the “Cookies” section, you can change the following cookies settings:
  • To delete a specific cookie, hover over the site that issued the cookie with your mouse, then click the X that appears on the right corner.


  • Click the menu button and choose Options
  • Select the Privacy panel.
  • Set Firefox will: to Use custom settings for history.
  • Click Show Cookies…. The Cookies window will appear.
  • In the Search: field, type the name of the site whose cookies you want to remove. The cookies that match your search will be displayed.
  • Select the cookie(s) in the list to remove and click Remove Cookie.


  • Choose Safari > Preferences, and then click Privacy.
  • Click Details.
  • Select one website that stores cookies, and then click Remove
  • When you finish removing websites, click Done.

Our trip to Banff, Alberta Canada

A little off topic but I just wanted to share some pictures and a video of our trip to Banff.  We flew in to Edmonton, drove to Banff, Lake Louise, and stayed on Canmore.  We go to see quite a bit the few days we were there.  After a long weekend, we flew back to the States out of Calgary, Alberta.




This is a collection of videos from my phone that I captured while in Banff, Alberta – Canada.  Everything was taken using my Lumia 1020 Windows Phone.


How to Cache Output in ASP.NET Web API 2

ASP.NET Web API is a simple way to create a pretty nice and robust API.  I have a need for a simple API and ASP.NET fit the bill.  I created an API for my Space Weather application for all of my clients to connect to.  The API is pretty simple, it just feeds the clients objects in JSON for them to parse and bind to the UI.  After rebuilding my Azure virtual machine, I decided to add some caching to the results.  Since Web API doesn’t include an easy way to cache output like MVC did I had to find a solution. For me, the best (an easiest) solution was OutputCaching.  It’s super simple to set up.

Get the NuGet Package

Grab Filip W’s CacheOutput library.  I am using WebAPI 2.  I used package manager to get it:

This handles 90% of it.

Add the Attribute

The rest is just decorating your controllers just like you would for MVC.

In my example,  I am telling it to cache the results for both client and server-side for 600 sec (10 min).  There isn’t a whole lot of science behind choosing 10 minutes, and I could have written some fancy code to figure out when my scheduled job ran last but I wanted to keep it simple.


So, did it really work?  Let’s fire up Fiddler and find out. Hit your web endpoint, and take a look:

Sure enough, you can see the client is told to cache for a max of 600 and you can see the ETag letting you know that the server is caching.


So why do I choose to cache my output?  Simple.  I have a micro virtual machine on Azure and I didn’t want each and every web request to retrieve results from my database creating lots of churn and processing resulting in more disk activity and slower results.  Before going and implementing this I suggest you first evaluate your needs.  My needs are to return slow changing results to mobile clients as fast as possible without creating a lot of churn on the server.  I don’t want my customers to wait for results, especially if the result is the same.  My results change 4 times an hour and so caching this is the right thing to do in my scenario.  With that being said, I think this NuGet package help me meet this goal.

(Hanselman recommends Cache.Cow, although I like the simplicity and familiarity of decorating my Web API controllers with attributes using CacheOutput.)

Did a recent Windows update break setting an iframe source in Windows 8.1 apps?

I have a Windows 8.1 application that is a wrapper around a web site. I have 3 versions of the site that the user can switch between with a control I built. The control sets the iframe source to the respective site.  It seems like a recent Windows update  broke this (not sure if it was 05/2014 or 06/2014). Here is how I set the iframe’s source:

Nothing odd here.  Just some plain old JavaScript setting the window location.  The window location never changes but I do see an error.

Here is the error I get in the JavaScriptConsole:

APPHOST9624: The app cant use script to load the url because the url launches another app. Only direct user interaction can launch another app.

I have even tried adding the site to the ApplicationContentUriRules in the manifest but it didn’t fix it.

Truth be told, the user is not interacting with the app on this specific event, the control is in a settings flyout and is invoked when the selection changes.  BUT, technically it is not launching another app (if I take the error message as is).  I’m not  launching a new window with that location, I am setting the current window to a new location. It works when the app loads for the first time but not when I hook into an event that is driving from a selection control item changed event.  It still works if I target Windows 8.0.  I am hoping this is a bug and it will be reversed, otherwise I will have to come up with another solution for changing sites.

Is anyone else setting an iframe source this way in a Windows 8.1 app?  Is there a better way to do this?

Our First Garden


Usually I post about tech things in my life but this one is a little different.  It doesn’t involve any technology at all, well maybe low tech if you count the Visio diagram!  Here is our first garden that we planted in our back yard.  It is not a vegetable garden, but a flowing garden that will hopefully produce some flowers over the next few years.   We got a bit of a late start but hopefully the perennials grow some deep roots before the cold Minnesota winter comes.  Here is a diagram with all the plants we used.

I’ll try to post some photos after it grows a little bit more.