# Monday, May 11, 2015
Monday, May 11, 2015 11:00:56 PM (GMT Daylight Time, UTC+01:00)
# Saturday, May 9, 2015

I first became aware of INETA – the International .NET Association - when I was running a .NET user group in the Detroit area. Every once in a while, they would offer us some free books, software, t-shirts, and other prizes to give away to our members.

Later, I was asked to become a Regional Mentor for INETA, which meant that I approved new user groups for membership (mostly just verifying that the group actually existed and held regular meetings) and that I provided advice for user group leaders and new groups in my region. For about a year, I hosted a monthly call with local user group leaders and I corresponded frequently with new leaders, giving them advice on running a group or find speakers. At one time, I covered Ohio, Michigan, West Virginia, and Pennsylvania, but I later delegated some of those states to others who wanted to be involved.

In 2012, I joined the INETA Board of Directors, where I served for about 2 years. I was impressed with the dedication of a team that volunteered so much time to help out the developer communities spread across the US and world. It was a great experience.

My point is that INETA has touched my life in significant ways. I was a beneficiary, then a proponent, then an active member of the leadership team. I learned a great deal; I made many friends and contacts; I and my user group benefited from their programs; and I contributed in a small way to the success of the organization. Their speaker program has helped me to travel to a number of user groups and helped me bring to my group speakers who might not be able to travel as far.

Last week, I learned that INETA is coming to an end. President Julie Yack announced on the organization's blog that, after 13 years, they would close down at the end of 2015. With no steady stream of revenue, the group could no longer afford to finance the programs they wanted to. I was saddened to hear this news but I'm happy that INETA was so successful for so long.

I'm grateful to all those who volunteered to make it so successful for so long - particularly those with whom I worked directly. And I'm grateful that INETA helped so many people who went on to volunteer and help others, which magnified their efforts.

And I'm glad I was a part of INETA. It's a badge I wear proudly.

Saturday, May 9, 2015 1:02:08 PM (GMT Daylight Time, UTC+01:00)
# Thursday, May 7, 2015

Throughout this past semester, teams of Purdue University students built projects with controllers, circuit boards, and other hardware. On Friday May 1, the teams gathered at Wang Hall on Campus to show off their finished projects. I was invited to be one of six judges to select the best projects.

I got to see some amazing projects. For example:

  • 2 robots playing soccer controlled via multiple users on the Internet.
  • An unmanned tank-like vehicle with sensors to map out walls and terrain (this could be sent into a disaster area that is too dangerous for people).
  • An electric car that automatically followed a light path and stopped and whistled at any object that interrupted that path.
  • A motorized reclining chair for the lazy person on the go.
  • First place ($1000 cash)went to a student who created a custom keyboard as a controller to play his game "TagPro".

Much of the funding came from General Motors, but Microsoft Recruiting sponsored as well.

I didn't see a lot of Microsoft technology but I saw some very clever ideas for both hardware and software.

This was the first Spark Challenge and the organizers were confident that it was successful enough to justify planning more.

Overall it was a great opportunity for me to see the potential of these college students.

Robots playing soccer

A car that follows a beam of light

The winners are announced

Thursday, May 7, 2015 2:33:19 PM (GMT Daylight Time, UTC+01:00)
# Monday, May 4, 2015
Monday, May 4, 2015 2:22:00 PM (GMT Daylight Time, UTC+01:00)
# Sunday, May 3, 2015

Today I am grateful for a late dinner last night with Dave​, David​, and Anna.

Today I am grateful for all the cool student projects at Purdue's Spark Challenge yesterday.

Today I am grateful for lunch with Mike yesterday in the Loop.

Today I am grateful that my mother is now living in Michigan close to my siblings.

Today I am grateful for a long walk and a sushi dinner with Oksana last night

Today I am grateful for my new mattress. And a good night sleep.

Today I am grateful for a tour of historic St. Michael Catholic Church in Old Town yesterday.

Today I am grateful to spend time with old friends at MSU yesterday.

Today I am grateful to spend yesterday with my mother.

Today I am grateful I have time this week to catch up on some long-overdue items.

Today I am grateful for a safe drive to Michigan late last night.

Today I am grateful I passed my first Microsoft certification exam in over 6 years.

Today I am grateful for 5 miles of walking yesterday.

Today I am grateful to see so many cool projects at MadHacks in Madison, WI this weekend.

Today I am grateful for the Chicago Code Camp yesterday and all who made it happen.

Today I am grateful for an evening at the movies last night.

Today I am grateful for dinner last night in Dallas with Anna and Elizabeth.

Today I am grateful for a first-class upgrade on yesterday's 4-hour flight.

Today I am grateful for all the WinJS and Azure Big Data stuff I learned yesterday.

Today I am grateful for a nice weekend with pleasant company.

