<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://windowsteamblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>The Windows Blog</title><link>http://windowsteamblog.com/blogs/</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>Windows Live Messenger – a short history</title><link>http://windowsteamblog.com/blogs/windowslive/archive/2010/02/09/windows-live-messenger-a-short-history.aspx</link><pubDate>Tue, 09 Feb 2010 21:17:28 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533388</guid><dc:creator>jeff_kunins</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi, my name is Jeff Kunins, and I am the Group Program Manager (GPM) for social networking across &lt;a href="http://home.live.com/" target="_blank"&gt;Windows Live&lt;/a&gt;. In other words, I’m totally focused on partnering with and connecting to &lt;a href="http://arstechnica.com/microsoft/news/2009/01/ces-2009-windows-live-wave-3-rocks.ars" target="_blank"&gt;social networks&lt;/a&gt; and other &lt;a href="http://windowslivewire.spaces.live.com/blog/cns!2F7EB29B42641D59!43432.entry" target="_blank"&gt;web services&lt;/a&gt; that you already love, allowing them to light up &lt;a href="http://mail.live.com" target="_blank"&gt;Hotmail&lt;/a&gt;, &lt;a href="http://download.live.com/messenger" target="_blank"&gt;Messenger&lt;/a&gt;, &lt;a href="http://skydrive.live.com/" target="_blank"&gt;SkyDrive&lt;/a&gt;, &lt;a href="http://download.live.com/photogallery" target="_blank"&gt;Photo Gallery&lt;/a&gt;, etc. with your friends and their online activities. And of course, vice versa, we're also working to make Windows Live help you to get even more engaged with the social services you already love.&lt;/p&gt;  &lt;p&gt;My teammate Piero Sierra is the GPM for Messenger and our &lt;a href="http://download.live.com/mail" target="_blank"&gt;Windows Live Mail&lt;/a&gt; client, and together we are going to be writing a series of posts about Messenger and social features across Windows Live.&lt;/p&gt;  &lt;p&gt;Let’s start at the beginning.&lt;/p&gt;  &lt;h3&gt;Early days&lt;/h3&gt;  &lt;p&gt;The instant messaging category got going in earnest around 1996 with the debut of ICQ, around the same time that Hotmail was founded. Over the next two years, each of what are now the leading IM services launched in rapid succession: AIM, Yahoo! Messenger, &lt;a href="http://en.wikipedia.org/wiki/Tencent_QQ" target="_blank"&gt;QQ&lt;/a&gt;, and our own MSN Messenger.&amp;#160; &lt;/p&gt;  &lt;table border="0" cellspacing="4" cellpadding="2" width="572"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="283"&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/Messenger1to14_5F00_7FB48A38.png"&gt;&lt;em&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Messenger 1.0 (1999) and Messenger 14.0 (2009)" border="0" alt="Messenger 1.0 (1999) and Messenger 14.0 (2009)" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/Messenger1to14_5F00_thumb_5F00_62CB6563.png" width="280" height="405" /&gt;&lt;/em&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="275"&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/MSNMessengerv1Team_5F00_56C9752F.jpg"&gt;&lt;em&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="The original MSN Messenger Team, circa 1999" border="0" alt="The original MSN Messenger Team, circa 1999" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/MSNMessengerv1Team_5F00_thumb_5F00_07E8AFD0.jpg" width="272" height="403" /&gt;&lt;/em&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="283"&gt;&lt;em&gt;&lt;font size="1"&gt;Messenger1999 and Messenger today&lt;/font&gt;&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="275"&gt;&lt;em&gt;The original MSN Messenger team&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Over the following six years, instant messaging services as a category enjoyed explosive, viral growth, ultimately reaching well over half a billion active users sharing hundreds of billions of messages every month.&amp;#160; &lt;/p&gt;  &lt;p&gt;Like every major new communications paradigm over the past 20+ years, the thirst and demand that people have to connect, communicate, and share with one another is nearly limitless.&amp;#160; E-mail didn’t disrupt or reduce phone usage – it added to it.&amp;#160; IM didn’t disrupt or reduce e-mail – it added to it.&amp;#160; The same goes for mobile phones and text messaging, and the same too, for social networking over the past 5 years.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/MessengerMonthlyUsers1999to2009_5F00_5C37E5D3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Messenger Monthly Users 1999 to 2009" border="0" alt="Messenger Monthly Users 1999 to 2009" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/MessengerMonthlyUsers1999to2009_5F00_thumb_5F00_54AC7666.png" width="559" height="295" /&gt;&lt;/a&gt;&amp;#160;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;That’s interesting to keep in mind – especially for readers in the United States, where the IM trends (and particularly Messenger’s popularity) have been somewhat less positive.&amp;#160; On the one hand, as users ourselves, we’re all daily participants in the rise of Facebook, MySpace, QQ, and the overall &amp;quot;social&amp;quot; category of web services around the world, and it’s awesome to see our partners’ successes. Today, social networking services as a whole drive a similar number of minutes as e-mail or IM. Even though globally, e-mail and IM have basically peaked and leveled off, people continue to spend roughly the same amount of time using them, while social networks have grown to match. And even with all of that new activity, those same people are still connecting, communicating, and sharing more than ever with the people they care about via IM.&amp;#160; And yes, it really is mainly the same people – for example, globally, 44% of people who use Facebook in a given month also use Hotmail or Messenger in that same month, and vice versa 66% of monthly Messenger users also use Facebook, according to Comscore.&lt;/p&gt;  &lt;h3&gt;The original social networks &lt;/h3&gt;  &lt;p&gt;IM services really were the original &amp;quot;social networks.&amp;quot; They first popularized the notions of viral invitations and social graphs, real-time and asynchronous messaging with friends, sharing of status messages and other content, online activities and casual games to enjoy with your friends, and rich personal expression—from the humble emoticon &lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/clip_5F00_image002_5F00_1B29666F.jpg" width="21" height="21" /&gt;, to winks, nudges, and more. IM services have always been optimized for sharing among a close circle of friends, and really pivoted around online presence and real-time conversations more than connecting you to your content and activities from the rest of the Web.&lt;/p&gt;  &lt;p&gt;Combining the social focus of instant messaging with the fact that IM clients are installed by default on the vast majority of PCs and are generally &amp;quot;always on&amp;quot; means there's a great opportunity for collaboration and integration between traditional IM services like Messenger and the wide range of social networks and other sites that our joint users are already on. You’ve already seen Windows Live and other leading IM services come out with social networking features like our What's new feed, and there is much more to come.&lt;/p&gt;  &lt;p&gt;So given that basic context, let’s walk through some fun facts about Messenger…&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h3&gt;People still IM… a lot&amp;#160; &lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;More than &lt;b&gt;300 million people&lt;/b&gt; in &lt;b&gt;76 countries &lt;/b&gt;and &lt;b&gt;48 languages &lt;/b&gt;use Messenger every month&amp;#160; they say “I &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/image_5F00_661CD73E.png"&gt;&lt;font color="#000000" size="2"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="(L)" border="0" alt="(L)" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/image_5F00_53D4107C.png" width="19" height="19" /&gt;&lt;/font&gt;&lt;/a&gt;you” and “LOL” not only in English, Spanish, German and Japanese (the first 4 languages we offered) but also in Chinese, Estonian, Thai, Catalan, Hindi, and many more. &lt;/li&gt;    &lt;li&gt;Messenger users now represent:      &lt;ul&gt;       &lt;li&gt;65% of all Internet users in Brazil &lt;/li&gt;        &lt;li&gt;48% of all Internet users in Canada &lt;/li&gt;        &lt;li&gt;48% of all Internet users in Spain &lt;/li&gt;        &lt;li&gt;47% of all Internet users in France &lt;/li&gt;        &lt;li&gt;40% of all Internet users in Italy &lt;/li&gt;        &lt;li&gt;39% of all Internet users in UK &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;People use Messenger for &lt;b&gt;163 billion minutes every month&lt;/b&gt;, which is about &lt;b&gt;9.4% of all time consumers spend on the Internet&lt;/b&gt; worldwide. &lt;/li&gt;    &lt;li&gt;More than &lt;b&gt;40% of our users sign in each day&lt;/b&gt; (more than 130 million daily users) &lt;/li&gt;    &lt;li&gt;Every day, those users share over &lt;b&gt;1.5 billion conversations&lt;/b&gt; and send more than &lt;b&gt;9 billion messages.&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;And at peak times, that drives more than &lt;b&gt;40 million “simultaneous online connections,”&lt;/b&gt; (the number of people signed in at the same time). &lt;/li&gt; &lt;/ul&gt; &lt;i&gt;   &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/MessengerUsersasPercentofInternetGraph_5F00_61A65677.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Graph showing Messenger users as percent of Internet users in ten countries" border="0" alt="Graph showing Messenger users as percent of Internet users in ten countries" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/MessengerUsersasPercentofInternetGraph_5F00_thumb_5F00_7A35F3C7.png" width="494" height="403" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt; &lt;/i&gt;  &lt;h3&gt;Status messages, profile pictures, and other personal expression&lt;/h3&gt;  &lt;p&gt;Messenger and other instant messaging apps really were the first places that hundreds of millions of people started updating their status messages for their friends, and including emoticons and other kinds of fun personal expression online. Messenger users still do that a lot, right alongside more recently popular activities like social networking and mobile text messaging.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Messenger users share &lt;b&gt;over 1 billion status updates &lt;/b&gt;every month &lt;/li&gt;    &lt;li&gt;Those users often click through from the Messenger client to the Web, helping drive &lt;b&gt;more than 300 million users&lt;/b&gt; to &lt;a href="http://profile.live.com/" target="_blank"&gt;Windows Live Profile&lt;/a&gt;, &lt;a href="http://home.live.com/" target="_blank"&gt;Home&lt;/a&gt;, and &lt;a href="http://skydrive.live.com/" target="_blank"&gt;SkyDrive&lt;/a&gt; every month. &lt;/li&gt;    &lt;li&gt;With the &lt;a href="http://www.facebook.com/apps/application.php?id=30713015083" target="_blank"&gt;Messenger application on Facebook&lt;/a&gt;, you can use the “always on” Messenger client on your PC to automatically update your Facebook status. &lt;/li&gt;    &lt;li&gt;Likewise, with the &lt;a href="http://profile.live.com/WebActivities/" target="_blank"&gt;Windows Live web activities&lt;/a&gt; partnerships with 74 sites around the world like &lt;a href="http://profile.live.com/WebActivities/Add.aspx?appid=1140906031" target="_blank"&gt;Facebook&lt;/a&gt;, &lt;a href="http://profile.live.com/WebActivities/Add.aspx?appid=1140860417" target="_blank"&gt;MySpace&lt;/a&gt;, &lt;a href="http://profile.live.com/WebActivities/Add.aspx?appid=1140855816" target="_blank"&gt;Twitter&lt;/a&gt;, &lt;a href="http://profile.live.com/WebActivities/Add.aspx?appid=1140889698" target="_blank"&gt;Digg&lt;/a&gt;, &lt;a href="http://profile.live.com/WebActivities/Add.aspx?appid=1073773142" target="_blank"&gt;Hyves&lt;/a&gt;, and more, you can share your status updates and activities on those sites with your Messenger friends, in the What’s New feed in the main Messenger window. &lt;/li&gt;    &lt;li&gt;Just like ring tones and phone skins, people love emoticons and other forms of personal expression they use to adorn Messenger and their IM conversations– sharing&lt;b&gt; tens of millions of profile picture updates&lt;/b&gt; each month, &lt;b&gt;purchasing millions of emoticon packs&lt;/b&gt;&lt;b&gt;&lt;/b&gt;, and using other fun features like &lt;b&gt;Messenger scenes&lt;/b&gt; that add a personal touch to how their friends see them in Messenger. &lt;/li&gt; &lt;/ul&gt;  &lt;table border="0" cellspacing="4" cellpadding="2" width="566"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="337"&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/make_5F00_it_5F00_personal_5F00_72dpi_5F00_2BC1615D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Live Messenger main window and conversation window, using different scenes" border="0" alt="Windows Live Messenger main window and conversation window, using different scenes" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/make_5F00_it_5F00_personal_5F00_72dpi_5F00_thumb_5F00_5FF58AA3.jpg" width="334" height="260" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="215"&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/DynamicDisplayPic_5F00_7165EB7B.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Creating a dynamic display picture in Messenger" border="0" alt="Creating a dynamic display picture in Messenger" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/DynamicDisplayPic_5F00_thumb_5F00_49533C5C.png" width="212" height="256" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="337"&gt;&lt;em&gt;Messenger windows with different scenes&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="215"&gt;&lt;em&gt;&lt;font size="1"&gt;Dynamic display pictures&lt;/font&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;a href="file:///C:\Users\jeffku\AppData\Local\Temp\WindowsLiveWriter-485158613\supfilesA6A01EA\convo_window26.jpg"&gt;&lt;/a&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;u&gt;&lt;/u&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h3&gt;Looking ahead&amp;#160; &lt;/h3&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/blogs/windowslive/archive/2010/01/06/a-short-history-of-hotmail.aspx" target="_blank"&gt;Like Hotmail&lt;/a&gt;, Messenger is one of the largest scale communication and sharing services in the world, with a strong 10 year history of reliability, performance, and innovation. We're particularly proud of Messenger's role in the history of helping people connect, communicate, and share online with the people they care about most, and we're working hard every day on new ways for Messenger to keep playing that role as a great partner to the modern web ecosystem around us.&lt;/p&gt;  &lt;p&gt;In upcoming posts we’ll talk more about how Messenger is built, how people are using different Messenger features, and how we’re thinking about the evolution of our role as a social application. Until then, I hope you’ll continue to use Messenger and to keep the feedback and comments coming!&lt;/p&gt;  &lt;p&gt;- Jeff Kunins&amp;#160; &lt;br /&gt;&amp;#160; Group Program Manager, Windows Live social networking&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533388" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/social+networking/default.aspx">social networking</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Windows+Live/default.aspx">Windows Live</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/instant+messaging/default.aspx">instant messaging</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Messenger/default.aspx">Messenger</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/IM/default.aspx">IM</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Hotmail/default.aspx">Hotmail</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/SkyDrive/default.aspx">SkyDrive</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Mail/default.aspx">Mail</category></item><item><title>Yet another DirectX 11 Graphics Card from AMD!</title><link>http://windowsteamblog.com/blogs/windowsexperience/archive/2010/02/09/yet-another-directx-11-graphics-card-from-amd.aspx</link><pubDate>Tue, 09 Feb 2010 09:52:20 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533355</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Hot on the heels of the &lt;a href="http://windowsteamblog.com/blogs/windowsexperience/archive/2010/02/05/amd-announces-low-cost-directx-11-graphics-card.aspx"&gt;ATI Radeon HD 5450&lt;/a&gt;, AMD today has &lt;a href="http://www.amd.com/us/press-releases/Pages/ati-radeon-5570-2010feb09.aspx"&gt;announced the ATI Radeon HD 5570&lt;/a&gt;. &lt;/p&gt; &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/34046_5F00_4CCDE91C.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="34046" border="0" alt="34046" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/34046_5F00_thumb_5F00_1272733B.jpg" width="240" height="174" /&gt;&lt;/a&gt;   &lt;p&gt;The Radeon HD 5570 is designed for small form-factor PCs and it too supports &lt;strong&gt;DirectX 11&lt;/strong&gt; in Windows 7. You can find the specs for this graphics card &lt;a href="http://www.amd.com/us/products/desktop/graphics/ati-radeon-hd-5000/hd-5570/Pages/hd-5570-overview.aspx"&gt;here on AMD’s product page&lt;/a&gt;. For this card, they were able to jam the same multimedia capabilities as what AMD calls the “enthusiast-class” ATI Radeon HD 5870 graphics card into this power efficient, lower priced graphics card. &lt;/p&gt;  &lt;p&gt;AMD’s press release doesn’t include a price other than “affordable price”. &lt;/p&gt;  &lt;p&gt;Of course both the ATI Radeon HD 5570 and previously announced Radeon HD 5450 carry the Compatible with Windows 7 logo – as does AMD’s entire HD 5000 Series of graphics cards. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533355" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/AMD/default.aspx">AMD</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/DirectX/default.aspx">DirectX</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/DirectX+11/default.aspx">DirectX 11</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Radeon+HD+5000+Series/default.aspx">Radeon HD 5000 Series</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Radeon+HD+5450/default.aspx">Radeon HD 5450</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/ATI+Radeon/default.aspx">ATI Radeon</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Compatible+with+Windows+7/default.aspx">Compatible with Windows 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Small+Form-factor/default.aspx">Small Form-factor</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Radeon+HD+5570/default.aspx">Radeon HD 5570</category></item><item><title>January TechNet webcast now available</title><link>http://windowsteamblog.com/blogs/genuinewindows/archive/2010/02/08/january-technet-webcast-now-available.aspx</link><pubDate>Mon, 08 Feb 2010 19:06:10 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533337</guid><dc:creator>Jodi Kogan</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Missed our TechNet webcast on January 22&lt;sup&gt;nd&lt;/sup&gt;? Not to worry, we’ve made the recording available through LiveMeeting. &lt;/p&gt;  &lt;p&gt;&lt;a href="https://www.livemeeting.com/cc/mseventsbmo/view?id=1032438278&amp;amp;role=attend&amp;amp;pw=7773068C"&gt;View “Deploying Windows with Volume Activation” now.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Thanks!&lt;/p&gt;  &lt;p&gt;- Jodi&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533337" width="1" height="1"&gt;</description></item><item><title>How Do I Love Thee, Windows Home Server?</title><link>http://windowsteamblog.com/blogs/windowshomeserver/archive/2010/02/08/how-do-i-love-thee-windows-home-server.aspx</link><pubDate>Mon, 08 Feb 2010 16:57:56 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533332</guid><dc:creator>Moira Whidby</dc:creator><slash:comments>9</slash:comments><description>&lt;p&gt;What better way to prepare for Valentine’s Day with our extended Windows Home Server community than to help &lt;u&gt;us&lt;/u&gt; help &lt;u&gt;you&lt;/u&gt; &lt;b&gt;show the love&lt;/b&gt; for WHS! We’ve got a fun Valentine’s Day promo to announce to kick off the celebrating – thru everyone’s favorite…some Windows Home Server Stickers!&lt;/p&gt;  &lt;p&gt;2009 has been a great year and we’re sure 2010 will be even better with the incredible combination of Windows Home Server and Windows 7 protecting, connecting and organizing everything in your digital life. Show off your love for Windows Home Server by letting us send you some of our favorite Home Server stickers including the tattoo, “Mommy book” cover, the blue house and the status houses. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/P1030515_5F00_4DE191DC.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="P1030515" border="0" alt="P1030515" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/P1030515_5F00_thumb_5F00_2CEE1F35.jpg" width="323" height="243" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So how do you get your stickers? Usually were all about technology and&amp;#160; e-mail, but this time we're going OLD SCHOOL with snail mail to avoid keeping any information about you. Just send a self-addressed stamped envelope (SASE) to the address below. We’ll send you all four stickers pictured above and shred your original envelope.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Send me the WHS stickers!     &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;15580 NE 31st St&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Redmond, WA 98052&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Make sure to include enough postage to return a sticker pack via U.S. mail. It's less than one ounce, so a standard First Class stamp will do if you're in the United States; enclose an envelope with &lt;a href="http://faq.usps.com/eCustomer/iq/usps/request.do?session=%7b9e51aee0-3fd9-11de-764d-000000000000%7d&amp;amp;event=1&amp;amp;view()=c%7B298d6530-57e2-11dc-51b6-000000000000%7D&amp;amp;objectId=&amp;amp;eksObjectId=&amp;amp;objectType=Case&amp;amp;isJumpEnabled=false&amp;amp;isContentJumpEnabled=false&amp;amp;vendorKey=&amp;amp;objT"&gt;International Reply Coupons&lt;/a&gt; (IRC) if you're outside of the U.S. And be sure to send your envelope in soon -- one per person please.    &lt;br /&gt;&lt;i&gt;Microsoft will use your self-addressed stamped envelope to send you the offer materials.&amp;#160; We will not keep or maintain your contact information. &lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;* We sadly don’t have an unlimited supply of these, so this offer is good only for the first 2,500 to respond&lt;i&gt;. &lt;/i&gt;Limit one set of stickers per person.&lt;i&gt; &lt;/i&gt;This offer is non-transferable and cannot be combined with any other offer.&amp;#160; This offer ends on Feb 28&lt;sup&gt;th&lt;/sup&gt; or while supplies last, and is not redeemable for cash.&amp;#160; Taxes, if any, are the sole responsibility of the recipient.&amp;#160; Any gift returned as non-deliverable will not be re-sent. Please allow&lt;i&gt; &lt;/i&gt;6 - 8 weeks&lt;i&gt; &lt;/i&gt;for shipment of your stickers. Due to government gift and ethics laws, government employees (including military and employees of public education institutions) are not eligible to participate.&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533332" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Protect/default.aspx">Protect</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Organize/default.aspx">Organize</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Home+Server/default.aspx">Home Server</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Backup/default.aspx">Backup</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Back-up/default.aspx">Back-up</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/PP3/default.aspx">PP3</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/marketing/default.aspx">marketing</category></item><item><title>Bloomberg: “Microsoft Outpaces Apple in Customer Satisfaction”</title><link>http://windowsteamblog.com/blogs/windows7/archive/2010/02/05/bloomberg-microsoft-outpaces-apple-in-customer-satisfaction.aspx</link><pubDate>Sat, 06 Feb 2010 06:56:35 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533245</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>19</slash:comments><description>&lt;p&gt;It is great to see the excitement for Windows 7 translating into customer satisfaction with Microsoft overall. Earlier this week, Bloomberg posted an article headlined “&lt;a href="http://www.bloomberg.com/apps/news?pid=email_en&amp;amp;sid=aajIjMcEp.E4"&gt;Microsoft Outpaces Apple in Customer Satisfaction”&lt;/a&gt; that examined data gathered by YouGov Plc showing that Windows 7 has contributed more than twice as much to Microsoft’s customer satisfaction than Snow Leopard has to Apple’s. The data shows that customer satisfaction for Microsoft was at 64% the day before Windows 7 launched on Oct. 22nd, rose to 67% in the following week, and grew to 73% by the end of 2009 for a total increase of 14%. After Apple’s August 28th release of Snow Leopard, customer satisfaction rose 1% to 65% in the first week and grew 6.9% by the end of the year.&lt;/p&gt;  &lt;p&gt;Business buyers will also likely take note, &lt;a href="http://www.informationweek.com/blog/main/archives/2010/02/windows_7_boost_1.html"&gt;according to InformationWeek&lt;/a&gt; who said, “For CIOs, this news is likely to inspire additional confidence that Windows 7 can be regarded as a viable upgrade strategy.”&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533245" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Customer/default.aspx">Customer</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Customers/default.aspx">Customers</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Momentum/default.aspx">Momentum</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Bloomberg/default.aspx">Bloomberg</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Customer+Satisfaction/default.aspx">Customer Satisfaction</category></item><item><title>AMD Announces Low-cost DirectX 11 Graphics Card</title><link>http://windowsteamblog.com/blogs/windowsexperience/archive/2010/02/05/amd-announces-low-cost-directx-11-graphics-card.aspx</link><pubDate>Fri, 05 Feb 2010 09:00:58 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533184</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>15</slash:comments><description>&lt;p&gt;Earlier today, &lt;a href="http://www.amd.com/us/press-releases/Pages/new-ati-radeon-hd-5450-graphics-card2010feb04.aspx"&gt;AMD announced the ATI Radeon HD 5450 graphics card&lt;/a&gt; – the latest addition to the ATI Radeon HD 5000 Series of graphics cards. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/4328381854_5F00_c37612e6e2_5F00_o_5F00_0789F571.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="4328381854_c37612e6e2_o" border="0" alt="4328381854_c37612e6e2_o" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/4328381854_5F00_c37612e6e2_5F00_o_5F00_thumb_5F00_4D9AB284.jpg" width="240" height="168" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.amd.com/us/products/desktop/graphics/ati-radeon-hd-5000/hd-5450-overview/Pages/hd-5450-overview.aspx"&gt;ATI Radeon HD 5450&lt;/a&gt; will cost less than $60 (USD) for a 512MB memory configuration and &lt;b&gt;supporting DirectX 11&lt;/b&gt; making it one sweet deal if you’re looking for a DirectX 11 graphics card for your Windows 7 PC. &lt;/p&gt;  &lt;p&gt;The Radeon HD 5450 offers entry level performance and ultra-low power consumption and also supports AMD’s multi-monitor technology called &lt;a href="http://www.amd.com/us/products/technologies/eyefinity/Pages/eyefinity.aspx"&gt;ATI Eyefinity&lt;/a&gt; and their &lt;a href="http://www.amd.com/US/PRODUCTS/TECHNOLOGIES/STREAM-TECHNOLOGY/Pages/stream-technology.aspx"&gt;ATI Stream technology&lt;/a&gt;. There will be variations of this card depending on partner offers including passive cooling models or whisper-quiet, single slot fan-cooled models.&lt;/p&gt;  &lt;p&gt;This graphics card is perfect for someone putting together a home theater PC (HTPC) with Windows 7 as it comes with features like HDMI 1.3a with Dolby TrueHD and DTS-HD Master Audio.&lt;/p&gt;  &lt;p&gt;For a complete list of specs on the ATI Radeon HD 5450, &lt;a href="http://www.amd.com/us/products/desktop/graphics/ati-radeon-hd-5000/hd-5450-overview/Pages/hd-5450-specifications.aspx"&gt;click here&lt;/a&gt;. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533184" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/AMD/default.aspx">AMD</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/DirectX/default.aspx">DirectX</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/DirectX+11/default.aspx">DirectX 11</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Graphics/default.aspx">Graphics</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/HTPC/default.aspx">HTPC</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Radeon+HD+5000+Series/default.aspx">Radeon HD 5000 Series</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Home+Theater+PC/default.aspx">Home Theater PC</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Graphics+Card/default.aspx">Graphics Card</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Radeon+HD+5450/default.aspx">Radeon HD 5450</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/ATI+Radeon/default.aspx">ATI Radeon</category></item><item><title>HP MediaSmart EX495 Review – Maximum PC</title><link>http://windowsteamblog.com/blogs/windowshomeserver/archive/2010/02/04/hp-mediasmart-ex495-review-maximum-pc.aspx</link><pubDate>Thu, 04 Feb 2010 23:26:08 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533158</guid><dc:creator>Nicole Berett</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A &lt;a href="http://www.maximumpc.com/article/reviews/hp_mediasmart_ex495"&gt;review of the HP MediaSmart EX495&lt;/a&gt; was posted yesterday on Maximum PC’s web site. Author Norman Chan reviews the new MediaSmart and compares it to last year’s EX487 model. Chan states that “The improvements HP made to its flagship Windows Home Server are a direct response to feature requests made by consumers – including us”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_32E8F1FA.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_6B276912.png" width="321" height="97" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;One noted feature of the EX495 is the speed of the machine, which is now powered by a Pentium Dual Core CPU which runs at 2.5GHz. This clearly amplifies performance by increasing file transfer speed, and the ability to transcode and stream video in real time. To store all of this digital entertainment, the MediaSmart EX495 also comes with 1.5TB of storage and leaves 3 additional bays empty for further internal expansion. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_716E3FA0.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_625760C6.png" width="283" height="361" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Chan then goes on to tell us about the MediaSmart 3.0 software which is “equally impressive” as the device itself. The new key features mainly revolve around converting your video files to be used on multiple devices. Feature highlights include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A local webpage where you can perform manual backups. &lt;/li&gt;    &lt;li&gt;Advanced options in the console for Media Collect and Video Conversions. &lt;/li&gt;    &lt;li&gt;Custom video settings. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To top it off, all of these great new features come at a price that is $100 less expensive than the earlier version (EX487). Interested in &lt;a href="http://www.microsoft.com/windows/products/winfamily/windowshomeserver/buy.mspx"&gt;buying one&lt;/a&gt; for yourself? Chan ends the article with some fairly good incentive: “No other solution on the market comes close to matching the EX495’s performance, feature set, and ease of use.”&lt;/p&gt;  &lt;p&gt;-Nicole &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533158" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Hewlett-Packard/default.aspx">Hewlett-Packard</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/MediaSmart/default.aspx">MediaSmart</category></item><item><title>Preventing spam and phishing using e-mail authentication</title><link>http://windowsteamblog.com/blogs/windowslive/archive/2010/02/04/preventing-spam-and-phishing-using-e-mail-authentication.aspx</link><pubDate>Thu, 04 Feb 2010 18:54:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533034</guid><dc:creator>JScarrow</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Hi, my name is John Scarrow and, in conjunction with other product groups, I oversee service abuse and security issues for Windows Live and other Microsoft products such as Internet Explorer. Building from &lt;a href="http://windowsteamblog.com/blogs/windowslive/archive/2010/01/20/spam-phishing-and-other-annoyances.aspx" target="_blank"&gt;Dick Craddock’s previous post&lt;/a&gt;, I’m going to get into the nuts and bolts of how we fight phishing scams at Hotmail using &lt;a href="https://smartscreen.microsoft.com/faq.aspx" target="_blank"&gt;SmartScreen®&lt;/a&gt; technology.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Phishing" target="_blank"&gt;Phishing, as defined in Wikipedia&lt;/a&gt;, &lt;i&gt;is the criminally fraudulent process of attempting to acquire sensitive information such as usernames, passwords and credit card details by masquerading as a trustworthy entity in an electronic communication.&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Traditionally, the majority of phishing attacks target financial institutions and online retailers, and are aimed at acquiring log-in credentials that can be sold or used to fraudulently separate users from their money. There is a more recent trend now to phish for credentials for online services and social networking sites. Both use similar methods to phish for information. &lt;a href="http://www.antiphishing.org" target="_blank"&gt;APWG&lt;/a&gt; (Anti-Phishing Working Group) reports that phishing numbers are not trending down. &lt;/p&gt;  &lt;p&gt;The chart below shows the trends for phishing attempts identified using SmartScreen in Internet Explorer 8 last year.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Chart showing trends in the number of phishing sites identified over the course of 2009 " border="0" alt="Chart showing trends in the number of phishing sites identified over the course of 2009 " src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/PhishingSitesIdentified_5F00_74228E48.png" width="524" height="338" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;A typical phishing attack&lt;/h3&gt;  &lt;p&gt;Here’s an example of a phishing attempt that was caught by Hotmail in an attempt to steal the user’s &lt;a href="http://windows.microsoft.com/en-us/windows7/what-is-a-windows-live-id" target="_blank"&gt;Windows Live ID&lt;/a&gt; credentials.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Example of a phishing e-mail that Hotmail phishing filters caught before it could be delivered" border="0" alt="Example of a phishing e-mail that Hotmail phishing filters caught before it could be delivered" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/Phishing_5F00_email_5F00_25ADFBDE.png" width="524" height="420" /&gt; &lt;/p&gt;  &lt;p&gt;Notice in this example that the e-mail appears to come from a valid domain (&lt;a href="mailto:WindowsSupportTeam@live.com"&gt;WindowsSupportTeam@live.com&lt;/a&gt;), and includes text and images that look like e-mail sent from Microsoft. If you click the link in the e-mail, you get to the following (fake) Windows Live sign-in page:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Fake Windows Live sign-in page" border="0" alt="Fake Windows Live sign-in page" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowslive/Spoofed_5F00_site_5F00_20CB4822.png" width="524" height="355" /&gt; &lt;/p&gt;  &lt;p&gt;This page, like the e-mail before it, uses a URL that may seem at first glance to be valid, and copies the images and text from the actual Windows Live sign-in page. Many customers, upon seeing this page, would simply type their credentials, which would be captured on the attacker’s website.&lt;/p&gt;  &lt;p&gt;Once the perpetrator has the user’s credentials, they sign in to the victim’s account and send spam via &lt;a href="http://windowslive.com/Online/Hotmail" target="_blank"&gt;Windows Live Hotmail&lt;/a&gt; to all the contacts in the victim’s address book. This form of social engineering spam is very effective as the spam appears to be coming from someone you know and trust.&lt;/p&gt;  &lt;p&gt;To learn more about how to avoid phishing attacks, check out this &lt;a href="http://www.microsoft.com/protect/fraud/phishing/symptoms.aspx" target="_blank"&gt;article from Microsoft Online Safety&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In order to prevent these attacks from succeeding, Hotmail employs three key tactics to thwart phishing:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;E-mail authentication&lt;/b&gt; looks at the &lt;i&gt;sender e-mail address&lt;/i&gt; to make sure it is has not been spoofed. This prevents senders from pretending to send mail from another domain, for example &lt;i&gt;mybank.com &lt;/i&gt;or &lt;i&gt;mysite.com, &lt;/i&gt;and instead the sender must prove that they are who they say they are. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Content filtering&lt;/b&gt; looks at the &lt;i&gt;content of the e-mail&lt;/i&gt; to detect likely phishing attacks. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;URL or IP reputation&lt;/b&gt; looks at the &lt;i&gt;reputation of links&lt;/i&gt; contained in the message and their domains, and identifies sites that are likely to host phishing content. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Content filtering is not significantly different than what we do for spam, and Dick has done a nice job &lt;a href="http://windowsteamblog.com/blogs/windowslive/archive/2010/01/12/fighting-the-war-on-spam.aspx" target="_blank"&gt;talking about that already&lt;/a&gt; in his last two posts. However, e-mail authentication and URL reputation have a specific impact on phishing, and need more explanation. In this post I’ll specifically focus on e-mail authentication, and then cover URL reputation in a follow-up post.&lt;/p&gt;  &lt;h3&gt;E-mail authentication&lt;/h3&gt;  &lt;p&gt;In the example above, the e-mail appeared to come from windowslivesupport.com, when in fact, it came from a completely different domain and service. This is a common tactic used by spammers and phishers known as &lt;i&gt;domain spoofing&lt;/i&gt;. From a spam perspective, a higher perceived reputation of the sender can increase the percentage of people who open the message. From a phisher’s standpoint, it’s even more valuable, because recipients are also more likely to comply with the request to provide personal information such as a username and password.&lt;/p&gt;  &lt;p&gt;There are two primary authentication technologies that are considered by most large scale e-mail providers to prevent domain spoofing: &lt;a href="http://www.ietf.org/rfc/rfc4871.txt" target="_blank"&gt;DomainKeys Identified Mail&lt;/a&gt; (DKIM) and &lt;a href="http://www.ietf.org/rfc/rfc4408.txt" target="_blank"&gt;Sender Policy Framework&lt;/a&gt; / &lt;a href="http://www.ietf.org/rfc/rfc4406.txt" target="_blank"&gt;SenderID&lt;/a&gt; (SPF). (There are notable differences and debates between SPF and SenderID, debates that go beyond the scope of this post. For the most part, Hotmail treats these two technologies the same way, so for simplicity, I’ll refer to both here simply as SenderID.) Hotmail currently supports only SenderID. However, we will be validating DKIM under certain circumstance in our next release. &lt;/p&gt;  &lt;p&gt;SenderID is easier for legitimate commercial senders to adopt than DKIM, as it requires no new code deployment on the outbound mail servers. As noted by &lt;a href="https://www.otalliance.org" target="_blank"&gt;Online Trust Alliance&lt;/a&gt;, over 50% of e-mail sent by key sectors (those currently at the most risk of phishing attacks), use some form of SenderID. Although the adoption rate for DKIM has been slower to follow, many companies in these key sectors are now signing their e-mail with DKIM as well.&lt;/p&gt;  &lt;p&gt;In the case of SenderID, commercial e-mail senders must identify all their outbound &lt;a href="http://en.wikipedia.org/wiki/Mail_transfer_agent" target="_blank"&gt;MTAs&lt;/a&gt; (Mail Transfer Agents or simply put - mail servers), collect and track the list of IP addresses they send e-mail from, and add all of this info to the TXT record in the DNS entry for their domain. For DKIM, they must deploy e-mail servers that support DKIM signing, and manage the key in the DNS server for access by e-mail receivers. Because of these requirements, it has taken e-mail senders time to fully support either DKIM or SenderID.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Using both DKIM and SenderID can work extremely well when all the pieces are in place. The requirements to support SenderID seem very simple, however, identifying all the mail servers in your organization can be challenging. Many IT departments are either decentralized, use multiple 3rd parties for outbound e-mail and marketing, or simply don’t have a good understanding of how to &lt;a href="http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard" target="_blank"&gt;properly form their DNS TXT records&lt;/a&gt;. If the TXT record in DNS does not identify 100% of the servers that are authorized to send e-mail on behalf of the domain, many valid e-mail messages could inadvertently fail authentication and thus be incorrectly deleted by Hotmail and other mail providers. This creates an interesting challenge for Hotmail on the receiving end. When exactly can we delete mail that fails authentication, without accidentally deleting some good mail?&lt;/p&gt;  &lt;h3&gt;Which came first: the chicken or the egg?&lt;/h3&gt;  &lt;p&gt;Providers who are filtering incoming e-mail may stop short of deleting e-mail that fails authentication due to potentially incomplete records. But since strict enforcement of spoofed mail isn’t happening at most e-mail services, senders don’t have the motivation to adopt SenderID and DKIM standards. This creates a classic “chicken or egg” problem – not enough senders are authenticated properly so e-mail services can’t rely on authentication which means senders have no incentive to authenticate.&lt;/p&gt;  &lt;p&gt;But this doesn’t have to be a chicken or egg problem, and Hotmail has come up with a unique solution. From the &lt;a href="http://windowsteamblog.com/blogs/windowslive/archive/2010/01/20/spam-phishing-and-other-annoyances.aspx" target="_blank"&gt;previous post&lt;/a&gt; you know that Hotmail has a reputation system in place that lets us evaluate e-mail coming from any specific IP address. We use this information to infer if a particular domain has a complete list of IP addresses of all their sending servers in their DNS TXT record. We do this by identifying messages from IP addresses that have a good reputation yet still fail authentication. In cases where very few good e-mail messages fail authentication, we know if a particular domain has done a good job identifying all their sending servers and have complete TXT records. This allows senders that do the right thing to get the benefits (the deletion of spoofed mail) without penalizing those that are still working their way up to 100% adoption.&lt;/p&gt;  &lt;p&gt;Both DKIM and SenderID can generate false positives (mistakes) above and beyond failures in implementation as described above. For example we find that 1-3% of mail that fails SenderID fails due to mail forwarding services. Mail senders who are under heavy phishing &lt;a name="_GoBack"&gt;&lt;/a&gt;attacks have repeatedly asked us to delete all these e-mail messages just to be sure, even though they know it could result in deleting good e-mail. We have always been concerned about this, as more and more folks are forwarding their other e-mail inboxes to Hotmail to take advantage of our filtering and user interface. We must insure that their valid e-mail makes the trip, forwarded or not.&lt;/p&gt;  &lt;p&gt;At the last &lt;a href="file:///C:\Users\ablume\AppData\Local\Microsoft\Windows\Temporary%20Internet%20Files\Content.Outlook\L007NCLH\)%20www.maawg.org" target="_blank"&gt;MAAWG&lt;/a&gt; (Messaging Anti-Abuse Working Group) and &lt;a href="http://www.otalliance.org" target="_blank"&gt;OTA&lt;/a&gt; (Online Trust Alliance) conferences in Philadelphia we announced our intention to verify DKIM authentication on inbound mail when SenderID authentication fails. This “Double Fail”, as it’s been termed, virtually eliminates the false positives that can result from either DKIM or SenderID alone. This allows Hotmail to confidently delete messages that fail both forms of authentication, when they come from senders who have complete records.&lt;/p&gt;  &lt;p&gt;Finally, in the event that phishing mail does get into your inbox, we disable links by default for senders who are not&amp;#160; a) on your contact list, b) marked as safe, or c) proven reliable by participating in the &lt;a href="http://postmaster.live.com/Services.aspx#Safelist" target="_blank"&gt;Sender Score Certified&lt;/a&gt; program. This means that before we enable the links we ask if you trust the sender, and allow you to decide whether you think that sender is safe. More information on mail treatment can be found on the &lt;a href="http://postmaster.live.com" target="_blank"&gt;Windows Live postmaster site&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;E-mail authentication can be a very powerful tool to combat phishing. However, with all the inherent challenges, it requires creative solutions to make it work. At Hotmail we use authentication in conjunction with URL reputation and content filtering, and as a result, we are able to have a huge impact on phishing scams. In my next post I’ll cover our SmartScreen URL reputation system and how we use it across multiple products such as Internet Explorer and others. I’m looking forward to your feedback on this post (did I include too much technical detail, or do you want more?), as your comments will influence how I take on the next subject.&lt;/p&gt;  &lt;p&gt;Thanks -&lt;/p&gt;  &lt;p&gt;John Scarrow    &lt;br /&gt;General Manager Safety Services&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533034" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/social+networking/default.aspx">social networking</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Windows+Live+ID/default.aspx">Windows Live ID</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Windows+Live/default.aspx">Windows Live</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Hotmail/default.aspx">Hotmail</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/spam/default.aspx">spam</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/E-mail/default.aspx">E-mail</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Email/default.aspx">Email</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/SmartScreen/default.aspx">SmartScreen</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://windowsteamblog.com/blogs/windowslive/archive/tags/phishing/default.aspx">phishing</category></item><item><title>Using Sensors in You Application – Managed Part 1</title><link>http://windowsteamblog.com/blogs/developers/archive/2010/02/03/using-sensors-in-you-application-managed-part-1.aspx</link><pubDate>Wed, 03 Feb 2010 19:39:02 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:533013</guid><dc:creator>Yochay Kiriaty</dc:creator><slash:comments>8</slash:comments><description>&lt;p&gt;So far we covered the Windows 7 Sensor and Location Platform architecture (&lt;a href="http://windowsteamblog.com/blogs/developers/archive/2010/01/28/i-can-feel-you-using-the-windows-7-sensor-platform.aspx"&gt;I Can Feel You – Using the Windows 7 Sensor Platform&lt;/a&gt;), and &lt;a href="http://windowsteamblog.com/blogs/developers/archive/2010/02/01/using-sensors-in-your-application-native-implementation-part-1.aspx"&gt;Using Sensors in Your Application – Native Part 1&lt;/a&gt;. This post introduces the managed API for using sensors. In future posts I’ll continue with the native API. &lt;/p&gt;  &lt;p&gt;So far, you have seen C++ and COM examples of the Sensor and Location platform. Now let’s take a look at how managed code developers can use the platform, using the &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack"&gt;Windows API Code Pack for the .NET Framework&lt;/a&gt;, to discover and work with sensors. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Discovering Sensors Using Managed Code&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Follow the same guidelines in managed code as you would in native code: first discover sensors, next check their state and request permissions if needed, and then read data from the sensor. Let’s start by discovering sensors. &lt;/p&gt;  &lt;p&gt;The main namespace for sensors in the Windows API Code Pack is &lt;b&gt;&lt;i&gt;Microsoft.WindowsAPICodePack.Sensors&lt;/i&gt;&lt;/b&gt; as&lt;i&gt; &lt;/i&gt;implemented in the Microsoft.WindowsAPICodePack.Sensors.dll assembly. This namespace contains the &lt;b&gt;&lt;i&gt;SensorManager&lt;/i&gt;&lt;/b&gt; class that manages the sensor devices that are connected to the PC. This class exposes a set of methods that are similar to those of the native &lt;b&gt;&lt;i&gt;ISensorManager&lt;/i&gt;&lt;/b&gt; interface. These methods include &lt;b&gt;&lt;i&gt;GetSensorsByCategoryId&lt;/i&gt;&lt;/b&gt;, &lt;b&gt;&lt;i&gt;GetSensorsByTypeId&lt;/i&gt;&lt;/b&gt;, and &lt;b&gt;&lt;i&gt;GetSensorsBySensorId&lt;/i&gt;&lt;/b&gt;, the last of which receives as an input parameter a GUID that either represents a sensor category, type, or single sensor ID. In addition, you can also find the &lt;b&gt;&lt;i&gt;GetAllSensors&lt;/i&gt;&lt;/b&gt; method, which returns all the sensors that are connected to the system regardless of type or category, as shown by the following code snippet.&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; PrintAllSensors()&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    SensorList&amp;lt;Sensor&amp;gt; sensorList =  SensorManager.GetAllSensors();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var sensor &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; sensorList)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        StringBuilder sb = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt;  StringBuilder();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        sb.Append(&lt;span style="color: #006080"&gt;&amp;quot;Sensor Information:&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        sb.Append(Environment.NewLine);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        sb.Append(sensor.FriendlyName);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        sb.Append(Environment.NewLine);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        sb.Append(sensor.CategoryId);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        sb.Append(Environment.NewLine);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        sb.Append(sensor.State);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        sb.Append(Environment.NewLine);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        Console.WriteLine(sb.ToString());&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Running the above code snippet on my local dev machine yields the following output, showing the sensors installed on my local machine. Note that only the virtual light is &lt;b&gt;Ready&lt;/b&gt; and the rest are showing &lt;b&gt;AccessDenied&lt;/b&gt; indicating that they are not enabled.&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Sensor Information:&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Legacy GPS Driver&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;bfa794e4-f964-4fdb-90f6-51056bfe4b44&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;AccessDenied&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Sensor Information:&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Skyhook Wireless XPS Location Sensor&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;bfa794e4-f964-4fdb-90f6-51056bfe4b44&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;AccessDenied&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Sensor Information:&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Ambient Light Sensor&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;17a665c0-9063-4216-b202-5c7a255e18ce&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Ready&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;table border="0" cellspacing="0" cellpadding="2" width="575"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="303"&gt;Since the Windows API Code Pack includes the strongly typed sensor class &lt;b&gt;&lt;i&gt;Sensor&lt;/i&gt;&lt;/b&gt;, it is easy to get a list of sensors and print their various properties. The native API has a Sensor interface through which you work with sensors, but anything beyond that &lt;b&gt;ISensor&lt;/b&gt; Interface requires you to use GUIDs. The Windows API Code Pack provides a list of all the GUIDs that are available in &lt;b&gt;Sensors.h&lt;/b&gt;. The &lt;b&gt;&lt;i&gt;SensorPropertyKeys&lt;/i&gt;&lt;/b&gt; and &lt;b&gt;&lt;i&gt;SensorCategories&lt;/i&gt;&lt;/b&gt; classes contain the public read-only property of GUID objects that correspond to the same values in the &lt;b&gt;Sensors.h&lt;/b&gt; file. However, this is not the usual or preferred programming model that .NET developers are accustomed to, mainly because the native sensor objects are not strongly typed and you have to use the more generic GUID system to access a sensor’s data. This doesn’t allow you to use all the great features .NET offers, such as data binding, type safety, and properties. Therefore, the &lt;i&gt;Microsoft.WindowsAPICodePack.Sensors&lt;/i&gt; namespace, described in the image to the right, includes several strongly typed sensor classes that allow you to bind to their properties. For example, you can find &lt;i&gt;AmbientLightSensor&lt;/i&gt;, which has one public property, &lt;i&gt;CurrentLuminousIntensity&lt;/i&gt;, which represents the current amount of light (luminosity) detected by the sensors. The namespace also includes the interop layer that wraps the native interface, all the metadata information, and the object model that developers work with. &lt;/td&gt;

      &lt;td valign="top" width="270"&gt;
        &lt;p align="center"&gt;&amp;#160;&lt;/p&gt;

        &lt;p align="center"&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/developers/Codepack_5F00_Sensor_5F00_2C6D6365.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Codepack_Sensor" border="0" alt="Codepack_Sensor" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/developers/Codepack_5F00_Sensor_5F00_thumb_5F00_40867FEE.png" width="352" height="768" /&gt;&lt;/a&gt; &lt;/p&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Please note that the &lt;b&gt;&lt;i&gt;Microsoft.WindowsAPICodePack.Sensors&lt;/i&gt;&lt;/b&gt; namespace offers an extensibility model that allows you to create any strongly typed sensor. When this is combined with the extensibility offered by the native API, you can create any type of sensor you want with any data values. You can read more about the Sensor and Location platform extensibility module at the Sensor and Location Platform Web site: &lt;a href="http://www.microsoft.com/whdc/device/sensors/"&gt;&lt;i&gt;http://www.microsoft.com/whdc/device/sensors/&lt;/i&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With a strongly typed sensor class, the Windows API Code pack can define a .NET Generics version of the &lt;i&gt;Get&lt;/i&gt; methods. For example, &lt;i&gt;GetSensorsByTypeId&amp;lt;S&amp;gt;&lt;/i&gt;, where &lt;i&gt;S&lt;/i&gt; is a type derived from the &lt;i&gt;Sensor&lt;/i&gt; base class. The prototype looks like this:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;public static SensorList&amp;lt;S&amp;gt; GetSensorsByTypeId&amp;lt;S&amp;gt;( ) where S: Sensor&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When using this function, you need to predefine a specific &lt;b&gt;&lt;i&gt;SensorList&amp;lt;&amp;gt;&lt;/i&gt;&lt;/b&gt; of the desired sensor type, (&lt;b&gt;&lt;i&gt;AmbientLightSensor&lt;/i&gt;&lt;/b&gt;, in our example), and then call the method requesting the sensor’s manager to return only &lt;b&gt;&lt;i&gt;AmbientLightSensor&lt;/i&gt;&lt;/b&gt; sensors. The following code snippet illustrates this process:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #008000"&gt;// Strongly typed SensorList of type AmbientLightSensor&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;SensorList&amp;lt;AmbientLightSensor&amp;gt; alsList = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    alsList = SensorManager.GetSensorsByTypeId&amp;lt;AmbientLightSensor&amp;gt;();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (SensorPlatformException) &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;//handle error when no sensor device is accessible &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The &lt;b&gt;&lt;i&gt;SensorManager&lt;/i&gt;&lt;/b&gt; class contains one event called &lt;b&gt;&lt;i&gt;SensorChanged&lt;/i&gt;&lt;/b&gt;, which is equivalent to the native &lt;b&gt;&lt;i&gt;ISensorManager::OnSensorEnter&lt;/i&gt;&lt;/b&gt; event. The one main difference between the native and managed code implementations is that the managed code implementation, in addition to receiving an event when a new sensor device is connected to the PC, also generates an event when a sensor gets disconnected. Therefore, &lt;b&gt;&lt;i&gt;SensorsChangedEventArgs&lt;/i&gt;&lt;/b&gt;, the arguments passed to the &lt;b&gt;&lt;i&gt;SensorManager.SensorChanged&lt;/i&gt;&lt;/b&gt; event handler, includes a &lt;b&gt;&lt;i&gt;SensorAvailabilityChange&lt;/i&gt;&lt;/b&gt; member that defines the type of change for each sensor, which can be &lt;i&gt;Addition&lt;/i&gt; for new sensor devices and &lt;i&gt;Removal&lt;/i&gt; when sensors are disconnected from the PC. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;i&gt;SensorManager&lt;/i&gt;_&lt;i&gt;SensorsChanged&lt;/i&gt;&lt;/b&gt; is the function that handles the &lt;b&gt;&lt;i&gt;SensorsChanged&lt;/i&gt;&lt;/b&gt; event in our application, and it looks like this:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt; SensorManager_SensorsChanged( SensorsChangedEventArgs change )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;// The SensorsChanged event comes in on a non-UI thread. &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;// Whip up an anonymous delegate to handle the UI update.&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    BeginInvoke( &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MethodInvoker( &lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        PopulatePanel( );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    } ) );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;
