Windows 8 and Microsoft Accounts

Windows 8 and 8.1 consumer versions need and use and Microsoft Accounts. A lot of the incremental value of the modern UX and even some of the operating system fundamentals (ex: device encryption by default) is wrapped up in having an account. If you choose to go a different way, as did this Washington Post reporter, please understand that you have gone a different way and your opinion of the tiles, modern UX and the like is going to be relative to a custom mode you’ve arbitrarily set up. Like shutting off the file indexer for “performance”; the OS will limp along best it can, but it’s not our intended experience. There are plenty of places in the OS to criticize (including making you use a Microsoft account) about what we did intend without making us own an experience you created by following 3rd party instructions on the web.

Also, I’ll note that cloud integration is a big part of where computing is going. If you are running a mainstream computing experience, there will be a cloud ID attached to soon it if there isn’t already. There may someday be a mass market for a consumer experience without such, but I haven’t seen it.

Windows 7 Networking Information

Someone asked me today about some information and links about the Windows 7 networking stack especially regarding IPv6. I’m going to cache my response here for future reference and updating:

Generally speaking Windows 7 shares the same networking stack architecture as vista plus the following stuff:

  • DirectAccess
    • IPv6 transition technology improvements
    • IPTLS transport
  • BranchCache
  • Network Tracing and Diagnostics
  • Better Firewall Multihoming behavior

Random Stuff to go read:

Silverlight, Netflix and Tech Support

In response to some news from Netflix regarding the need for less specialized tech support after going to silverlight, the correct answer is “Duh”. Doing your own custom ActiveX control means a lot of exposure to install and platform issues goes away or becomes someone else’s tech support problem.

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

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.

They are just more critical these days

Since the launch of Vista, I’ve simply been amazed and the frequency and severity of criticism Vista has received. I humbly accept the places where the complaints make sense to me (Performance/Compatibility; and in many cases I grok the reason compatibility was broken), but much of it, like the DRM hype is just astonishing to watch. Worse, there are many features and improvements that I’ve yet to see Vista get credit for. Anyhow, I’ve been collecting theories of what happened:

  • Security trumped compatibility in this release. (Most of the things that Windows could do without breaking stuff was done in XPSP2)
  • We didn’t focus on compatibility like we did in Windows 95
  • We shipped new Networking, Audio and Video stacks in Vista, and that will cause application compatibility issues and it’s going to take a while for drivers to catch back up to the level of optimization we had before.
  • Too many little features, not enough big ones.
    • Broken planning, dependency tracking, etc.
    • Ship everything at once mentality, instead of incremental improvements
  • There wasn’t enough architectural oversight of the product
  • Too many shifting and impossible to follow through “Basics” (Don’t worry if you don’t get this one)
  • Vista wasn’t selfhost-able until way too late in the product cycle
  • Since the product shipped late, expectations were set to negative by default
  • XP brought the reliability people were screaming for, XPSP2 brought the security people were screaming for. Vista just meet a fundamental need the way XP did.
  • The big stuff people were promised didn’t show up (WinFS and ???)
  • This is really the same thing XP went through
  • ABMs (Anything But Microsoft) people are more are listened to more and more effective with FUD then in the past.
  • They are just more critical these days

I must admit, I didn’t get the last one when I was told it, but I’ve been warming up to it. Enough people are computer savvy now that they no longer blame themselves when things break, they blame the hardware and software people. Well actually, most people just plain blame Microsoft, but give it a couple another decade and people will get better at blaming individual hardware/software manufacturers. While none of the the list is self sufficient as a reason, the recent criticism around Apple’s Leopard release is giving more and more credit to the theory.

Live Maps: The Little Things

While Live Maps haven’t copied the eye-popping drag and reroute feature of Google maps, there is a number of really cool improvements in the latest release. The Live search blog has a list of ten improvements that haven’t got the press of other features like the “model your own 3d building on a map” one. My personal favorites from this list are the End/Start details where you filter down driving instructions to allow you to ignore the stuff you don’t need to see (like how to get out of your neighborhood), the new black color on the traffic map for dead in the water congestion and some of the extra business information they now have.