Open a specific set of Perf Counters in Perfmon

This is from my stupid demo trick series (okay, this is the first in such a series, and may be the last….). With a recent Windows 7 demo I was doing there is a set of perf counters I wished to show quickly in a report view. Setting it up is a many click process:

  1. Run Perfmon
  2. Click on Perfmonance Monitor
  3. Go to Add counters
  4. Delete the Processor Counters
  5. Scroll through the list of counters to the one I want
  6. Add it
  7. FAIL, you really added other counters
  8. Delete thoose, find the real ones, add them
  9. Click twice on the report button to change the Graph Type to report

Considering that I want to be talking to people about some great new feature not practicing my mouse skills, I really wanted this to be a single step open a shortcut sort of thing. Well rejoice for me, because I figured out how to do this.

  1. Run mmc
  2. Add the performance snapin
  3. Do all the steps from before
  4. turn off Actions and the console tree
  5. File –> Save As “DemoCounter.msc”

Now, All I have to do is open the msc file I created. It goes directly to the counters and the view I want.

tada.!

DRM Thoughts

Saw yet another comment on a blog about Vista and DRM, and thought I could contribute a few distinctions:

DRM Supporting Features
This refers to a set of technologies that help enable practical DRM, but aren’t DRM themselves. This includes stuff like APIs that tell applications that if the output path for audio or video enables perfect digital quality capture without protection. It also includes technologies like “Protected Processes”. Most DRM Enforcing features have hacky ways to do this stuff which can lower system reliability or performance, so adding it as a OS feature improves system reliability and performance in the presence of such applications. These features also tend to overlap with other aspects of security, such a trusted OS private data store or generic encryption decryption libraries. This is the “DRM” support that Vista included in Windows.

DRM Enforcing Features
This refers to applications and shared libraries that allow DRM’d media to play. Typically this handles media decryption and uses various DRM Related Features to help enforce the DRM policy. ITunes, Quicktime, Windows Media Player, Zune and IRM are examples of this type of category. In this category DRM is a capability not a requirement.

DRM Limited Features
This refers to a product or feature that requires DRM and only DRM. The IPhone Apps, most of the iTMS, and the Zune Pass are all examples of this. The hallmark of this notion is that some key device usage is conditional on DRM enforcement.

I’m okay with DRM Supporting and DRM Enforcing, and have a personal policy with regards to DRM Limited Features. Basically it’s a personal acknowledgement that you can’t own DRM’d stuff.; you can only rent it. If you understand this, then you can enjoy features like netflix streaming, the Zune Pass or other time fee based services. The furthest I’ve crossed this line is “buying” Xbox360’s arcade games. Anyhow, when people bitch about Vista and DRM, I’d love to hear reasons why DRM Supporting Features are a bad thing, and specifically how Vista’s actual implementation of them have been problematic.

Creating a DL in Outlook from Excel with Names and Email

I helped out a friend the other day with a problem that he had getting a list of names and email addresses from Excel into a new Outlook DL. The key tricks are to create a formula in Excel that formats the name and email into something like “Bob & Alice Smith (bobalice@smith.org)”, select all the data in that new column and then paste that data into the “Select Members” in the DL details window in outlook.

More on the IE8/Standards fun

I really enjoy Joel’s writing. He does a nice job explaining the state of affairs: Martian Headsets – Joel on Software

random and incoherent

Responding to Misha’s post… I got too long, random and incoherent to actually leave this as a comment. So I’m just posting it on my own blog:

Actually most people I know who call themselves liberals are more interested in solving problems instead of the specific means of the solution; individualism, collectivism are each tools in the arsenal. I do agree with you to watch out for people who implement solutions and abandon metrics to see if it actually solves problems more effectively (or at all), or even worse, are proud of the numbers going south because it raises the consequences of "bad" personal behavior.