The &lt;i&gt;SensorsChanged&lt;/i&gt; event is dispatched on a different thread than the application’s main form (UI) thread. Windows Forms does not allow you to update the UI of the application from a non-UI thread. Therefore, for any Windows application with a window-based UI, we highly recommend that you use a different thread than the main UI thread to execute long computations or any I/O-bound communication (as we do in our example of how to synchronously read sensor data). Therefore, to properly handle non-UI-thread UI updates, you should use &lt;i&gt;BeginInvoke&lt;/i&gt; to execute the specified delegate asynchronously on the thread upon which the form’s underlying handle was created. This is also true for any WPF application. The &lt;i&gt;PopulatePanel&lt;/i&gt; method iterates through all the ambient light sensors and updates the application UI as it verifies the sensor state and reads its data. We'll cover this in future posts. 

&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=533013" width="1" height="1"&gt;</description></item><item><title>Internet Explorer 8 Officially Becomes World’s Most-Used Browser</title><link>http://windowsteamblog.com/blogs/windowsexperience/archive/2010/02/02/internet-explorer-8-officially-becomes-world-s-most-used-browser.aspx</link><pubDate>Tue, 02 Feb 2010 19:03:43 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532845</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>143</slash:comments><description>&lt;p&gt;This week, &lt;a href="http://www.netmarketshare.com"&gt;Net Applications&lt;/a&gt; released their &lt;a href="http://www.netmarketshare.com/report.aspx?qprid=0&amp;amp;qptimeframe=M&amp;amp;qpsp=132&amp;amp;qpcustomb="&gt;January browser market share report&lt;/a&gt;. Their &lt;a href="http://www.netmarketshare.com"&gt;report&lt;/a&gt; shows that Internet Explorer 8 is not only the most popular browser on Windows with 27.9% usage share, but that it now has 25.6% of market share across all OS’s on a worldwide-weighted usage share basis (data provided by Net Applications). We launched just less than a year ago, so it’s both humbling and thrilling to see so many people choose our product so quickly – making it the most popular browser of choice worldwide.&lt;/p&gt;  &lt;p&gt;&lt;a name="_MailEndCompose"&gt;&lt;/a&gt;There are many reasons people choose which browser to use. Most people want to know and trust the company behind their browser. And people are looking a browser that protects them – and their privacy online. In an &lt;a href="http://blogs.msdn.com/ie/archive/2009/08/13/real-world-protection-with-ie8-s-smartscreen-filter.aspx"&gt;August 13th, 2009 post on the IEBlog&lt;/a&gt;, we announced Internet Explorer 8’s &lt;a href="http://www.microsoft.com/security/filters/smartscreen.aspx"&gt;SmartScreen Filter&lt;/a&gt; had hit over 80 million malware blocks. But that was back in August. &lt;b&gt;As of today, Internet Explorer 8 has done over 350 million malware blocks&lt;/b&gt;. You can see Internet Explorer 8’s SmartScreen Filter in action &lt;a href="http://blogs.msdn.com/ie/archive/2009/11/23/ie8-smartscreen-in-action.aspx"&gt;in this blog post&lt;/a&gt;. Internet Explorer 8’s SmartScreen Filter blocks malware over 2 million times a day. &lt;/p&gt;  &lt;p&gt;Phishing is a very serious threat to people browsing the Internet today – a criminal attempt to secure people’s personal information online, generally spread through email directing unsuspecting consumers to fake websites and asking them to enter sensitive information . With Internet Explorer 7, we introduced the Phishing Filter, and have continued to improve on it in Internet Explorer 8. Together, &lt;b&gt;Internet Explorer 7 and 8 have blocked a total of over 125 million phishing sites.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You may have recently heard about organizations including Google recommending that people update their browsers and move off older versions, such as the nearly decade-old Internet Explorer 6.&amp;#160; Think about what technology and the Internet were like in the year 2000 – and consider how they’ve evolved since then. In 2000, “phishing” was something that happened at the lake, not online. There was no social networking, no RSS feeds, and no real blogs. It was a different time – and people’s browsing needs were different. Today’s Internet calls for more.&lt;/p&gt;  &lt;p&gt;We &lt;a href="http://blogs.msdn.com/ie/archive/2009/08/10/engineering-pov-ie6.aspx"&gt;support&lt;/a&gt; this recommendation to move off Internet Explorer 6. Modern browsers such as Internet Explorer 8 bring benefits for customers and developers alike. We realize there are some customers today who depend on Internet Explorer 6, and while we continue to support them through the lifecycle of the product, we are also investing in the tools and training to help them upgrade as well.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532845" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Security/default.aspx">Security</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Internet+Explorer+8/default.aspx">Internet Explorer 8</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/IE8/default.aspx">IE8</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Online+Safety/default.aspx">Online Safety</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Modern+Browser/default.aspx">Modern Browser</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Phishing/default.aspx">Phishing</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Safety/default.aspx">Safety</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Internet+Explorer+6/default.aspx">Internet Explorer 6</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/IE6/default.aspx">IE6</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/SmartScreen/default.aspx">SmartScreen</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Net+Applications/default.aspx">Net Applications</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Phishing+Filter/default.aspx">Phishing Filter</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/SmartScreen+Filter/default.aspx">SmartScreen Filter</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Product+Lifecycle/default.aspx">Product Lifecycle</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Market+Share/default.aspx">Market Share</category></item><item><title>Dell Launches Alienware M11x 11” Gaming Laptop</title><link>http://windowsteamblog.com/blogs/windowsexperience/archive/2010/02/02/dell-launches-alienware-m11x-11-gaming-laptop.aspx</link><pubDate>Tue, 02 Feb 2010 18:45:14 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532843</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;Unveiled at CES in early January, &lt;a href="http://en.community.dell.com/blogs/direct2dell/archive/2010/02/02/the-m11x-is-finally-here.aspx"&gt;Dell today is launching&lt;/a&gt; the highly anticipated extremely portable gaming laptop: the &lt;b&gt;Alienware M11x&lt;/b&gt;. At CES, the M11x won both &lt;a href="http://ces.cnet.com/best-of-ces/"&gt;CNET's Award for the Best Gaming Product at CES 2010&lt;/a&gt; and &lt;a href="http://gear.ign.com/articles/106/1060926p2.html"&gt;IGN’s Award for Best Computer&lt;/a&gt;. The M11x is one of the smallest gaming laptops hitting the market with an 11” design. Dell literally went and packed in the power of a 15” laptop in an 11” design with this PC. And it weighs in at less than 4.5 pounds. Dell recently did a blog post called &lt;a href="http://en.community.dell.com/blogs/direct2dell/archive/2010/01/28/a-brief-history-of-the-alienware-m11x.aspx"&gt;A Brief History of the Alienware M11x&lt;/a&gt; which gives some more perspective and back story to the PC. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/4245000244_5F00_d8e3fc2615_5F00_b_5F00_3E8C7630.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="4245000244_d8e3fc2615_b" border="0" alt="4245000244_d8e3fc2615_b" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/4245000244_5F00_d8e3fc2615_5F00_b_5F00_thumb_5F00_6B353009.jpg" width="145" height="93" /&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Alienware M11 notebook " border="0" alt="Alienware M11 notebook " src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/awm11_5F00_1_5F00_1CC09D9F.jpg" width="145" height="95" /&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Alienware M11 notebook" border="0" alt="Alienware M11 notebook" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/awm11_5F00_2_5F00_556B47AC.jpg" width="145" height="96" /&gt;&amp;#160;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The M11x can be configured with (and up to) the follow specs: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Windows 7 Ultimate 64-bit&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Processor:&lt;/b&gt; Up to Intel Core2 Duo SU7300 (1.3GHz, 800 MHz, 3 MB) &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Graphics:&lt;/b&gt; NVIDIA GeForce GT 335M - 1GB GDDR3 &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Memory:&lt;/b&gt; Up to 8GB - DDR3 1066MHz &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Hard Drive:&lt;/b&gt; a 500GB 7200RPM hard drive or a 256GB Solid State Drive (SSD) &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Network:&lt;/b&gt; 802.11 b/g/n &amp;amp; Optional Internal WWAN &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Ports:&lt;/b&gt; HDMI / VGA / 3 USB / Media Card Reader / FireWire &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The keyboard integrates back lit keys which are fully customizable through the exclusive Alienware Command center, featuring AlienFX software. The Alienware M11x will be available in 2 color options: Cosmic Black or Lunar Shadow (Silver). &lt;/p&gt;  &lt;p&gt;You can &lt;a href="http://www.alienware.com/microsite/m11x/m11x.aspx"&gt;order the Alienware M11x&lt;/a&gt; today starting at $799. Dell is working to bring this PC to international markets, including South Asia. Look for Dell to announce more details when those plans are finalized. &lt;/p&gt;  &lt;p&gt;If you’re a gamer and want a PC with some impressive specs yet retains a great deal of mobility – the Alienware M11x is the perfect PC to take a look at!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532843" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Dell/default.aspx">Dell</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/64-bit/default.aspx">64-bit</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/x64/default.aspx">x64</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Games/default.aspx">Games</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Alienware/default.aspx">Alienware</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7+PC/default.aspx">Windows 7 PC</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Alienware+M11x/default.aspx">Alienware M11x</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Gaming+PC/default.aspx">Gaming PC</category></item><item><title>Sony Announces VAIO E Series Windows PCs</title><link>http://windowsteamblog.com/blogs/windows7/archive/2010/02/02/sony-announces-vaio-e-series-windows-pcs.aspx</link><pubDate>Tue, 02 Feb 2010 13:03:04 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532809</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>11</slash:comments><description>&lt;p&gt;Today, Sony &lt;a href="http://news.sel.sony.com/en/press_room/consumer/computer_peripheral/notebooks/release/56373.html"&gt;has announced&lt;/a&gt; a new series of VAIO Windows PCs – the &lt;b&gt;VAIO E Series&lt;/b&gt;. This new 15.5” laptop will come in 5 high-gloss colors: Caribbean Green, Iridescent Blue, Coconut White, Hibiscus Pink and Lava Black. 3 matte colors can also be chosen: Maple Brown, Silver White and Gunmetal. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windows7/EBGlossyAllGroup_5F00_56DCB731.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EB Glossy All - Group" border="0" alt="EB Glossy All - Group" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windows7/EBGlossyAllGroup_5F00_thumb_5F00_3C9C4E0D.jpg" width="240" height="168" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I don’t know about you but I’m sold on the Caribbean Green. I love this color. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windows7/EBGlossyGreenBackLeft_5F00_4A026113.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EB Glossy Green - Back Left" border="0" alt="EB Glossy Green - Back Left" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windows7/EBGlossyGreenBackLeft_5F00_thumb_5F00_21EFB1F4.jpg" width="240" height="168" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The keyboard on the VAIO E Series is edge-to-edge with the numeric pad built-in. Sony did this to give users the experience of using a “full” keyboard but in a smaller space. The touch pad is dimpled and integrated into the palm rest. &lt;/p&gt;  &lt;p&gt;The VAIO E Series will ship with the following specs:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Windows 7 Home Premium 64-bit&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Processor:&lt;/b&gt; Intel Core i3 Processor (Select models ship with a Core i5 Processor) &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Memory:&lt;/b&gt; 4GB DDR3 (Up to 8GB max) &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Graphics:&lt;/b&gt; Intel Graphics Media Accelerator HD - HM55 Express Chipset (1366 x 768 screen resolution) &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Network:&lt;/b&gt; 10/100/1000 Mbps Ethernet, 802.11 b/g/n Wireless &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Optical:&lt;/b&gt; Blu-ray with DVD and CD read/write &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Storage:&lt;/b&gt; Up to 500GB &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It comes with an eSATA/ USB port and 3 convenient USB ports and a HDMI port for connecting the PC up to an HDTV. It will also support Bluetooth as well. &lt;/p&gt;  &lt;p&gt;The VAIO E Series notebook will retail for about $700 is currently available for pre-order today online via Sony’s website at &lt;a href="http://www.sonystyle.com/pr/e"&gt;www.sonystyle.com/pr/e&lt;/a&gt;. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532809" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Announcement/default.aspx">Announcement</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/PC/default.aspx">PC</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/OEM/default.aspx">OEM</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Sony/default.aspx">Sony</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/64-bit/default.aspx">64-bit</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/VAIO/default.aspx">VAIO</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Windows+PC/default.aspx">Windows PC</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/VAIO+E+Series/default.aspx">VAIO E Series</category></item><item><title>Using Sensors in Your Application – Native Implementation, Part 1</title><link>http://windowsteamblog.com/blogs/developers/archive/2010/02/01/using-sensors-in-your-application-native-implementation-part-1.aspx</link><pubDate>Tue, 02 Feb 2010 06:06:53 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532781</guid><dc:creator>Yochay Kiriaty</dc:creator><slash:comments>8</slash:comments><description>&lt;p&gt;After a quick overview of the Sensor and Location Platform - &lt;a href="http://windowsteamblog.com/blogs/developers/archive/2010/01/28/i-can-feel-you-using-the-windows-7-sensor-platform.aspx" target="_blank"&gt;I Can Feel You – Using the Windows 7 Sensor Platform&lt;/a&gt;, it is time to start digging into the API. We’ll start with an overview of the Win32 API to understand the data flow and then will review the managed API via the &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows API Code Pack for the .NET Framework&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The Sensor and Location platform has two components, the sensor piece and, built on top of that, the location piece. We’ll cover the sensor piece in great detail to make sure that when the time comes to speak about location, we understand the foundation upon which it is built. &lt;/p&gt;  &lt;p&gt;The Sensor API (as well as the Location API) is COM-based. You will find all the required API and GUID definitions in the Sensorsapi.h and Sensors.h files found in your local Windows 7 SDK install. The Sensors.h file contains a ton of GUIDs that define all the different aspects of a sensor’s categories, types, and data. The API and interface are found in the Sensorsapi.h file. A closer look at the Sensorsapi.h file reveals three main COM Interfaces that you should be aware of when working with Sensors:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;ISensorManager &lt;/b&gt;is your main interface to all the sensors that are connected to the platform. The sensor manager allows you to enumerate through the sensors list, request permissions from the user to access the sensor data, and receive events upon new sensor arrivals. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;ISensor&lt;/b&gt; is the actual sensor object you want to work with. Through this interface you will be able to set and get properties, get data reports and register for a range of events that happen during the life of the sensor. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;ISensorDataReport&lt;/b&gt; is the one interface that you will learn to love and hate, as this is the one and only way to read actual data from the sensor; but it is a generic form of a generic data report that needs to span &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You will need to work with these three interfaces to integrate sensors into your application.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Integrating Sensors into Your Application&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When integrating sensors into your application, you need to follow three basic steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;b&gt;Discover sensors &lt;/b&gt;– Before you can obtain a sensor, you need to discover which sensors are connected to the system. Use the ISensorManager interface to enumerate through the list of sensor devices that are connected to the platform and register to events that notify you when new sensor devices arrive. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Acquire a sensor and request sensor permissions&lt;/b&gt; – Once you discover and choose the sensor with which you wish to work, you need to make sure you have permission to access it. If you don’t have permission to access the sensor’s data (use it…), you need to ask the user for permission in order for your application to access the sensor’s data. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Interact with the sensor&lt;/b&gt; –Now that you have obtained a sensor whose data you have permission to access, you can start interacting with it, reading and setting properties, and registering for events. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Discovering Sensors&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The first step you need to take for each application for which you want to use sensors is to discover which sensors are connected to the platform and then get access to one. To enable your application to do this, you need to use the &lt;b&gt;&lt;i&gt;ISensorManager&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;COM Interface. The sensor manager maintains the list of available sensors. Since it is a COM interface, you need to initialize it using &lt;b&gt;&lt;i&gt;CoCreateInstance.&lt;/i&gt;&lt;/b&gt; You can think of this interface as the root interface for the sensor API. The following code snippet creates an instance of the sensor manager:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #008000"&gt;// Declare a smart pointer to receive the sensor manager interface pointer.&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #008000"&gt;// Originally, this smart pointer is defined in the class prototype definition&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #008000"&gt;// CAmbientLightAwareSensorManagerEvents&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;CComPtr&amp;lt;ISensorManager&amp;gt; m_spISensorManager;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;HRESULT hr;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #008000"&gt;// Create the sensor manager&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;hr = m_spISensorManager.CoCreateInstance(CLSID_SensorManager);&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The &lt;i&gt;ISensorManager &lt;/i&gt;interface provides a set of methods for discovering and retrieving available sensors. It also exposes an event that is used for receiving notifications when a new sensor becomes available. You may ask yourself where to register for the event where a sensor “leaves” the system. Well, this can be found within the sensor itself. With an &lt;i&gt;ISensorManager &lt;/i&gt;pointer at hand, you can start searching for sensors. &lt;i&gt;ISensorManager &lt;/i&gt;has three methods that help you search for connected sensors:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;b&gt;GetSensorsByID &lt;/b&gt;– The first method returns a specific sensor by its ID, which is just a GUID. This is not the most useful function, since the sensor GUID is automatically generated when the sensor is first connected to the system to support multiple sensors of the same make and model. &lt;/li&gt;

  &lt;li&gt;&lt;b&gt;GetSensorsByCategory &lt;/b&gt;– This function returns a collection of sensors that share the same category. For example, I could have several location sensors, including GPS and Wi-Fi triangulation, connected to the platform and you don’t want to exclude any. &lt;/li&gt;

  &lt;li&gt;&lt;b&gt;GetSensorsByType &lt;/b&gt;– This function returns a collection of sensors that share the same type. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you noticed, all function names reflect that there are multiple sensors connected at the same time to the computer. It is possible that several sensors of the same category are connected to the same PC. For example, on my machine, I have one light sensor built into the PC enclosure and another one as part of my Sensor Development Kit. It makes sense to use the light sensor built in to the enclosure because it provides the most accurate lighting condition reading from the PC. For an application, the best way to discover sensors is to use the Sensor Manager interface's type and category functions and then choose the sensor you need to work with from the list.&lt;/p&gt;

