# Tuesday, 26 May 2009

Oooh, I like this a lot.

That is a little snippet from a query of work items in VS2010 (cropped from a larger pic obviously). You can add a work item and then add other work items that are part of it, break it down into smaller pieces just as though you are in project. This is a huge deal for me! I found this as part of an incredibly long and comprehensive post (with a dozen screenshots) on Brian Harry's blog. This is going to be a must-upgrade for me just for the VSTS stuff - and I love the new editor, and plenty more besides. So far not a single project I've upgraded has had any issues, they've all just worked.

Kate

Tuesday, 26 May 2009 21:22:27 (Eastern Daylight Time, UTC-04:00)  #    
# Sunday, 24 May 2009

Paul Sheriff provides a link to a panel he was on at Tech Ed about setting up a consulting business. I've watched the video and I agree with so much of what the panelists said. Watching this video will give you a good insight into the common problems we tend to run into, and some practical tips to keep yourself out of quagmires. Recommended.

Sunday, 24 May 2009 16:05:35 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 22 May 2009

Completely without sarcasm, I am pleased with Air Canada for introducing cell-phone free areas in their lounges. While it seems plenty of people come there to hang out, drink free booze, ask when the soup will be available, and have long loud conversations, I go there to have some peace and quiet and a wireless connection. (Though I do like the soup.)

Yes, that's a regular phone in the foreground, just outside the cell-free zone. Irony? Only if anyone ever used them.

Kate

Friday, 22 May 2009 15:55:23 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 20 May 2009

I just could not keep from laughing when I read parts of this Register column on C++0x. And that's good, because that's what Verity no doubt had in mind. And it's mostly accurate, though not a good first reference on C++0x. I would recommend the Wikipedia page or the many excellent entries on the Visual C++ team blog (sorry about the order) to learn what it's really all about. But let's say you have actually read and understood what STL has to say about rvalue references - well done! Your reward for that will be to understand the humour in the Register piece :-). And if you haven't understood rvalue references, well all you really need to know is that they let template writers and library writers make their code "smokin' fast" for you.

Kate

Wednesday, 20 May 2009 15:43:46 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 18 May 2009

I have pretty well always sucked in air through my teeth when I see calls to memcpy. So much of the time it's a marker of premature optimization and a developer who is sure "my code is faster than what the stupid compiler emits". Even when that's not what's going on, it's so darn vulnerable to things changing size over the decades. It just scares me. As result, there isn't much (or even any?) of it in my code, so I'm not directly affected to read that memcpy() is joining the ranks of the "you shouldn't use it" functions, along with strcpy etc.

I blogged about strcpy and some cousins being replaced with more secure versions five years ago. (I had not thought it was that long, but it turns out it was.) Now it's memcpy's turn. The Security Development Lifecycle blogs this, and shows you how to deprecate things yourself. It's probably no surprise to be told you should use memcpy_s instead. There's a scary list of security bugs that are apparently due to misuse of memcpy that memcpy_s would have caught, so if you are an memcpy user, change your ways!

Kate

Monday, 18 May 2009 15:33:06 (Eastern Daylight Time, UTC-04:00)  #    
# Saturday, 16 May 2009

I have a collection of USB drives in my laptop bag, as I suppose we all do, and recently I wanted to use one to give someone some files. This wasn't a temporary hand-it-over-they-copy-get-it-back scenario, so I wanted a pretty much empty drive. I found one with only 3 files on it, but the bad news was one of the files was called ReadyBoost.sfcache. That means at some point I had put the drive into my machine and told Windows 7 it could use it to speed up my machine. That's a good thing, and I'm a ReadyBoost fan and all that, but I wanted to use the drive for files and it was pretty much all filled with the cache file.

I tried deleting it, but no go. I tried ejecting the drive and putting it in again so I could say no if I was asked about using it, but I should have realized I hadn't been asked earlier when I put it in so not surprisingly I wasn't asked this time either. A little searching revealed the trick. Put the drive in, open My Computer, right click the drive and choose Properties. Go to the ReadyBoost tab. Presto!

Check "Do not use this device", click OK and tada - the cache file disappears and I have my drive back.

Kate

Saturday, 16 May 2009 15:20:06 (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, 14 May 2009

Choosing a UI technology is often very difficult. I've spoken to a great many developers who want to use one particular technology, but then second guess themselves. For example, they may want to build a client app, but have pressure from management to build a web or browser-based app, often with no clear technical reason. Or perhaps they want to update a Windows Forms app, and are wondering if they need to port it to WPF - and wondering how to do that.

In this interview (filmed at Tech Ed last year), Brian Noyes discusses all of this. He has some good rules of thumb and some advice grounded in his real world experience. Definitely a show to watch. On his blog, Brian summarizes some of his points. Worth a read also.

Kate

Thursday, 14 May 2009 13:45:58 (Eastern Daylight Time, UTC-04:00)  #    
# Tuesday, 12 May 2009

Daniel Kornev took a look at Code Pack and went back to the future, recreating some Longhorn WinFS demos from five years ago using Windows 7 technology. What old demos and prototypes can you find and make a modern-day reality?

Kate

Tuesday, 12 May 2009 11:35:41 (Eastern Daylight Time, UTC-04:00)  #