# Saturday, November 1, 2014

A few months ago, I migrated this blog to Azure Web Sites.

I was aided by the fact that I use Das Blog as a blogging engine. This gave me two advantages:
1. I could select a Das Blog template from the Azure Web Site gallery, automatically configuring the appropriate settings for my site; and
2. Das Blog uses XML files instead of a database to store blog posts, so I was able to xcopy my entire blog to Azure.

The only real work was changing my DNS settings to point to Azure, which took a few minutes. I set the site to user the SHARED hosting plan, which lets me point a custom domain to it. More popular blogs (like yours) may need to use the BASIC or STANDARD Web Hosting Plan, but I stuck with the cheap one and it works fine for me.

The story here is what a non-story this migration was. My site was down less than an hour and most of that was because I messed up the DNS settings the first time. It is servicing requests just fine and I am saving money because this hosting plan is cheaper than what I paid to my old provider.

Currently, I'm not using any advanced features, such as Scaling, Autoscaling, and Web Jobs but those are available to me if I need them.

I love the simplicity of Azure Web Sites. If you are considering using Azure, this is a good place to start.

Saturday, November 1, 2014 11:27:51 PM (GMT Standard Time, UTC+00:00)
# Monday, October 27, 2014
Monday, October 27, 2014 11:17:10 PM (GMT Standard Time, UTC+00:00)
# Monday, October 20, 2014
# Saturday, October 18, 2014

What is Demand Elasticity, how does it affect my apps, why should I care, and how does Azure address this?

Demand Elasticity is an issue because almost no app has a constant demand over time: Some apps are used primarily during business hours and very little during the night; some apps have abnormally high demand during specific events, such as the launch of a new product or while NFL games are broadcasting; some businesses have peak seasons when they do nearly all their business (I once worked for an electronics retail store that earned over 80% of their revenue between Thanksgiving and New Years Day.)

Each of the above examples describes demand variability that you can plan for. An even more difficult problem is unexpected changes in demand. Imagine if a popular TV show recommends your online service. Demand would likely skyrocket. Could your services handle this extra, unexpected load?

Because of this change in demand, you need to decide how much hardware to deploy for your application. If you deploy too much hardware, you are wasting your money, but if you deploy too little, you will miss out on potential users and revenue. And in the fact that hardware is not easy or quick to deploy - It may take your organization weeks or months to respond to a sudden, unexpected increase in demand. And what do you do with that extra hardware when demand falls? For most organizations, it's not practical to buy and sell hardware as demand goes up and down.

Ideally, as demand increases and places higher load on your servers, you would increase the amount of hardware to which your application is deployed. Then, you would remove that hardware (and stop paying for it) as demand and workload decrease.  If you are managing and deploying the hardware yourself, this is not really practical. There is no quick market to buy and sell servers and most organizations take days – if not weeks – to provision a new server.

But Azure allows you to deploy more servers to your application and it automatically deploys them for you in a matter of minutes. Most services in Azure have a setting that allows you to change the number of running instances. This can be the number of web sites, web roles, mobile service, virtual machines, or dozens of other service instances available.

Below is the setting for configuring the number of instances of an Azure Web Site.
figure 1

Some services even allow you to automate this process. For example, you can configure Azure to monitor the CPU used by your web sites and automatically deploy a new instance of your site when CPU rises above a certain percent and remove an instance when it falls below a given percent. You can set a minimum and maximum to keep the number of instances within this range.

For Azure Web Sites, this Auto-scaling feature is available if we select the "Standard" hosting plan. Below are the controls that allows you to set these configuration.

Figure 2

Scaling up helps your service deal with extra usage (planned or unplanned), while scaling down helps you save money. The quicker you can do both, the more agile you will be.

Azure allows you the flexibility to scale up and down to meet changing demand.

Saturday, October 18, 2014 2:34:45 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, October 15, 2014

Yesterday was my 1-year anniversary at Microsoft.

The year has flown by. I remember being at a customer site in Toledo last summer when the recruiter called and offered me a job pending a background check. I remember standing outside the speaker room at Dev Connections in Las Vegas when my new boss Scott Fuller officially offered me the job. I remember how hard it was to tell my old boss I was leaving. I remember how excited I was to tell my friends the news. I remember feeling giddy that first day as I drove to Southfield for my orientation.

I had been trying to land a job as a Microsoft Technical Evangelist for years - ever since I first met Josh and Jennifer and Brian and Jeff and saw what they did and how smart they are and how how much good they were able to accomplish and how much fun they had doing it. But this job was only available in other parts of the country and family obligations kept me from moving. But last year, both my sons moved out of state and a Jennifer Marsman told me about an opening in Chicago and I jumped at the chance. A few months (and many interviews) later, I was in.

I spent the first week shadowing Jennifer, watching her work and learning as much as I could. I traveled to Chicago the next week and met with my new boss Scott and shadowed Dave Bost and Martin Schray, learning all I could from them.