&lt;p&gt;Through this series of posts, we’ll use a very simple Microsoft Foundation Classes (MFC) light-aware application that is part of the Windows 7 SDK. The following code is taken from the &lt;b&gt;&lt;i&gt;Initialize&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;method of the &lt;b&gt;&lt;i&gt;CAmbientLightAwareSensorManagerEvents&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;class. This class implements the ISensorManagerEvents interface notifications from the platform upon arrival of a new sensor.&lt;/p&gt;

&lt;p&gt;The &lt;i&gt;Initialize &lt;/i&gt;method is called during the initialization process of the main dialog (we have only one):&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;HRESULT CAmbientLightAwareSensorManagerEvents::Initialize()&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    HRESULT hr;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #008000"&gt;// Create the sensor manager&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    hr = m_spISensorManager.CoCreateInstance(CLSID_SensorManager);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SUCCEEDED(hr))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        hr = m_spISensorManager-&amp;gt;SetEventSink(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SUCCEEDED(hr))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #008000"&gt;// Find all Ambient Light Sensors&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            CComPtr&amp;lt;ISensorCollection&amp;gt; spSensors;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            hr = m_spISensorManager-&amp;gt;GetSensorsByType&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        (SENSOR_TYPE_AMBIENT_LIGHT, &amp;amp;spSensors);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SUCCEEDED(hr) &amp;amp;&amp;amp; NULL != spSensors)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                ULONG ulCount = 0;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                hr = spSensors-&amp;gt;GetCount(&amp;amp;ulCount);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SUCCEEDED(hr))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    &lt;span style="color: #0000ff"&gt;for&lt;/span&gt;(ULONG i=0; i &amp;lt; ulCount; i++)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        CComPtr&amp;lt;ISensor&amp;gt; spSensor;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        hr = spSensors-&amp;gt;GetAt(i, &amp;amp;spSensor);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SUCCEEDED(hr))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            &lt;span style="color: #008000"&gt;// Helper function that sets up event sinking &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            &lt;span style="color: #008000"&gt;// for a specific sensor&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            hr = AddSensor(spSensor);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SUCCEEDED(hr))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                &lt;span style="color: #008000"&gt;// Check the current sensor state.&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                SensorState state = SENSOR_STATE_READY;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                hr = spSensor-&amp;gt;GetState(&amp;amp;state);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(SUCCEEDED(hr))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                      &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(state == SENSOR_STATE_READY)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                     {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                        &lt;span style="color: #008000"&gt;// Read the sensor data and update the &lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                        &lt;span style="color: #008000"&gt;// application's UI&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                        hr = m_pSensorEvents-&amp;gt;GetSensorData&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                                                (spSensor);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                     }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; hr;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Here you can see how, after successfully obtaining an &lt;b&gt;&lt;i&gt;ISensorManager&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;interface, you call &lt;b&gt;&lt;i&gt;ISensorManager::GetSensorsByType&lt;/i&gt;&lt;/b&gt;, passing &lt;b&gt;SENSOR_TYPE_AMBIENT_LIGHT&lt;/b&gt; and a pointer to an &lt;b&gt;&lt;i&gt;ISensorCollection&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;collection, &lt;b&gt;&lt;i&gt;spSensors&lt;/i&gt;&lt;/b&gt;. The &lt;b&gt;SENSOR_TYPE_AMBIENT_LIGHT&lt;/b&gt; indicates that we want to receive only ambient light sensors (ALS). At the same time, you could ask for all sensors of the type &lt;b&gt;SENSOR_TYPE_VOLTAGE&lt;/b&gt; from the electrical category, or &lt;b&gt;SENSOR_TYPE_ACCELEROMETER_3D&lt;/b&gt; from the motion category.&lt;/p&gt;

