A couple months ago I purchased a new color scanner (thanks, Vista) – a Canon LiDE70.  I noticed a few weeks ago that I was having problems scanning color images, and it popped up again this weekend.  I would get these very odd colored, horizontal lines through the image, most visible on black and dark colors.

Since I actually needed color this time, I had to figure out what was going wrong.  I did a half dozen scans, each time playing with a few settings to see if it would resolve itself.  I looked for new drivers – none.  As a last ditch effort, I changed which USB hub it was plugged into and it worked!

Never would have guessed that would have been a problem.  I hate USB hubs.

On Windows Vista

As I’ve mentioned on here before and I’m sure you’re aware, I’ve been running Vista since around January. I’ve been running it on my desktop and laptop at home but haven’t made the cut-over at work yet. For the most part, the first impressions are gone; although I’m always running into new things with it since I’m only using it a few hours a day at home. I’m sure once I get moved to it at work I’ll be learning things at a much more rapid pace.

That said, what do I think of it? It’s pretty good. Not great. Not bad. Another evolution, really. From a developer’s standpoint, there are a bunch of new features I’d just love to learn and play around with – things like the new Transactional File System, the Integrity Mechanism, Peer to Peer networking, etc..

From the books I’ve read and the time I’ve spent poking around, it feels like they’ve built a very forward-looking operating system that they can really leverage in the future. What I mean by that is that there’s a lot of under the covers magic they’ve invested in that hasn’t been fully surfaced to the end users yet, it’s just not sexy for them yet. If you were to mention any of those above topics to the average user, you’d get lots of blank stares. Mention them to some Windows developers and you’ll get a much different reaction. It’s always the case that the software makes the OS worth having, but it sure seems like there far more new plumbing and technologies in this version than in past upgrades. It’ll be exciting to see what’s built atop it.

Everyone talks about how Vista smashes the user on the head about security. It’s true, UAC can be annoying at times. But having users run in an enforced limited-user account (LUA) is a good thing and the pain should only decrease from here. Until apps get updated/rewritten, Microsoft has provided a pretty good system for keeping the LUA “sandbox” in-tact while still allowing the user to run non-LUA-compliant software. This bridge is called Virtualization and essentially virtualizes reads/writes to now-protected locations in the file system and registry. So if an app writes to C:program filesAppFolder, it doesn’t blow up with Access Denied and instead writes to a virtual store buried in the user’s profile directory. Legacy apps don’t break, but since the 64bit version of Vista doesn’t support Virtualization, there’s still a very large incentive for software companies to clean up their apps (Vista logo-compliance aside).

Back to security in general – Microsoft has been touting Vista as having outstanding security, but they never really provide information to support the claim. Well, reading through Windows Vista Security is definitely shining the light on the dozens of security changes and improvements that are in Vista, for me at least. There are new features ranging from the low-level like Address Space Layout Randomization to the higher-level Integrity Mechanism that are going to have a real impact. But it’s a shame that one has to dig for information on them. They really should disseminate this information somehow; probably not the regular channels because mom & pop would probably be scared off by the details. There’s got to be a way though. I now cringe when I hear or read people talking about Vista’s security features and the conversation stops at UAC.

As a regular user, there are a few things here and there that also pique my interests. One of these is Windows Sideshows; I think there are lot of potentially cool things that can make use of the capability.

Lest I get carried away (I hope I didn’t miss that boat already), I do have some things that I hate:

1) I had to buy another freakin’ scanner. My 2-year old one wasn’t supported by Vista and I loathe the idea of booting into my XP partition to scan a document, just to turn around and boot back into Vista to use said document. Is scanning technology changing at such a rapid pace that my “old” scanner can’t be supported? Seriously.

2) Microsoft, would you please get native CD/DVD burning working correctly? I have two burners and, more often than not, it gets confused about what type of discs are in the drives and whether or not it can burn to them.

