# Monday, April 13, 2015

Episode 361

Dave Voyles on WebGL

Monday, April 13, 2015 3:24:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, April 6, 2015
# Sunday, April 5, 2015

Today I am grateful to watch the game and have dinner last night in Indianapolis with Nick Giard.

Today I am grateful that my taxes are completed and filed early this year.

Today I am grateful to Jesus Christ, who died for my sins.

Today I am grateful for an afternoon yesterday walking around Chicago acting like a tourist. I visited the Chicago Temple - a church sanctuary 23 floors above the Loop - and I rode the water taxi up and down the Chicago River.

Today I am grateful for dinner and ice cream with the Kevin and Darlene last night in St. Louis.

Today I am grateful to attend a .NET User Group in St. Louis last night.

Today I am grateful for a brief visit yesterday in New Jersey with my cousin Linda and her family, who I haven't seen in years.

Today I am grateful to Rowena, Esther, Fernanda, Brian, and all who made the US MVP Open Days a success!

Today I am grateful for the toughness shown by the Spartans in the last few games.

Today I am grateful for dessert with Oksana last night.

Today I am grateful that my cousin Kevin - who has been a widower for years - found someone to share the rest of his life with.

Today I am grateful I got to witness an exciting 4th-quarter comeback and a last-second victory by the Bucks last night at the Bradley Center.

Today I am grateful I finally got my Illinois driver's license yesterday.

Today I am grateful for an exciting Spartan victory over an excellent opponent, sending MSU to yet another Sweet 16!

Today I am grateful to those who suggested that my illness yesterday was due to dehydration. They were right and I am better.

Today I am grateful for an active crowd full of questions at yesterday's Cloud Dev Camp in Denver.

Today I am grateful my car was not towed yesterday in Michigan.

Today I am grateful I got to hang out with Leon last night.

Today I am grateful for a phone call from Adriana - our first conversation in 35 years.

Today I am grateful for a chance to get back to Michigan for a few days.

Today I am grateful to spend most of Saturday with my son Tim.

Today I am grateful for a chance to learn and to be inspired and to see old friends at the KalamazooX conference yesterday. #kalx15

Today I am grateful for unexpectedly running into Paul at dinner last night.

Today I am grateful for my first time speaking at the Houston .NET User Group.

Today I am grateful for dinner last night with Paul, Brad, and Janet.

Today I am grateful for my first trip ever to Austin, TX.

Today I am grateful I made it safely to Austin yesterday after 1 flight, 2 Uber rides, a cab ride, & a 3-hour Greyhound bus ride.

Today I am grateful I slept almost the entire 3-hour flight from Chicago to Houston.

Today I am grateful for a hot shower and a hot latte to partially offset a lack of sleep this weekend.

Today I am grateful for all the Purdue students who showed up for this weekend's hackathon.

Today I am grateful I was able to catch up on some things yesterday that I can only get done in my office.

Today I am grateful for a few days in Miami in the middle of winter.

Today I am grateful for Yelp, which helps me find tasty and interesting meal choices in a strange city.

Today I am grateful for a chance to watch the Heat play the Suns in Miami last night.

Today I am grateful for all the birthday wishes yesterday.

Sunday, April 5, 2015 6:01:11 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, April 1, 2015

The MVP team is now part of DX and we are actively working together to connect with MVPs. One step toward this was the

The event was organized by Esther Lee, Rowena Branch, Fernanda Saraiva, Brian Prince, and others.

Registration was capped at 100 and about 90 MVPs attended for 2 days of technical content, roundtable discussion, and providing feedback.

The content was mostly presented under NDA, but a few of the presentations were:
•    "What's Next for Developers?" presented by NuGet PM Jeff Fritz
•    "Overview of Microsoft's Digital Crime Unit" presented by Tim Pash of the Philadelphia MTC
•    "Working with your Evangelist: Understanding DX priorities" presented by DX Audience TE Nick Landry. I really liked Nick’s analogy of Evangelists as sherpas, helping to guide others to greatness (I hope I’m not violating any NDA by repeating that).
•    I gave an overview of Universal Apps.

