# Friday, July 31, 2015

Recently, Brian Lewis and I teamed up to record a session working through a set of labs teaching how to automate Microsoft Azure IAAS with PowerShell.

The first 3 videos covered labs 1 and 2.

We have now released 2 new videos that cover Lab 3. This lab synchronizes an Azure Active Directory with an on-premises Active Directory.

Click the links below to view these videos.

Part 4

Part 5

Friday, July 31, 2015 12:04:00 PM (GMT Daylight Time, UTC+01:00)
# Thursday, July 30, 2015

In this video, you will see how to use the portal to quickly create a table linked to an Azure Mobile Service and a Windows Universal App client that connects to that mobile service.

G-Cast 2

Thursday, July 30, 2015 12:10:00 PM (GMT Daylight Time, UTC+01:00)

A couple weeks ago, I was in Knoxville, TN talking with Microsoft Senior Program Manager Jeff Fritz. He agreed to record an interview with me about the awesome new features of this upcoming framework. My plan was to release it as an episode of Technology and Friends. Unfortunately, technical issues left me with excellent audio but no useable video.

Jeff did a great job and the topic is very interesting. So, given the release of Visual Studio 2015 last week and Windows 10 today, I decided to make the audio interview available here.

Enjoy: Jeff Fritz talks about ASP.NET 5


Thursday, July 30, 2015 1:39:45 AM (GMT Daylight Time, UTC+01:00)
# Monday, July 27, 2015
Monday, July 27, 2015 4:01:00 PM (GMT Daylight Time, UTC+01:00)
# Saturday, July 25, 2015

The Milky Way galaxy of Vernor Vinge's A Fire Upon the Deep is divided into 4 major concentric sections, known as "Zones of Thought": 

The Unthinking Depths at the center of the galaxy, in which little or no intelligent life has evolved;

The Slow Zone, where the Earth exists. Intelligent life has evolved here but there is no true artificial intelligence and faster-than-light travel is not possible in this zone;

The Beyond, where intelligent species have mastered faster-than-light travel and and advanced civilizations have arisen;

The Transcend, the home of mysterious races of hyper-intelligent beings.

The intelligence that exists in these zones is not a coincidence - something about the physical properties of the zones prevent species and societies from evolving beyond a given allowable intelligence and technology.

In the novel, a group of humans have migrated from the Slow Zone to the Beyond-Transcend border, where they discover and accidentally awaken a dormant entity in the Beyond. The entity - known as the Blight - travels into the Beyond, destroying entire solar systems and threatens to destroy all life in the galaxy. Most of the story follows various inhabitants of the galaxy as they try to defend themselves and their worlds from the oncoming Blight.

The two factions have each adopted a human child - siblings whose parents were killed when they got in the way of a Tine battle.

I liked the universe that Vinge creates. He never explains why each zone restricts technology, but the fact that it does explains why species and societies evolve as they do within each zone.

I like the creatures with which he populates his universe, especially the Tines - a sentient, but primitive race that resemble long-necked dogs and group together in small packs that share a single consciousness; and the Skroderiders - a plantlike species that are able to travel thanks to a special cart built for them millennia ago by an unknown benefactor.

And I liked the contrast between the civil war waging on the Tines' world to gain mastery over a small bit of land and the oncoming Blight, which destroyed everything in its path and headed toward that same world.

But I found it difficult to sympathize or identify with Vinge's characters or their trials as much as I wanted to.  Reading the story, I learned of death and love and trust and betrayal and they passed over me without moving me.

A Fire Upon the Deep was good for my head but it left my heart wanting more.

Saturday, July 25, 2015 12:16:00 PM (GMT Daylight Time, UTC+01:00)
# Friday, July 24, 2015

This video describes the basics of Azure Mobile Services and walks you through creating a new Mobile Service with a JavaScript backend.

G-Cast 1

Azure Mobile Services, Part 1 – Creating a Mobile Service

Azure | GCast | Mobility | Video
Friday, July 24, 2015 11:37:00 AM (GMT Daylight Time, UTC+01:00)

Every once in a while, I record a screencast and I post it on this blog.

You can find links here to a series of screencasts I did on Visual Studio Coded UI Tests.

It has been a long time since I did so because screencasts tend to be a lot of work when done correctly.