Since conservatives seem more dogmatic about how one solves problems (to use your definition) they tend to assume their opposition must be defined by solving problems the other way, collectivism. Every time they see other side use any form of collectivism, it just confirms their assumption. Of course they also seem to suffer from a giant blind spot when it comes to moral collectivism, in which case individual choice of behavior is no longer sufficient, and they back government coercion. To which I see the heart of the essay responding to. Those people aren’t real conservatives then.

This brings up one of my open ended questions that I’ve been pondering the world with since high school. Can you can judge a political ideology by it’s ideas alone, or if you have to evaluate it in the frame of how people have actually implemented them and the results. Of course this is a false dichotomy, you can’t evaluate pure ideas regarding human behavior and social patterns, and no idea is ever purely implemented. (Asmoiv wrote an entire science fiction series on the existence of  a general purpose scientific method of human behavior, it remains science fiction). This is a reminder to me that while you can try to define a movement all you like in terms of nice pat definitions, it is really the pragmatic behaviors of it’s self proclaimed followers that we must judge it by. Misha falls into this trap by defining the intellectually pure movement he wishes instead of the movement it is. He fights against labels that are not really there to be descriptive, but rather mealy serve as a commonly agreed upon label, which at best is aspirational and more typically ironic.

There is also some non-sequiturs that seem to claim that because he, personally, wasn’t convinced of a given governmental policy, it is therefore a delusional radical collectivist thing, instead of a policy adopted by the system of government we all implicitly and sometimes explicitly consent to live under. I also have to remind myself of that fact every now and then during this current administration.

In the end I see almost zero practical value in Misha’s exercise. The reality is that either side will say whatever it takes to sound appealing to some measured off groups of constituents backed by some semblance of an intellectual fig leaf (mostly formed in demonizing the other group and pseudo-science). This continues until the internal contradictions of the coalition can no longer be overlooked by it members, causing the group to implode until a new form emerges.

I believe you need to simply hop on a bus that you think it heading in the right direction without wrapping your identity up with in the vehicle you are riding on that day.

Choosing a Name

A quick story to add to Pamela’s announcement. After we got back the news that they didn’t find amniotic fluid, I went to check with the doctor what the plan was. She told me that we were waiting for a call from our doctor, and if he doesn’t get back in 15 minutes, she would do a check and probably send us home. I told her that I was glad for the more time because we still had some more work to do on choosing a name. At this point she looked up at me and said. "It won’t help". The nurse next to her also looked right at me and said, "No, it won’t."

After the delivery, Pamela was fixated for hours on finalizing our choice. At that point it was her highest priority (before the birth, there were a couple things on her mind too). I was focused on staying awake and getting some pictures in and I also knew that sans sleep I wouldn’t be much use. Caitlyn was pretty much a done deal by that point (but I still sorta liked Chloe). However, the middle name was in flux. I did some more name searching and we slowly converge on the name from a list of about 5. I started over analyzing the combinations trying to figure out how some common sounds at ends of names "work" and some don’t (need different count of syllables to add some balancing asymmetry to symmetry of the sounds?). At this point we took a step back and just went with what we had. Later, when I told the name to my mother, she went "Arwen? like in Lord of the Rings?". Sure enough the top web search hits where for exactly that (if we have another, I’ll make sure to do a search before telling anyone the name). Further down the list was a link to the 28 most geeky  baby names with an entry that read "Arwen – Again, it could have been Eowyn. Plus, it’s quite a pretty name." and a comment from an Arwen, "Nice thing about “Arwen” is that it is geeky to those who are geeks, and flies under the radar for others." Other sites had similar comments. That comment plus how I really liked the name decided the issue, so we kept it.

All New Code?