&lt;p&gt;If successful, the &lt;b&gt;GetSensorsByType&lt;/b&gt; function fills &lt;i&gt;ISensorCollection &lt;/i&gt;with a list of ALS. Next, you iterate through the sensor collection and call the &lt;b&gt;&lt;i&gt;AddSensor&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;helper function for each sensor. This sets up event sinking (a delegate) by registering the sensor to &lt;b&gt;&lt;i&gt;m_pSensorEvents&lt;/i&gt;&lt;/b&gt;, which is a &lt;b&gt;&lt;i&gt;SensorEvents&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;implementation class used for event sinking that I’ll explain later. Finally, you call another helper method, &lt;b&gt;&lt;i&gt;GetSensorData&lt;/i&gt;&lt;/b&gt;, to read data from the sensor and to update the LUX value in the application’s UI. We’ll address the actual reading of sensor data in future posts.&lt;/p&gt;

&lt;p&gt;During an application's runtime, new light sensors might get connected to the PC, so you need a mechanism for notifying applications when new sensor devices are connected. The &lt;b&gt;&lt;i&gt;ISensorManager&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;interface contains a &lt;b&gt;&lt;i&gt;SetEventSink&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;method to set an event sinking implementation class – that is, a delegate that handles the events. This function receives an &lt;b&gt;&lt;i&gt;ISensorManagerEvents&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;callback interface that receives the event notifications when a new sensor device is connected. This event sink acts as a listener that handles &lt;b&gt;&lt;i&gt;OnSensorEnter,&lt;/i&gt;&lt;/b&gt; the only event the &lt;b&gt;&lt;i&gt;ISensorManagerEvents &lt;/i&gt;&lt;/b&gt;interface has. &lt;/p&gt;