But now I’m motivated to start doing these regularly. I plan to keep them short – anywhere from 5-30 minutes and to keep each video focused on a single topic. My goal is to release a new video every Friday – in the same way that I release a new Technology and Friends episode every Monday.

As in the past, I’m branding these as “G-Cast” – an abbreviation of Giard’s Screencasts and I’m rebooting the franchise to start at Episode 1. I even have a fun intro sequence that will appear at the beginning of each video.

The first G-Cast will debut tomorrow and will be part of a series showing how to use Azure Mobile Services.

Stay tuned and let me know what you think of this project.

GCast | Video
Friday, July 24, 2015 2:25:33 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, July 21, 2015



Technology and Friends began in Sandusky, OH in January 2009. I brought my video camera to Codemash and walked into the speaker room asking people if they wanted to talk on-camera about their favourite technology.

I had an idea that I wanted to publish these interviews on-line but I did not know what form that would take. Eventually, this idea evolved into Technology and Friends and I've been regularly publishing this show for over 6 and a half years. It's rare that a Monday passes without the release of a new episode.

375 episodes later, we are moving. From technologyandfriends.com to Channel 9

This change offers several advantages:

Users can now subscribe to the show

This has been the single biggest request I've received. And it’s built into Channel 9.

Users can download each episode in the resolution of their choosing.

Channel 9 encodes all videos in High, Medium, and Low Quality.  If bandwidth or disc space is tight, you can choose the lower quality. For better viewing, choose the high quality. For lower bandwidth or limited disc space, choose the smaller files.

Users can download the audio

This was another common request from fans of the show. It's now possible to grab just the audio to listen while you're driving, exercising or working around the house.

Reduced cost

I've been paying for this show out of my own pocket and the online fees alone come to almost a thousand dollars a year.

Wider exposure

Channel 9 reaches a very broad audience and this show will be indexed along with their other content, making it easier to find for a number of people.

So far, I have migrated the last 6 months of shows. In the coming weeks, I plan to move more of the older shows to the new site. I hope you enjoy the experience. Let me know your thoughts.

Tuesday, July 21, 2015 3:58:14 PM (GMT Daylight Time, UTC+01:00)
# Monday, July 20, 2015
Monday, July 20, 2015 1:52:15 PM (GMT Daylight Time, UTC+01:00)

Want to learn how to use Powershell to manage your Azure IAAS assets, such as Virtual Machines and Virtual Networks?

Brian Lewis and I are recording a series of videos that walk you through a set of Hands-On Labs. These are the same labs I used to learn how to automate Azure with Powershell and Brian is the man who taught me.

So far, we have over 2 hours of content with more to come.

Check out this 3-part series by clicking the links below.

Part 1

Part 2

Part 3

Monday, July 20, 2015 1:04:45 AM (GMT Daylight Time, UTC+01:00)
# Friday, July 17, 2015

I move around quite a bit and my laptop connects to Wi-Fi networks all over the world. Sometimes I return to those places and re-connect to the same network weeks or months later.

Once in a while, this causes a problem when a Wi-Fi network security credentials change and laptop's saved Wi-Fi settings continue to use the credentials I entered last time, without allowing me to enter the new credentials.

The simplest solution to this problem is to remove the Wi-Fi network from my laptop's list of saved networks Wi-Fi networks; then, re-add it. If it's not a hidden network, it should automatically appear when you are in range, even if it is not "saved".

But the option to remove a saved Wi-Fi network changes with each version of Windows and it may even be missing in some versions (I still can't find it in the Windows 10 preview I'm currently running).

However, you can use the command line to accomplish this. Here are the steps.

Open a command prompt as an Administrator. This is an option when you right-click the command prompt shortcut. It requires confirmation because you can wreak a lot of havoc as an administrator.

At the command prompt, type "netsh" and press ENTER to go into
network shell mode. The command prompt changes to
as shown in Figure 1.

Figure 1

At the netsh prompt, type "wlan show profiles" and press ENTER to display a list of all saved Wi-Fi networks, as shown in Figure 2.

Figure 2 

Find the network you want to remove; then type "wlan delete profile name=<network name>", where network name is the network as listed in the last command. This must be surrounded by quotes. Spelling is important but capitalization is not. Press ENTER to remove this network, as shown in Figure 3.

Figure 3

That's it. You can close the command prompt or type "exit" and press ENTER to leave Network Shell Mode. I recommend not leaving and Administrator-level command prompt open in case you forget the power you have.

