On Tuesday, Day 1 of TechEd, I was lucky enough to join a small group of people for lunch with Bill Gates. While spending an hour or two with Bill would be an honour at any time, to do so at his last Tech Ed was extra special. The invitees spanned a wide range of the developer spectrum, and what we had in common was our contributions to community. There were Regional Directors, MVPs, MCTs, INETA people, and so on. Bill arrived just in time for a group photo (I'll post it when I get it) and then sat down to answer questions for an hour or more. I was so impressed; more impressed than I planned to be. I found his answers really illuminating and inspiring. Our geeky minds and way of approaching problems can be turned to far more than just designing software. Why not, if you don't have to worry about covering your mortgage payment, try fixing the problems of disease, education, agriculture, and even the United Nations?

We were given an enormous (and heavy) memento:

It's going on the "bookshelf of showing off" for sure, but the inspiration and the practical information are more to me than the crystal .

It's one hour till my first breakout session. There isn't time enough to start anything, like actual work from the office at home. It's pointless to worry about my session - I'm well prepared for it anyway but if I wasn't, there isn't time to add a demo or change the deck or anything like that. I just have to sit and wait. It's one of my poorest skills. So I sit and stew instead, which is nowhere near the same thing.

But if you're reading this, and it's not 4:45 yet, come on to S230C and learn about MFC Updates. Why not?

I've been talking with attendees already and thought I would share some ideas I've been passing along. Planning is key to getting the most out of this week. The last thing you want is to be wandering the endless halls of a huge convention centre wondering where you should go next.

Start by planning your sessions with the schedule builder. You should put at least two sessions into almost every slot. Here's why: some of the sessions you plan to go to will not be right for you. They will be too introductory, or too advanced. They will cover just one little part of a technology that you don't know enough about, or a giant overview when you've already decided to concentrate on one corner. This should be clear about 5 minutes into the talk, and then what you need to do is leave. The slides will be on CommNet or the attendee DVDs, so you can get your overview or introduction later. But this hour of your life spent in the same room with someone who knows the topic needs to be spent carefully. So you quietly leave, and head to the other session you planned for this time slot. There really isn't time for you to start flipping through the catalog for possibilities once you've already ducked out. On the other hand, if the session you chose is amazingly great, stay, and plan to get the slides for the other talk instead.

As the week goes on, you'll learn the leveling codes. Every session has a code like TLA326 (my Tuesday afternoon talk.) TLA means Tools and Languages, which is appropriate since my talk is about MFC updates the team has just delivered. the "26" part doesn't really mean anything, it's just an identifier, but the 3 is the most important part of the session code. It means this is a 300 talk. These talks are advanced level, for experienced developers. They are supposed to include:

Drilling into how a Product / Technology is designed

Real world examples

Complex coding, known issues and workarounds (sample code/examples)

Compare that to a 400 level talk (like my TLA403 late Friday.) These are expert level, and likely to have:

Advanced coding considerations/challenges

Design considerations/challenges

Architecture considerations/challenges

Troubleshooting techniques at the debug level

The best description I've heard is that a 400 level talk will make your head hurt, in a good way. But really you just have to start attending talks and then you will start to see the difference. You will also start to recognize key phrases in talk titles and abstracts such as A Lap Around and know what to expect from that session.

The next tip is that sooner or later you will have a timeslot with no sessions. Maybe you ducked out of one, and then ducked out of your second choice too. That's OK! Head down to the lowest level and wander by the product team booths in the TLC, or the Community Lounge, or do a Hands On Lab. These things are often the most important part of Tech Ed. More on that later!

Being in a familiar place, doing something I've done so many times before, it makes me finally ready to blog again. A lovely quote I read just yesterday, "Blogging, like speaking at a Quaker meeting, is something one must do only if the spirit moves one." And today, in a hushed convention centre that will hold over 10,000 tomorrow but seems to have only a dozen today, it moves me. (Read the whole article, btw. And reflect that at Tech Ed we are exhorted to Learn, Connect, Explore.)

Tomorrow, my precon on Vista programming. And plenty more to follow. My friends, in more ways than one, here we are again.

Daniel Moth alerts us that a new icon has been added to System.Drawing.SystemIcons in SP1 of the .NET Framework 2.0. It's the shield - the one you put on a button by sending a BCM_SETSHIELD message with true as a parameter. Now there's another way to put the shield on things and alert people that what they are about to do will trigger a UAC prompt. Cool!

Yes! Finally one of my favourite conferences comes to one of my ... er ... nearest cities! DevTeach, star of Montreal and recently Vancouver, is coming to Toronto and bringing many of my friends and colleagues with it. I’m speaking there too... the sessions are at http://www.devteach.com/Session.asp. My talk needs it’s abstract tweaked but the title is good: What's New in Visual C++ 2008. Register before February 1st for the early bird deal. As always, Jean Rene is offering deals to user group members and other community people, so check with your contacts if you have any.

If you’ve never been to a technical conference before, and you aren’t sure anyone would pay travel and hotel for you to go to one, DevTeach is a great way to prove the value of conferences to yourself and your boss. World class speakers (many of whom will be delivering on the same topics at much bigger and more expensive conferences just a few weeks after DevTeach), topics that are relevant to your work right now, and a marvellous delegate-friendly atmosphere combine to attract attendees and speakers – why not you?

This year for the first time I am speaking at SD West. This is a conference I have watched from afar and often wanted to attend. I’m delivering a half day tutorial on Vista Programming, and a new breakout session called Practical Visual Studio Team Systems. In between I will be at Sutter and Stroustrup on C++ and a host of other feed-my-brain sessions that you might also want to attend. Check the full session list and register quickly... the early bird deadline is February 8th.

The Vista Programming abstract is:

Windows Vista is the most compelling operating system release in nearly a decade. With major improvements in the areas of security, user experience, and performance, Windows Vista offers a robust and dependable platform for building a breadth of solutions. This half day seminar prepares you for building a new class of applications that take advantage of these improvements. Come and see how to take advantage of some of the most interesting new native APIs, inter-op techniques, and .NET Framework 3.0 technologies. Learn how to build the next generation of smart client applications with the Windows Presentation Foundation (WPF), and improve user experiences with technologies like task-based dialogs, sidebar gadgets and customized Windows search functionality. Learn inter-operability techniques with managed wrappers and how to leverage the Vista Bridge. Dive into the best practices for upgrading existing applications, and understanding User Access Control (UAC). Learn how to build more reliable and secure applications with technologies like Application Restart/Recovery. And lastly, learn how to build more connected systems with Windows Communication Foundation (WCF) and RSS platform support.

The Team Systems abstract is:

The real strength of VSTS is its adaptability. Our small shop (no professional project managers, everyone’s a developer of some kind, not-officially-agile-but-not-CMMI-either) has learned a lot about making VSTS and TFS fit the way that we work. Topics include knowing which project people are working on without asking them, adding your own fields to those provided out of the box, writing your own queries and reports, and customizing your project portal. This session will help you get up to speed with the features the most practical features VSTS has to offer, and best practices will be suggested.