We're having a CODE CAMP in Toronto in January! I'm so excited! A Code Camp is a very different kind of community event, and one that can only happen when you have a strong and vibrant developer community. If you've never heard of it, check the Code Camp Manifesto or just Google for it and find people saying things like this:

Feature a great variety of speakers and topics (except no marketing fluff allowed)

Provide an opportunity to speak for the first time

Many Code Camp attendees have never been to a daytime or paid-attendance event - we don't all work for companies that make that possible, after all. If you've been to plenty of such events, you might consider speaking at this one: an hour on something you know well because you're doing it at work isn't hard at all, really. This is a great chance to "crossover" to the other side of the microphone. If you haven't been to lots of these events -- you've never been able to get to a DevDays or a VSLive, or heaven forbid something out of town with actual travel expenses -- plan now to set aside a weekend in January to fill your brain with free technical content and get to know the developer community in the Toronto area.

Toronto is a large city, over 3 million people, and the "Greater Toronto Area" supports a LOT of user groups:

And out of all these people, who is spearheading the Code Camp initiative? My two co-executives from the East Of Toronto group, that's who! I'm very proud of that. The GTA is full of good organizers and speakers (and has three Regional Directors on top of that) and I know we will be able to put on an amazing day. Right now Jean-Luc is finding a location and sponsors (or Contributors as Code Camp likes to call them) and shortly he'll be gathering speakers. You should use his blog to get in touch. My firm is sponsoring for sure: a Code Camp is a really low-cost event to put on and reaches a number of developers other events never do.

Kate

ps: I wanted to say that this would be the first Code Camp outside the USA, but once again Derek Hatchard has shown what a star he is: there will be a Code Camp in Atlantic Canada just next month. Go Derek!

This morning I got an email that my blog was down... turned out that one of the drives in my web server had died. We were in the process of moving everything off that server anyway, to a more modern one, but needless to say this accelerated the schedule a little. While we were at it, we upgraded dasBlog to 1.8. I believe all the comment spam should have gone as part of the upgrade, and from now on you will need to do the Captcha thing to leave comments. If you hate that, email me and we'll discuss it. I sure was hating clearing out the you-know-what.

The Regional Directors had so much fun doing the GrokTalks at Tech Ed USA, we just couldn't leave it as a one-time thing. So at the PDC, we've arranged an event called PDC Underground. While we won't be filming and uploading the talks, we will be able to accomodate an actual audience. If you're going to be in LA, or if you're there all the time anyway, you want to come to this event. Ten RDs, fifteen minutes each, just the essence of what you need to know about one topic.

I'm doing "C++ is alive and well":

Abstract: The "C++ for the runtime" in Visual Studio 2005, C++/CLI, features everything developers love about C++ -- including templates and deterministic destruction -- and everything we love about the CLR -- including generics and garbage collection. This best-of-both-worlds approach enables the fastest and easiest interop between managed and unmanaged code. Preserve your legacy without a port, use the same binaries to support old and new clients, control the cost of interop: that's what C++ does so well.

More details and a registration link at http://www.pdcunderground.com/. If you're a member of a user group in the LA area, contact your leader who probably can get you a button to wear.