Dave Voyles and Shahed Chowdhuri of the DX Audience team also presented, as did NuGet PM Jeff Fritz and CVP Brian Harry.

MVP Open Days have taken place in other parts of the world, but this was the first one in the US. The reception was very positive by the attending MVPs with many expressing a desire to see more events like this in the future.

Another Open Days event seems likely in the future, but the location is currently undecided.

MVPs and blue badges at the US MVP Open Days

A packed room

Me and Esther Lee – one of the event organizers

Hanging out with some of the organizers after the event

Wednesday, April 1, 2015 1:47:00 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, March 31, 2015

Years ago, Brian Prince became famous for a talk on developer soft skills. This presentation resonated with developers at technology conferences and user groups because so few people were talking about this subject. Michael Eaton - a regular at technical conferences - recognized this lack of speakers addressing this topic and decided to create an entire conference focused on soft skills. This was how the Kalamazoo X conference began in Kalamazoo, MI in 2009.

Many tech leaders from around the region and the country converge on Kalamazoo, MI to lend their knowledge, including Cory House (Kansas City, KS), Alan Stevens (Knoxville, TN), Jim Holmes (Dayton, OH), Jay Harris (Hartland, MI), Cori Drew (Dallas, TX), Jeff Blankenburg (Columbus, OH), and Elizabeth Naramore (Cincinnati, OH).

I’ve been a fan of KalamazooX from the beginning and I’ve spoken at the conference twice. Those who follow me on social media will know that I begin each day by completing the sentence "Today I am grateful for...". That tradition was inspired by a couple of presentations at KalamazooX 2 years ago.

I've attended all but one KalamazooX conference, so I made a point to make it this year, even though my flight from Houston arrived in Chicago the morning of the conference and I had to drive to Kalamazoo. The morning flight meant that I could only attend the afternoon sessions this year; but they did not disappoint.

Elizabeth Naramore and Microsoft's Jeff Blankenburg each spoke about capturing the spirit of a novice, when you are driven by curiosity and unafraid to fail - before expectations make you think that there is something wrong with risking failure.

Dawn Kuczwara in her presentation titled "Give It Up" told managers that it is necessary to relinquish control and allow your subordinates to manage their own work in order for most projects and teams to succeed.

Cori Drew spoke of ways she inspires her daughter to develop a passion for technology in her talk on "Geek Parenting".

Although primarily attended by software professionals, KalamazooX is very different from any other technical conference - it focuses on the parts of our career that is important - but ignored at most conferences. I've heard many people describe how inspired and energized they are by this conference.

I woke up in Houston at 3 AM and flew/cabbed/drove over 1300 of miles to attend. And it was worth it. I'm looking forward to next year.

Kalamazoo X speakers and organizers

A full room listens to Dawn Kuczwara

Elizabeth Naramore presenting “The Beauty of a Beginner’s Mind”

Conference organizer Michael Eaton introduces the next speaker.

View more photos at http://giard.smugmug.com/Tech-Community/KalamazooX-2015/.

Tuesday, March 31, 2015 4:15:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, March 30, 2015
Monday, March 30, 2015 8:08:25 PM (GMT Daylight Time, UTC+01:00)
# Thursday, March 26, 2015

A number of friends and colleagues had recommended Uber and insisted it was better than taxi services. So I decided to try Uber for a few weeks while I was traveling out of state (Florida, Texas, and Colorado) these past few weeks.

My first ride took place because I was stranded in downtown Miami about 2 miles from my hotel. I was carrying a suitcase and a laptop bag and no taxis passed by. So I downloaded the Uber app to my phone and I requested an Uber pickup. Of course, as soon as I submitted the request 3 taxis appeared out of nowhere.

Here are my impressions after 3 weeks of using Uber.

The good.

The Uber app is very simple to use. Just click "Request driver" and set your pickup location. Your phone's GPS should determine where you are right now and set a default location. When a driver responds to your pickup request, the app displays an estimated time of arrival and texts you when the driver is arriving. The driver receives your phone number, so he may even call you if he cannot find you.

