# Thursday, 14 December 2006

Microsoft has announced that the next Professional Developers Conference (PDC) will be October 2-5, 2007 in Los Angeles, with two days of pre-conference on September 30 and October 1. That's good news and bad news for me. I'm glad we're having a PDC this year because it means there's something to announce and something to get early bits of. The official word is:

The PDC is the definitive developer event focused on the future of the Microsoft platform.  PDC 2007 attendees will have the opportunity to access new code, learn about the latest Microsoft product offerings and hear from Microsoft executives about the various platform developments. 

Check http://msdn.microsoft.com/events/pdc/ for updates; you can also subscribe to the RSS feed to find out more information about the event as we get closer.  Registration will open in the May/June timeframe. 


 

So what's the bad news? LA, again. This will be three in a row. I wouldn't miss the PDC for anything but can't we go somewhere else?

Kate

Thursday, 14 December 2006 14:50:57 (Eastern Standard Time, UTC-05:00)  #    
# Wednesday, 13 December 2006

Yes indeed, there will be a code camp in Toronto next year! It will be held Saturday, March 31st and the website is now ready for you to register as an attendee, a volunteer, or a speaker.

The Second Annual Toronto Code Camp, a free .NET community sponsored event, will be held on March 31st, 2007! Last years event was a huge success with over 220 attendees, 4 tracks, 20 speakers, 25+ volunteers and over $17,000 in prizes given away. This year’s event will be even bigger and better! Registration is now open, but remember, space is limited and based on last years response it will fill up fast.

 

Deadline for speakers is Jan 15th, for volunteers Feb 15th, and for attendees there is no deadline, but it will "sell out" -- to the extent a free event can sell out. Trust me, you want to be there. If you don't normally attend Microsoft events or user group meetings, either for scheduling reasons or because you don't want to be "sold to" and you worry that might happen at such events, you should make a point of coming to Code Camp -- it's a grassroots community event and a great opportunity to learn from a wide variety of speakers on a wide variety of technologies. And if you can stand the thought of ever speaking some day, Code Camp is the classic place to start. We'll even help you become a speaker if you're interested.

Kate

Wednesday, 13 December 2006 14:39:52 (Eastern Standard Time, UTC-05:00)  #    
# Tuesday, 12 December 2006

Gee, ten minute talks on very specific technical topics... where have I heard that concept before? It really is something technical people need. Here are a bunch from MSDN in the UK along with a pretty nice UI to let you filter by technology, content level, even presenter if that's important to you. They seem to upload more about every other month.

I took a quick listen to "Wrapping Windows APIs with C++/CLI" and I liked it.

Kate

Tuesday, 12 December 2006 14:29:29 (Eastern Standard Time, UTC-05:00)  #    
# Monday, 11 December 2006

The Regional Director program truly is worldwide -- about half of the 120 or so of us are located outside the USA. So let's say you want some pictures of Microsoft software in beautiful locations around the world, what better group to ask? The program asked us to send in pictures this fall, and here's the result:


(larger version)

Amazing, aren't we? For my picture, which is nowhere near as spectacular as some, I went and stood among some turning leaves.

Kate

Monday, 11 December 2006 14:01:05 (Eastern Standard Time, UTC-05:00)  #    
# Sunday, 10 December 2006

The title isn't mine, it's Charles Petzold's, and I would be quite surprised if you didn't learn things about C++/CLI just by learning things about the .NET Framework. In other words, you don't need to plan to switch to C# to get some benefit of this free e-book. It was originally supposed to be a chapter, but ended up over 250 pages long.

I know people still need this material. I have a new mentoring client with an established team of C++ developers who are just looking at moving to the .NET Framework. I came and did a "what is .NET" talk for them, with diagrams like this:

 

If you already recognize these pictures and realize what they are supposed to illustrate, then you don't need the e-book. But if you haven't really paid much attention to the .NET Framework, then this is a fairly painless way to learn a lot of it. The thing is, it's all C#. My suggestion to you is to bear with that -- a C++ programmer can read C# without too much difficulty -- and then come on back here to see how to do the same things using idioms you already know and love, and how to drop back into native code any time you like for various reasons include control over your application's performance.

Kate

Sunday, 10 December 2006 13:45:07 (Eastern Standard Time, UTC-05:00)  #    
# Saturday, 09 December 2006

I was just looking at some old-style MC++ to convert a sample into C++/CLI. I had to convert this sort of thing:

public __gc class PostCodeChecker
{
public:
    virtual String* Check(String* code)
    {
        String* error = S"OK";
        return error;
    }
    Boolean Test(String* code)
    {
        Boolean ret = false;
        String* error = Check(code);
        if (error->Equals(S"OK"))
        {
            ret = true;
        }
        return ret;
    }
};
Into this sort of thing:
public ref class PostCodeChecker
{
public:
    virtual String^ Check(String^ code)
    {
        String^ error = "OK";
        return error;
    }
    Boolean Test(String^ code)
    {
        Boolean ret = false;
        String^ error = Check(code);
        if (error=="OK")
        {
            ret = true;
        }
        return ret;
    }
};

This is pretty mechanical work and just the sort of thing you might like to hand off to a tool. The VC++ team has been working on one, but it hasn't been a top priority. Now they've decided to release it as-is to those who might have some use for it, rather than holding onto it until it's perfected:

To set expectations correctly, the tool was going to be a “help” rather than a complete solution and in the push to complete other projects the tool was never fully completed, tested or documented. We are happy to release the tool “as is” as a few initial tests with external users have shown that they received benefits from using the tool even if: 1) it does not provide complete translation between the two different syntaxes and 2) manual modify of the outputted source code is still required to complete the conversion. The tool does come with source code so that users who wish to modify or extend the functionality to better suit their code bases can. The tool is totally unsupported by Microsoft.