Today I am grateful for an evening at the spa last night.

Today I am grateful I was in town yesterday and able to attend my first ToastMasters meetings in months.

Today I am grateful for lunch yesterday with Manohar.

Today I am grateful to spend an evening with Oksana.

Today I am grateful for dinner last night with Cory in Kansas.

Today I am grateful for a chance to attend Royals Opening Day at Kauffman Stadium yesterday.

Today I am grateful for Easter dinner with my family yesterday.

Sunday, May 3, 2015 2:20:02 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, April 29, 2015

The Microsoft Build conference kicked off this morning with a keynote that lasted nearly 3 hours and included announcements on Azure, Office 365, Windows 10, and HoloLens.

Personally, I was most excited to hear about Azure SQL database pool and Data Warehouse, the Cortana integration on Windows 10, support for Chrome extensions in Microsoft Edge (formerly "Project Spartan") and the potential of virtual reality apps with HoloLens.

The keynote was recorded and will be available soon (along with all Build sessions) http://www.buildwindows.com/. I encourage you to watch for yourself, determine the topics that most interest you, and watch breakout sessions that dive deeper into those topics.

Below are notes I took during the keynote. This is by no means an official list and I may have misheard some things. But I think it will give you an idea of where Microsoft is headed the next few months.

    Docker for Windows
        Mix and match Windows & Linux containers. Run on any server
        NEW: Ability to debug .NET app in Linux deployed in Docker
    Azure App Service
    Logic Apps
        In Preview Portal
        Uses "Swagger" applications
        Visual workflow? Similar to ITTT?
    Visual Studio Code
        Lightweight IDE
        Version of VS that runs on Mac and LINUX
        Available today
    SQL Azure
        Elastic database pool
            combine multiple "databases" into 1 db pool
            Manage all databases together
                Modify schema of every db
                Update statistics of every db
        SQL Data Warehouse
            Quick and easy to create
            Import data from any data source
                e.g., SQL DB, Hadoop, SAP
                From Azure or on-premises data
            Create reports with Power BI
            Use Azure Machine Learning to analyze data
            Auto-Scale in seconds
            Can independently adjust compute & storage
        Azure Data Lake Service
            store and manage infinite data
            saved in original form
            exposes data using Hadoop HDFS API
        Tell a story with Office documents
    Outlook plug-ins
        SAP and Linkedin: Look up info on contact & their companies
        Schedule plug-in from Uber
    Unified Office365 API Endpoint
        Returns data as JSON
        Drill into details of "graph"
    Web SDK for Skype
        Embed Skype into your app
Windows 10
    Easier to discover apps in store
    Windows Store for Business
        For customers or students
        Supports other payment methods (e.g., Purchase Orders)
    Win10 was a free upgrade for 1st year
    Goal: 1 billion Windows 10 device in 2-3 years
    1 binary and 1 code base on multiple platforms (Phones, tablets, PCs, Xbox)
    Web Sites can use Windows 10 tools (e.g., Live Tiles, Toast)
    .NET and Win32 apps in Windows store
    Android apps on Windows Phone
    Objective-C code will compile in Visual Studio on Windows
    Windows Spotlight
        On lock screen
        Learn of new features
        Natural language
    Microsoft Edge
        Windows 10 browser
        Formerly Project Spartan
        Written as a Universal App
        Runs Chrome extensions
    Continuum for Phones
        Any screen can be a PC (e.g., Phone)
        Windows Holographic
            Universal apps in Hololens
            Pin apps to walls in virtual world
        Makers can integrate HoloLens virtual world with real-world devices
Satya Nadella: Our goal is to move users from needing Windows to choosing Windows to loving Windows

Wednesday, April 29, 2015 8:06:29 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, April 28, 2015

Almost everyone (including me) will agree that it is a good idea to back up your Web App. Azure makes it very easy to do so.

Azure allows you to manually back up your Web App and any linked database or to schedule a regular automated backup. Azure backups are stored to Azure storage.

To begin, you must have an Azure Storage account. If you have not yet created one, see my post on creating a new Azure Storage Account.

Navigate to your Web App by selecting the WEB APPS icon in the left menu; then, selecting your Web App.

Note that these features are only available if your Web App is using the STANDARD Pricing Plan Tier. You can modify your Pricing Plan Tier on the SCALE tab of your Web App.

Click the BACKUPS tab (Figure 1)of your web app to start managing your backups.

Figure 1

Manual Backup

To Manually backup your Web App, do the following

1. Select an account from the STORAGE ACCOUNT dropdown list, as shown in Figure 2.

Figure 2

2. If your Web App has one or more linked databases and you would also like to back up those databases, expand the INCLUDED DATABASES dropdown and check all the databases you would like to backup. An example is shown in Figure 3.

Figure 3

3. Click the BACKUP NOW icon at the bottom of the screen (Figure 4).