3) Along the lines of CD/DVD burning – why on earth is the default burning mode “Live File System” instead of “Mastered” like it should be? I’ve accidentally started a couple burns in the Live mode and my 16x DVD burner started writing 4GB at approximately 100K/sec. That’s a sure-fire way to make someone really, really mad 🙂

4) I had to buy a couple books to not be confused by the security model.

5) When my system boots, it can sit at the pretty “press ctrl+alt+delete” screen but I can press those keys all morning long and they won’t do anything until Vista is good and ready. I’m talking 2-3 minutes sometimes. Not cool.

6) The new Virtualization feature when you don’t know why on earth a file you just wrote no longer exists and you didn’t get an error.

7) The 500MB memory footprint on boot.

8) In typical MS fashion, many settings are now one more level deeper than before. An example? Toggle your network connection between static ip and dhcp…

Did any of that make sense?  I hope so, but it’s also midnight so it could be a puddle of drool not worth the electrons it’s taking to display it on your monitor.

Eric OUT!

Technology Books I’m Currently Reading

I’m currently reading a couple of very good books (tech books of course):

  • Software Estimation: Demystifying the Black Art by Steve McConnell – At work we’re running into a very concrete need for better and more realistic estimates, so I figured I’d do a little reading.  Once I get done with this I may pull out my Personal Software Process book from back in college and see what tidbits I can pull out and use (and teach others to use too).
  • Windows Vista Security by Roger Grimes and Jesper Johansson – This gives a very good look at the new security features of Vista from a standpoint of why the feature was needed, how it’s implemented, and how the implementation improves security.  It’s very interesting to read the history of Windows exploits and the steps being taken to prevent them in the future.  The chapter that caught my attention and made me purchase the book has to do with UAC (User Account Control) and what developers are and aren’t supposed to be doing anymore.  Highly recommended if you’re like me and want to know why Vista behaves like it does.  It helps greatly to understand the why’s and how’s about its sometimes seemingly odd behavior.
I also just finished up Writing Secure Code for Windows Vista.  I found it to be very interesting even though it’s targeted toward lower-level Windows developers (think C and C++).  It definitely gave me a good summary of how to interact with the new security features in Vista, which is why I bought the book in the first place.

Note to self: Another Software Idea

In the same vain as another post, I or someone needs to write a Visual Studio 2005 add-in for managing the Break on Exception feature.  Specifically, be able to create profiles that can easily be switched between during debugging sessions that would enable/disable breaking into the deubber on certain types of exceptions but not other.

As I’m sure anyone who has worked on a large .NET project has experienced, not having this capability built-in is a royal pain in the butt.

Error Reporting

Version 1.1 of Chef included a new feature for submitting crash reports if they happen in the wild. When one happens, the user has the option to send one in along with any comments and their email address (optional). It has always sounded like a good feature to have, but it took me some time for that to bubble up from a “nice to have” to actually being implemented.

1.1 was released in the beginning of August, but it wasn’t until the last week or so that I discovered that I had a bug in my build/setup/deploy process that didn’t include a critical dll to allow the reporting to work! So much for testing! So last week I put out a new build with the problem fixed. Whew.

This morning, sitting in my inbox was a crash report from a gentleman who tried to install Chef but it threw an error during the database install/configuration. This is one area I know I’ve had problems with in the past, and thought I had nailed down with the exception of some case my dad runs into when he tries to install it on his laptop. Multiple times he’s gotten the error. Well, thankfully, due to the crash report I believe I have found the problem and fixed it! Yay! The new build is uploading as we speak.

Naming Dilemma

I need your help.

I’m implementing something in Chef and cannot come up with a good term for it. It’s the ability to scale a recipe (double, triple, halve, etc.). I have it implemented in such a way that you basically get a temporary, non-editable, non-savable version of the recipe with the amounts changed as desired.

Before implementing it, I referred to them as Scaled Recipes, but now that the framework is in place for more such temporary modifications I’ve taken to referring to them as Virtual Recipes. I think that would confuse some people, am I right? Do any of you have any other suggestions? If so, please leave comments or email me (