# Monday, 24 June 2013
Monday, 24 June 2013 12:47:31 (GMT Daylight Time, UTC+01:00)
# Sunday, 16 June 2013

My father passed away last month. He was 81 years old and he was a survivor. Since his death, I’ve been thinking about all the challenges he faced in life and how he managed to survive them.

My father was in high school when his own father died. His response was to enlist in the US Navy after graduation so that his mother would not be burdened by another mouth to feed.

He didn't just enlist in the Navy: He served honorably for 23 years; he went to school at night and on weekends, eventually earning a Bachelor’s degree from George Washington and a Master’s degree from the Naval Graduate Academy. He and my mother raised 6 children (including me). He received his commission, served in 2 foreign wars, saw combat in Viet Nam as a Hospital Corpsman, and retired as a Lieutenant Commander after 23 years of honorable service.

After retiring from the Navy, he entered private left and he excelled at this as well. He worked over 20 years at St. John Hospital, overseeing its expansion into one of the largest health care organizations in Michigan. He was active in the community and served as a President of the Grosse Pointe Rotary Club. His children grew up and moved away and began families of their own. By the time he retired, he was Vice President of St. John Medical Center and ready to move to Florida to play bridge.

In Florida, he didn’t just take up bridge: He learned the game so well that he became a Life Master within 5 years. He was also active in his new community of Sun City Center, serving as President of the Bridge Club and a member of the Knights of Columbus. He remained very active while his health allowed him to be.

In his later years, his health began to fail. Skin cancer, blood disease, and nerve damage in his back and leg all took their toll on him. But he remained positive and downplayed the limitations of his physical body. The Vietnam War did not kill him and raising 6 kids did not kill him and the stress of running a hospital did not kill him, so what chance did skin cancer have?

Two years ago, he was struck by his greatest physical ailment when Alzheimer's began to rob him of his memories and his speech and his mind. Still, he remained positive. I heard from multiple caregivers that he always had a kind word for them. This was his way of defeating Alzheimer's - at least temporarily.

Last month, Normand Giard finally succumbed to all the physical trauma he had endured. He slipped into a coma and died quietly within 48 hours. My father passed away on May 10, 2013. My family flew to Florida to mourn him and to comfort my mother and to hug one another; then we each flew back home to resume our lives.

But the story doesn't end here. When I think of my father and his life, I am struck by what I see as his greatest strength - his ability to face the difficulties thrown in front of him and perceive these as challenges, rather than obstacles. My father focused on finding solutions to his problems, rather than dwelling on unfortunate circumstances.

My plan is to honor my father's memory by trying to emulate this trait. By focusing less on the obstacles in my path and more on the opportunities these obstacles present; By seeing each challenge in my life as an opportunity to excel, rather than an excuse to fail; by finding things to be grateful for, instead of things to complain about.

This will be my gift to my father - Normand Giard, the survivor, whom I miss very much on this Father's Day.

Giard_013-M[1] Giard_008-M[1]

 Giard_011-M[1]   IMG_0713-M[1]

Sunday, 16 June 2013 16:06:18 (GMT Daylight Time, UTC+01:00)
# Saturday, 15 June 2013

Last week, I was doubly fortunate. First, because I had the opportunity to attend my second Tech Ed. Although I attend a lot of conferences, the large, commercial conferences tend to be out of my price range. But more importantly, I was fortunate to be invited to speak at Tech Ed this year. This was by far the largest in-person event at which I have ever spoken and it was a great experience!

I arrived in New Orleans Saturday night and had dinner with Richard Campbell and Tibi Covaci - two of the smartest people I know.

Saturday morning, I woke up early and took a bus with a bunch of volunteers to a New Orleans neighborhood still recovering from the devastation of Hurricane Katrina 8 years ago. Tech Ed partnered with several local charities to invite a busload of attendees to help build houses in this neighborhood. You can read more about the event here.

A morning pounding nails left me exhausted but a hot bath later I was ready to attend the INETA Meet and Greet - a chance for those in the developer community to connect with one another. It was also a great chance for me to catch up with others on the INETA Board of Directors, an amazing group of people who put a lot of effort into making the developer community better.

My presentation was scheduled for Monday afternoon, so I spent most of the morning preparing for it. The topic was "Effective Data Visualization" - a talk I have given many times in the past. I was nervous but the presentation went well and the 70 minutes flew by. Over 200 people attended the session and several people approached me afterward to tell me how much they enjoyed the talk and what they learned. Microsoft Evangelist Brady Gaster was kind enough to sit in my session and provide some valuable feedback on my presentation skills. You can watch a recording of my presentation here.

At Tech Ed last year in New Orleans, I won "Speaker Idol" - a competition among those who have never presented at Tech Ed before. Carl Franklin and Richard Campbell of .NET Rocks fame host the contest in which each contestant must deliver a 5-minute presentation, followed by critiquing by a panel of 4 judges. A heat takes place each day during lunch and the finals are held on the last day of Tech Ed. As last year's Speaker Idol champion, I was asked to be a judge this year. The quality of the competition was amazing this year and I was excited to see Jeff Fritz - whom I met at last year's Speaker Idol - finish as runner-up this year. The champion was Jessica Devita, who gave an excellent presentation on Office 365 Migrations. I had a blast judging this event and I'm grateful I was asked to do so.