Every driver I rode with was courteous and some were interesting conversationalists.

Every driver drove a nice car. They were all late-model vehicles and they were all very clean.

Uber charges my credit card through its system. This means that I never have to worry if the driver accepts credit cards.

Uber automatically emails me a receipt. This is convenient because most of my travel is for business purposes.

Calling a driver is very easy. Outside of a major city's downtown area, it's usually necessary to make a phone call in order to request a taxi. The app is much simpler than a phone call.

Every driver spoke and understood English. If you've ridden a cab in a large city, you know that not all cab drivers speak English well enough to understand your instructions.

Most of the time UberX is cheaper than a taxi.

The Uber app offers multiple services - UberX, UberXL, Black Car, SUV - in case you want a larger or nicer car. Uber is not allowed at some airports, so the app allows you to call a taxi instead.

The Bad

Most of the time, the arrival estimates were optimistic. I only requested in a big city and each time, the estimate was less than 10 minutes - often less than 5. But about half the time, it took them at least twice that time to arrive. Only once did a driver arrive early.

When I opened the Uber app at my Chicago apartment, it notified me that, due to high demand, prices would be 1.3 times the normal rate. But just before I got into the car, I received a text message informing me that the price would be 2.3 times the normal rate. By then, it was too late to make alternate plans.

On my Windows Phone, the Uber app crashed. A lot.

One morning in Dallas, I requested an Uber and the driver went to the wrong place. He insisted he was at "the address I texted him"; but of course I had not texted him any information - I simply used the app. He had no idea how to get to my hotel and I was running late so I told him to cancel my request. When he charged me anyway, I gave him a 1-star rating. Uber later refunded the money (it was only about $5) and I replaced the low rating.

I received a very high bill when traveling from Midway airport to a location in suburban Chicago. Apparently, Chicago taxis charge 50% extra when traveling from the city to the suburbs. This was not Uber's charge, but it came as a surprise when I received the bill.

For taxis, Uber automatically adds a 20% tip by default. Although you can change this, I didn't learn of it until I was charged.

Lessons Learned

Always double-check the pickup location because they app can be wrong. This can be difficult to do if you are in a strange city, but look for nearby street signs and other landmarks to verify you are standing at the pickup location.

Prices are different for each service. UberX tends to be the cheapest. At the bottom of the app screen is the option to select from the available services (not all are always available). I wasn't aware of this and once selected the more-expensive Black Car service.

If possible, get a quote in advance. The Uber app allows this for most services. If the app won't give you a quote, ask the driver for an estimate. Don't be surprised.

Log into http://uber.com and verify all the options on the Profile and Payment screens.

My verdict

Overall, I had a good experience with Uber. I can avoid many of the problems i experienced now that I understand the system better. I think I will continue to use Uber in the future.

Thursday, March 26, 2015 12:23:18 PM (GMT Standard Time, UTC+00:00)
# Monday, March 23, 2015
Monday, March 23, 2015 12:37:15 PM (GMT Standard Time, UTC+00:00)
# Sunday, March 22, 2015

There are three ways to create a new web site from the Azure portal: Quick Create; Custom Create; and From Gallery. To launch any of them, navigate to the Azure management portal and select "Web Sites" from the list of services along the left side of the portal [Fig 1].

Fig 1 

Then click the "New" button at the bottom left (Fig 2).
Fig 2

This displays the New Website menu(Fig 3)

Fig 3

Because we were in the "Web Sites" section when we clicked the "New" button, the categories: "COMPUTE" and "WEBSITE" are selected for us. We need to select from the three ways to create a web site within the Portal. They are: "QUICK CREATE", "CUSTOM CREATE", and "FROM GALLERY". Let’s go through each scenario.


The simplest way to create a web site is with the QUICK CREATE option. With the NEW WEBSITE menu expanded, select QUICK CREATE (Fig 4).

Fig 4

The QUICK CREATE dialogue displays, as shown in Fig 5.

