# Monday, January 26, 2015
Monday, January 26, 2015 5:54:00 PM (GMT Standard Time, UTC+00:00)
# Sunday, January 25, 2015

Richard Mayhew was a nobody.

He worked a dead-end job in London and his fiancé walked all over him. Everyone walked all over him.

Door was the daughter of an aristocrat from a mysterious parallel world beneath London. She had the ability to create and open portals to wherever she wanted to go.

One day, Richard encountered Door, bleeding and bruised lying in a London alley. To the frustration of his fiancée, Richard decided to take her to his flat to keep her safe and to heal. This act of kindness set in motion the events that overturned Richard's life. Soon, 2 cutthroat thugs came looking for Door and threatening Richard. The next day, everyone in Richard's life had forgotten that he ever existed. Before long, his work desk was moved and his apartment was rented to strangers.

Hoping to regain his life, Richard followed Door into London Below - a mysterious world, invisible to most Londoners and populated by the outcasts of the city above.  he found Door and helped her on her quest, while evading the cutthroats on their trail. Along the way they encountered a fallen angel, a trained assassin, an invisible roaming marketplace, a haunted bridge draped in inky, deadly blackness, and a host of unusual characters.

In Neverwhere, Neil Gaiman builds a believable world of rejects and outcasts and makes them sympathetic to the reader. The story moves quickly and easily from mystery to action. The characters are rich and quirky and interesting - at times ridiculous; at times, terrifying. Gaiman's narrative is full of wit, while continuing to advance the story.

The reader feels the pain of Richard as he moves from being figuratively lost in the "real" world of London to being literally lost in the mysterious London Below. 

Fans of clever writing and adventure stories will enjoy Neverwhere.

Sunday, January 25, 2015 1:25:40 AM (GMT Standard Time, UTC+00:00)
# Wednesday, January 21, 2015

It's hard to imagine a scenario in which a software developer would not benefit from source control. GitHub provides a repository for developers to store their source code and other digital assets.

To use GitHub, you will need to create an account at https://github.com/ and log in.

To set up a new repository, click the "+" icon next to your name and photo at the top right of the main GitHub page. This displays a dropdown list (Fig 1).

Fig 1

Select "New repository" from this list.  The "New Repository" page displays (Fig 2)

Fig 2

At the "Repository name" textbox, enter a name for your repository. This should be brief, but enough to identify the project to you and others.

At the "Description" textbox, you may enter a short description of the project, if you like. This is useful if you want others to contribute.

Use the radio buttons to select whether this will be Public (anyone can view the files in the repository) or Private (only those you invite can see the files). You can only create a private repository if you have a paid GitHub account. Free accounts can only have public repositories.

Checking the checkbox labeled: "Initialize this repository with a README" will create a README.MD file in your repository. This file is displayed on the main page of your project below the list of other files. It should contain text and Markdown language. For a description of Markdown, check out http://daringfireball.net/projects/markdown/.

There are two dropdowns at the bottom of the page: "Add gitignore" and "Add a license".

The "Add gitignore" dropdown (Fig 3)allows you to quickly create gitignore file.

Fig 3

A gitignore contains a list of files that might be on your disc, but that you don't want in source control. These might be user configuration files or binary output files.
Selecting a type of projects creates a gitignore file containing files typically ignored by that project type. For example, if I select "Visual Studio" from the "Add gitignore" dropdown, a file will be created that tells GitHub to not check in "SUO" files or files in my "bin" folder.  Of course, you can always edit the gitignore file after it is created.

The "Add a license" dropdown (Fig 4)allows you to assign a license to the files in your repository.

Fig 4

The license dictates how others can legally use these files and programs - for example, whether they can make money off of code that you share here.  There is a good description of each software license at http://opensource.org/licenses/.

After you complete the form, click the [Create Repository] button. Your repository will be created in a few seconds.

Wednesday, January 21, 2015 3:20:00 PM (GMT Standard Time, UTC+00:00)
# Tuesday, January 20, 2015

I have created a set of labs designed to tech you how to learn Azure Mobile Services.

These exercises walk you through creating and configuring a new Mobile Service.

These labs are available at https://github.com/mspcontent/Azure-Mobile-Services-Labs.

I’d love to get feedback on these exercises. Even, better you may add to the labs and submit a pull request.

Tuesday, January 20, 2015 10:00:22 PM (GMT Standard Time, UTC+00:00)
# Monday, January 19, 2015
Monday, January 19, 2015 10:15:45 PM (GMT Standard Time, UTC+00:00)
# 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)