One advantage this conference has is the number of people on the Microsoft product teams who attend and make themselves available. One section of the trade show floor is designated "Ask the Experts" where Microsoft employees and industry experts make themselves available to answer questions of attendees. I took advantage of this opportunity, getting answers to my question about how to configure startup options for Lync (the menu is hidden until you click the 'Gear' icon); and my question about how to configure DNS to point to my Azure Web Site without prefacing the URL with "www" (I need to add the URL to the "MANAGE DOMAINS" list in the Azure portal).

On Wednesday, I volunteered to work one of the Ask the Experts area and I answered a number of questions about Visual Studio.

Tech Ed features over 700 sessions, which can be a bit overwhelming. I managed to catch a few of these - some in person and some via recordings. My notes are at the end of this article. I'll likely be watching some more videos during the coming weeks. They are available at http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013#fbid=-b30gJBZH1s

Even without Tech Ed, a few days in New Orleans is a pleasant experience. The hotel (Loews) was great; I explored the French Quarter in the evenings; Thanks to Becky Isserman, I experienced my first Beignet (at Cafe du Monde); I attended a number of parties thrown by sponsors; I had dinner with many old and new friends, including Mihai Tataran, Mark Minasi, Brent Stineman, Dustin Campbell, Chris Woodruff, and too many others to list here; I ate too much excellent spicy food; and I walked so much that my feet ached by the time I left.

The only downside was that I had to leave a day early to attend my son's high school graduation, so I missed the closing party at the Louisiana Super Dome that featured a concert by Tina Turner.

All in all, Tech Ed was an amazing experience and I hope to be invited to speak again next year.

Photos of Tech Ed

IMG_4682-M[1] IMG_4671-M[1]


Session Notes

KEYNOTE

by Brad Anderson
video

Key Changes to Azure
    BizTalk in cloud
    Billing prorated by the minute
    Web sites now support SSL

Brownfield Development: Taming Legacy Code with Better Unit Testing and Microsoft Fakes

by Peter Provost and Joshua Weber
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/DEV-B331#fbid=i3RgnF-27j2

Legacy Code=Any code without tests
    Risk of change outweighs value of new features
Start writing tests
    Pick something you know; then another thing you know
What test
    Code you will change
    Code that affects what you change
    Test to understand code

Do not test
    Irrelevant edge cases
    Unrelated working code

Recommended:
    Working Effectively with Legacy Code by Michael Feathers
Large methods are painful
    Do too much
    Need to understand it all to make a change
    Solution
        Refactor into smaller methods
        Single Responsibilty
    Use SENSOR variables
        private Object SENSOR;
        this.SENSOR = somevariable;
    Shim/Seam:
        Change what a method does
        Requires a scope with using()

Visual Studio Tips and Tricks

by Dustin Campbell and Scott Cate
video

Solution Explorer
    Expand class: View members
Right-click  class or method: Scope to: Used By
Filter pending changes

Common metaphor
    Back arrow

CTRL - Last cursor position
CTRL SHIFT - Reverse direction

View | Code Definition
    Always shows definition in a window without navigating away

CTRL ,
    Navigate To
    Global Search

CTRL SHIFT V
    cycles through items on clipboard ring

SHIFT ALT F11
    Prompt which nested function to step into

Building Modern, HTML5-Based Business Apps on Windows Azure with Microsoft Visual Studio LightSwitch

by Beth Massi
video

Rapid Application Development for data-based apps
Handles CRUD for you

Single Page app
"Responsive Design": Layout changes as screen size changes
1. Start
2. Describe your data
3. Create screens for common tasks

Customize screens
Define custom queries

Design or Die: The Challenge to the Microsoft Developer Ecosystem

by Billy Hollis
video

Software landscape is changing
    Customers expect apps to work on different devices

Layering information in a single panel is now possible

You don't have to be as good as professional designers; You have to be better than you are now
Need basic understanding of composition and a process

Data Grids tend not to be good for touch
    If we expand size of cells to touch, less data on screen

OK to have incomplete metaphors; Mind fills in the details

Gutenberg Principle
    In left-to-right reading cultures, people tend to scan rectangular surfaces from top-left to bottom-right.
    Fitt's Law
        Big buttons are easier to find and use
        Hollis: If buttons are too large, insulting to user (Fisher-Price principle)
    Hick's Law
        Too many options confuse / slow down users

People like wide open spaces

Screen real estate is no longer as valuable as it once was. Easy to swap screens.

Recommended books
    Universal Principles of Design
    Designing with the Mind in Mind

Keys for Design Process
    Create multiple design. Compete for best one.
    Collaborate
    Iterate
    Starts with paper (tools constrain your brain to what you know how to make the tool do)

    Observe users in the field

Present multiple prototypes
    Focuses users on differences between options, rather than nitpicking limitations of a design

TypeScript: Scaling Up JavaScript

Jonathan Turner
video

JavaScript Designed to
Client
Server
work on any OS
(so does Typescript output)

JavaScript code works in TypeScript

Compatibility: Can call into 3rd party javascript libraries from Typescript

Type system
Statically typed
  Better Intellisense
  Type-checking only at design-time (removed at compile-time)

http://www.typescriptlang.org/
"Play" link: Write Typescript: See compiled JavaScript

Saturday, 15 June 2013 06:25:00 (GMT Daylight Time, UTC+01:00)
# Monday, 10 June 2013
Monday, 10 June 2013 19:11:00 (GMT Daylight Time, UTC+01:00)
# Monday, 03 June 2013
Monday, 03 June 2013 19:10:00 (GMT Daylight Time, UTC+01:00)