&lt;p&gt;If you take a look at the above sample, you will see that you call &lt;b&gt;&lt;i&gt;SetEventSink&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;right after the successful creation of the &lt;b&gt;&lt;i&gt;ISensorManager&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;interface and pass &lt;i&gt;“&lt;b&gt;this&lt;/b&gt;” &lt;/i&gt;as the input parameter, and then the local class&lt;i&gt; &lt;b&gt;CAmbientLightAwareSensorManagerEvents&lt;/b&gt;&lt;/i&gt; implements the &lt;b&gt;ISensorManagerEvents&lt;/b&gt; interface. &lt;/p&gt;

&lt;p&gt;Therefore, in this class you can find the implementation for the &lt;b&gt;&lt;i&gt;ISensorManager::OnSensorEnter&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;event, which looks like the following code snippet:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;HRESULT CAmbientLightAwareSensorManagerEvents::OnSensorEnter&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                    (ISensor* pSensor, SensorState state)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    HRESULT hr = S_OK;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (NULL != pSensor)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        SENSOR_TYPE_ID idType = GUID_NULL;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        hr = pSensor-&amp;gt;GetType(&amp;amp;idType);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SUCCEEDED(hr))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #008000"&gt;// we are interested only in light sensors&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (IsEqualIID(idType, SENSOR_TYPE_AMBIENT_LIGHT))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                hr = AddSensor(pSensor);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SUCCEEDED(hr))&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (SENSOR_STATE_READY == state)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        hr = m_pSensorEvents-&amp;gt;GetSensorData(pSensor);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        hr = E_POINTER;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; hr;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;In this code you can see that the &lt;b&gt;&lt;i&gt;OnSensorEnter&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;method receives a pointer to the newly connected sensor device and the state status of the sensor. If the sensor pointer is valid (not null), you first read the sensor’s type by calling the &lt;b&gt;&lt;i&gt;GetType&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;method on the &lt;b&gt;&lt;i&gt;ISensor&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;interface. Because we are in a light-aware application and are interested only in light sensors, we’ll check if the newly connected sensor device is a light sensor by checking its type. Remember that &lt;b&gt;&lt;i&gt;ISensorManager&lt;/i&gt;&lt;/b&gt;&lt;i&gt; &lt;/i&gt;receives notification of &lt;b&gt;any&lt;/b&gt; type of sensor devices that are connected to the PC. Assuming the sensor is a light sensor, you then call the same &lt;i&gt;AddSensor &lt;/i&gt;helper function that you used in the &lt;i&gt;Initialize &lt;/i&gt;method to set up event sinking for specific sensors. (Don’t get confused with the &lt;i&gt;ISensorManager &lt;/i&gt;event sinking.) The last thing you do is check whether the sensor is in a ready state. If it is, you read the sensor’s data and update the application’s UI.&lt;/p&gt;

&lt;p&gt;But we'll save reading sensor data for our next posts.&lt;/p&gt;

