# Friday, January 16, 2015

The Chicago Coder Conference takes place May 14-15 and this year, they are adding a .NET Track.

The call for speakers for this track is open until February 16. Submit your sessions at this link

Friday, January 16, 2015 4:07:34 PM (GMT Standard Time, UTC+00:00)
# Sunday, January 11, 2015

CodeMash (http://codemash.org)  is like a family reunion for me. So many old friends come back every year. And I always meet someone new and interesting.

CodeMash is a developer conference that cuts across technologies and communities. It brings together Ruby, Java, .NET, Python, JavaScript, and those who use other technologies; and it draws speakers and attendees from all over the U.S. and a few from Europe. And it's held at an indoor water park in Sandusky, OH in the middle of winter.

I missed the very first CodeMash in 2007 (the one at Josh Holmes and Brian Prince famously had their heads shaved), but I've been to all 8 events since then.

This year, I was a sponsor, a speaker, and an attendee. I delivered 2 presentations: A Hitchhiker's Guide to Azure Mobile Services and Effective Data Visualization; and I helped out with Jennifer Marsman's Cross-Platform game development workshop. In all, over 200 people saw me present at this conference.

I spent a good part of the conference at the Microsoft booth, answering questions and talking with people.  Bill Fink brought a "Photo Booth" that he built using a Kinect sensor, a laptop, and an external monitor and this drew a lot of people to the booth. We also had a device bar and a number of attendees stopped by to check out the Surface Pro 3 and other Windows devices on display. Nathalie Goh-Liverness showed off a game she build using Unity and Occulus Rift virtual reality hardware. Traffic was heavy and I had a chance to answer some questions and talk with a number of attendees.

My team was well represented at CodeMash. Brian Prince is now the primary organizer, taking the reins from Jim Holmes who grew this confeerence to its current state over the years. And six members of my team (Jennifer Marsman, Brian Sherwin, Nathalie Goh-Liverness, Bill Fink, Matt Thompson, and me) delivered presentations.

Other Microsoft presenters included Dustin Campbell, Chris Risner, Jeff Fritz, Alexei Govorine, Kevin Pilch-Bisson, Matthew Podwysocki, Tony Surma, and Josh Holmes.

By the time I left Friday evening, I was exhausted. I had a chance to learn about Azure, Kinect, the next versions of C#, Visual Studio, and ASP.NET and a host of other things.

This was my eighth CodeMash and I fully expect to return next year.

Sunday, January 11, 2015 10:26:04 PM (GMT Standard Time, UTC+00:00)
# Monday, January 5, 2015

In the early 19th-century England of Jonathan Strange and Mr. Norrell, the existence of magic is a given. Everyone knows of the Raven King, who escaped from the Fairy kingdom to rule northern England and introduce magic to the Britons centuries before.

But, in 1806, no magic has been seen in England for years. Those who call themselves "magician" are only theoretical magicians, meaning that they study magic and magicians, but lack the ability to cast spells themselves. One day, a group of theoretical magicians discover the reclusive Mr. Norrell, who proves himself to be a formidable practical magician - the first of his kind seen for decades. A few years later, Jonathan Strange emerges - a young man with even stronger magical abilities, but with no training in how to use them.

Norrell takes on Strange as an apprentice, but Norrell is careful not to teach the young man too much. Together, they become celebrated magicians and use their powers to help Lord Wellington and the British Empire defeat the Emperor Napoleon.  Later, Strange and Norrell split and become rivals. This turns very bad after Norrell tries to discredit Strange and Strange embraces madness as a way to contact the malevolent fairies who live on the other side of Hell and possess powerful magic.

The story shows the rise to power of two talented men and the corruption brought by that rise. Both men are tempted to enlist the aid of the malevolent fairy race in order to boost their magical abilities and increase their reputation. But the fairies, who rule a kingdom beyond Hell, are malevolent and untrustworthy. Dealing with fairies risks the lives and souls of all around the magicians.

The contrast between Strange and Norrell makes for a great story. Norrell is bookish, deliberate, and secretive. He buys up all the books on magic he can find, in order to keep other magicians from reading them. Strange is adventurous and tries to expand his horizons - even going so far as to try training other magicians.

Both magicians struggle with the dark side of magic. Norrell's first attempt at summoning a fairy allows him to raise a young woman from the dead. This makes Norrell a national celebrity; however, the consequences are disastrous - the fairy maintains control over the woman, transporting her each night to his castle on the far side of Hell. Norrell vows never to try again. Strange reads of how the Raven King used Fairy Magic and believes he can summon and control a Fairy. He concludes that he must become mad in order to summon a fairy, so he uses magic and drugs to make himself temporarily insane. The Fairy appears and more disaster ensues. The Fairy of the story - known only as "the man with thistle down hair" controls a number of humans, including the woman he helped raise from the dead; Stephen Black, a servant to whom he promises the throne of England; and Strange's wife. Even King George III's famous bouts with insanity are attributed to the man with the thistle down hair.

I really enjoyed this book. I liked the characters and the adventures; I liked the relationship between Norrell and Strange and how it evolved over the years. I liked the ethical struggles of the magicians, such as whether it was acceptable to use the dark fairy magic to do good deeds; and I liked the style of the book, which reminded me of an English historical text, complete with added footnotes.

If you are looking to explore a world that could have been and believable  characters, I highly recommend Jonathan Strange and Mr Norrell.

Monday, January 5, 2015 3:00:00 PM (GMT Standard Time, UTC+00:00)
# Sunday, January 4, 2015

Today I am grateful I made it home safely on the icy roads last night.

Today I am grateful for a shawarma and hummus dinner with Tim Giard and his girlfriend last night.

Today I am grateful for an amazing comeback victory by the Spartans in The Cotton Bowl yesterday
and for a chance to watch the game with a group of people who met in MSU's Akers Hall in 1980 and remained friends for decades.

Today I am grateful for all the new people I met and all the new places I visited in 2014.

Today I am grateful for 2014 - one of the most eventful years in my life!

Today I am grateful that, despite my procrastination, I was able to reserve a #CodeMash Kalahari room yesterday.

Today I am grateful I was able to free myself from the malware I accidentally added to my computer a couple days ago.

Today I am grateful to talk with some old friends during my drive yesterday.

Today I am grateful for the bathrobe that my boys gave me for Christmas. And for the undershirts also.

Today I am grateful for Christmas dinner with my family at my sister Diane's house.

Today I am grateful for Jesus Christ and the comfort he brings me when I am troubled.

Today I am grateful for all the papers I organized yesterday and all the crap I threw away.

Today I am grateful for a post-game drink with Patrick Affholter at Beggar's Banquet last night.

Today I am grateful to talk this week with my cousin John and with my cousin Linda for the first time in years.

Today I am grateful to those who picked me up with kind words yesterday.

Today I am grateful I was able to drive my son Tim home from college yesterday.

Today I am grateful for lunch with Annie yesterday.

Today I am grateful for the annual #MIGANG Holiday Party last night! It was a great time, as always!

Today I am grateful I got to see a record-setting hockey game last night: Longest shootout in NHL history!

Today I am grateful I could take my mother to see my son's team play last night.

Today I am grateful for the chance to have dinner and watch the Lions game last night with my son Nick.

Today I am grateful for a chance to visit my mother in Florida for the first time this year.

Today I am grateful for the organizers of this week's company Hackathon, where I learned about Git, Windows 10, Azure, and IoT and to my teammates, who pitched in and won first prize!

Today I am grateful for an excellent stone crab dinner last night.

Today I am grateful for my first ever trip to Miami / Miami Beach.

Today I am grateful that the rental car company finally found and returned my garage door opener I left in a car last week.

Today I am grateful for my new furnace and for being warm on a cold morning.

Today I am grateful I got to spend a lot of time with my son this weekend before he returned to Florida.

Today I am grateful for a chance to watch Nick Giard's USF team at Detroit and for dinner with Nick after the game.

Today I am grateful I made it to my presentation in Detroit on time after driving 5+ hours from Indiana.

Sunday, January 4, 2015 10:18:58 PM (GMT Standard Time, UTC+00:00)
# Saturday, January 3, 2015

2014 has flown past so fast I can hardly believe it is gone. But the journey has been amazing.

My sons continue to do well in college. Timmy is in his sophomore year at Indiana University.  Last semester, he took a software course and he told me he may soon declare Informatics as his major. Nick is nearly done with the Masters program at the University of South Florida and his responsibilities as a Graduate Assistant with the USF basketball increased when the school hired a new coach last year.

In late 2013, I began a new job as a Technical Evangelist for Microsoft. I had pursued this job for years and I leapt into it enthusiastically. It wasn't hard to keep busy - partly because I was excited to learn my new role and to impress my new overlords - and partly because my new department had a lot of turnover, so I was asked to cover 2 regions (7 states) until the team was back at full strength. My basic evangelism activities covered schools, user groups, conferences, and startup incubators from Wisconsin to Tennessee and I made a point to visit each state at least twice. I travelled a lot - mostly by car, but occasionally by plane. At the bottom of this post is a list of the 50 different cities in which I presented or worked an event in 2014.

I also attended team off-sites in Phoenix and in Denver and I attended internal Microsoft conferences in Seattle and Atlanta.

While not directly part of my job, I was invited to speak at a couple other developer conferences: FalafelCon in San Francisco and IT Camp in Romania.

The Romania trip was amazing. My friend Mihai runs a developer conference in Cluj-Napoca, Romania and he invited me to speak there. I arrived three days before the conference and hired a tour guide to show me around Transylvania. After the conference, I drove to Budapest, Hungary and spent three days enjoying that city before heading home. I'm planning to return to IT Camp this May and I'm looking at other places to visit while I'm back in Europe. You can read details about this trip at here. You can view photos at the following links:

Years ago, I established a goal to visit the home stadium of every team in each major professional US leagues (MLB, NFL, NBA, and NHL). The year, I was able to visit a number of new arenas and stadiums, including the homes of the Phoenix Coyotes, the Atlanta Braves, the Milwaukee Brewers, the Oakland Athletics, the Dallas Cowboys, the Denver Broncos, the Indianapolis Colts, and the St. Louis Rams. Astute readers will note that I have attended Coyotes and Colts games in the past, but those teams have built new stadiums since that time so I had to return.

In late 2014, I moved to Chicago. I rented a studio apartment in the Old Town neighbourhood - in the heart of the city. It's the first time I've lived in a big city (I've spent most of my life in the suburbs) and I'm really enjoying the vibrant energy of city living. I haven't yet sold my house in Michigan so I'm spending a lot of time travelling back and forth, getting it ready to list, which should happen in late January.

My new apartment is much smaller than my old house, so I am in the process of casting off nearly everything I own - furniture, clothing, souvenirs, books, electronics, and anything else that has been cluttering my basement and closets the last 11 years. This process has been liberating. I held onto so many things that I did not need and I feel like I'm freeing myself from these objects as I throw out, donate, or sell each one.

One of the things that stands out to me about 2014 is the number of new people I've got to know. Some I didn't know existed before and some I got to know a lot better. Although I haven't met a lot of people in my new Chicago neighbourhood, I have had a chance to meet many new people around the country and world - primarily through my new job. It has been a pleasure expanding my network like this and I believe I will become closer with at least a few of these new folks in the coming years.

Sometimes, it's a challenge to stay in touch with everyone I want to and to stay close with those who are most important; but I'm putting effort into this. Social media helps. A cell hone helps. Sometimes travel helps and sometimes it hinders these efforts. I was able to extend some work trips over a weekend to visit friends, so I got to stay with the Eagers in Pittsburgh in June; with the Koellers in St. Louis in November, and with my mother and my son Nick in Florida in December. It was also great to catch up with Brent Stineman during a Minnesota trip; with Joe Guadagno while in Phoenix; with Kent Fehribach while in Nashville; with Dan Taylor during an Indianapolis trip, and with Gary and Patricia Desmarais, Mike Amundsen, Jon Hunt, and Mike Wood while in Cincinnati.

I did a lot of reading in 2014. Because of all the driving I'm doing, I settled on a system of getting both the audio and printed version of the same book and alternating between them, depending whether I'm on the road (thank you public library). In 2014, I completed the following books:

  • Windows Store App Development by Pete Brown
  • The Thrawn Trilogy: Heir to the Empire, Dark Force Rising, and The Last Command (all 3 by Timothy Zahn)
  • The Mists of Avalon by Marion Zimmer Bradley
  • Real World Windows 8 Development by Samidip Basu
  • The Chronicles of Thomas Covenant The Unbeliever: Lord Foul's Bane, The Ilearth War, and The Power That
  • Preserves (all 3 by Stephen R. Donaldson)
  • Small Gods by Terry Pratchett
  • Ringworld by Larry Niven
  • The Mars Trilogy: Red Mars, Green Mars, and Blue Mars (all 3 by Kim Stanley Robinson
  • The Amber Chronicles: Nine Princes in Amber, The Guns of Avalon, Sign of the Unicorn, The Hand of
  • Oberon, The Courts of Chaos, Trumps of Doom, Blood of Amber, Sign of Chaos, Knight of Shadows, and Prince of Chaos (all 10 by Roger Zelazny)
  • That Hideous Strength by CS Lewis

In addition to technical books, I am making an effort to make it through this list. You can read my reviews of many of the books I've read here.

My job as a Technical Evangelist has made it easier to meet my goal of learning something new every day. I've been focused on Azure more than anything else this year and my knowledge of this platform has expanded a great deal.

Technology and Friends – my weekly Internet talk show - continues to be successful. This month, will mark 6 years since I recorded my first interview. In 2014, I published 51 episodes. The list of guests was impressive, including David Chappell, Jon Skeet, and Eric Lawrence. The next episode will be #350.

Not everything was perfect. There were ups and downs during the year and I had my share of disappointments and stress and nights of insufficient sleep. But I believe I did a good job of maintaining a positive outlook, even when things were not going well. It helped that I continued my practice (begun in 2013) of beginning each day by thinking of and sharing something for which I was grateful. I reflected on that practice in this article.

As you can see, I packed a lot into 2014 - maybe as much activity as I've packed into any year of my life. Staying this busy kept me focused and allowed me to accomplish things - for myself and for others. I expect 2015 to be more of the same, which would be fine with me. 

Visited for Work:
Ann Arbor, MI
Appleton, WI
Atlanta, GA
Bloomington, IN
Brentwood, TN
Carmel, IN
Chattanooga, TN
Chicago, IL
Cincinnati, OH
Cluj-Napoca, Romania
College Station, TX
Columbus, OH
Dayton, OH
DeKalb, IL
Denver, CO
Detroit, MI
Eau Claire, WI
Evanston, IL
Findlay, OH
Fishers, IN
Ft Wayne, IN
Grand Rapids, MI
Grayslake, IL
Houston, TX
Indianapolis, IN
Kent, OH
Knoxville, TN
Lansing, MI
Las Vegas, NV
Louisville, KY
Madison, WI
Miami, FL
Minneapolis, MN
Nashville, TN
Okemos, MI
Phoenix, AZ
Pittsburgh, PA
Redmond, WA
Rockford, IL
San Francisco, CA
Sandusky, OH
Schaumburg, IL
Seattle, WA
South Bend, IN
Southfield, MI
St. Charles, MO
St. Louis, MO
Terre Haute, IN
Toledo, OH
West Lafayette, IN
Wisconsin Dells, WI
Ypsilanti, MI

Visited outside work:

San Francisco, CA
Transylvania, Romania
Budapest, Hungary
Tampa, FL

Saturday, January 3, 2015 5:29:49 PM (GMT Standard Time, UTC+00:00)
# Monday, December 22, 2014
PipeDreams Team
The Pipe Dreams team

I didn't know what to expect when I was invited to the Hack10 Hackathon in Miami last week. I heard we would be working with Windows 10, so I installed the preview. I heard we would be working with Visual Studio 2015, so I installed that preview. I heard we would be using Azure, which was good because I love Azure and I wanted to learn more. I heard we would be doing something with the "Internet of Things" (IoT) and I wondered what was meant by that. I heard we would be using Git, so I did a bit of reading because I am very much a Git noobie.

But I didn't know what we would be working on or what the format would be.

As it turned out, we were asked to split into teams of 4 or less and come up with an idea involving IoT, Azure, Windows 10 and Git. Many people arrived with ideas and teams already formed. I did not. I looked around and saw a team of 3 with an idea and I asked if I could join them team. It was Dave Voyles, David Crook and Jennifer Marsman and they were kind enough to let me in. I had worked with Jennifer in the past and I knew Dave and David by reputation, so I believed we had a very strong technical team.

David Crook had come to the Hackathon an idea - a hardware device to monitor temperature, pressure, light, and wind flow and report that data (along with time and location information) to a database in Azure that could be queried and displayed in a portal. The hardware device would simulate the readings inside an oil pipeline because this was a real-world problem that Crook had studied before coming to the hackathon. We called our project "Pipe Dreams".

Jennifer worked to program 2 hardware devices - one to monitor the environment and one to send collected data to Azure;
Dave Voyles created a portal to displayed the data on a map, updating each collection point and popping up a message if data fell outside an acceptable range. He completed a web front-end and started a Windows 10 client;
David Crook wrote most of the business logic and analysis, including some fairly complex formulas that he acquired from his research of the oil and gas industry.
and I created an Azure SQL database and a mobile service to write and query the data.

We shared our code in a Git repository, integrated with Visual Studio Online.

When it was done, we had data flowing end-to-end, measuring the environment and collecting data via an IoT device; stored and analyzed in Azure; and reported via a web portal.

We presented our findings to the group. I opened with a video showing a pipeline explosion (of course) and promised that our solution would solve this problem. The other team members showed off the technical aspects of the solution.

It was a competition among the dozen or so teams and first place went to... Pipe Dreams! That's right, we won!

We also had a chance to see what the other teams built, which was  a lot of fun. One of the more clever (and sadistic) ideas was a device allowed audience members to rate a speaker during a presentation and give the speaker a shock if his ratings fell too low.

Two other teams placed in this competition: A team from Brazil created a game that became more difficult as more players connected over the Internet and played against you; and Paul DeCarlo, Jared Bienz, and Sertac Ozercan created a device to play music that could be controlled via a range of other devices, including Windows 8, Windows Phone, XBOX One and the Microsoft Band.

Overall, it was an excellent weekend. I learned a lot about the technologies we worked with and I was able to partner with some really bright technologists. Microsoft had invested quite a bit into the event to help keep us Evangelists up to speed on the technical side of our jobs - we stayed in a nice hotel, ate excellent food, and there were a number of experts on hand to answer questions or help us when we got stuck.

I hope these types of events continue and I hope that I can be a part of one in the future.

Azure | Tech
Monday, December 22, 2014 12:26:48 AM (GMT Standard Time, UTC+00:00)
# Monday, December 15, 2014
Monday, December 15, 2014 2:14:00 PM (GMT Standard Time, UTC+00:00)
# Wednesday, December 10, 2014

"Small Gods" is the thirteenth book in Terry Pratchett's Discworld series.

Pratchett's Discworld universe contains a plethora of gods. The vast majority of these gods are tiny, swarming invisibly and unnoticed in the desert. But a few gain a following of worshippers, which increases both the size and the power of these fortunate gods.  One such god was Om, who was so powerful in the country of Omnia that the priests who ruled the country would tolerate the worship (or even mention) of any other god. Om would typically manifest himself as a giant bull; but, when the story opens, he has somehow been transformed into a small tortoise. Om is preoccupied with his reduction in status - from powerful being to to tiny reptile - and with avoiding the talons of hungry eagles circling overhead.

One of Om's problems is that the people of Omnia don't really believe in him - they only go through the motions of their religion out of fear of the priests and the mysterious Quisition, who capture, judge, and torture accused heretics. Another of Om's problems is that he cares very little for the lives and fates of those who worship him - he only desires their faith because it brings him greater power, but he cannot even remember the names of his own prophets.

While struggling in his tortoise form, Om encounter Brutha, an illiterate student/servant with a good heart. Brutha is the only one in Discworld who can see or hear Om because he is the only one who believes in him without the threats from the Omnian church. Brutha is troubled to discover his god is not omnipresent or omniscient or caring or even polite. But he agrees to help him return to his former glory.

Small Gods is filled with quirky characters and witty prose. Like all the Discworld novels, every scene overflows with silliness. Pratchett describes a philosopher with the following:

His philosophy was a mixture of three famous schools -- the Cynics, the Stoics and the Epicureans -- and summed up all three of them in his famous phrase, "You can't trust any bugger further than you can throw him, and there's nothing you can do about it, so let's have a drink."

Or this witty exchange between the leaders of two countries:

"Slave is an Ephebian word. In Om we have no word for slave," said Vorbis.
"So I understand," said the Tyrant. "I imagine that fish have no word for water."

But Small Gods also biting satire about the dangers of religious zealotry and the emptiness of blindly following tradition. With Small Gods, Pratchett reaches beyond making us laugh and makes us think.

Wednesday, December 10, 2014 2:49:00 PM (GMT Standard Time, UTC+00:00)
# Tuesday, December 9, 2014

I spend a lot of time learning new skills and new technologies. After learning something new, my first reactions are to apply it that knowledge and to share that knowledge. When I was a consultant, I spent more time applying knowledge; generally, I was learning things that I needed to do my job, such as a technology that fit my current project.

Today, I am a Technical Evangelist and I spend more time passing on that knowledge to others.

I have found the following to be the most useful ways to pass on the knowledge I've learned: blog posts; technical presentations at user groups and conferences; screen casts; and hands-on labs.

Each of these media tend to appeal to different groups. There are a number of software developers, for example, who read blogs every day but never attend a code camp or user group. There are also different learning styles: some people learn more by reading; others by seeing it done; still others by doing it for themselves. (For me, a combination of all three works best).

Knowing that these different audiences exist has given me permission to package the same information into a variety of formats.

For example, for the past few months, I've developed and delivered a presentation on Azure Mobile Services. The presentation lasts about 90 minutes, which is perfect for a user group. I can cut it down to 60 or 75 minutes for a conference time slot.

Many people who saw this presentation told me they like the content because it covers all the basic features of Mobile Services and explains why they are important.

A few weeks ago, I had some extra time so I decided to commit to a adding more technical content to my blog. I was struggling to come up with ideas when I thought of the Mobile Services presentation. As often as I gave this presentation, only a few hundred people had seen it due to the fact that people had to travel to a user group or conference on a specific date and time to catch it.

I decided to transcribe the contents of my presentation into a series of blog posts. So far, I've written 9 different blog posts and I still haven't covered all the material in the 90-minute presentation.  Writing blog posts makes the content available to people who prefer written material over in-person delivery; and it also makes it available to a much larger audience - you don't need to travel to where I'm speaking in order to learn what I am teaching. (I’ve linked to the posts at the end of the article)

After a couple weeks of blog posts, I scheduled a hands-on workshop at a large university in order to show students how to use Mobile Services. I decided to start the workshop by delivering my presentation. Afterwards, I wanted the students to try the technology themselves, so I wrote a set of Hands-On labs with step-by-step instructions for creating and configuring Azure Mobile Services. The labs were similar to some of the blog posts I had already written but I re-wrote them with a different audience and a different goal in mind - The blog posts could simply be read; but with the labs, I was expecting the reader to follow along, so I had to make each step as explicit as possible. You can download the current version of these labs at https://github.com/DavidGiard/Azure-Mobile-Services-Labs.

I haven't yet decided if I'll record a set of screencasts showing developers how to manage Azure Mobile Services, but doing so would not involve a huge amount of time, since I already have most of the script written (from either the blog posts or the labs).

I'm not sure what is my next step - expanding the labs, continuing the blog post series, or creating screencasts. Of course, there are other demands on my time that will keep me from doing all of the above.

My point is that I don't see any problem repackaging the same content in multiple formats. Different people learn in different ways, so it's a great way to scale your knowledge transfer. If you are in the business of educating people, I'd love to hear your opinion. Is it cheating to repackage the same content? Or is it effective use of time and good scaling of delivery?

Azure Mobile Services Blog Posts (so far)

Tuesday, December 9, 2014 11:50:00 AM (GMT Standard Time, UTC+00:00)
# Monday, December 8, 2014