Here’s a summary of the steps:

wlan show profiles
wlan delete profile name=”<network name>

This method appears to work for Windows 7, 8, 8.1, and 10. Don’t get caught unable to connect to a wi-fi network again.

Friday, July 17, 2015 4:20:30 PM (GMT Daylight Time, UTC+01:00)
# Thursday, July 16, 2015

Last night, I was the guest on the Azure podcast. The show is hosted by Cale Teeter, Evan Basalik and Sujit D'Mello and they have been recording since October 2013 – coincidentally, the same week that I joined Microsoft.

We talked about a number of topics, including education, startups, and Azure’s support for open source software. It was my first time on this podcast and I really enjoyed it.

You can listen the show by clicking this link.

Thursday, July 16, 2015 11:42:00 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, July 14, 2015

Two hours after Codestock ended, I sat at a local restaurant enjoying dinner with Tennessee friends. I was tired and mostly listened to the conversation around the table.

I decided only recently to attend Codestock this year - primarily to help manage Microsoft's sponsorship of the event - but I ended up participating in 4 different presentations.

IMG_2511 Scott Hanselman delivered the keynote address at the beginning of Day 1 and we were allowed to introduce him to the audience and speak for about 15 minutes. Jennifer Marsman and I decided to highlight a golf scoring application created by Knoxville developer Wally McClure. We chose this app because it used many features of Azure and ran on multiple devices, including an iPad. Rather than simply talking about the app, we wrote a short skit in which Jennifer and I bragged about how much we knew about golf and Wally patiently explained how much more complicated golf scoring was than we understood. Performing a skit is a different way of delivering a message like this, but based on the feedback I received afterward, most people seemed to enjoy it. DavidWallyJennifer

On Day 1, I was asked to sit on a "Mobile Strategy Panel" because one of the panelists cancelled at the last minute. Sam Basu of Telerik asked each panelist questions about the state of various mobile platforms and took questions from the audience. The session was recorded by Ed Charbeneau (one of the panelists) for his podcast, so this recording should be publicly available soon.

I also signed up to deliver a 20-minute Lightning Talk titled "Microsoft Azure Without Microsoft" in which I described many of the open source technologies and alternate platforms that are supported on Microsoft Azure.

On day 2, I delivered a presentation: "I Did Not Know Microsoft Did That". This presentation was created and submitted by my colleague Bill Fink, but Bill fell ill and could not make it. The organizers liked Bill's topic and asked if I could deliver it. I used Bill's slides to talk about free programs offered by Microsoft, such as BizSpark, Dreamspark, and Microsoft Virtual Academy. Everyone in the audience I spoke with told me they were unaware of more than 2 of the dozen or so programs I covered and wanted to explore at least one of them more.

IMG_2521 The local Microsoft store was on-site with several tables full of PCs, laptops, tablets, phones, and even a 3D printer. This was an idea I pitched to Codestock last year and it was so well-received that the organizers contacted the store themselves this year.

I had a chance to attend a few sessions as well. Jennifer Marsman gave an excellent demonstration in which she used a device to measure EEG brain patterns and fed data into Azure Machine Learning to determine how the brain reacts when lying versus telling the truth; David Neal gave a very good overview of node.js for .NET developers; and Jeff Fritz showed off the features coming in ASP.NET 5.

WP_20150711_14_50_27_Pro_edited-1 I love attending Codestock because it gives me a chance to connect with people in a different part of the country than I normally interact with. I spoke with people about F# and video production and web development and cloud computing. I even captured a few video interviews, which I've already started sharing online.

Attendance nearly doubled this year over last year with nearly 900 developers making the trek. The organizers moved it to a much larger venue and may grow it even more in the future.

I think you can tell now why I was so tired following the conference. Luckily, I’m home now and I’ve already started to re-energize. For next year.



Tuesday, July 14, 2015 10:25:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, July 13, 2015
Monday, July 13, 2015 11:25:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, July 6, 2015
Monday, July 6, 2015 6:22:00 PM (GMT Daylight Time, UTC+01:00)
# Sunday, July 5, 2015

Today I am grateful for impressive fireworks at Navy Pier last night.

Today I am grateful to be an American.

Today I am grateful I attended a very good Pokey LaFarge concert last night.

Today I am grateful for an afternoon in East Lansing, MI.

