# Friday, 23 October 2009

Did you like the wallpapers of Canadian scenery I showed the other day, that are already on your Windows 7 machine and just need to be selected? Would you like some more? Go to http://windows.microsoft.com/en-US/windows/downloads/personalize?T1=themes and scroll down past the Coke and Ferrari and so on to find more lovely scenery. I copied mine into the folder that was already the source for my desktop wallpaper rotation.

I think the Northern Lights is my favourite at the moment.


Friday, 23 October 2009 10:18:34 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Wednesday, 21 October 2009

I remember, back in the day(*), being so confused about NULL. At first I thought it was a keyword, a special value of some kind. Then I learned it was just the same as 0. Or maybe 0L. I worked with people who said it was wicked to use it, and you should always type the 0 yourself. I worked with people who said it was wicked not to use it, because it made your intentions clear to humans. I even worked with people who used it in for things other than pointer-setting or pointer-checking. I argued with people who thought if(p) was or was not more clear than if (p != NULL) and, late at night when we'd been drinking, about what would happen if some other value than numerically zero meant "null pointer" and what that would do to the world's code, and how to write our code so that could never hurt us.

But that was long ago. These days I've pretty much internalized NULL (and for the record, I'm an if(p) gal) and no longer think about it. One of the reasons I don't have to think about it is that I don't write a template library that's used by millions of developers. If I did, I might have to worry about template-argument-matching and how compilers are supposed to deal with being given an int and knowing to match that up to a Something* -- but then again, only if the int has the value of zero. It's been a pretty clever trick for a really long time, but with the advent of perfect forwarding in C++0x (thanks to rvalue references) it just becomes impossible to always pull off that trick. Luckily, the same language changes that led to rvalue references also held the solution - the literal nullptr that isn't an integer with the value 0, but actually represents a pointer-to-anything that isn't pointing anywhere right now.

For the gory details, a wonderfully transparent look at how the team decides what to do in a release and what to hold for later, as well as some delightful glee at being able to do stuff, some amazing understatement ("somewhat arcane" indeed) and moments later "the world explodes!" you have to watch STL on nullptr. BTW, he deliberately pronounces it null-putter so people can tell he's not saying "null pointer" which would still be NULL. He even gets into nullptr vs nullptr in the land of /clr and how the double underscore (seriously) rides to the rescue. Major whiteboard action and in the end you'll know a little more about why the magical STL (the library) works, why it's faster in VC++ 2010, how the team (including the human STL) thinks and works, and the insides of my favourite language.


* that would be before Microsoft had a C++ compiler, over 20 years ago. Four and a half years ago I reflected that I was very close to having 20 years of C++ experience.

Wednesday, 21 October 2009 09:49:40 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Monday, 19 October 2009

My download is underway right now. And while I wait for two gig of beta good stuff to reach my hard drive, I thought I'd share some of the announcements from Microsoft around Visual Studio 2010.

  • The launch will be March 22nd, 2010. I will have more details on that over the next few months.
  • The SKUs are being adjusted and simplified. I never met anyone who used just the Developer Edition, Architect Edition, Tester Edition or Database Edition of Visual Studio Team Systems. We all used Team Suite. So now we'll all use the Ultimate Edition. It has even more stuff than the old Team Suite did. People who don't want the source control and work item tracking and modelling and diagramming and schema/data management and all the other great things in Ultimate will get Professional. Some of them will get Premium, which sits in between the other two. Plus all the free Express SKUs will continue to get you what you need to just build an app right away without spending any money at all. (Already a subscriber? You'll get more without paying more, which is hard to argue with.)
  • MSDN has a whole new look (way more blue, lots of links to fresh blogs and announcements) and some cool new benefits like free Azure hours. If you're paid to make software, you should have an MSDN subscription. If you can't afford it and your company is new, take a look at BizSpark which makes it free. If you're not new or your company doesn't make software, look at the partner program. But for everyone else, this is what you need.

If you totally haven't been paying attention and have no idea what the excitement is about, start with this What's New document and these highlights (featuring screenshots and plenty of links).

And finally, after many years of Old Visual Studio logo,
get ready to start loving New Visual Studio logo and New Visual Studio logo


Monday, 19 October 2009 12:45:28 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Saturday, 17 October 2009
As C++ developers, we have a lot of options about how to link to libraries we use. We read sometimes that if we link statically, we will have more work to do if there's ever a security hole in the library, since we'll have to redeploy our app rather than just relying on the users to get the new library and use it dynamically. There's a great example of that in the ATL story that is now just wrapping up. A problem was discovered in July, and emergency updates were promptly released - just a day before the guys who discovered the problem spoke about it publicly. An article that same day pointed out that the error was almost a typo - an extra & in an expression - and warned that the patches "do not automatically fix software that was developed using the buggy ATL. Instead, vendors -- Microsoft as well as third-party firms -- must use the patched Visual Studio to recompile their code, then distribute the new, secure software to users." Well finally, Microsoft has finished their part of it with updates for the parts of Office that were using the old ATL. Have you done all of yours?


ps: love the "related twitters" at the bottom of the article - people may not tweet about the Active Template Library very often, but they sure do mention a certain airport / city that uses the same abbreviation :-)