&lt;p&gt;You can find more &lt;a href="http://channel9.msdn.com/learn/courses/Windows7/"&gt;Windows 7 Sensor and Location&lt;/a&gt; training at the &lt;a href="http://channel9.msdn.com/learn/"&gt;Channel 9 Learning Center&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532781" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Sensor+and+Location/default.aspx">Sensor and Location</category><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Sample+Code/default.aspx">Sample Code</category><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Windows+API+Code+Pack/default.aspx">Windows API Code Pack</category></item><item><title>Syncing Windows Home Server, Zune and Windows Media Center!</title><link>http://windowsteamblog.com/blogs/windowshomeserver/archive/2010/02/01/syncing-windows-home-server-zune-and-windows-media-center.aspx</link><pubDate>Mon, 01 Feb 2010 21:22:17 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532743</guid><dc:creator>Joel Burt</dc:creator><slash:comments>24</slash:comments><description>&lt;p&gt;Windows Home Server was a large part of CES this year. I was pleasantly embraced by all you fellow Windows Home Server users and I joyfully shared the new features sets that Power Pack 3 empowered your home server with. The beautiful thing about our booth is the ability to walk everyone step by step, on how to take advantage of these new features. For those of you who were not at CES, I’d like to take the time to share with you those steps that I shared with CES attendees. One of the key scenarios that got a lot of interest at the show was how a&lt;b&gt; Zune music player &lt;/b&gt;can benefit from having a &lt;b&gt;Windows Home Server &lt;/b&gt;around as well. This post goes into more detail about why and how it all works together.&lt;/p&gt;  &lt;p&gt;As most of you probably know, Power Pack 3 is a free update for Windows Home Server that comes down from Windows Update. You can find install procedures &lt;a href="http://windowsteamblog.com/blogs/windowshomeserver/archive/2009/11/24/power-pack-3-instructions-for-users-running-pre-release-versions.aspx"&gt;within our blog&lt;/a&gt;, so please, if you have not updated your Windows Home Server yet, do so! For the rest of this post, I will assume you already have your Windows Media Center, Windows Home Server + Power Pack 3 and your Zune setup.&lt;/p&gt;  &lt;p&gt;Before we get going in the details, let’s start by talking about why I’m so jazzed about our Zune + Home Server scenario. The key benefit in my mind is in how the Zune player can be a great way of transporting all of your recorded TV from a Media Center PC on the go. But I’m getting ahead of myself…Let’s paint a picture for you:&lt;/p&gt;  &lt;p&gt;Before I left for CES earlier this month, I set several recordings of my favorite TV show to be recorded and then compressed to Zune format. I am not sure if you have ever used a Zune HD but I was extremely surprised with how long the battery lasts playing video. WOW! I consistently played 6 hours of content on the trip -no charging. My laptop wouldn’t have made it through my first connection flight let alone the whole trip. Yes, I had a connection because I bought my plane ticket a little late and had to arrive very early in the morning for setup. At least I was well prepared with my media!&lt;/p&gt;  &lt;p&gt;So here’s the details of how I managed to stay completely entertained during my flight(s):&lt;/p&gt;  &lt;p&gt;1. Open &lt;b&gt;Windows Media Center&lt;/b&gt; and verify that you have your TV shows set to be recorded. Next, , go back to the main Windows Media Center menu and scroll up to your Home Server tiles. Select &lt;b&gt;TV Archiving&lt;/b&gt; to begin.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_2C595790.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_330EF1C4.png" width="579" height="339" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2. TV Archiving will display &amp;lt;Series&amp;gt;, &amp;lt;Programs&amp;gt; and &amp;lt;Settings&amp;gt;. “Series” will display the series you have selected to be recorded. Series are multiple shows or multiple episodes. Programs display individual recordings and will only apply to that one episode/recording. It is up to you to decide which one you would like to use or use both. I’ll be selecting Series recordings because I’m excited to watch a few seasons of my shows on my next trip. In order to continue, you will need to select at least program or series.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_04B7FCC8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_73D358D7.png" width="579" height="339" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3. Now that I have one selected, I can scroll over to settings to decide what I would like to do with these recordings. I personally like to Archive all recordings automatically, but this is another optional feature for you. I also have 6TBs of space on my home server… not that I’m bragging. :) *cough*&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_77E0375A.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_1C08229B.png" width="579" height="339" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;4. “Create a compressed copy” is the feature we’re going to enable here. In order to take advantage of this feature, you have to move or archive your content to your Windows Home Server or you cannot select this. Since we’re working with a sweet Zune HD, set the format to &lt;b&gt;Zune&lt;/b&gt;. Finally, scroll down a little further and set the saved folder to “Home Server Videos folder” (or one of your choice). To make things easier for this step by step, please select “&lt;b&gt;Home Server Video folder&lt;/b&gt;” and click &lt;b&gt;Save&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;Now what we’ve done here is set Windows Media Center to record our shows and then make two copies of the show on our Windows Home Server; one in its original full quality format and the other in a smaller Zune format to preserve our space on our Zune. After all, we have lots of play time to take advantage of, let’s make the most of it.&lt;/p&gt;  &lt;p&gt;I do want to call out a little secret that you can take advantage of. Some TV shows – especially those that are transmitted in HD - use AC3 audio and because of that, your shows might not compress. In order to fix that, you’ll need to download and install an AC3 codec. I know it sounds complicated, but it’s not and most importantly - it’s free. I personally downloaded mine from &lt;a href="http://download.cnet.com/AC3Filter/3000-2170_4-190264.html?tag=mncol#userreview"&gt;http://download.cnet.com/AC3Filter/3000-2170_4-190264.html?tag=mncol#userreview&lt;/a&gt; but you can get yours from wherever you like. [Note that the below process is &lt;u&gt;not&lt;/u&gt; supported by Microsoft, and users should proceed with caution. This is presented merely as an &lt;i&gt;option&lt;/i&gt; for users.] &lt;/p&gt;  &lt;p&gt;Let’s take a quick sidebar to walk you through a quick step-by-step for installing the one codec that I’ve used on my own, &lt;b&gt;AC3Filter&lt;/b&gt;:&lt;/p&gt;  &lt;p&gt;1. After running the file you just downloaded click &lt;b&gt;Next&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_2015011E.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_3B4D5A1F.png" width="379" height="295" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;2. Leave all options default and click &lt;b&gt;Next&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_1D6ED61E.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_669481D7.png" width="379" height="295" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_01CCDAD9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_1D0533DA.png" width="379" height="295" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_3C47DAAD.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_578033AE.png" width="379" height="293" /&gt;&lt;/a&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;3. Then click &lt;b&gt;Install&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_39A1AFAD.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_5B8D1231.png" width="379" height="296" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_0497B12E.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_58E6E731.png" width="379" height="296" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;4. With the codec installed, now we can move on to setting up the Zune! Your Windows Media Center is well on its way to creating your giant TV show collection in Zune compatible form. Let’s tell the Zune to look at that folder and to sync with it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_3B086330.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_5640BC31.png" width="579" height="351" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Since you’ve already installed Power Pack 3, your Windows Home Server’s Video shared folder has already been added to your libraries. Zune software is setup! That was easy. You didn’t have to do anything!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_71791532.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_4C7B54B9.png" width="379" height="343" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_36B68DBE.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_74467C38.png" width="579" height="351" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Here I have “X-Men” ready and converted. It does take a while (maybe overnight) to convert. I already had this one completed, so you might want to be a little patient. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_0F12A245.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_73DCD9F4.png" width="379" height="515" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;5. Finally, I can sync this video to my Zune by right clicking and selecting, “&lt;b&gt;Sync with Zune HD&lt;/b&gt;”. Repeat this for all of the videos you would like to have on your Zune HD and enjoy your next flight to where ever you go!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_5A08A3C5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_7E9CC1FA.png" width="579" height="351" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As an added bonus, you can even watch this newly created WMV file through your Zune software. How cool is that?!&lt;/p&gt;  &lt;p&gt;JB&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532743" width="1" height="1"&gt;</description></item><item><title>Vote today for Windows Home Server!</title><link>http://windowsteamblog.com/blogs/windowshomeserver/archive/2010/02/01/vote-today-for-windows-home-server.aspx</link><pubDate>Mon, 01 Feb 2010 19:59:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532735</guid><dc:creator>Mark Pendergrast</dc:creator><slash:comments>14</slash:comments><description>&lt;p&gt;It&amp;rsquo;s the first day of February, and that means we&amp;rsquo;re entering the long awaited &amp;lsquo;&lt;b&gt;Award Season&amp;rsquo;&lt;/b&gt; in earnest. Grammy&amp;rsquo;s, Oscars, Golden Globes, etc. are taking up all the headlines. And it&amp;rsquo;s no different in the technology world either, with last Friday&amp;rsquo;s kick off of the 2009 &lt;b&gt;&lt;a href="http://www.engadget.com/2010/01/29/vote-for-the-2009-engadget-awards/"&gt;Engadget Award contest&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;So why should you care? Well, this year we&amp;rsquo;ve got a good reason! We&amp;rsquo;re thrilled to have one of very own Windows Home Server devices &amp;ndash; an &lt;a href="http://www.hp.com/united-states/campaigns/mediasmart-server/index.html?jumpid=ex_r602_go/mediasmartserver"&gt;HP MediaSmart Server&lt;/a&gt; - nominated for &amp;lsquo;&lt;b&gt;Home Entertainment Device of the Year&amp;rsquo;! &lt;/b&gt;So come show your support for Home Server by heading straight to the &lt;a href="http://www.engadget.com/2010/01/29/vote-for-the-2009-engadget-awards/"&gt;Engadget polls&lt;/a&gt;, which will be taking your votes through February 20&lt;sup&gt;th&lt;/sup&gt;. To paraphrase an old political adage, &lt;strong&gt;'Vote Early and Vote Often'&lt;/strong&gt; (OK, maybe the latter would be stretching ethics a bit&amp;hellip;But you get the point. ;-)&lt;/p&gt;
&lt;p&gt;And while we have you, be sure to check out the nice plug for the &lt;a href="http://h10010.www1.hp.com/wwpc/us/en/sm/WF05a/12169-3798502-3954626-3954626-3954626-4021709.html"&gt;HP Storage Works DataVault&lt;/a&gt; product (the SMB focused HP SKU) in Eric Rux&amp;rsquo;s most &lt;a href="http://svconline.com/connectedhome/windowshomeserver/coming_home_to_windows_server_pt25/"&gt;recent Home Server column&lt;/a&gt; up on Sound and Video Contractor magazine &amp;ndash; it was their 25&lt;sup&gt;th&lt;/sup&gt; edition of the column, so kudos to Eric!&lt;/p&gt;
&lt;p&gt;Happy Monday everyone!&lt;/p&gt;
&lt;p&gt;- Mark&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532735" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Team/default.aspx">Team</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Community/default.aspx">Community</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Data+Vault/default.aspx">Data Vault</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Hewlett-Packard/default.aspx">Hewlett-Packard</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/OEM/default.aspx">OEM</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/partner/default.aspx">partner</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/marketing/default.aspx">marketing</category></item><item><title>Jordan Brand taps into key Microsoft technologies to help celebrate its 25th Anniversary</title><link>http://windowsteamblog.com/blogs/windowsexperience/archive/2010/02/01/jordan-brand-taps-into-key-microsoft-technologies-to-help-celebrate-its-25th-anniversary.aspx</link><pubDate>Mon, 01 Feb 2010 19:32:55 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532732</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>19</slash:comments><description>&lt;p&gt;Jordan Brand will be celebrating its 25th year anniversary at this year’s &lt;a href="http://www.nba.com/allstar2010/"&gt;NBA All-Star Weekend&lt;/a&gt;. During this celebration, one way that Jordan Brand would like to engage with consumers is through rich experiences enabled by new and emergent technology. The Jordan Brand has partnered with Microsoft and Wirestone to help them do so with Silverlight, Windows Azure, Microsoft Surface and Windows 7.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/Circle_5F00_Jumpman_5F00_5331F4A8.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Circle_Jumpman" border="0" alt="Circle_Jumpman" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/Circle_5F00_Jumpman_5F00_thumb_5F00_609807AE.jpg" width="125" height="126" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The first exciting experience Jordan Brand has unveiled is a social mosaic, called &lt;a href="http://www.jumpman23mosaic.com/"&gt;Mosaic 23/25&lt;/a&gt;. Using &lt;b&gt;Silverlight 3&lt;/b&gt; and &lt;b&gt;Deep Zoom&lt;/b&gt;, Jordan Brand enthusiasts can upload photos of their Air Jordan shoes and other Jordan Brand apparel. The Silverlight Deep Zoom technology allows folks to pan and zoom deep into the mosaic of photos to see their photo and photos of others who are contributing to the Jordan Brand community from around the globe. For more information on the use of Silverlight for the Jordan Brand photo mosaic, &lt;a href="http://team.silverlight.net/announcement/jordan-brand-leverages-silverlight-to-invigorate-and-find-enthusiasts/"&gt;click here to read this blog post on the Silverlight Team Blog&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;So how does the &lt;b&gt;Windows Azure&lt;/b&gt; tie into this? Well, Social Mosaic was built on the Windows Azure platform! For some details on how the mosaic was built using Windows Azure, &lt;a href="http://blogs.msdn.com/windowsazure/archive/2010/01/26/jordan-brand-social-mosaic-goes-live-with-windows-azure-cloud-services.aspx"&gt;read this blog post on the Windows Azure Team Blog&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;During the NBA All-Star Weekend taking place in Dallas, the Jordan Brand is building out a space near the American Airlines arena called the &lt;a href="http://www.jumpman23mosaic.com/Home/About"&gt;23/25 Space&lt;/a&gt; which you can visit Feb. 11th – 14th. In this space there will be interactive kiosks with large multitouch flat-screens that will be running a &lt;b&gt;Windows 7 &lt;/b&gt;multitouch experience which will allow enthusiasts to interact with the history of the Jordan Brand over 25 years. Also at the event will be &lt;b&gt;Microsoft Surface&lt;/b&gt; units, and these will enable multiple users to collaboratively and simultaneously interact with the Jordan Brand and each other. If you’re going to be in Dallas for the NBA All-Star games, you definitely need to visit the 23/25 Space!&lt;/p&gt;  &lt;p&gt;I’ll be talking more about a lot of this technology once we get to the NBA All-Star Weekend. &lt;/p&gt;  &lt;p&gt;In the meantime, I need to go out and pick myself up a pair of Air Jordan’s and upload my photo to the social mosaic!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532732" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Deep+Zoom/default.aspx">Deep Zoom</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows/default.aspx">Windows</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Multi-Touch/default.aspx">Multi-Touch</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Silverlight+3/default.aspx">Silverlight 3</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+Touch/default.aspx">Windows Touch</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Multitouch/default.aspx">Multitouch</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Surface/default.aspx">Surface</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/NBA+All-Star+Weekend/default.aspx">NBA All-Star Weekend</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Nike/default.aspx">Nike</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/NBA/default.aspx">NBA</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Jordan+Brand/default.aspx">Jordan Brand</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Microsoft+Surface/default.aspx">Microsoft Surface</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Social+Mosaic/default.aspx">Social Mosaic</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Mosaic+23_2F00_25/default.aspx">Mosaic 23/25</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Technology/default.aspx">Technology</category></item><item><title>Important Reminder Regarding Expiration of the Windows 7 RC</title><link>http://windowsteamblog.com/blogs/windows7/archive/2010/02/01/important-reminder-regarding-expiration-of-the-windows-7-rc.aspx</link><pubDate>Mon, 01 Feb 2010 17:04:20 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532723</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>144</slash:comments><description>&lt;p&gt;On February 15th, people still running the Windows 7 Release Candidate (RC) will receive a notification reminding them that starting March 1st, 2010, their PC will begin experiencing bi-hourly shutdowns. These shutdowns will continue through June 1st, 2010. &lt;/p&gt;  &lt;p&gt;On June 1st, 2010, a non-genuine experience is triggered where your wallpaper is removed and “This copy of Windows is not genuine” will be displayed in the lower right corner above the taskbar. This means your PC will no longer be able to obtain optional updates or downloads that require genuine Windows validation.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;To avoid any data loss, I suggest making plans to move to a released version of Windows 7 before the automatic shutdowns start. During these shutdowns, your work will not be saved. &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Remember, pre-release versions of Windows are unsupported. For more information on the expiration of the Windows 7 RC, see &lt;a href="http://support.microsoft.com/kb/971767"&gt;this KB article&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;To move to a released version of Windows 7, you’ll need to do a custom (clean) install to replace the installation of the Windows 7 RC. I suggest &lt;a href="http://windows.microsoft.com/en-us/windows/help/install-reinstall-uninstall"&gt;install, reinstall, uninstall Windows&lt;/a&gt; page on Windows.com which covers all kinds of installation scenarios. &lt;/p&gt;  &lt;p&gt;Do you need more time to test your application and hardware compatibility in Windows 7? If so, the &lt;a href="http://technet.microsoft.com/en-us/evalcenter/cc442495.aspx?ITPID=wtcfeed"&gt;Windows 7 Enterprise 90-day Trial&lt;/a&gt; provides a great opportunity for IT Pros to finish critical testing with a full version of Windows 7 Enterprise.&lt;/p&gt;  &lt;p&gt;If you’re an IT Pro ready to move to Windows 7, I suggest visiting &lt;a href="http://www.microsoft.com/springboard"&gt;the Springboard Series on TechNet&lt;/a&gt; which provides the latest tools, whitepapers, walkthroughs and tips and tricks to help you with your Windows 7 Deployment. On the Springboard Series on TechNet, you’ll find resources such as &lt;a href="http://technet.microsoft.com/en-us/library/ee956903(WS.10).aspx?ITPID=wtcfeed"&gt;Deploying Windows 7 from A to Z&lt;/a&gt; and &lt;a href="http://technet.microsoft.com/en-us/library/dd939987(WS.10).aspx"&gt;Installing Windows 7 on an Existing XP PC&lt;/a&gt;. You can &lt;a href="http://social.technet.microsoft.com/Forums/en/category/w7itpro"&gt;visit the Window 7 TechNet Forum&lt;/a&gt; for more information as well!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532723" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Windows.com/default.aspx">Windows.com</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Springboard+Series/default.aspx">Springboard Series</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Windows+7+Enterprise/default.aspx">Windows 7 Enterprise</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Windows+7+RC/default.aspx">Windows 7 RC</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Expiration/default.aspx">Expiration</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Windows+7+RTM/default.aspx">Windows 7 RTM</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/IT+Professionals/default.aspx">IT Professionals</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Installation/default.aspx">Installation</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Resources/default.aspx">Resources</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Genuine+Windows/default.aspx">Genuine Windows</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/Reminder/default.aspx">Reminder</category><category domain="http://windowsteamblog.com/blogs/windows7/archive/tags/IT+Pro/default.aspx">IT Pro</category></item><item><title>I Can Feel You – Using the Windows 7 Sensor Platform</title><link>http://windowsteamblog.com/blogs/developers/archive/2010/01/28/i-can-feel-you-using-the-windows-7-sensor-platform.aspx</link><pubDate>Fri, 29 Jan 2010 05:25:55 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532605</guid><dc:creator>Yochay Kiriaty</dc:creator><slash:comments>20</slash:comments><description>&lt;p&gt;Well, we are back. After a very long suspension, it is once again time to write about the cool new APIs that Windows 7 provides you for differentiating your application with compelling user experiences. I still owe you two more posts on Windows 7 Taskbar to complete the series, but the Sensor platform is way too cool to leave behind. &lt;/p&gt;  &lt;p&gt;Before we dive into the API, I should explain the rational that went into the thinking process of the product team while building the Windows 7 Sensor and Location Platform. (I’ll talk about location in future posts.) &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Why Sensors?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Lately we are witnessing the increasing role that sensors play in some very exciting scenarios. For example a mobile device that automatically changes its screen orientation from portrait to landscape based on its relative position to the earth (center of gravitation pull), or computers that automatically control their screen brightness when the lighting conditions change to facilitate a better reading experience. However, I think the best example is the automatic time zone change of a mobile device - when you travel, one of the first things you do once your plane lands is turn on your mobile device, which magically shows you the correct time, even if you crossed a few time zones.&lt;/p&gt;  &lt;p&gt;Besides the obvious functional reasons, another good reason to have a “platform” is that it unifies the API and lowers the API and entry costs for developers. In the past, using sensors tended to be a very vertical solution. There was no specific definition of what a sensor was, what its data fields were, or how to access those fields. Lack of standardization made programming for sensors an arduous task. When using a sensor, like a GPS location sensor, you had to choose hardware from a wide range of vendors, each of whom had a specific set of drivers and APIs you had to learn about in order to work with that piece of hardware. If you wanted to change your hardware or vendor, you often had to learn new APIs to access similar information.&lt;/p&gt;  &lt;p&gt;In Windows 7, we set out to solve this problem from the ground up (as we usually do). We addressed these problems by providing out-of-the-box support for sensors. The Windows 7 Sensor and Location platform provides a set of standard interfaces that free developers from the need to become familiar with specific vendor devices and, instead, focus on their application logic, treating sensors as just another “standard” input device. By providing these standard interfaces, the Windows 7 Sensor and Location platform offers a win-win-win situation, wherein it’s easier for developers to discover, access, and receive information from sensors, thus creating room for more developers to optimize their applications to environmental changes. In return, this creates a greater demand for sensor hardware and, if you are a hardware provider, you have a standardized way to target one set of APIs to integrate with Windows. And most importantly, end users get to experience applications that take into account the environments they are working in.&lt;/p&gt;  &lt;p&gt;The location piece of the puzzle adds an abstraction layer on top of the Sensor platform with the sole purpose of providing an easy way to retrieve data about a geographic location while protecting user privacy.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Sensors Under the Hood&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;To better understand the Sensor Platform API, I want to take you through a quick overview of the platform architecture, explaining the role of the main components in the platform. The following figure illustrates the main components in the system. Note that this figure is doesn’t outline the entire platform, as it misses the location piece, but it will most certainly do for now.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/developers/sensor_5F00_Arch1_5F00_38AF7F2B.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="sensor_Arch1" border="0" alt="sensor_Arch1" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/developers/sensor_5F00_Arch1_5F00_thumb_5F00_1EDB48FC.png" width="426" height="399" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The first component in the platform is the actual sensor device – shown as number 1. Usually, this is a real physical device that measures physical phenomena such as the amount of light, temperature, humidity, relative gravity force, and so on. However, a sensor can be a logical device (also known as a &lt;i&gt;virtual sensor&lt;/i&gt;). A virtual sensor is a software-based sensor that can mimic sensor-type functionality by “impersonating” a sensor and providing data to the platform. Virtual sensors can be used to simulate real sensors to help the development process, as you’ll soon see. &lt;/p&gt;  &lt;p&gt;Each sensor requires a driver that facilitates the connection between Windows 7 and the hardware device. This integration is achieved via a user mode device (UMD) sensor driver – shown as number 2. &lt;/p&gt;  &lt;p&gt;To make it easier to write a device driver that exposes a sensor to Windows 7, the platform provides a sensor class extension – shown number 3. This is essentially a driver utility library that implements the common code required for sensor drivers. We are not going to talk about hardware or drivers in this post, however we have two excellent videos (&lt;a href="http://channel9.msdn.com/posts/yochay/Windows-7-Sensor-and-Location-Developing-Drivers-Part-1/"&gt;Windows 7 Sensor and Location - Developing Drivers Part 1&lt;/a&gt;&lt;strong&gt;, &lt;/strong&gt;and &lt;a href="http://channel9.msdn.com/posts/yochay/Windows-7-Sensor-and-Location-Developing-Drivers-Part-2/"&gt;Part 2&lt;/a&gt;) with Gavin Gear describing in great detailed how to write a sensor driver.&lt;/p&gt;  &lt;p&gt;After a sensor is installed and integrated, it becomes discoverable to the application via the sensor API – shown as number 4. &lt;/p&gt;  &lt;p&gt;One of the main advantages that the Windows 7 Sensor and Location offers is that it enables multiple (different) applications to receive data from the same sensor at the same time – show as numbers 5 With previous Windows versions, devices usually used virtual COM ports to communicate with the system. One of the problems with virtual COM ports is that they don’t scale and can’t support multiple consumer applications at the same time; therefore, having a platform that supports multi-concurrency is a great advantage.&lt;/p&gt;  &lt;p&gt;The last component of platform is the Location and Other Sensors dialog, which is part of the Control Panel. This dialog – show as number 6 enables users to control permission settings and other parameters the sensor provides. The following image is a screen shot of my Sensor and Location Control Panel. As you can see, I currently have two sensors installed – the Sensor Development Kit and the Virtual Light Sensor, and both are enabled.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/developers/SensorAndLocationControlPannel_5F00_050712CD.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SensorAndLocationControlPannel" border="0" alt="SensorAndLocationControlPannel" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/developers/SensorAndLocationControlPannel_5F00_thumb_5F00_71E5E620.png" width="568" height="314" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The last topic to cover before we jump into the APIs is to explain how sensors are represented in the platform. &lt;/p&gt;  &lt;p&gt;As we've seen above, a sensor can be either a physical device or a logical (virtual) sensor. Regardless of the sensor’s type, all sensors share similar properties, as explained in the following list:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Category&lt;/b&gt; -- A collection of sensors that are somehow related. For example &lt;i&gt;weather station&lt;/i&gt; might include temperature, barometric pressure, wind speed, and other environmental sensors &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Type&lt;/b&gt; - The definition of the physical phenomena that is being measured, like wind speed or amount of light &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Properties&lt;/b&gt; - The meta-data information that a sensor can contain, for example, the sensor-friendly name. There are read-only and read-write properties. The sensor-friendly name and its serial number are examples of read-only properties, while the requested data report interval is an example of a read-write property. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Data Types&lt;/b&gt; - The actual data types a sensor reports for the defined type that it measures. For example, light is measured in LUX units, which are reported in a float variable. Location information includes latitude and longitude, and both are float variables. However as you will soon learn, location might also include civic address as a valid location, which is a set of strings. Data types change from sensor to sensor and it is assumed that you know what data types your sensor will return in its data report. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Events&lt;/b&gt; - The main way the Sensor and Location platform communicates with your application, informing it when there is new data to consume or when the sensor state changes &lt;/li&gt;    &lt;li&gt;&lt;b&gt;State&lt;/b&gt; - The definitions of the possible operational states for sensors, answering questions such as: “Is the sensor ready for use?” or “Has the user enabled the sensor?” &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Armed with the above information, you are ready to start working with sensors and dive into the API. But to do this, you will have to read the next blog about the sensor and location platform.&lt;/p&gt;  &lt;p&gt;Additional blog posts on this topics:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://windowsteamblog.com/blogs/developers/archive/2010/02/01/using-sensors-in-your-application-native-implementation-part-1.aspx" target="_blank"&gt;Using Sensors in Your Application – Native Implementation, Part 1&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://windowsteamblog.com/blogs/developers/archive/2010/02/03/using-sensors-in-you-application-managed-part-1.aspx" target="_blank"&gt;Using Sensors in You Application – Managed Part 1&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532605" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Sensor+and+Location/default.aspx">Sensor and Location</category><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Windows+7+Training+Kit/default.aspx">Windows 7 Training Kit</category><category domain="http://windowsteamblog.com/blogs/developers/archive/tags/Windows+API+Code+Pack/default.aspx">Windows API Code Pack</category></item><item><title>Energy Companies Powering Up with Windows 7</title><link>http://windowsteamblog.com/blogs/business/archive/2010/01/28/energy-companies-powering-up-with-windows-7.aspx</link><pubDate>Thu, 28 Jan 2010 19:27:14 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532578</guid><dc:creator>Stella Chernyak</dc:creator><slash:comments>14</slash:comments><description>&lt;p&gt;Last week Steve Ballmer &lt;a href="http://www.microsoft.com/presspass/exec/steve/2010/01-21GEF.mspx"&gt;spoke&lt;/a&gt; at the Global Energy Forum in Houston, Texas and discussed the ways information technology is used in the oil and gas sector. Specifically, Steve touched on how the industry is impacting the development of new technologies and how existing technologies are aiding the industry’s innovation. Beyond the Global Energy Forum, the world is abuzz with conversations about how energy, oil and gas companies can create solutions that will reinvigorate the state of the industry. As a recent &lt;a href="http://www.microsoft.com/presspass/features/2010/jan10/01-21GlobalEnergy.mspx"&gt;Microsoft News Center release&lt;/a&gt; noted, “Wild swings in supply and demand, volatile prices and shifting worldwide energy policies have made exploration and production more complex than ever.” &lt;/p&gt;  &lt;p&gt;We’re pleased that Windows 7 is able to reduce headaches for IT Pros in this industry and enable them to improve productivity, enjoy a faster and more reliable management experience, and reduce costs. Check out customers below for more information: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000006421"&gt;&lt;b&gt;Moscow Integrated Power Company&lt;/b&gt;&lt;/a&gt;&lt;b&gt;: &lt;i&gt;Increased Employee Productivity&lt;/i&gt;&lt;/b&gt; - “Windows 7 and Internet Explorer deployment brings a new level of uninterrupted user support; now we are able to react to any software faults instantly, increasing our service sustainability,” explains Alexander Lebedev, CIO at Moscow Integrated Power Company. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000006142"&gt;E.ON&lt;/a&gt;:&lt;/b&gt; Heinz Kohler, Vice President of Infrastructure for E.ON, says, “With E.ON Standard Desktop Version 3 based on Windows 7 we will give all E.ON market units working in different environments and with widely varying requirements the technology and tools that best support their goal to be amongst the leaders in the energy market.” &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000005083"&gt;&lt;b&gt;Statoil&lt;/b&gt;&lt;/a&gt;&lt;b&gt;: &lt;i&gt;Improved Access from Branch Locations - &lt;/i&gt;&lt;/b&gt;by using BranchCache, workers based in remote Statoil branches will improve their productivity through faster access to resources. With BranchCache, employees at remote offices can access files more quickly than before. “In some of our locations where sufficient bandwidth is not easily available, being able to access a file locally using BranchCache will save our workers time,” says Petter Wersland, Leading Advisor for IT Infrastructure at Statoil. “Employees gain fuller, quicker access to a wide range of internal resources, so they can more fully participate in collaborative initiatives with colleagues worldwide.” &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=4000006151"&gt;&lt;b&gt;Public Power Corporation (PPC)&lt;/b&gt;&lt;/a&gt;: &lt;b&gt;&lt;i&gt;Reduced IT Costs - &lt;/i&gt;&lt;/b&gt;“With Windows 7, we will gain better, centralized control over all our computers so that we can better serve users while maintaining an up-to-date and secure environment,” Head of Office Systems in the PPC Information Technology department, Ioannis Symeonidis says. “We expect to cut our desktop deployment time, and costs, by one-third and thus increase by 50 percent the number of PCs deployed each day.”&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For more information on Windows 7 for large, medium or small businesses, check out our &lt;a href="http://www.microsoft.com/windows/works-the-way-you-want.aspx"&gt;business site&lt;/a&gt;, or read more enterprise company &lt;a href="http://www.microsoft.com/windows/enterprise/customer-stories.aspx"&gt;case studies&lt;/a&gt; or SMB &lt;a href="http://www.microsoft.com/windows/business/case-studies.aspx"&gt;case studies&lt;/a&gt;. We also have a resource dedicated to IT professionals: the &lt;a href="http://technet.microsoft.com/en-us/windows/dd361745.aspx?ITPID=mscomsc"&gt;Springboard Series on TechNet&lt;/a&gt; offers information, tools and guidance for migrating to Windows 7.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532578" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/BranchCache/default.aspx">BranchCache</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Cost/default.aspx">Cost</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Statoil/default.aspx">Statoil</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/IT+Professionals/default.aspx">IT Professionals</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/IT+Pros/default.aspx">IT Pros</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/SMB/default.aspx">SMB</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Cost+Savings/default.aspx">Cost Savings</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Public+Power+Corporation/default.aspx">Public Power Corporation</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Steve+Ballmer/default.aspx">Steve Ballmer</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Moscow+Integrated+Power+Company/default.aspx">Moscow Integrated Power Company</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Business/default.aspx">Business</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Energy/default.aspx">Energy</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Small+Business/default.aspx">Small Business</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Medium+Business/default.aspx">Medium Business</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/Global+Energy+Forum/default.aspx">Global Energy Forum</category><category domain="http://windowsteamblog.com/blogs/business/archive/tags/E.ON/default.aspx">E.ON</category></item><item><title>Playlist 7 Highlights Free Music from Top Emerging Artists Sponsored by Windows 7</title><link>http://windowsteamblog.com/blogs/windowsexperience/archive/2010/01/28/playlist-7-highlights-free-music-from-top-emerging-artists-sponsored-by-windows-7.aspx</link><pubDate>Thu, 28 Jan 2010 18:22:01 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532574</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>6</slash:comments><description>&lt;p&gt;Early last month, Windows &lt;a href="http://www.businesswire.com/portal/site/home/permalink/?ndmViewId=news_view&amp;amp;newsId=20091208005146&amp;amp;newsLang=en"&gt;announced a new music discovery program&lt;/a&gt; in partnership with &lt;a href="http://reverbnation.com/"&gt;ReverbNation&lt;/a&gt; called &lt;b&gt;Playlist 7&lt;/b&gt;. This program is exclusively for members of our Facebook, MySpace and Twitter communities. &lt;/p&gt;  &lt;p&gt;If you’re already a &lt;a href="http://www.facebook.com/windows"&gt;Fan&lt;/a&gt; / &lt;a href="http://www.myspace.com/windows"&gt;Friend&lt;/a&gt; / &lt;a href="http://www.twitter.com/mswindows"&gt;Follower&lt;/a&gt; of Windows on Facebook, MySpace or Twitter then you already have access to 7 songs of your choice from 600 participating musicians every week when you visit the &lt;a href="http://www.reverbnation.com/playlist7"&gt;Playlist 7 website&lt;/a&gt;. If you’re not already a &lt;a href="http://www.facebook.com/windows"&gt;Fan&lt;/a&gt; / &lt;a href="http://www.myspace.com/windows"&gt;Friend&lt;/a&gt; / &lt;a href="http://www.twitter.com/mswindows"&gt;Follower&lt;/a&gt; of Windows, then you can become one instantly on the network of your choice, direct from the Playlist 7 website.&lt;/p&gt;  &lt;p&gt;Once you’ve “connected” to Playlist 7, you will be able to check out this week’s Current Contenders to sample and can download your choice of any 7 songs. Current Contenders change every week (until the program ends of course), so you will want to keep checking Playlist 7 each week for new downloads. The 7 Featured Artist songs are the most downloaded songs from the prior week – they are also free to download for everyone who is connected. &lt;/p&gt;  &lt;p&gt;In the first month, we’ve seen a fantastic early response for Playlist 7. Since November 30th, 20,509 &lt;a href="http://www.facebook.com/windows"&gt;Fans&lt;/a&gt;, &lt;a href="http://www.myspace.com/windows"&gt;Friends&lt;/a&gt;, and &lt;a href="http://www.twitter.com/mswindows"&gt;Followers&lt;/a&gt; of Windows have connected to the Playlist 7 and have downloaded 203,744 songs (which are absolutely free) in just 6 weeks of the program! And we’ve got 5 more weeks to go! Keep checking Playlist 7 each week for a new set of Current Contenders and songs from Featured Artists!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532574" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Music/default.aspx">Music</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Twitter/default.aspx">Twitter</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Facebook/default.aspx">Facebook</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Social+Media/default.aspx">Social Media</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/MySpace/default.aspx">MySpace</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Sponsor/default.aspx">Sponsor</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Playlist+7/default.aspx">Playlist 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/ReverbNation/default.aspx">ReverbNation</category></item><item><title>Show us Your Tech – Juan Goni</title><link>http://windowsteamblog.com/blogs/windowshomeserver/archive/2010/01/26/show-us-your-tech-juan-goni.aspx</link><pubDate>Tue, 26 Jan 2010 23:11:39 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532454</guid><dc:creator>Nicole Berett</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Are you interested in improving your home set-up but need some new ideas? If so, take a look Juan Goni’s master set-up in this edition of Show us Your Tech. &lt;/p&gt;  &lt;p&gt;As a reminder, the Windows Home Server team has partnered with Microsoft’s &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt; , a video blog site that reaches of 5 million technology enthusiasts to revive a series called “Show Us Your Tech”. Similar to &lt;a href="http://www.mtv.com/ontv/dyn/cribs/series.jhtml"&gt;MTV Cribs&lt;/a&gt;, Show us Your Tech takes a look inside people’s homes. However, instead of looking in their fridge, it showcases some pretty elaborate technology set-ups that feature Windows Home Server.&lt;/p&gt;  &lt;p&gt;In this edition, you will see Juan Goni’s set-up. Juan is a senior Program Manager at Microsoft in the Exchange Online Deployment group who has used Windows Home Server to connect his digital life and use it throughout his house. Juan has some pretty cool features in his set-up including the ability to control his home’s lighting with his PC, and also uses Media Center and extenders throughout his house to distribute video and music.&lt;/p&gt;  &lt;p&gt;Check it out and get some new ideas for your own home!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/LarryLarsen/Show-Us-Your-Tech-Juan-Goni-Edition/"&gt;http://channel9.msdn.com/posts/LarryLarsen/Show-Us-Your-Tech-Juan-Goni-Edition/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;p&gt;-Nicole &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532454" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Show+Us+Your+Tech/default.aspx">Show Us Your Tech</category></item><item><title>Going out and buying a Windows 7 PC</title><link>http://windowsteamblog.com/blogs/windowsexperience/archive/2010/01/25/going-out-and-buying-a-windows-7-pc.aspx</link><pubDate>Mon, 25 Jan 2010 08:36:46 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532289</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>42</slash:comments><description>&lt;p&gt;Last weekend, I decided to go out and buy a new PC for at home. This PC would be used only as a “work PC” for when I do work at home. Sure, I could use my laptop but I’m sort of still a desktop guy. A lot of PC shopping happens online. Folks like Dell, HP, and many others have fantastic websites designed to give the consumer everything they need to make a purchasing decision for a PC. But a lot of PC shopping happens physically in stores too. I decided instead of ordering online, I would visit a local Best Buy and make my purchase there (of course if I found a PC I liked!). &lt;/p&gt;  &lt;p&gt;I set out to find a PC based on the following criteria: doesn’t have to be a super powerful PC, has to be relatively low priced (around $500), had to have a small form factor (a desktop PC not a laptop), and had to carry the Windows 7 logo. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/ENw7_5F00_rgb_5F00_L_5F00_005F5B2B.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EN-w7_rgb_L" border="0" alt="EN-w7_rgb_L" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/ENw7_5F00_rgb_5F00_L_5F00_thumb_5F00_4A0E331B.png" width="100" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I wanted to primarily use this PC for blogging, email, and a bunch of scenario, hardware and software testing that I would end up blogging about. This PC wouldn’t be doing anything intensive like HD video editing. &lt;/p&gt;  &lt;p&gt;I wanted in to Best Buy and went straight over to the Computers. I asked one of the Best Buy folks where I could find the small form-factor desktop PCs. He pointed me in the right direction. They had a row of tables with desktop PCs on them and section specifically for small-form factor desktop PCs. For most of their PCs, Best Buy puts out a label that has its price as well as hardware configuring usually listing a PCs processor, how much memory it has, how much storage (hard drive) it has, and sometimes graphics. I went an analyzed a few of these labels and weighed in spec and price for a few PCs. In the end – I found the perfect PC that met my needs exactly: the &lt;b&gt;HP Pavilion (s5310y) Slimline PC&lt;/b&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0067_5F00_291AC074.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0067" border="0" alt="DSC_0067" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0067_5F00_thumb_5F00_777F2D11.jpg" width="200" height="132" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0069_5F00_01D05172.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0069" border="0" alt="DSC_0069" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0069_5F00_thumb_5F00_1A7F78B5.jpg" width="200" height="132" /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;The HP Pavilion Slimline PC came with the following specs: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Windows 7 Home Premium 64-bit&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Processor:&lt;/b&gt; AMD Athlon II X2 250 (3Ghz, 2MB L2, 400Mhz System Bus &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Memory:&lt;/b&gt; 4GB DDR3 Memory &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Graphics:&lt;/b&gt; NVIDIA GeForce 6150 SE Integrated Graphics* &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Network:&lt;/b&gt; NVIDIA nForce 10/100 Mbps &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Optical:&lt;/b&gt; SuperMulti DVD burner with LightScribe Technology** &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Storage:&lt;/b&gt; 600GB Hard drive &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;i&gt;*Up to 256MB of system memory may be allocated to support graphics. This may result in Windows 7 reporting that you have 4GB of memory but 3.75GB “usable”.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;**What exactly is LightScribe? &lt;/i&gt;&lt;a href="http://lightscribe.com/gettingstarted/index.aspx?id=95"&gt;&lt;i&gt;Here’s a good explanation&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0072_5F00_44EBA9D2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0072" border="0" alt="DSC_0072" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0072_5F00_thumb_5F00_5034BE0F.jpg" width="125" height="189" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0071_5F00_15D9482E.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0071" border="0" alt="DSC_0071" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0071_5F00_thumb_5F00_1E79A0BA.jpg" width="125" height="189" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The PC is small, and slim which it gets its name from. It’s about 4 inches wide (thick), 12 inches tall (when standing up), and 15 inches deep (from front to back). It’s exactly what I needed to sit on a small shelf next to my desk next to my Windows Home Server. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0074_5F00_4B225A93.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0074" border="0" alt="DSC_0074" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0074_5F00_thumb_5F00_60BC9330.jpg" width="200" height="132" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Total cost for the PC was $509.99. Not bad. Just about what had been expecting to spend.&lt;/p&gt;  &lt;p&gt;For work, I needed to join this PC to the corporate Microsoft domain. This allows me to enjoy access to our internal Microsoft stuff. However, the PC ships with Windows 7 Home Premium which does not allow for domain join. I ended up picking up a copy of &lt;b&gt;Windows Anytime Upgrade&lt;/b&gt; to move from Windows 7 Home Premium to Windows 7 Professional. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0076_5F00_5FE42D46.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0076" border="0" alt="DSC_0076" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/DSC_5F00_0076_5F00_thumb_5F00_751232EE.jpg" width="200" height="132" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Moving from Windows 7 Home Premium to Windows 7 Professional was extremely easy. Essentially the Windows Anytime Upgrade package provides you with a product key. This product key enables the upgrade to happen. On the PC I purchased with Windows 7 Home Premium, I went to the Start Menu and All Programs and chose Windows Anytime Upgrade. There I entered the key I had and the upgrade commenced. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/1_5F00_3AB6BD0D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="1" border="0" alt="1" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/1_5F00_thumb_5F00_0B84D176.jpg" width="240" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The upgrade was pretty quick (took 2 reboots). I am now running Windows 7 Professional. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/2_5F00_4AE28506.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2" border="0" alt="2" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/2_5F00_thumb_5F00_1EC58815.jpg" width="240" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The rest of the evening I spent time downloading and installing &lt;a href="http://us2.office2010beta.microsoft.com/default.aspx?culture=en-US"&gt;the Microsoft Office 2010 Beta&lt;/a&gt; and setting the PC up just the way I want it (Windows Live Essentials, Zune, etc.). I joined it to the domain; Outlook 2010 picked up our corporate Exchange 2010 server and downloaded all my email. I now have a nice little work PC here in my home office!&lt;/p&gt;  &lt;p&gt;From going to the store, buying the PC, and upgrading it to Windows 7 Professional, took less than 2 hours. I had a great experience – hope when you go out shopping for a PC it’s a great experience too!    &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532289" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/HP/default.aspx">HP</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/64-bit/default.aspx">64-bit</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/x64/default.aspx">x64</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Best+Buy/default.aspx">Best Buy</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Slimline+PC/default.aspx">Slimline PC</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+Anytime+Upgrade/default.aspx">Windows Anytime Upgrade</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7+Professional/default.aspx">Windows 7 Professional</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Retail/default.aspx">Retail</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7+Home+Premium/default.aspx">Windows 7 Home Premium</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/WAU/default.aspx">WAU</category></item><item><title>Remote Access Challenges</title><link>http://windowsteamblog.com/blogs/windowshomeserver/archive/2010/01/22/remote-access-challenges.aspx</link><pubDate>Fri, 22 Jan 2010 18:40:13 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532192</guid><dc:creator>Nicole Berett</dc:creator><slash:comments>32</slash:comments><description>&lt;p&gt;&lt;em&gt;This blog post was written by MVP, Alexander Kent.&amp;#160; Alexander is the founder and principal of Kentdome LLC, a Los Angeles, California based company specializing in enterprise security, custom software engineering, network infrastructure and co-location services. &lt;/em&gt;&lt;em&gt;In recent years Alexander has taken a particular interest in the Windows Home Server platform. As a result, Kentdome LLC has produced a number of WHS solutions under his architectural guidance. In addition Alexander has been a very active technology evangelist, sharing his excitement for the WHS platform.&lt;/em&gt; &lt;em&gt;Today he will share some information about Remote Access challenges.&amp;#160; Enjoy!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Windows Home Server is generally considered a great file server and backup solution for home users. A lesser known fact is that it also provides superb Remote Access capabilities. The “Remote Access” feature allows you to control your computers and access files on your Windows Home Server over any internet connection, from anywhere in the world. &lt;/p&gt;  &lt;p&gt;Have you ever traveled somewhere and realized that important files were left at home? Now, with the help of the Windows Home Server Remote Access technology, you can securely reach your home network and interact with it from any machine on the Internet.&lt;/p&gt;  &lt;p&gt;Enabling the Remote Access feature prompts the Windows Home Server to try and automatically configure the network to allow inbound connections. Seven times out of ten times this works perfectly, but given the sheer number of different devices, and the ever increasing complexity of home networks, the process of configuring your network for Remote Access may have to be more hands on. &lt;/p&gt;  &lt;p&gt;This article explains the most frequent Remote Access challenges and then walks you through the steps of making your Windows Home Server accessible across the Internet. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;#1) UPnP is not enabled or supported by your router      &lt;br /&gt;&lt;/b&gt;The Windows Home Server Remote Access Configuration Wizard attempts to auto configure your router over universal plug and play (UPnP) standards. UPnP represents a set of networking protocols that allow devices to connect, interoperate, and be configured. In order for this to work, yo&lt;a name="_GoBack"&gt;&lt;/a&gt;ur router must have the UPnP feature enabled, and must support the correct UPnP version. &lt;/p&gt;  &lt;p&gt;If your router does not support the UPnP protocol, or if your router has UPnP disabled, then the Windows Home Server Remote Access Wizard will report a failure when attempting to configure the router through the Remote Access settings interface. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_5B181F89.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_18C50746.png" width="519" height="400" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 1.0: Router configuration failed&lt;/p&gt;  &lt;p&gt;In many cases, downloading and installing a firmware update on the router adds UPnP support or fixes UPnP issues. If you have not done any firmware updates, visit your router manufacturer's website to see if any updates are available. We recommend installing the firmware update, enabling UPnP on your router (if applicable), and try running the Windows Home Server Remote Access Configuration Wizard again. &lt;/p&gt;  &lt;p&gt;In some cases, Windows Home Server will report an error with the automatic router configuration, but the Remote Access functionality proceeds to work without a problem. This occurs in cases where the UPnP protocol may not be implemented properly on the router and Windows Home Server cannot confirm whether or not configuration was successful.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_30100BB7.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_0DD80031.png" width="506" height="390" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 2.0: Router configuration failed but remote Web site is available from the Internet. (Okay to proceed!)&lt;/p&gt;  &lt;p&gt;If the above information does not solve your problem or UPnP is not available on your router, then you must manually configure port forwarding from your router to your Windows Home Server. To learn more, please visit the &lt;a href="http://www.homeserverland.com/wiki/w/whs/broadband-router-configuration.aspx"&gt;Broadband Router Configuration wiki&lt;/a&gt; produced by the Home Server Land team in conjunction with the Windows Home Server Remote Access feature team at Microsoft. &lt;/p&gt; &lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8254354&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8254354&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;&lt;a href="http://vimeo.com/8254354"&gt;WHS Remote Access UPnP Problems&lt;/a&gt; from &lt;a href="http://vimeo.com/user2791394"&gt;HomeServerLand&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;#2) Double NAT&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Network Address Translation (NAT) refers to the translation of an Internet Protocol address (IP address) used within one network to a different IP address known within another network. For example, a translation from the Local Area Network (LAN: the private home network) to the Wide Area Network (WAN: the public Internet).&lt;/p&gt;  &lt;p&gt;A good example of a NAT device is the network router which can be thought of as the agent between the public Internet and the private home network. &lt;/p&gt;  &lt;p&gt;A typical home network is made up of a single network router (NAT), usually with a built-in 4-port switch, and a basic DSL or Cable modem that connects to the Internet.&lt;/p&gt; &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_453E115F.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_328917A8.png" width="524" height="109" /&gt;&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Figure 3.0: Typical Home Network Diagram&lt;/p&gt;  &lt;p&gt;For the Windows Home Server Remote Access website to be available from the Internet, the router needs to be configured to forward inbound web traffic from the Internet to the Windows Home Server on the local network. Therefore, if another NAT device is introduced into the network, it too must be configured accordingly!&lt;/p&gt;  &lt;p&gt;A home network containing two devices routing traffic and performing Network Address Translation is known as a &lt;u&gt;Double NAT&lt;/u&gt;. Such devices can include a combination of routers, modems, firewalls, wireless access points, and other network devices. &lt;/p&gt;  &lt;p&gt;What people often fail to realize is that DSL Modems that employ Point-to-Point Protocol over Ethernet (PPPoE) are frequently performing NAT and other roles such as Internet authentication and DHCP functions. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_0AE29B7E.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_5F31D181.png" width="519" height="145" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 4.0: Double NAT network diagram&lt;/p&gt;  &lt;p&gt;In a Double NAT environment, the UPnP protocol can only be used to automatically configure the nearest NAT device. Under these conditions, the Remote Access functionality will not work properly, and the Windows Home Server will report a failure when attempting to configure the router through the Remote Access Settings interface.    &lt;br /&gt;&lt;b&gt;     &lt;br /&gt;How do I know if I am behind a double NAT?       &lt;br /&gt;&lt;/b&gt;To determine whether or not a Double NAT exists, check the WAN (outside) IP address on the router nearest to the Windows Home Server. It should match the public IP address assigned by your Internet Service Provider (ISP). &lt;b&gt;&lt;/b&gt;One way to check your public IP address is by visiting a site like &lt;a href="http://whatismyipaddress.com/"&gt;http://whatismyipaddress.com/&lt;/a&gt; from your home network.&lt;b&gt;      &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;If the WAN IP address on the router nearest to the Windows Home Server is a &lt;u&gt;private&lt;/u&gt; IP address, meaning a non-routable IP address reserved for private use, you are dealing with a Double NAT scenario.&lt;/p&gt; &lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_7E747854.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_0FE4D92D.png" width="536" height="105" /&gt;&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Figure 5.0: IP Address ranges reserved for private use&lt;/p&gt;  &lt;p&gt;The solution would be to reconfigure your home network so that only one device is routing data in a NAT configuration. Many network devices, including Cable and DSL modems, support a “bridged” or &amp;quot;transparent&amp;quot; mode of operation, which disables all of the routing and NAT in the device. This effectively puts your other router into the position of managing the Internet authentication and network address translation. Consult your modem manufacturer documentation or contact your ISP for support.&lt;/p&gt;  &lt;p&gt;Another common network setup mistake is made by people who wish to add wireless functionality without replacing their existing modem or router. As a result, if you attach another router behind or in-front of your existing router, you are effectively creating a Double NAT. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_5661C935.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowshomeserver/image_5F00_thumb_5F00_356E568E.png" width="554" height="143" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 6.0: Double NAT by means of two routers&lt;/p&gt;  &lt;p&gt;In this case, the solution would be to consolidate both devices into a single unit that can route traffic to the wired and wireless networks, or to configure port forwarding from the first NAT device to the second NAT device. Alternatively, circumvent the double NAT by attaching the Windows Home Server directly to the first NAT device on the network. &lt;/p&gt; &lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8339280&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8339280&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;&lt;a href="http://vimeo.com/8339280"&gt;WHS Remote Access: Double NAT&lt;/a&gt; from &lt;a href="http://vimeo.com/user2791394"&gt;HomeServerLand&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;#3) Internet Service Provider is blocking Remote Access Ports&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The Remote Access website requires inbound port 80 (HTTP), port 443 (HTTPS) and port 4125 (Remote Web Workplace or RWW for short) to be available from the Internet. However, many internet service providers block email related internet ports to curb spam or unsolicited commercial usage. In some cases ISPs block additional ports such as the ones required by Windows Home Server Remote Access: inbound port 80 and port 443.    &lt;br /&gt;If you have configured your network for Remote Access but the remote access website is still not available over the Internet, then contact your ISP to confirm whether or not inbound connectivity on TCP ports 80, 443 or 4125 are being blocked.&lt;/p&gt;  &lt;p&gt;Alternatively you can determine whether or not ports are blocked with the &lt;a href="http://www.microsoft.com/windows/using/tools/igd/default.mspx"&gt;Internet Connectivity Evaluation Tool&lt;/a&gt;. &lt;/p&gt; &lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8287609&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=8287609&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=ffffff&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;p&gt;&lt;a href="http://vimeo.com/8287609"&gt;WHS Remote Access: ISP Blocking Ports&lt;/a&gt; from &lt;a href="http://vimeo.com/user2791394"&gt;HomeServerLand&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The Windows Home Server Remote Access functionality is a powerful and convenient feature that is well worth the effort to set up correctly and securely.&lt;/p&gt;  &lt;p&gt;Hopefully the above breakdown of some of the most common Windows Home Server Remote Access challenges has been helpful. The Windows Home Server Remote Access feature team at Microsoft and the WHS communities are continuously engaged in improving and compiling data around compatibility and other home network issues. Feedback is always welcome and should you need additional help, please give us a shout in the &lt;a href="http://www.homeserverland.com/forums/f/default.aspx"&gt;forums&lt;/a&gt; where we can help you further.&lt;/p&gt;  &lt;p&gt;-Alexander Kent&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532192" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Remote+Access/default.aspx">Remote Access</category><category domain="http://windowsteamblog.com/blogs/windowshomeserver/archive/tags/Remote/default.aspx">Remote</category></item><item><title>Interview with Seesmic’s Loic Le Meur on Seesmic Look</title><link>http://windowsteamblog.com/blogs/windowsexperience/archive/2010/01/21/interview-with-seesmic-s-loic-le-meur-on-seesmic-look.aspx</link><pubDate>Thu, 21 Jan 2010 20:28:49 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532147</guid><dc:creator>Brandon LeBlanc</dc:creator><slash:comments>6</slash:comments><description>&lt;p&gt;Today Seesmic has &lt;a href="http://blog.seesmic.com/2010/01/introducing-seesmic-look.html"&gt;announced a brand new Twitter app&lt;/a&gt; for the Windows Platform specifically designed for the mainstream consumer called &lt;b&gt;Seesmic Look&lt;/b&gt;. Seesmic Look brings a lot to the table making it easy for the average consumer, like your mom, to digest and take in Twitter content. This Windows app works with or without a Twitter account! Earlier this week in the midst of traveling to New York for today’s event, Seesmic’s Loic Le Meur was able to spare some time to chat with me about Seesmic Look. We go into great detail on Seesmic Look and the future of Seesmic including some discussion on Seesmic for Windows! Loic is Seesmic’s Founder and CEO. Business Week Magazine &lt;a href="http://images.businessweek.com/ss/08/09/0929_most_influential/12.htm"&gt;named Loic as one of the 25 most influential people on the web&lt;/a&gt; recently. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon LeBlanc: Seesmic Look is your new application. Tell us about it, what is different, and why should users download it right away?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic Le Meur:&lt;/b&gt; So, Look will be our “avatar” of Twitter clients because it is an entirely new category that is aiming at providing very rich and engaging ways for end-users to interact with Twitter. Basically for anyone - not just the computer savvy (or what we call “the geeks”). And that is what Look is. Helping, you know, anyone getting information and interact with Twitter in a way that we believe has never been done before. Especially thinking about, you know, people watch CNN and hear about Twitter, people been watching Oprah and heard about Twitter, and they may not have a Twitter account, they likely don’t have a Twitter account yet, and we’ve designed Look for them. It’s for everyone else basically who doesn’t use Twitter yet. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/open_5F00_24083AB9.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="open" border="0" alt="open" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/open_5F00_thumb_5F00_3C2BA514.jpg" width="350" height="230" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon: So you don’t have to have a Twitter account to use Seesmic Look? It can totally be used and is accessible to the general consumer that doesn’t have a Twitter account – correct? &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic:&lt;/b&gt; It’s the very first application that we know of that lets you interact, that lets you read, get information, get news about all your favorite topics without having to have or use a Twitter account – at all. The reason we made that choice is because we wanted it to be accessible to anyone. So you just download Look, you get it up and running instantly, and nothing prevents you from reading information – enjoying information about celebrities, about sports… but we’ll come back to that. Anything that is interesting to you. That’s something that no one has done, something that no one has done via the user experience and is rich and engaging. &lt;/p&gt;  &lt;p&gt;The other thing really is we tried to make it feel like an experience close to watching TV if you just want to consume information and you can just sit back and relax and watch Twitter. That is something also that no one else has done and a very engaging, rich, way you can obviously… you can even use Look from your couch if you like with a remote control, something else that is new. &lt;/p&gt;  &lt;p&gt;But the other thing which makes Look entirely unique is you can interact with it using touch. So it’s been optimized and is usable with all the new devices that use a touch UI. But also a remote control so you can actually sit from a couch and watch Twitter and that is absolutely new and extremely addictive. We’re trying to get an experience very close to watching TV – the other thing you can do with Look is use the “TV mode” button for Look (Note: in the app it is called Playback Mode). If you click it, you can see the tweets coming to you without doing anything. And that is also very entertaining because it is what enables Look to basically watch Twitter. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/interests_5F00_06B2E2EF.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="interests" border="0" alt="interests" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/interests_5F00_thumb_5F00_217F08FB.jpg" width="350" height="230" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon: So what you’re saying is if I have a Media Center PC in my living room, I could put Look on that PC that’s connected to my 42” LCD HDTV and using my Media Center remote to navigate and play around with Look like I would Media Center, right? &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic:&lt;/b&gt; Exactly. I’ve been using it for a few weeks myself on a HP TouchSmart PC. And just using it and navigating it with my fingers or the remote control which is provided. It’s a very new way to interact with Twitter and also what I enjoy myself and we’re expecting our users to also enjoy is that you can go to your favorite categories. For example if you want to follow what is happening in Haiti and you really want to stay on top of news coming in you can select the “news” section of Look and put it in TV mode and let it run this way, all day if you like, which is also something not done before, and just watch the news coming in to you straight onto your, yeah, pretty much like a Media Center experience absolutely. It would be totally appropriate to have on a, you know, a LCD screen or TV – anything like that. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon:&lt;/b&gt; &lt;b&gt;You’ve talked about Seesmic Look making Twitter accessible for everyone. How does this change the experience for someone that is using Twitter for the very first time?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic:&lt;/b&gt; Basically we make it very easy for them to learn and also to discover users - which is why we have the directory there because when you start on Twitter you need to find people to follow. And also mainstream non-tech savvy users want to find popular names and brands. And that is what we have built into Look as well. When you open Look and go to News you will see the Wall Street Journal, you will see CNN, you will see brands that are reassuring for mainstream users and the same with celebrities or sports. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon: What sorts of things does Seesmic Look bring to the table for consumers to consume Twitter content, like what are some of the features they will take advantage of?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic:&lt;/b&gt; The very first one is that we make it simple to consume information. First, the way Look opens is that it opens on Trends. So it gives you the most current trends and lets you go deep real-time wise on what everybody is talking about. Then what we have created entirely exclusively for Look and something Seesmic has never done before is a directory of interests so that you can go and check the main categories we have. &lt;/p&gt;  &lt;p&gt;We have News, we have Sports, we have Entertainment, Celebrities, and I could go on and on but these are again consistent to our goal of helping Twitter reach the masses and with everybody watching TV and reading newspapers – this is very different. Basically Twitter has reached a point now it has to go mainstream. To go mainstream, it has to be extremely simple, to enter it and access it, for users who don’t know Twitter at all. So that’s a goal I think we’ve achieved with Look. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/celebrities_5F00_19F3998E.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="celebrities" border="0" alt="celebrities" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/celebrities_5F00_thumb_5F00_191B33A4.jpg" width="350" height="232" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For example if you go to Celebrities and you hit (click) one of those Twitter accounts you will see that the user interface is extremely rich and innovative in the fact that we use the Twitter background for that celebrity (from their profile) and display it as the entire background in the application. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/kevinrose_5F00_4AA6A139.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="kevinrose" border="0" alt="kevinrose" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/kevinrose_5F00_thumb_5F00_30D26B0A.jpg" width="350" height="230" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And so basically each time you check the user or celebrity or go to CNN you will have a unique experience per user. It offers environment which is something very, very new. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon: What’s the difference between Seesmic Look and Seesmic for Windows?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic:&lt;/b&gt; Seesmic for Windows is an application which become quite popular is really designed for more of the power user. For daily, multiple hours a day users who almost some of them use it at a professional level to manage their communities where as Seesmic Look is really again designed for the mainstream, for people who will interact with Twitter with help – we should come back to that – we made it very easy to create a Twitter account and we are partners with Twitter on this application. But it is really designed for my mother – for “normal” people where Seesmic for Windows is a full featured application for current Twitter users to really manage their community online and are already into social networks and that is very different. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon: Seesmic Look introduces several new features never before seen in a Twitter client – one of those is branded Channels. Can you tell me a little bit more about Channels? &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic: &lt;/b&gt;Our objective was to get in front of the new Twitter users or people who are discovering it, with a reassuring environment with brands they trust and they know. We are working with a group of launch partners and what we call a channel is a branded environment, which is basically a piece of real-estate we created from scratch that is very rich in terms of interaction. And that lets the user access those brands and environments they know. So you will find Red Bull in there for example. As launch partners – we have a number of brands free that will feature more than other than just Red Bull.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/redbull_5F00_774F5B12.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="redbull" border="0" alt="redbull" src="http://windowsteamblog.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowsexperience/redbull_5F00_thumb_5F00_280262BE.jpg" width="350" height="230" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So if you go to Red Bull, you will find an environment that basically respects the way the brand communicates to consumers. And what they (Red Bull) chose to feature to them (consumer). And you will see that it’s not actually featuring the products at all but it’s more about featuring the Twitters who are basically in the Red Bull environment in all their different categories like Air, Athletic, Moto, Action, and so on and so forth. And when you get into that, you find you can actually discover interesting Twitter users and athletes who can do all kinds of things like jumping out of airplanes, doing some moto-racing, and so on. And this is just for Red Bull. &lt;/p&gt;  &lt;p&gt;This is one example of something never done before in any (Twitter) application that brings so much integration of the brand environment which is entirely powered by Twitter. &lt;/p&gt;  &lt;p&gt;We have a number of brand launch partners, and we’re very excited to make this real-estate available in Look. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon: Now you’ve been very busy lately. In December you announced Seesmic for Windows, you’ve announced a few mobile apps, and you’ve acquired Ping.fm and now you’re launching Seesmic Look. So what’s next for Seesmic? &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic:&lt;/b&gt; We’re very busy and we’re the only company in the Twitter ecosystem that operates on so many screens. And that is a vision we shared with Ray Ozzie on stage at the PDC conference where Ray explained he wanted Microsoft and specifically Silverlight and Windows to help developers get on all the screens and that’s exactly what we’re doing because as you said we’re on 2 mobile platforms, to answer your question we have more mobile platforms coming. We want to be everywhere the consumer is in terms of interacting with Twitter and social networks. That includes the desktop and also on the web. &lt;/p&gt;  &lt;p&gt;So Look completes our offering because we felt really strongly that we needed an application that could be used by the millions of users who aren’t power users. &lt;/p&gt;  &lt;p&gt;And what’s coming next is something we’ve announced at PDC – we’re working on a plug-in architecture for Seesmic for Windows which is coming together very well with the next month. And that will open new opportunities for developers to tap into our user base which will be to create any form of application and services that can get integrated into Seesmic for Windows. So right now geo-location is very fashionable and there are a number of applications in that field like Foursquare, Gowalla, Yelp – we want to support all of them. But with a small time, obviously we cannot build everything that is available (into Seesmic for Windows) ourselves so the plug-in architecture will allow anyone to create a plug-in and get in to Seesmic for Windows. We’re getting ready to launch this in the coming months and is our main focus right now (after of course launching Look!). &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon: In a world where some people are talking about everything going to the web, Seesmic has made an investment and a bet on these apps running on richer client experiences. Why is that important?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Loic:&lt;/b&gt; I agree many people have been explaining everything should go web-based, and while we have Seesmic Web for our pure Web presence, we believe there are a number of interactions and user experiences that you cannot provide when you’re only web-based. And there is a category of users who really value that design and that experience that you can only do/get in a desktop application. Or even a mobile application. And it’s the same on mobile by the way, you have a lot of web clients which work really well with applications but you can see by how mobile apps are downloadable – mobile apps are booming these days which shows the desktop and mobile applications have a huge future ahead of them. &lt;/p&gt;  &lt;p&gt;There is no other way to provide that kind of interaction which is very close to somewhat like a gaming environment than just reading webpages. And we really believe that interaction and design are extremely important and probably more important than features themselves. Look is fully featured of course but the look and feel of Look is very unique because it’s an application. And it couldn’t be made on a web app at all – and we really think it’s going to make a big difference. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon:&lt;/b&gt; Thanks Loic for taking the time to talk us through Seesmic Look today and congrats on an awesome release! It’s fantastic to see Seesmic launch such a bleeding-edge Windows app for consuming Twitter content. &lt;/p&gt;  &lt;p&gt;So what are you waiting for? &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Go &lt;/b&gt;&lt;a href="http://www.seesmic.com/look"&gt;&lt;b&gt;download&lt;/b&gt;&lt;/a&gt;&lt;b&gt; Seesmic Look today and give it a spin!&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;If you’ve got some not-so-tech-savvy family members or friends who might like to read what’s happening in the “Twitterverse” you should point Seesmic Look out to them. I know my mom is going to love Seesmic Look to follow all the celebrity tweets. She loves that kind of stuff. But even some of my more geeky friends will also love Seesmic Look. &lt;/p&gt;  &lt;p&gt;Pssst, you Seesmic for Windows fan outs there keep your eyes peeled… I’m told a Seesmic for Windows update is coming soon! &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532147" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Twitter/default.aspx">Twitter</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows/default.aspx">Windows</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Brand/default.aspx">Brand</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Social+Networking/default.aspx">Social Networking</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Social/default.aspx">Social</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Social+Media/default.aspx">Social Media</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Partner/default.aspx">Partner</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Brands/default.aspx">Brands</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Seesmic+for+Windows/default.aspx">Seesmic for Windows</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Windows+Platform/default.aspx">Windows Platform</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Seesmic/default.aspx">Seesmic</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Seesmic+Look/default.aspx">Seesmic Look</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Startup/default.aspx">Startup</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/App/default.aspx">App</category><category domain="http://windowsteamblog.com/blogs/windowsexperience/archive/tags/Twitter+Client/default.aspx">Twitter Client</category></item><item><title>New Volume Activation webcast this Friday!</title><link>http://windowsteamblog.com/blogs/genuinewindows/archive/2010/01/21/new-volume-activation-webcast-this-friday.aspx</link><pubDate>Thu, 21 Jan 2010 20:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:532145</guid><dc:creator>Jodi Kogan</dc:creator><slash:comments>4</slash:comments><description>&lt;p&gt;IT professionals &amp;ndash; if you haven&amp;rsquo;t already seen this elsewhere, our Volume Activation folks have a TechNet webcast planned for this Friday they&amp;rsquo;d like you to know about:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Title:&lt;/strong&gt; &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032438278&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;TechNet Webcast: Deploying Windows With Volume Activation (Level 300)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt; This follow-up webcast to "Plan for and Deploy Volume Activation for Windows 7 and Windows Server 2008 R2" is focused on demonstrating how to build product activation into your deployment planning for Windows. Join us to see how to set up the Key Management Service (KMS) and enable Multiple Activation Key (MAK) activation using the Volume Activation Management Tool (VAMT), and learn how to configure the keys in your master image using Microsoft Deployment Toolkit (MDT) 2010 and Windows System Image Manager (WSIM). This demonstration-heavy webcast is designed to walk you through the activation process as part of deployment, from end-to-end.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Date/Time:&lt;/strong&gt; Friday, January 22, 2010, 10:00 AM Pacific Time (US and Canada)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt;&amp;nbsp; &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032438278&amp;amp;EventCategory=4&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;Online webcast&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Presenters:&lt;/strong&gt; Chris Jolley, Group Marketing Manager, Microsoft Corporation, Kim Griffiths, Senior Product Manager, Microsoft Corporation, and Jeremy Chapman, Senior Product Manager, Microsoft Corporation&lt;/p&gt;
&lt;p&gt;Hope you can make it!&lt;/p&gt;
&lt;p&gt;- Jodi&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://windowsteamblog.com/aggbug.aspx?PostID=532145" width="1" height="1"&gt;</description><category domain="http://windowsteamblog.com/blogs/genuinewindows/archive/tags/Webcast/default.aspx">Webcast</category><category domain="http://windowsteamblog.com/blogs/genuinewindows/archive/tags/Volume+Activation/default.aspx">Volume Activation</category><category domain="http://windowsteamblog.com/blogs/genuinewindows/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://windowsteamblog.com/blogs/genuinewindows/archive/tags/Genuine+Windows/default.aspx">Genuine Windows</category></item></channel></rss>