Today I am grateful for a visit with my mother and sister last night

Today I am grateful for 3 offers on my house the past 3 days.

Today I am grateful to finally have a chance to celebrate Father's Day yesterday with my son Tim.

Today I am grateful for an evening with my classmates at our high school reunion last night in Detroit.

Today I am grateful for a chance to spend a few days back in Michigan visiting family and old friends.

Today I am grateful for the ability to stay in touch with distant friends via social media.

Today I am grateful to Brian, who made himself immediately available to answer my Powershell questions.

Today I am grateful there is a gym in my building - right down the hall from my apartment.

Today I am grateful that I live within walking distance of so many places I want and need to get to.

Today I am grateful to my Dad, who showed me what it is like to be a good father. I pray I made him proud.

Today I am grateful for an evening at Ravinia watching A Prairie Home Companion live for the first time.

Today I am grateful for my new Chicago Public Library card.

Today I am grateful for all the free food I keep receiving at these events.

Today I am grateful for an Architectural boat tour of Chicago yesterday.

Today I am grateful I built my first node.js project yesterday.

Today I am grateful for my balcony, this chair, and nice weather nice enough to sit outside in the morning.

Today I am grateful for 2 different festivals this weekend.

Today I am grateful for a chance to see and hear blues legend Buddy Guy last night.

Today I am grateful for those who worked to make the local Toastmasters club a success this past year.

Today I am grateful for a day with no appointments, so i could catch up on stuff.

Today I am grateful for a successful BuildChicago event yesterday at the Field Museum.

Today I am grateful for a weekend in Michigan.

Sunday, July 5, 2015 4:06:04 PM (GMT Daylight Time, UTC+01:00)
# Saturday, July 4, 2015

I am here today to urge you to use the "Tentative" response in your calendar program when it is appropriate.

Firesign I see too many people blindly accepting every meeting request they receive - even those they know they will not attend. Many of you - and you know who you are - have multiple meetings booked for the exact same time. As the philosophers at Firesign Theater so eloquently put it: How can you be in two places at once when you're not anywhere at all?

There are 3 primary advantages of using the Tentative response:

  • Organize your time better
  • Courtesy to the meeting organizer
  • Assist others in finding free time on your calendar

Organize your time better

This should be enough reason for you to use "Accept" when you mean "Accept" and "Tentative" when you mean "Tentative".

Each morning (and often the night before), I check my calendar to see what my schedule holds for the day. My calendar is often full, but not every event on it requires my attendance. Knowing which ones I need to attend and which ones I might attend makes it far easier for me to plan my day.

Accepting an appointment marks it as "Busy" on my calendar, while tentatively accepting an appointment marks it as "Tentative" on my calendar. In the Outlook calendar, each status displays with a different pattern (solid for Busy; hashed for Tentative). These patterns make it easy to see at a glance where I'm required to spend my time and where my attendance is optional, which helps me to set priorities.


Courtesy to the meeting organizer

Meeting organizers often rely on your response to determine whether or not you will attend. Sometimes, they are counting on you to share your insights with the rest of the group or to answer one or more specific questions. If they expect you to attend and you do not, it may throw off their agenda. They may need to schedule another meeting as a result or get your information via a series of (inefficient) emails or phone calls. It's common courtesy to be honest about whether or not you intend to be at a meeting. If you are unsure, let them know via the "Tentative" response.

Assist others in finding free time on your calendar

I recently tried to find time on a manager's calendar but I was frustrated that her entire calendar was marked "Busy" for every working hour of every day of the next 5 days. Of course, this person wasn't committed to all those meetings and did not intend to attend them all; but she didn't distinguish between required and optional meetings, which made it more difficult for me to find free time on her calendar. Marking your calendar honestly makes it easier to collaborate with others in your organization.

Sometimes, I still double-book time on my calendar. But when I do, I never make both appointment "Busy" or "Accepted".

My company offers a lot of online "meetings" that are actually training sessions, where one of my colleagues will show the rest of us how to use a cool technology. I want to attend as many of these as I can, so I want them on my calendar. But I recognize that a higher-priority meeting may force me to skip a session and watch the recording later.

The "Tentative" status works for these scenarios. Use it. You'll be glad you did. And so will your colleagues.

Saturday, July 4, 2015 11:54:06 PM (GMT Daylight Time, UTC+01:00)