Building a More Intelligent Windows

Many people share the dream that the various electronic devices they use should do what they want without them having to ask.  In our non-computer lives, we have come to expect basic things to just happen.  We expect machines to help us by doing more things automatically, and more of the basics as we want them to happen, without asking.  When I put my car in drive, the doors automatically lock -- when I put it back in park, the doors unlock.  Instead of running for a pre-set period of time, most modern clothes dryers have a mode where they can sense when your clothes are dry and turn off once the job is done.

Many years ago, I was really struck by the programming language InterLisp's DWIM function.  It meant "Do What I Mean."  It was a quick and handy way for programmers to ask the computer to fix a program so that it did what the programmer had meant, but not actually written.  It was magic for me -- the computer knew what I wanted and it fixed it for me!

For Windows Vista, we set off with the goal of creating a more intelligent experience for the user.  Our vision was to use intelligence about the user and the environment to deliver a better experience for the user.  And while there is so much more to be done in the future, Windows Vista does some incredibly innovative things that other software doesn't.

Here are some examples.

One of the key enhancements to the Windows Vista memory management system is a new feature called SuperFetch.  I discussed this briefly in my blog post about ReadyBoost.  SuperFetch watches how you work and then uses the RAM on your system in a new way that optimizes the system's performance to the way you work.  For example, in contrast to traditional memory management systems that today use an approach to prioritizing how RAM is allocated to the various programs and services running on the system, SuperFetch can differentiate memory being used for interactive (high-priority) tasks from memory used for background (low-priority) tasks.  When the user isn't interacting with the system, background tasks are allowed to run, but when they complete, SuperFetch repopulates RAM with the content that supports the interactive applications.  SuperFetch is also smart enough to know which applications are used most often (over a long period of time) and pre-loads those applications into memory.

We also saw an opportunity to improve the user experience with the network.  At the lowest level, the Next Generation TCP/IP stack in Windows Vista senses and learns about the network and uses this information to automatically tune settings.  For example, just as most modern cars have automatic anti-knock sensors that eliminate the engine ping (pun sort of intended) that can come as a result of low-octane gas, Windows Vista's TCP/IP stack has new auto-tuning algorithms that automatically and dynamically adapt the TCP receive windows to the properties of the network path between the endpoints.  This allows the stack to fully utilize the bandwidth between two endpoints (especially in high-delay conditions) and dynamically adapt to changing bandwidth and delay characteristics.  We also have improved the dead gateway detection algorithms and the round-trip time estimators to further improve the network experience for the user -- automatically.

The networking code in Windows Vista also includes Network Location Awareness (NLA) functionality that intelligently "fingerprints" a network.  NLA uses this "fingerprint" to remember network-specific settings and dynamically apply them whenever the system connects to that network.  For example, the firewall in Windows will automatically change its settings when the system connects to a new network and restore them to your preferred settings for each known network when you connect to it.

One of my favorite examples of intelligence in action is the handwriting- and speech-recognition capabilities built into Windows Vista.  People don’t like to spend a lot of time teaching their computer how they speak or write.  So, the real opportunity is to provide better prediction of what you are saying or writing by understanding the vocabulary that you tend to use.  And that's just what we did with Windows Vista.  Since we already have an index of the content on your PC, we simply use this corpus of terminology to help the system disambiguate your input and deliver a more accurate result.  (In case you are worried about privacy, there is no need:  all this happens only on your machine, with no communication to any other computer.)  This means that in addition to a common dictionary, the system can automatically learn the vocabulary that you use and then assign a higher weight to the words you use most often.  The result is a much higher accuracy rate even if you work in a field with a specialized lexicon.  So, if you work in a specialized area, there are many words that wouldn't be in a common dictionary initially, but because they are in your everyday documents and emails, the system will learn them automatically and understand them more easily.  I should also note that personalization also helps with "in-dictionary" words in addition to "out-of-dictionary" words by raising the priority of the "in-dictionary" words you do use and thereby de-prioritizing random words such as "yon" (often confused with "you" by our previous handwriting-recognition software) that most people don't regularly use.

The result?  During the beta testing of Windows Vista, someone on the team received a note from a quadriplegic saying that Windows Vista was going to dramatically improvement his life because of its huge improvements in speech recognition.  By the way ... the email was, of course, written using Windows Vista's speech recognition.

Finally, in a previous blog entry I wrote about the Windows Recovery Environment.  While the focus of my previous comments was on the ability to get a Windows Vista PC up and running, it's important to note the way that the Recovery Environment works.  It essentially uses a heuristic-based diagnosis approach in the same way that one of our support engineers might work on the system if s/he had a debugger and direct access to it.

You might see all of these as just individually clever ideas, but the reality is that integrated intelligence (learning about you and doing what you mean) like what we are doing with all the examples above is the future for helpful devices for society.

jim


Comments

  1. Posted on: January 05, 2007 at 10:32PM  

    Paul is right, I don't want my computer to think for me.  I just want it to do what I ask, not try to figure it out all of the time.  It's like I used to tell my mother growing up, "I don't read minds, if you want something done, ask me."  Did this all start with the animated paper clip in Office?  You can't tell me that this approach doesn't tax Vista's system resources.  S-I-M-P-L-I-C-I-T-Y  Can't you guys figure this out?  They say Windows is bloated, but I say it's flat out obese.  About the quadriplegic...  Are you sure that's what he said or is that the way Vista's speech recognition interpreted it?  "Windows Vista was going to dramatically improvement his life..."  Let me guess, you wrote this blog using it, as well.  Still can't wait to get that Mac, eh?

  2. Posted on: January 06, 2007 at 10:25PM  

    Thanks for post.

    --------

    http://www.dl4all.com

  3. Posted on: January 09, 2007 at 12:32PM  

    All this sounds great! As long as it works. But what about customization? For instance, what if all the spiffy networking stuff is monitoring my network traffic and optimizing accordingly. So let's say I have a bittorrent seeding several 600MB files of open source software. 23 hours of the day I want it to run full blast since I'm watching a movie, at work, or sleeping. However, 1-2 hours of the day I'm playing an online game. At that point I'd like windows to be able to throttle back the torrent to basically nothing, or better yet, give priority to the game. XP doesn't do that, and I'm not convinced vista will either.

    Second guessing the user is fine as long as you allow the user to override it. If I have a system that is being used for a file server, I want 100% of my extra ram being used as a file cache, not for loading the applications I use for 1-2% of the day.

    This is the biggest issue I have with Windows, and Mac OSX, is that you can't customize it enough. The Unix/Linux world has some things right (and no OSX doesn't count here, because they only are based on Unix, I'm talking full X11), 100% customization.

    So give us security, and customization, and I'll be happy. All the other features are nice, but they don't allow power users the power to be users. Instead it makes them feel like their being used by the computer instead of using it.

  4. Posted on: September 01, 2009 at 10:48AM  

    well jimall you have shared a very vital info with us! i appreciate it.

  • Page:
  • 1
  • 2

Trackbacks

  1. Posted by: Frogz on October 29, 2007 at 6:42AM

    Voici une idée reçue sur Windows Vista: Windows Vista consomme toute la mémoire de mon