If you have some oldstyle Managed C++ to convert, why not see if it can help you? It's a 5 meg download.

Kate

ps: one of the side effects of the more readable nature of C++/CLI is that after the mechanical work was done I just had to do this:

Boolean Test(String^ code)
{
    return Check(code)=="OK";
}

 

Saturday, 09 December 2006 07:44:38 (Eastern Standard Time, UTC-05:00)  #    
# Friday, 08 December 2006

Do you read Raymond Chen's blog? You really should. Like so many of the blogs I read these days, it is also going to be available as a book.

Ryamond says:

Luckily, I found a sympathetic ear from the folks at Addison-Wesley Professional who were willing to take a chance on my unorthodox proposal. But I caved on the length, bringing it up to 500 pages. Actually, I came up with more like 700 pages of stuff, and they cut it back to 500, because 700 pages would take the book into the next price tier, and "There isn't enough of an audience for a book that big!"

Eighteen months later, we have The Old New Thing: Practical Development Throughout the Evolution of Windows, following in what appears to be the current fad of giving your book a title of the form Catchy Phrase: Longer Explanation of What the Catchy Phrase Means.

It's a selection of entries from this blog, loosely organized, and with new material sprinkled in. There are also new chapters that go in depth into parts of Win32 you use every day but may not fully understand (the dialog manager, window messages), plus a chapter dedicated to Taxes. (For some reason, the Table of Contents on the book web site is incomplete.)

Oh, and those 200 pages that got cut? They'll be made available for download as "bonus chapters". (The bonus chapters aren't up yet, so don't all rush over there looking for them.)

This is a kind of trend really - many writers have put energies into blog posts instead of books, only to look up and discover that some of the posts, rearranged into an approrpriate order and with a little writing to connect them, make a pretty cool book. It's not clear whether it will be out in time to ask for it as a Christmas present, but it would be a cool way to use any booky gift certificates people give you.

Kate

Friday, 08 December 2006 11:04:21 (Eastern Standard Time, UTC-05:00)  #    
# Thursday, 07 December 2006

In Barcelona, I was on the panel for the Barcelona Girl Geek Dinner. Now, lest anyone be under the illusion that these panels are carefully peer-selected and reviewed, that there's some committee somewhere finding the cream of modern geekhood -- well maybe that was how the others were chosen but for me, I was hanging out in the speaker room when Sarah, who I'd only just met, asked me if I'd do it and I said yes.

I had a lovely time at the panel and we all spoke about our experiences, advice to newbies, how nice it is not being "the only one in the room" from time to time, and so on. I was sitting with Catherine and Cyra, two of my fellow panelists, and Charles Torre of Channel 9 was with us, and we talked over dinner and wine the way in my experience geeky women always do -- a fast paced mix of very technical shoptalk and personal getting-to-know-each other material. (I learned a lot from Cyra and wish we had had more time together.) When the event ended, the four of us walked together across the street to the speaker hotel, but it was such a short walk and we weren't finished talking. Someone expressed an interest in dessert, and we decided to see what the lobby bar had to offer. We kept on talking, and at one point Catherine and I were trying to convince Charles that "the compiler is your friend" -- that strong typing and early binding have big advantages. Charles kept saying "I can't believe I'm not filming this" until eventually he picked up the camera and started to film. He asked us questions he knew we cared strongly about and off we went.

The resulting video is now on Channel 9. It seems to kind of start in the middle because, well, we started in the middle. I suspect it's the only video on Channel 9 featuring gestures with a glass of Scotch. It's one of the very few that doesn't feature exclusively Microsoft employees, so I am honoured to see it there. Those of you who have heard my line "I stay up late over too much red wine arguing about deterministic destruction" can now see that in action. We don't introduce ourselves till the very end, so if you need to know who's who, download the whole thing, skip to the end, then go back to the beginning and watch us.

Kate

Thursday, 07 December 2006 10:51:37 (Eastern Standard Time, UTC-05:00)  #    
# Wednesday, 06 December 2006

Man, I've been making software for a long time. I first came across Fred Brooks' essay No Silver Bullet: Essence and Accidents of Software Engineering when the mail (you remember, the physical mail) brought me the magazine (you remember physical magazines) and it was the cover story. Apparently that was the April 1987 issue which is bringing us perilously close to the twenty year mark. (And if I needed to, I could get my hands on that copy within minutes... in fact I'm sure I've held it within the last year or two.) And now people are talking about it again. Larry O'Brien has a long post with links to some other posts of his own and by Wesner Moise. He also captures what I consider to be the essential quote from the essay:

I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation. We still make syntax errors, to be sure; but they are fuzz compared with the conceptual errors in most systems.

The thesis is that software development gets easier or faster or more accurate only by degrees: you cannot adopt structured programming or object oriented programming or aspect oriented programming or functional programming or agile techniques or anything and expect to be ten times faster or a hundred times faster, no matter what people tell you:

There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.

It was true then and it is true now. And it will still be true when my kids are as old and grey as I am becoming. Worth reading and rereading, and not waiting twenty years between rereads. Oh and by the way, this is the same Fred Brooks who invented the heavens-I-wish-it-wasn't-true rule: Adding more people to a late project makes it later. That's from 1975 and you can't escape it either.

OK, there is one way you can achieve an order of magnitude improvement in productivity: hire the right people. The good ones are ten times as fast as the OK ones, and infinitely faster than the none-of-their-code-ever-ships ones. But that's not a technology or a management technique, so it doesn't count for our purposes.

Kate

Wednesday, 06 December 2006 20:10:13 (Eastern Standard Time, UTC-05:00)  #