# 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)  #    
# Sunday, 10 May 2009

I haven't put the RC on my laptop yet - too close to Tech Ed for me to mess with important stuff - but I liked this summary from Tim Sneath of what an RC means, and what you should be looking at as a developer. Make sure your application runs properly on Windows 7 to start with (and if it runs on Vista, it will almost certainly run on Windows 7), then look at adding goodies to it that take advantage of what the OS has to offer. He even includes a link to Code Pack. Check it out.

Kate

Sunday, 10 May 2009 20:23:38 (Eastern Daylight Time, UTC-04:00)  #    
# Friday, 08 May 2009

Some people have asked me about the purpose of Vista Bridge now that Code Pack (ok, Windows® API Code Pack for Microsoft® .NET Framework) exists. If you want to use a Vista feature (such as the power management API) you won't find them in Code Pack yet. Vista Bridge is not under active development right now, but you can download and use the wrappers to save time and effort whether you are targeting Windows 7 or Vista. If you run into issues using it on Windows 7, please let the team know using the Discussion tab.

The second question I am getting is about versions. Code Pack 0.8 (no longer available for download) was for build 7000. Code Pack 0.85 (the current version) is for the RC of Windows 7. If you have moved to the RC and something isn't working for you, go and get the latest version because there were a few breaking changes.

Will there be a new version for RTM? Let me just quote from the home page:

Please note that this library is currently a work-in-progress and this release is version 0.85 of this library. The final version of this library will be available around the time of the Windows 7 RTM release. Various features in the library could change between now and final release.

That's pretty transparent, I would say.

Update: 0.8 can still be downloaded. Go to the downloads page and there's a link over to the right.

Friday, 08 May 2009 20:05:40 (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, 06 May 2009

I've made another appearance on DotNetRocks with Carl and Richard. Some links from the show:

And of course, the show itself. I dare you to listen at 1.4 or double speed.

Kate

Wednesday, 06 May 2009 19:57:02 (Eastern Daylight Time, UTC-04:00)  #    
# Monday, 04 May 2009

Sometimes little things make a big difference. Say you're reading through some code in Visual Studio and you come across a class or function you don't immediately recognize. It's interfering with your reading of the code, right? So you copy the name into your clipboard buffer, flip out to a browser, probably with Alt-Tab, then click for a new tab, type a URL like www.live.com or www.codeproject.com, wait while the page loads, paste your buffer into the search box, click search ... wow there are a lot of opportunities to be distracted in that process.

The CodeProject has a simple add-in for Visual Studio that lets you do your searches without going anywhere. It does one thing, and does it well.

Give it a try!

Kate

Monday, 04 May 2009 19:48:16 (Eastern Daylight Time, UTC-04:00)  #