Fig 5

At the URL textbox, enter the name of your site. The full URL to access this new site will be  
where sitename is the name you typed into this field.

At the WEB HOSTING plan dropdown, you can either select an existing plan or select "Create new web hosting plan", in which case you will need to select a region in which to create the plan. The Web Hosting plan allows you to configure, manage, and scale a group of sites together.

Click the CREATE WEBSITE check button (CAWS-Check) to create the site. Typically it takes Azure less than a minute to create the site.

Once the site is created, you can navigate to the site's URL and you will see a default page (hostingstart.html) displayed in your browser, as shown in Fig 6.

Fig 6

This is the only file deployed to your site. You will need to use FTP, set up source control deployment or deploy your site content in some other way in order to get your web application into this web site.


The CUSTOM CREATE option is similar to the QUICK CREATE, but it adds a few options on site creation. With the CUSTOM CREATE option, it is possible to associate a database with your site and set up Source Control publishing at the time you create your site.

With the NEW WEBSITE menu expanded, select CUSTOM CREATE. The CUSTOM CREATE dialogue displays, as shown in Fig 7.

Fig 7

At the URL textbox, enter the name of your site. The full URL to access this new site will be 
where <sitename> is the name you typed into this field.

At the WEB HOSTING plan, you can either select an existing plan or select "Create new web hosting plan", in which case you will need to select a region in which to create the plan.

Select or create a database to associate with this site. Enter a connection string name and credentials of the SQL Server account used by the web site to connect with the database. This database will appear under the LINKED RESOURCES tab of your website. Linking a database to a website makes it easier to manage them together, such as when you are backing up both your site and the database.

If you want to set up publishing from a source control repository, you can do so during site creation by clicking the "Publish from source control" checkbox (It is possible to skip this step and set up source control publishing later). Checking this checkbox adds a second page to the dialogue. Click the right arrow button (CAWS-RightArrow) to advance to the second page (Fig 8), where you can select the type of source control you are using. For some repositories, you will be prompted for more information.

Fig 8

When you are finished configuring everything, click the right arrow to create your new site.

As with the QUICK CREATE option, only one file (hostingstart.html) is deployed to your site. You can navigate to the site URL to view this file in your browser.


Unlike the QUICK CREATE and CUSTOM CREATE options, the FROM GALLERY option provides more than just a single page in your website. This option tends to be the fastest way to get a fully-functional web site up and running. It is also an excellent option for those without coding or HTML experience.

With the NEW WEBSITE menu expanded, select FROM GALLERY.

The ADD WEB APP dialogue displays, as shown in Fig 9.

Fig 9

This list displays a list of templates, frameworks, and web site engines from which to choose. Notice that you can filter this list by selecting a category on the left, such as BLOGS, or CMS (Fig 10).

Fig 10

Notice also that many of the options are based on non-Microsoft technologies. WordPress, for example, is written in PHP and stores data in a MySQL database. Select the template, framework, or web site engine on which you want to base your site and click the Right Arrow button.
A configuration dialogue displays that is appropriate for the option you selected. At a minimum, you will need to provide a name for your web site, which will take the default form http://<sitename>.azurewebsites.net; but there may be other required information, such as selecting or creating an associated database. The dialogue for Orchard CMS is shown in Fig 11.

Click the Check button (CAWS-Check) to create your site. This generally takes longer than creating a site with either the QUICK CREATE or CUSTOM CREATE options because Azure will build an entire site for you. For many of the Blog and CMS templates, you will be prompted for some more information, such as a site name and an admin account the first time you navigate to the site. The "Get Started" page launched the first time you connect to a new Orchard CMS site is shown in Fig 11.

Orchard Setup
Fig 11


In this article, we showed the three ways to create a Web Site using the Azure Management Portal and walked you through the steps to create a web site with each method.

Sunday, March 22, 2015 8:07:34 PM (GMT Standard Time, UTC+00:00)
# Monday, March 16, 2015
Monday, March 16, 2015 3:00:55 PM (GMT Standard Time, UTC+00:00)