Many people describe working at Microsoft as "drinking from a fire hose" and that is an excellent metaphor. There is so much to learn and so much to do and often it's not obvious what you should be doing or learning. My time management skills are honed sharper today than they ever have in the past.

I'm really happy in my role as an Evangelist, which consists of a lot of teaching people how to build apps on Azure, Windows 8, and Windows Phone. I love the opportunity to learn and I love the impact I have on a number of different communities. Coming in, I was focused on the developer community, spending time at user groups and code camps. But I've discovered that startups have their own community and they bring their own kind of passion to what they do. And I've spent a lot of time with student groups on campus and gained a new perspective into the American higher education system. I've met so many people who are passionate about what they do, which inspires me to excel at my tasks.

One challenge of this job has been the large amount of travel. Shortly after I joined, I was asked to cover both the Midwest and the Heartland Districts - an area stretching from Wisconsin to Tennessee. I'm proud to say that I scheduled multiple events in each of these 7 states. But it did involve a lot of driving and more than a few nights when I did not get enough sleep. I’m writing this article from a hotel room in Edina, MN. In a few minutes I’ll drive to Madison, WI to speak at a user group before driving down to Chicago tonight where I have 3 events planned for tomorrow.

After a year, I can say that I've learned a lot, I've done some good, I've lost some sleep, I've made some friends, and I've loved it.

Now I have a new boss, new metrics, and a new home (I've moved to Chicago). The future is filled with challenges. But it's very bright. I'm excited for the next 365 days and beyond!

Wednesday, October 15, 2014 4:19:56 PM (GMT Daylight Time, UTC+01:00)
# Monday, October 13, 2014
Monday, October 13, 2014 5:36:00 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, October 7, 2014
Tuesday, October 7, 2014 12:46:21 AM (GMT Daylight Time, UTC+01:00)
# Sunday, October 5, 2014

Today I am grateful for a weekend in Michigan.

Today I am grateful for time spent yesterday with Tim Giard. We shared a couple meals and he even attended my App Studio workshop at IU last night.

Today I am grateful for a great group of students who showed up for my first event at Purdue last night.

Today I am grateful for the gift of Life, which has been granted to me for yet another day.

Today I am grateful I finally made it home after numerous airport delays this weekend.

Today I am grateful for breakfast this morning with Josh Holmes

Today I am grateful I was able to write my first-ever Java code for Android yesterday.

Today I am grateful I finally made it to Redmond after multiple canceled flights yesterday.

Today I am grateful for an invitation to a Home Automation hackathon in Redmond.

Today I am grateful for my first trip to Rockford, IL and a great audience for my Azure Mobile Services presentation last night.

Today I am grateful I have a job that pays me to help others.

Today I am grateful for the past 9 days in which I saw many old friends, met lots of smart people, learned a lot, traveled to Colorado and California, & had a blast.

Today I am grateful to attend #FalafelCon and to all who came to my sessions yesterday.

Today I am grateful for an excellent steak diner last night and excellent company to share it with.

Today I am grateful for a weekend in San Francisco at #falafelcon

Today I am grateful I had a chance this week to meet and connect with so many of my peers from across the country.

Today I am grateful for the opportunity to assemble wheelchairs for ALS victims yesterday.

Today I am grateful for a chance to meet so many people on my team across the country.

Today I am grateful for a walk yesterday along Colorado mountain trails.

Today I am grateful for 1. Being pampered in first class for the first time in >5 years 2. Visiting Mile High Stadium for the first time and seeing an exciting football game.

Today I am grateful for my first trip to Colorado in almost 2 decades.

Today I am grateful I saw an exciting game at Miller Park last night. The Brewers won on a walk-off RBI in the bottom of the 9th.

Today I am grateful I was able to pay off some sleep debt last night.

Today I am grateful for the kind words from my boss during my first MS annual review.

Today I am grateful for a walk to the lake last night with Velichka.

Today I am grateful that the handyman I hired completed so many home repairs this past week.

Today I am grateful to spend this past weekend with a bunch of hackers and experience their passion for technology.

Sunday, October 5, 2014 8:46:00 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, October 1, 2014

Here is my interview with Todd Gardner of Track:js, describing his company and how they used BizSpark and Azure to grow.

Wednesday, October 1, 2014 7:24:06 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, September 30, 2014

Often, it is better to show us how to do something than to tell us. Samidip Basu’s Real World Windows 8 Development does both.

Basu begins the book by describing the basics of a Windows 8 application – controls, navigation, data binding, etc. Next, he covers more advanced features, such as remote debugging and accessing the hardware features on your PC or tablet.

Along the way, he demonstrates each concept by adding features to his sample – a book catalog application.

I found this book educational – in large part because both the code and the writing are straightforward and free of clutter. I learned more from downloading and exploring the sample code than I did from the text.

This book serves as a solid introduction to Windows 8 development and as a reference for intermediate developers to use.


Tuesday, September 30, 2014 12:20:00 PM (GMT Daylight Time, UTC+01:00)