Saturday, 17 October 2009 12:13:47 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Thursday, 15 October 2009
Inspired by the Visual Studio Documentary, Rico Mariani is writing his own history. So far he's up to 8 parts and they make for great reading. He goes into some of the technical challenges the teams faced, and talks about cancelled and sidelined projects along the way. He's made a category for it so you can read the whole thing start to finish ... but I'm reading as he goes and not waiting till it's done. Do read in order though, starting at Part 1.


Thursday, 15 October 2009 11:34:46 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Tuesday, 13 October 2009

Esther Schindler and I go way back. She's a great editor and I never quite have time to write for her, though I've come close a time or two. Recently, she wrote:

I decided to compile a list for developers, designers, and other techies of blogs-worth-reading whose authors just-so-happen-to-be (mostly) women. I'm a strong believer in women being more visible; we tend to fade into the background, too much, and to apologize for our achievements. (That's one reason why women earn less than men; I'll get into that discussion another time.) Enumerating women-to-admire felt like a good way to highlight smart people who have wisdom to share.

I am delighted to see my friends on this list, and to be introduced to new blogs as well. Esther was even nice enough to include me on her list. Take a look and see if you can make a new friend, or at least a new habit.


Tuesday, 13 October 2009 11:29:52 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Sunday, 11 October 2009

While rehearsing some talks recently I was playing around with my desktop background. I've used a shot from my Bermuda vacation for a long time, because it cheers me up if I am feeling stressed. But I enjoyed having some local "autumn colour" shots on there too. Windows 7 has a "desktop slideshow" feature that changes your background every 30 minutes and I'm going to use that for a while ... though I might add my pink beach image to the rotation.

Thing is, I don't want to rotate through iconic US pictures, lovely though they are. That's why I was pleased to read, on How-To Geek, how simple it is to activate themes for Canada, Australia, South Africa, and Great Britain. The Canadian wallpapers really are lovely:

I think there should really be a prairie one in there too, but I'm not complaining. Give them a try!


Sunday, 11 October 2009 09:32:07 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]
# Friday, 09 October 2009

You have to see these. Roughly half an hour each, featuring an RD and at least one former RD, it’s a cast of luminaries and also has some funny-looking-back archival footage. I learned a few things, remembered a whole bunch more, and smiled and laughed a lot. Check them out. Apparently there’s a whole series to follow with the full interviews with all those folks. I like this chronologicallish approach with different interviews interwoven, but I’m sure I’ll watch the long ones too when they come out.

Here’s who’s in it:

  • Anders Hejlsberg
  • Soma Somasegar
  • Dan Fernandez
  • Alan Cooper
  • Bill (archive footage)
  • Tim Huckaby
  • Tony Goodhew
  • Dave Mendlen
  • Jeff Hadfield
  • Jason Zander
  • Mardi Brekke
  • Dee Dee Walsh
  • Scott Guthrie

They are both on Channel 9 (and read the comments too): Part 1 and Part 2.


Friday, 09 October 2009 09:23:24 (Eastern Daylight Time, UTC-04:00)  #    Comments [0]