# 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

Comments are closed.