Why is it that people believe that every release of Windows is entirely new code? I’ve never seen anyone from Microsoft ever claim any such thing, but every release I see people talking about the claim. Having said that, in every OS release almost every component gets touched if just to fix potential security vulnerabilities found by automated tools. That’s the advantage of a full OS release, you get the most complete testing cycle Microsoft can manage (internally and externally). Let’s see if I can introduce a lexicon for people to talk about OS release changes. Here are some categories to count and measure:

  1. Absolute Development Time – Each release only has so many developer resources for a period of time, so even if it’s just cleaning up almost invisible implementation issues, or major new features there is a an absolute amount of effort put in to each OS release. While people talk about vista in terms of 5 years since XP, the reality is that most of the windows organization for a bunch of that time was focused on the first and especially the second XP service pack.
  2. Subsystem Replacements – Instead of incremental changes to a couple components, this implies major rewrites and replacements. Windows ME to XP involved replacing the the windows 9x OS with the Windows 2000/NT codebase especially at the lower levels of the OS. Much of that code had been shipped and tested as Windows NT and Windows 2000, so for the development team this was incremental work, but for the consumer OS customers is was a new code base with all the pain involved. IIRC a decent amount of Windows ME was getting the driver ecosystem compatible with the Windows 2000 codebase so that Windows XP wouldn’t be as painful of a switchover. (There is a lesson here, you got to ship an OS which will get a negative reputation to move the market whenver making major changes that affect drivers, 64bit Vista is playing that role right now for future 64bit Windows OS versions). In Vista, there were at least three major subsystem replacements, the video, audio and networking stack each got rewrite/replacement level changes. The primary motivation for a subsystem replacement is to provide an better foundation for new features, but often pulls in a couple new features themselves (like IPV6 getting all the features the IPV4 stack had). This type of change is the most exciting and also the most likely to break existing drivers and applications.
  3. Architectural Rewiring – This is where we restructure existing code for modularity and potentially new release possibilities. Server Code and MinWin fall into this category of changes. To the upper layers of the OS (applications) it looks like nothing has changed, but you now have the ability to more easily release a super stripped down version of the OS, or let different parts of the OS evolve independently.One of the sins of Windows was the circular dependencies between some components, and we are in the middle of multi-release work to clean it up. A focus of Vista was to map out the system and put in controls to make sure we never introduce more. As a OS Geek, this is exciting stuff, as a OS user, this is something that is sucking up development dollars without apparent affect.
  4. UI Changes – For a user of the OS this is what they typically use to judge how much an OS has changed. Sometimes this implies a lot of work, sometimes this isn’t so much work. Because of the attention, every product typically has some UI change for the sake of change alone, and that change is usually one of the most protected secrets about the OS. There is a balancing act between holding these changes secret, and testing the OS as a final product. Often a ugly theme that utilities the same features as the final theme/UI is introduced to help mitigate the risk. (Therefore pre-release builds shouldn’t be judged on ascetics).
  5. New Features/Components – These are the functional improvements in the products. I think people have a pretty good grasp of this type of change.
  6. Changing Defaults – Relatively simple code/setting changes might make drastic changes to the user experience. Turning off old protocols, making new users non admin by default, etc.
  7. Bake Time/Cleanup – This is the relatively boring but critical process of fixing bugs, incremental performance tuning and just general "make things better" that takes of the majority of a development cycle and extends post release into service packs and the next release. It’s healthy to occasionally have a release that the majority of it is in this category, specifically targeting the things that were too risky for a service pack, but isn’t really a new feature. Unfortunately this type of changes tends to not sell new copies of the OS. This type of next release time is getting institutionalized at Microsoft in the form a Quality Milestone done during product planning when the development team doesn’t have much to do yet.
  8. Platform development – This is the type of work done that might be in the OS, but doesn’t really have any exposure or use until a corresponding server release, or other product takes advantage of it. For example: Windows XP had a feature for restoring automatic backups of previous file versions that only showed up when attached to a server that supported it. Vista (and XP via a separate download) has an amazing new GUI support for applications called the windows presentation foundation, but nothing in the OS itself takes advantage of it. It usually takes a while before we see application developers get used to the new libraries and choose to develop for it (normally a developer doesn’t want to develop for an OS version that users aren’t using in bulk).

Looking forward, we already know that some Architectural Rewiring is happing in the next Windows release with MinWin and with such major Subsystem Replacements in Vista and the compressed schedule for the next release, I can’t imagine too many Subsystem Replacements happening, but I guess we’ll have to wait and see.