Kang Su kicks off his blog (two and a half weeks ago, I can't believe it took me this long to notice) with a big red HIRING in the middle of his first post, then goes on to give you the C++-eye view of PDC including the so-worth-your-while upgrade lab. Then he tells you how to find out what the Profile Guided Optimization process discovered about your code. Excellent and you know I'll be reading regularly.

Next time I get out to Redmond, though, I am going to have to ask for a tour of the office so I can see where they keep the “your turn to blog regularly” baton or hat or whatever they use. It seems as soon as one or two start, theothersallstop. :-(.

In less than three weeks I will be at the PDC! On the first day, I'll be a panelist at the Women in Technology panel. If you've been to one of these at TechEd, all I can say is PDC isn't TechEd. Things will be a little different this time. Here's the abstract that's going in the guide:

This panel will cover how women have used their intelligence and creativity to excel in the software industry. Hear from women IT professionals who are successful in a male-dominated industry. Learn, connect, and engage at this networking panel, where your questions drive the agenda, and hear tips and tricks on how to succeed as a woman developer or technical professional in the computer sciences and technology marketing. Both men and women are invited to join in the conversation, and learn from each other about how to grow diversity in the IT industry.

One thing that will be the same is the quality of the panelists. I'm not going to brag about myself, but let me tell you the other panelists are fantastic: Angela Mills (Microsoft), Anne Thomas Manes (Burton Group), Dee Dee Walsh (Microsoft), Michele Leroux Bustamente (IDesign Inc.), Shoshanna Budzianowski (Microsoft) and our moderator, Esther Schindler (Ziff-Davis). I've been lucky enough to watch most of them in action before and you're sure to pick up valuable career insight.

And in case that sentence from the abstract didn't quite click the first time, let me paste it again: Both men and women are invited to join in the conversation. See you there!

Last year I had a marvelous time at Tech Ed Africa, and made the Top 5 list. I am thrilled to announce that I will be there again this year! It will take me about 41 hours to travel from my house to the conference center, and about 36 hours to get home a week later. This place is seriously far from home.

My talks:

Microsoft Visual C++ 2005: A Look at the New Features for Building Fast Native and Managed CodeWhether you build end-to-end applications or components for enhancing larger applications, the new Microsoft Visual C++ 2005 is the power tool for Windows programming. In this presentation we spend extensive time in the Visual C++ 2005 development environment -- highlighting new productivity features -- as we dive into its support for building high-performance, first-class native and managed applications. Learn about native code compiler optimizations, security enhancements, 64-bit development, and support for multiprocessor/grid computing systems. In addition, this presentation demonstrates how Visual C++ 2005 now provides CLR/.NET Framework support that allows it to stand toe-to-toe with any other tool in terms of elegance and productivity… with the additional benefit of high-performance access to native code and the ability to easily move native code to the managed environment.

Microsoft Visual Basic 2005: Application Frameworks and Advanced Language FeaturesThis is a must-see session for Visual Basic developers who are new to Microsoft Visual Studio 2005, and also reviews the major feature changes and additions for beta 2. Take a top-down look at the new application architecture and RAD development enhancements in Whidbey, including several key productivity features that are exclusive to Visual Basic. This session covers the new Visual Basic lightweight application model for client applications, the My namespace, Data, Settings and Resources, and many more features that speed development for connected applications.

Windows Forms: Deploying Applications with ClickOnceThis session covers examples of ClickOnce deployment technology at work in the real-world as well as advanced scenarios, including an in-depth look at leveraging ClickOnce APIs for server-side extensions and on-demand deployment of application components.

Only two things could have made my trip last year better: an extra day to explore and soak in the marvelous place where this conference is held, and a friend from "home" to travel and explore with, to while away the long trip there and back. Can you believe I get both my wishes! I must be living right.

Gregory Consulting is in its 20th year of operation, and at the moment has six employees. I think it's fair to point out you can't stay solvent over that length of time, meeting payroll, paying rent and ISP fees, without some business sense. One of our most important rules is Fail Fast. If you're doing something that might not work, and it's going to fail, it is so much better to fail in the first week than in the sixth month. This leads to all kinds of useful practises like doing the risky bits first, prototyping, making little proof of concept apps or subapps, and the like. Note that we don't do these things because a Methodology said we should. We do them because our gut or some little voice in our head says “are you sure that's going to work?” and then our brain comes up with a way to fail fast. Of course not failing at all is better than failing, and these techniques can also put you in the delightful position of knowing it's going to work, and just having to write it.

Fail Fast and "let's try it" can also save you a ton of time spent arguing about what's the best way to do something. Last week, I was at a early code review of an partly-written ASP.NET 2.0 application where someone had put some DataSet instances into Session even though they were used only on a single page. I wanted them in ViewState, because sessions expire and you have some hoops to jump through to ensure the work won't be lost. One developer on the team said putting things in ViewState made your pages too big. I said that wasn't an issue for the amount of data in this app. After about ten minutes of "what if someone pulls up the whole department for a year?" back and forth we decided to just try it. It took 30 seconds to flip the code between using Session and using ViewState. And guess what? After disabling viewstate on the grid, which was making both versions of the page really slow, there was no measurable difference (even for a year's data) between the two approaches. So it's going to use ViewState to make the coding simpler. But I would have been happy even if the experiment had shown the ViewState approach was infeasible, because we'd have found out before a hundred pages were coded.

Joel Spolsky says pretty much any methodology makes good software in the hands of those who are good enough to develop methodologies, and they pretty much all can fail in the hands of those who just follow the rules and do what the methodology says. Big complex process (and as we grow, our process naturally gets more complex) runs the risk of becoming opaque to those who are asked to follow it. That's why we like to come back to some touchstones that explain why we do what we do. Like Fail Fast.

Failure can be a good thing. If it saves you from following a doomed path for a year, you're glad to have failed early rather than late. If you can learn from something that didn't work, it will have earned its keep. This morning I read a story by Steven Sinofsky (no longer an entry level programmer ) at Microsoft about the failure of a C++ application framework, essentially the first try at what became MFC. He concludes:

When I think back about the dismal failure of our first library ... and how we regrouped, learned lessons, and put those into play, I realized that without that first failure we never would have developed the success criteria that allowed us to build MFC.

I'm never afraid to fail and I am not ashamed when I do. The only shameful things would be to continue to waste time avoiding the final decision that it is a failure, or not to learn from it.

Yesterday I was at a client and we talked, among other things, about how their story would make a good one to deliver at a launch event. They have an existing project in C++, client-server with MFC etc. Using Visual Studio 2005, building on the beta, they have wrapped an ASP.NET UI around the server engine so that users who don't have the main product installed on their desktops can still look at and edit some of their data. The new features in ASP.NET 2.0 were so compelling that this client has decided to use the go-live licence and deploy on the beta. The availability of the beta to MSDN customers, and the updates with the CTP process, have helped this ISV get 6 months to a year ahead of those who wait for the launch.

Then today, I faxed back my contract for C++ Connections, which is happening the week of the launch. Although I have at least one confirmed (and two strong maybe) conference trips between now and Nov 7, I am very much thinking about that week and the excitement that will build as more and more people learn what's in the 2005 release.

Those of us who are in the loop, reading blogs from teammembers and executives, grabbing betas and CTPs, living out on the bleeding edge putting Vista on the laptop, can sometimes forget that a launch is still a really big deal to people who've been waiting for Microsoft to make a big “here's what we've got event”. While such events will always be important for getting the attention of those who weren't looking, these days you can see what they've got right now. If you're in the loop enough to read my blog, you can be just about as completely in the loop as I am. What a fun time to be a developer!