# Saturday, June 15, 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, June 15, 2013 6:25:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, June 10, 2013
Monday, June 10, 2013 7:11:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, June 3, 2013
Monday, June 3, 2013 7:10:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, May 27, 2013
Monday, May 27, 2013 7:08:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, May 20, 2013
Monday, May 20, 2013 7:07:00 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, May 14, 2013
Tuesday, May 14, 2013 10:09:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, May 6, 2013
Monday, May 6, 2013 10:08:00 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, April 30, 2013
Tuesday, April 30, 2013 7:10:00 AM (GMT Daylight Time, UTC+01:00)
# Thursday, April 25, 2013

bootcamp[1]

I first heard about the Global Windows Azure Boot Camp in February, while attending the Microsoft MVP Summit. Azure MVP Magnus Mårtensson told me about a day that he and his cohorts were planning when cities all over the world would simultaneously host an event designed to teach people about cloud computing and Windows Azure. Students, instructors, and organizers in each city would be able to collaborate and order to learn more about this exciting technology.

It's two months later and I find myself preparing to host one of these boot camps - this one in Southfield, MI. My friend Mike Wood is helping to organize the event, both globally and in Columbus, OH and he forwarded to me some people in Michigan who had heard about the event and were prepared to drive to Columbus to attend.

So I began planning and it is now rolling forward at full speed. 65 people have already registered for the Detroit Azure Boot Camp. I've enlisted the help of Victor Szalma and Susan Yount to help present some material; and Brian Korzynski and Ed Hanlon will be assisting with the logistics. Sogeti and Microsoft agreed to sponsor the event, which means we can keep it free and provide lunch for everyone.

Each attendee should bring a laptop with Windows 7 or 8; Visual Studio; and the Windows Azure Training Kit installed. In addition, they should sign up for a Windows Azure account prior to arriving at the event.

The format will be a combination of classroom-style presentations and hands-on labs and the goal is to give each student a basic understanding of Azure, some hands-on experience and a chance to dive as deeply as they can.

If you would like to attend the Detroit Azure Boot Camp, you may register at http://detroitazurebc.eventbrite.com/. If you are looking for a Boot Camp closer to your home, you can find a list of all 96 locations at http://globalwindowsazure.azurewebsites.net/?page_id=151

Thursday, April 25, 2013 1:55:42 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, April 23, 2013
Tuesday, April 23, 2013 7:06:00 AM (GMT Daylight Time, UTC+01:00)