Figure 4

Azure will back up all the files (and optionally any associated databases) of your Web App at the time specified and afterwards at the frequency specified.  The files in your Web App will be zipped and stored into a Blob Storage account of the selected Storage Account.

Automated Backup

Manual backups are great if you want to backup your app right now; but, chances are that you will want to back it up on  a regular basis so you don't have to worry about it. Use the same BACKUPS tab to schedule a backup at regular intervals.  To do this, you will perform the 3 steps above in addition to a few others.

To schedule an automated backup, do the following:

1. At the AUTOMATED BACKUP toggle switch, select "ON", as shown in Figure 5.

Figure 5

2. Select an account from the STORAGE ACCOUNT dropdown list, as shown in Figure 6.

Figure 6

3. At the FREQUENCY field, enter the number of days between each scheduled backup, as shown in Figure 7.

Figure 7

4. At the START DATE fields, select the date and time to perform the first backup, as shown in Figure 8.

Figure 8

5. If your Web App has one or more linked databases and you would also like to back up those databases, expand the INCLUDED DATABASES dropdown and check all the databases you would like to backup (Figure 9).

Figure 9

6. Click the SAVE icon at the bottom of the screen (Figure 10).

Figure 10


Azure will back up all the files (and optionally any associated databases) of your Web App at the time specified and afterwards at the frequency specified.

Tuesday, April 28, 2015 2:07:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, April 27, 2015
Monday, April 27, 2015 1:40:00 PM (GMT Daylight Time, UTC+01:00)
# Saturday, April 25, 2015

Azure Storage consists of Tables, Queues, and Blobs. To use any of these features, you must first create a Storage Account. This article describes how to use the Azure Portal to create an Azure Storage Account.

Sign into your Azure account and navigate to the Azure Management Portal (https://manage.windowsazure.com).

A list of Azure service categories displays on the left. Select the STORAGE category (Figure 1)

Figure 1

Click the [+NEW] button (Figure 2) at the bottom left of the Portal page.

Figure 2

The New Item menu (Figure 3) expands with DATA SERVICES and STORAGE already selected.

Figure 3

Select QUICK CREATE to display the CREATE STORAGE ACCOUNT dialog as shown in Figure 4.

Figure 4

At the URL field, enter a name for your new storage account. This name must consist only of numbers and lowercase letters and it must be unique among storage accounts.

At the LOCATION/AFFINITY GROUP, select a region in which to store this account. Generally, in order to minimize latency, you should create your storage account close to whatever clients will be accessing data from this account.

At the REPLICATION field, select a replication option. You can select Locally Redundant, Geo-Redundant, Read-Access Geo-Redundant (the default), or Zone Redundant. A description of each option is below.

Locally Redundant

Select this option to create 3 copies of your data within a single data center. External users will only access one copy of the data.


Select this option to create 6 copies of your data – 3 within a data center in the region you selected and 3 within a different data center in another region. External users will only access one copy of the data.

Read-Access Geo-Redundant

This option is identical to the Geo-Redundant option, except that external users can access in read-only mode the data stored in the secondary region.

Zone Redundant

Select this option to create 3 copies of your data within multiple data centers. External users will only access one copy of the data.

A Note on Pricing

The cost of each option is reflective of the durability and availability of your data, so Read-Access Geo-Redundant is more expensive than Geo-Redundant, which is more expensive than Zone Redundant, which is more expensive than Locally Redundant. You can view the current pricing at http://azure.microsoft.com/en-us/pricing/details/storage/.

Click the CREATE STORAGE ACCOUNT icon to create your new storage account.

Saturday, April 25, 2015 2:47:15 PM (GMT Daylight Time, UTC+01:00)
# Thursday, April 23, 2015

This was the 7th Chicago Code Camp and the first time in years that it took place in the city of Chicago. The multi-platform conference had been held in Grayslake, IL the past few years but returned to the city that bears its name as the Illinois Institute of Technology hosted this weekend's event.

About 350 attendees showed up to see talks covering languages, tools, DevOps, and soft skills.

I delivered 2 presentations: The Hitchhiker's Guide to Azure Mobile Services and Effective Data Visualization.

I was able to hear MVP Michael Blumenthal talk about Powershell; Matt Stratton describe the Chef tools;  Angela Dugan talk about fear and self-doubt among software developers; and some advice on project recovery from DevMynd CEO JC Grubbs.

The Chicago Code Camp was the first conference I attended in Illinois (back in 2011) and it remains a strong voice in the community. I love the fact that it has returned to the city. The high turnout is an indication of the strong developer community here in Chicago.

At least half a dozen of the conference organizers stopped me during the day to thank me for Microsoft's sponsorship of the event.



Thursday, April 23, 2015 3:34:00 PM (GMT Daylight Time, UTC+01:00)