<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.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/"><channel><title>Wot u do with .net </title><link>http://blogs.msdn.com/b/paulfo/</link><description>All the fun things you can do with .net from extending Media Centre to robotics to game development.</description><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.21163 (Build: 5.6.583.21163)</generator><item><title>XNA: Gaming across many platforms and the cloud</title><link>http://blogs.msdn.com/b/paulfo/archive/2010/05/05/xna-gaming-across-many-platforms-and-the-cloud.aspx</link><pubDate>Wed, 05 May 2010 15:25:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10007817</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=10007817</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2010/05/05/xna-gaming-across-many-platforms-and-the-cloud.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2010/05/05/xna-gaming-across-many-platforms-and-the-cloud.aspx";digg_title = "XNA: Gaming across many platforms and the cloud";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;I’ve been working with UK XNA MVP &lt;a href="http://xna-uk.net/blogs/randomchaos/archive/2010/03/12/stowaways-a-zuneray-game.aspx"&gt;Charles Humphrey&lt;/a&gt; on project ZuneRay. ZuneRay is a raycasting engine built by Charles’ for the Zune HD using XNA 3.1. With Windows Phone 7 Series in the pipeline we used the Zune HD as a target test platform with the intention of porting it to WP7S once the tools became available. ZuneRay uses a classic approach to delivering a 3D experience without requiring 3D support – at the time we didn’t know if 3D support would be in the Windows Phone 7 Series XNA version – so it was a pleasant surprise to find 3D support in there, and very satisfying to see ZuneRay port to XNA 4.0 and the WP7S really easily.&lt;/p&gt;  &lt;p&gt;Well the tools CTP is now available, so Charles and I have been working away on ZuneRay with excellent results. ZuneRay is an XNA 3.1 with Zune HD extensions project. You get a Windows version ‘for free’, and an Xbox version just required the additional of Gamepad support. Moving ZuneRay to WP7S required upgrading the project to XNA 4.0. There is no ‘wizard’ to do this, the best approach is to create a new XNA 4.0 game and then pull in all your existing code and content. There are some platform specific bits in the generated Game1.CS file that you want to ensure are retained – but coming from the Zune platform originally these already existed.&lt;/p&gt;  &lt;p&gt;There are breaking changes between Xna 3.1 and Xna 4.0 – the main ones for ZuneRay being around storage API, change of screen resolution and the changes in SpriteBatch parameters – but none of these took long to sort out. Shawn Hargreaves pointed out that WP7S running at 800x480 has 25% more pixels to draw than the original Xbox – but less CPU/GPU power to do it. The WP7S has a dedicated hardware scaler which means you can render your game at lower resolutions – like 600x360 56% of pixel data - and have the device scale it to fill the screen. While developing in the emulator this scaling functionality isn’t available, but then as the emulator is just that – not a simulator – your game takes advantage of the underlying PC hardware performance.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/XNAGamingacrossmanyplatformsandthecloud_9EB9/ZuneRay1_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ZuneRay1" border="0" alt="ZuneRay1" src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/XNAGamingacrossmanyplatformsandthecloud_9EB9/ZuneRay1_thumb.png" width="244" height="126" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;Project ZuneRay&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Now I have the game running across Windows, Xbox, Windows Phone 7 Series and Zune HD – I wanted to integrate the cloud. My idea for demonstration purposes was really simple. Capture a camera image, publish it to the cloud and then have ZuneRay games acquire the image and use it in game as a wall texture.&lt;/p&gt;  &lt;p&gt;Storing my image in the cloud is very simple – the image copy to Windows Azure Blob storage just uses the &lt;a href="http://wotudo.net/blogs/wotudo/archive/2010/02/16/copying-files-to-windows-azure-blob-storage.aspx"&gt;code I posted&lt;/a&gt; a while back. To capture the web cam I used a &lt;a href="http://bit.ly/bO3jSI"&gt;WPF application&lt;/a&gt; by Geert van Horrik – all I had to add was the resizing of the image to fit with the game requirements before sending it to Azure blob storage.&lt;/p&gt;  &lt;p&gt;To retrieve the image from the blob store proved to be the tricky part. Although XNA is hugely consistent across the platforms the networking support varies enormously. The Zune has no programmatic network support. The Xbox only has networking to the Xbox&amp;#160; Live services. Windows Phone 7 Series has a good sprinkling of support in various areas and Windows of course has the lot.&lt;/p&gt;  &lt;p&gt;Looking at Windows Phone I was able to use the following code to simple make a webrequest using a known URL to the current image file.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7e6ca61e-f977-4d8a-9155-f62392523f76" class="wlWriterSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; GetTextureFromAzure()&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af"&gt;HttpWebRequest&lt;/span&gt; request;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af"&gt;HttpWebResponse&lt;/span&gt; response = &lt;span style="color:#0000ff"&gt;null&lt;/span&gt;;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;try&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;request = (&lt;span style="color:#2b91af"&gt;HttpWebRequest&lt;/span&gt;)&lt;span style="color:#2b91af"&gt;WebRequest&lt;/span&gt;.Create(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Uri&lt;/span&gt;(&lt;span style="color:#a31515"&gt;@"https://xxxx.blob.core.windows.net/publicfiles/dynamic.png"&lt;/span&gt;));&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response = (&lt;span style="color:#2b91af"&gt;HttpWebResponse&lt;/span&gt;)request.BeginGetResponse(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;AsyncCallback&lt;/span&gt;(RespCallback), request);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;catch&lt;/span&gt; { }&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The callback function then uses Texture2D.FromStream to create a new texture from the response stream.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a0c518d1-d501-4192-8fd6-b749f1edbf73" class="wlWriterSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px; white-space: nowrap"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; RespCallback(&lt;span style="color:#2b91af"&gt;IAsyncResult&lt;/span&gt; asynchronousResult)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;try&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af"&gt;HttpWebRequest&lt;/span&gt; myRequestState = (&lt;span style="color:#2b91af"&gt;HttpWebRequest&lt;/span&gt;)asynchronousResult.AsyncState;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af"&gt;HttpWebResponse&lt;/span&gt; response = (&lt;span style="color:#2b91af"&gt;HttpWebResponse&lt;/span&gt;)myRequestState.EndGetResponse(asynchronousResult);&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af"&gt;Stream&lt;/span&gt; s = response.GetResponseStream();&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;map.Textures[5] = &lt;span style="color:#2b91af"&gt;Texture2D&lt;/span&gt;.FromStream(GraphicsDevice, s);&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.Close();&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.Close();&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff"&gt;catch&lt;/span&gt; (System.Net.&lt;span style="color:#2b91af"&gt;WebException&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000"&gt;//if (response != null)&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#008000"&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response.Close();&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The maps.texture array contains the textures presented as walls and objects in the game. By directly replacing the texture[5] only certain walls in the game levels present the web cam image, as can be seen below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/XNAGamingacrossmanyplatformsandthecloud_9EB9/ZuneRay2_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ZuneRay2" border="0" alt="ZuneRay2" src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/XNAGamingacrossmanyplatformsandthecloud_9EB9/ZuneRay2_thumb.png" width="244" height="126" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I use a count down timer to poll for a new image every minute for the purposes of this demo. I want to upgrade this poll mechanism with a push notification using the new Push Notification service for WP7S. In this way, the web cam application will be able to publish an image and then notify WP7S phones running the game of a new game texture. The games can then go and retrieve the image based on user preference for data service usage.&lt;/p&gt;  &lt;p&gt;Charles and I intend to share more of Project ZuneRay’s code shortly.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10007817" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPE/">UKDPE</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/VS2010/">VS2010</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Paul+Foster/">Paul Foster</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/WP7/">WP7</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+Phone+7/">Windows Phone 7</category></item><item><title>Do you know how to get Microsoft Technical Support?</title><link>http://blogs.msdn.com/b/paulfo/archive/2010/02/23/do-you-know-how-to-get-microsoft-technical-support.aspx</link><pubDate>Tue, 23 Feb 2010 21:11:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9968282</guid><dc:creator>paulfo</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9968282</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2010/02/23/do-you-know-how-to-get-microsoft-technical-support.aspx#comments</comments><description>&lt;p&gt;When the chips are down and you’ve reach the point where you need help, it is reassuring to know Microsoft Support Professionals are only a phone call or maybe an email away. We want you to know what your paid-for and free &lt;a href="http://support.microsoft.com/gp/services/en-gb#tab1 " target="_blank"&gt;Microsoft Support&lt;/a&gt; options are. We also want you to let us know if there’s anything we could do to improve our support offerings. Send us feedback at &lt;a href="mailto:ukmsdn@microsoft.com"&gt;ukmsdn@microsoft.com&lt;/a&gt; we do want to hear from you.&lt;/p&gt;  &lt;p&gt;Microsoft offers a range of support services designed to meet the needs of developers no matter what size of organisation you work in - from enterprises down, to small business to individuals. It is worth taking the time to understand what these offerings are – to ensure you get access to appropriate and timely support. If your organisation purchases &lt;a href="http://www.microsoft.com/licensing/software-assurance/default.aspx" target="_blank"&gt;Software Assurance&lt;/a&gt;, &lt;a href="http://www.microsoft.com/uk/business/support/essential/enter/home.mspx" target="_blank"&gt;Essential&lt;/a&gt; or &lt;a href="http://www.microsoft.com/microsoftservices/en/uk/home.aspx" target="_blank"&gt;Premier&lt;/a&gt; services you should check with your contracts manager on the included support offerings. &lt;/p&gt;  &lt;p&gt;As an individual developer or as a member of a developer team it is always worth remembering the maxim – ‘forewarned is forearmed’. On any issue or even during project planning, the freely available &lt;a href="http://support.microsoft.com/search/?adv=1 " target="_blank"&gt;knowledgebase&lt;/a&gt; should be searched for known and potential issues. The knowledgebase is updated directly by Microsoft Support professionals when incidents are identified as repeatable issues.&lt;/p&gt;  &lt;p&gt;There is a range of paid for Microsoft support services available for software developers. These are contained within the Professional Support service. There are a number of elements to this service as laid out below:&lt;/p&gt;  &lt;p&gt;1. Professional Pay Per Incident&lt;/p&gt;  &lt;p&gt;2. Professional Pay Per Incident 5 Pack&lt;/p&gt;  &lt;p&gt;3. Business Critical After Hours Support&lt;/p&gt;  &lt;p&gt;4. MSDN/TechNet Subscription Incident Support&lt;/p&gt;  &lt;p&gt;After raising a paid-for support call, the next important thing is response time. How long will it take to get someone who knows what they are talking about to call you back? Microsoft has three support incident levels, Severity A, B and C. These each have an Initial Response Time associated with them. &lt;/p&gt;  &lt;p&gt;Severity A: - 2 hours&lt;/p&gt;  &lt;p&gt;Severity B: - 4 business hours&lt;/p&gt;  &lt;p&gt;Severity C: - 8 business hours.&lt;/p&gt;  &lt;p&gt;There are a number of common features to the support services. &lt;/p&gt;  &lt;p&gt;1. Product coverage – all production versions of Microsoft servers, tools and business applications&lt;/p&gt;  &lt;p&gt;2. Lifetime – full customer agreement is required to close an incident.&lt;/p&gt;  &lt;p&gt;For current support service prices see this &lt;a href="http://support.microsoft.com/gp/profsup/en-gb" target="_blank"&gt;page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Looking at each one in turn:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Professional Pay per Incident/ Professional Pay per Incident 5 Pack&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Professional Pay per Incident provides a fixed cost single assisted break-fix support during business hours. You can start a support incident by phone or by email. &lt;/p&gt;  &lt;p&gt;Support incidents can be purchased in packs of 5 with a 1 year lifetime from set up of contract.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Business Critical After Hours Support.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A fixed cost single assisted break-fix after business hours support request for Severity A issues on production versions of Microsoft server, tools and business applications. Support is purchase directly from Microsoft and is initiated by phone only. This is effectively the same as a Professional Pay per Incident but occurs outside normal business hours.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;MSDN/TechNet Subscription Incident Support.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Depending on the style and level of your subscription you have between 2 and 4 incidents available for your use. These are assisted break-fix incidents, solution design services are available to developers under Premier Service contracts purchased annually.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Warranty Support.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In addition to these service offerings above there is also Warranty Support. 2 to 4 incidents may be included ‘in the box’ with certain Microsoft tools and business applications. For example MSDN Professional subscriptions include two no-charge support incidents, Visual Studio professional or higher with MSDN Premium include four no-charge support incidents, entitling you to technical product support from Microsoft either by telephone or online during normal business hours.&lt;/p&gt;  &lt;p&gt;All Microsoft Technical Support services are subject to &lt;a href="http://support.microsoft.com/gp/onlineterms/en-gb"&gt;Microsoft Technical Support General Terms &amp;amp; Conditions&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9968282" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UK/">UK</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPE/">UKDPE</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Paul+Foster/">Paul Foster</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Technical+Support/">Technical Support</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKMSDN/">UKMSDN</category></item><item><title>SharePoint 2010 on Windows 7 x64</title><link>http://blogs.msdn.com/b/paulfo/archive/2010/01/06/sharepoint-2010-on-windows-7-x64.aspx</link><pubDate>Wed, 06 Jan 2010 13:51:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9944523</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9944523</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2010/01/06/sharepoint-2010-on-windows-7-x64.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2010/01/06/sharepoint-2010-on-windows-7-x64.aspx";digg_title = "SharePoint 2010 on Windows 7 x64";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;I’m just completing the installation of a standalone development environment for SharePoint 2010 Beta on my Windows 7 x64 netbook. There are a few gotchas to doing this which I wanted to share with you, it turns out that they are all well documented by the SharePoint team but finding them is always easier if someone pulls together the reading list first.&lt;/p&gt;  &lt;p&gt;The most comprehensive documentation is by Jie Li:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/opal/archive/2009/11/16/installation-notice-for-sharepoint-2010-public-beta.aspx" href="http://blogs.msdn.com/opal/archive/2009/11/16/installation-notice-for-sharepoint-2010-public-beta.aspx"&gt;http://blogs.msdn.com/opal/archive/2009/11/16/installation-notice-for-sharepoint-2010-public-beta.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/opal/archive/2009/10/25/sharepoint-2010-pre-requisites-download-links.aspx" href="http://blogs.msdn.com/opal/archive/2009/10/25/sharepoint-2010-pre-requisites-download-links.aspx"&gt;http://blogs.msdn.com/opal/archive/2009/10/25/sharepoint-2010-pre-requisites-download-links.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But I found my Configuration Wizard failing with ‘IIS Not Found’ and had to look further. Then I discovered the SharePoint team blog document:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx" href="http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx"&gt;http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In Step 8 of the above post, there is an IIS configuration script that needed to be run to. Once I’d done this from the wizard proceeded without issue until it had completed 8 out of 10 tasks.&lt;/p&gt;  &lt;p&gt;It then failed again with ‘Failed to create sample data’. Looking into the log file I could see that a web service call had timed out. Suspecting that this was a ‘first run’ issue, I closed a few Windows and re-ran the configuration wizard…15 years as a MS techie doesn’t count for nothing you know ;-)&lt;/p&gt;  &lt;p&gt;Of course, a more powerful machine is unlikely to encounter the time out. My target machine is my much loved Acer Ferrari One Netbook – the AMD L310 dual core, 64-bit wonder that I now carry by my side always. This machine is totally awesome, and with 4GB RAM installed, it can do a hell of a lot despite its diminutive size.&lt;/p&gt;  &lt;p&gt;While typing the above, the config wizard has now completed the re-run of step 8 and has just finished successfully. I’m looking at the default SharePoint site running in IE8. Memory usage is quite high at 3.46GB, but after the default site creation (which took a while) performance navigating around the site is ok.&lt;/p&gt;  &lt;p&gt;Now to get into the new VS2010 SharePoint devenv for some fun and games.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9944523" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Ferrari/">Ferrari</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/AcerAspire+One/">AcerAspire One</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Paul+Foster/">Paul Foster</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Netbook/">Netbook</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/SharePoint+2010/">SharePoint 2010</category></item><item><title>Windows 7: Building your own sensors</title><link>http://blogs.msdn.com/b/paulfo/archive/2010/01/05/windows-7-building-your-own-sensors.aspx</link><pubDate>Tue, 05 Jan 2010 13:08:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9943893</guid><dc:creator>paulfo</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9943893</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2010/01/05/windows-7-building-your-own-sensors.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2010/01/05/windows-7-building-your-own-sensors.aspx";digg_title = "Windows 7: Building your own sensors";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;Windows 7 has a built in sensor and location platform, the key feature of this is any sensor devices connected to it become operating system level resources which any number of applications can utilise the data from. Up until now, sensor devices (like GPS) were ‘owned’ by the first application to grab them, and prevented any other application from accessing the device while running. That has all changed in Windows 7, but we are still waiting for sensor manufactures to update their drivers to fit with the new world of Windows 7.&lt;/p&gt;  &lt;p&gt;So while they ponder, lets get on and do some cool stuff ourselves!&lt;/p&gt;  &lt;p&gt;The MS Press book ‘&lt;a href="http://bit.ly/5TLhVi"&gt;Introducing Windows 7 for developers’&lt;/a&gt; has a great couple of chapters on the new sensor and location platform – chpr 9 and 10. These make excellent reading to help you understand just how everything works. Luckily for us, just before Christmas, Donn Morse posted a create article and sample on &lt;a href="http://bit.ly/5Mi4VT"&gt;Coding4fun&lt;/a&gt; – so we can utilise Donn’s excellent work to make our custom sensors.&lt;/p&gt;  &lt;p&gt;In the article, Donn uses the veritable Parallax Basic Stamp 2 as the intermediary between sensors and the Windows 7 machine. The Basic Stamp is well suited to utilising the range of cheap I2C based sensor devices that have been the main stay of homebrew and professional robotics development for decades.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://bit.ly/8jDwln"&gt;sample project&lt;/a&gt; includes Windows application, Windows 7 sensor driver and Basic Stamp firmware for linking up a motion detector, but also supports a &lt;a href="http://bit.ly/6hueQN"&gt;compass sensor&lt;/a&gt;, a 2 axis accelerometer, and a &lt;a href="http://bit.ly/56idKv"&gt;ultra-sonic distance sensor&lt;/a&gt;. These devices are all inexpensively available from my good friends at &lt;a href="http://bit.ly/Devantech"&gt;Devantech&lt;/a&gt; – who also have &lt;a href="http://bit.ly/8h7z6W"&gt;USB to I2C&lt;/a&gt; interface modules including wireless versions. Using these interface modules obviously cuts out the need for a Basic Stamp 2 but requires the Sensor driver to do all the direct sensor work. I shall explore these options over the next few weeks and let you know how I get on!&lt;/p&gt;  &lt;p&gt;I know many of you will think the Basic Stamp 2 is somewhat old hat and have been enjoying the more modern delights of the &lt;a href="http://bit.ly/Oomlout"&gt;Arduino devices&lt;/a&gt;. As the Arduino development boards use USB rather than RS232 to communicate with the PC. Donn comments in his post that he is working with Brian Jepson to create a driver that works with the Arduino – so we can eagerly await this update.&lt;/p&gt;  &lt;p&gt;Donn’s Windows application uses the Windows7.SensorAndLocation DLL from the &lt;a href="http://bit.ly/W7CodePack"&gt;Windows 7 Code Pack&lt;/a&gt; which is also available as a free download and includes the source.&lt;/p&gt;  &lt;p&gt;Donn explains the detail of the implementation in his article included with the sample download. Based on the Sensor and Location SDK Skeleton driver example, Donn upgrades this hardware emulating driver to use real hardware based on RS232 communications.&lt;/p&gt;  &lt;p&gt;The whole project is an interesting read if only to educate yourself more on the capabilities of Windows 7 – but for all of us tinkerers it facilitates another fun project and adds a bucket load of ideas to the task list. I really recommend it to you!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9943893" width="1" height="1"&gt;</description></item><item><title>Event: VS2010 and ALM 17th Dec, London</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/12/08/event-vs2010-and-alm-17th-dec-london.aspx</link><pubDate>Tue, 08 Dec 2009 08:30:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9933935</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9933935</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/12/08/event-vs2010-and-alm-17th-dec-london.aspx#comments</comments><description>&lt;p&gt;Microsoft and Black Marble are presenting a day exploring the opportunities and benefits of VS2010 in ALM. &lt;/p&gt;  &lt;p&gt;You can register for this event by visiting www.blackmarble.com/events   &lt;br /&gt;Alternatively you can telephone 01274 841305&lt;/p&gt;  &lt;p&gt;Venue: Royal College of Physicians, 11 St Andrews Place, London NW1 4LE&lt;/p&gt;  &lt;p&gt;Thursday 17th December 2009   &lt;br /&gt;Registration from 9:30am, Event Starts at 10:00am. Lunch at 12:30pm. Event ends at 4:30pm    &lt;br /&gt;Visual Studio 2010 is being designed inside and out to give developers and development teams every advantage in getting the next ground-breaking application to market – quickly. The upshot is that your business gets to reap the rewards of tomorrow’s efficiency today.    &lt;br /&gt;Microsoft Visual Studio Team System 2010 will deliver new capabilities that embrace the needs of the users in the application lifecycle – from architects to developers, from project managers to testers.    &lt;br /&gt;Application Lifecycle Management (ALM) is the coordination of all aspects of software engineering - including the formulation and communication of business and technical requirements, code design and architecture, project tracking, change management, coding, testing, debugging, and release management - by using tools that facilitate and track collaboration among and within work teams.    &lt;br /&gt;Application development is one of the most strategic activities in IT. Whether the business goal is improving customer satisfaction, streamlining operations, or extending into a new market, the applications that underpin business initiatives and provide differentiation are critical to success. Application development teams that predictably deliver business-critical applications can help a company maintain a competitive edge in the marketplace and drive top-line growth.    &lt;br /&gt;Come along and find out how Microsoft’s Developer Tools are changing as well as how Team Foundation Server, Best Practice and Testing can be implemented to help your business manage its application lifecycle successfully.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9933935" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/VS2010/">VS2010</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Paul+Foster/">Paul Foster</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Wotudo/">Wotudo</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/vs/">vs</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Black+Marble/">Black Marble</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Event/">Event</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/ALM/">ALM</category></item><item><title>PDC 09 attendees get free Win7 laptop</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/11/18/pdc-09-attendees-get-free-win7-laptop.aspx</link><pubDate>Wed, 18 Nov 2009 17:41:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9924408</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9924408</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/11/18/pdc-09-attendees-get-free-win7-laptop.aspx#comments</comments><description>&lt;p&gt;Steven Sinofsky announced at PDC09 day 2 keynote, that all PDC 09 attendees would receive a MSFT designed, Acer built, Windows 7 laptop free of charge.&lt;/p&gt;  &lt;p&gt;The laptop has a touch screen, full sensor and location functionality, is 64-bit and fully loaded up with Office 2010 beta and lots more.&lt;/p&gt;  &lt;p&gt;Designed to enable application developers to get to grips with Windows 7 features, the keynote audience were first stunned and then jubilant at the gift.&lt;/p&gt;  &lt;p&gt;To get going on Windows 7 application enhancement take a look &lt;a href="http://bit.ly/sSlF"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ebfdb1cf-bf49-44ef-a747-64cd6eee95d6" class="wlWriterEditableSmartContent"&gt;&lt;div id="63915557-25d1-48bc-b8a8-ad2e325eed77" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=0jd_Y9vxY24" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/PDC09attendeesgetfreeWin7laptop_F8CE/videoba1968d6d43a.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('63915557-25d1-48bc-b8a8-ad2e325eed77'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/0jd_Y9vxY24&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/0jd_Y9vxY24&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9924408" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Video/">Video</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/PDC2008/">PDC2008</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPETeam/">UKDPETeam</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPE/">UKDPE</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Paul+Foster/">Paul Foster</category></item><item><title>Taking your app forward to Win7</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/11/18/taking-your-app-forward-to-win7.aspx</link><pubDate>Wed, 18 Nov 2009 15:09:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9924308</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9924308</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/11/18/taking-your-app-forward-to-win7.aspx#comments</comments><description>&lt;p&gt;If you are looking for a concise guide to the features you should consider for your application to shine on Windows 7 look &lt;a href="http://bit.ly/sSlF"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;A simple list of the 7 things you could do to rejuvenate your applications and ensure they work will and correctly in the modern world of Windows 7.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9924308" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Programming/">Programming</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category></item><item><title>Aspire Ferrari One – rocks. A netbook as netbooks should be</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/10/27/aspire-ferrari-one-rocks-a-netbook-as-netbooks-should-be.aspx</link><pubDate>Tue, 27 Oct 2009 10:24:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9913426</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9913426</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/10/27/aspire-ferrari-one-rocks-a-netbook-as-netbooks-should-be.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/27/aspire-ferrari-one-rocks-a-netbook-as-netbooks-should-be.aspx";digg_title = "Aspire Ferrari One – rocks. A netbook as netbooks should be";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://img.hexus.net/v2/news/acer/Ferrari-F200-One-1.jpg" width="300" height="280" /&gt;My latest purchase is an Acer Ferrari One netbook. This is a netbook like no other and the way netbooks should be! It is the same size as the current restricted Atom 11.6” screen netbooks, with 1366x768 res - but this one runs the AMD Athlon X2 L310 processor. Yes this is a dual core, 64-bit, workable screen res netbook baby!&lt;/p&gt;  &lt;p&gt;With support for up to 4GB RAM and a 250GB HDD the graphics are provided by the ATiRadeon HD 3200. The Windows Experience Index says it all:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/AspireFerrari.Anetbookasnetbooksshouldbe_9258/acerwei.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="acerwei" border="0" alt="acerwei" src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/AspireFerrari.Anetbookasnetbooksshouldbe_9258/acerwei_thumb.png" width="521" height="138" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;All this for just £399. It is pretty amazing especially when you compare it to the competition. The word on the street is that Intel won’t allow powerful Atoms in the larger screen sized netbooks – protecting full processor laptop sales. This is why they are all Z520 1.2Ghz things – lacking puff. &lt;/p&gt;  &lt;p&gt;But even when you look at the ‘proper’ laptops, the Acer Ferrari One is still an amazing buy.&lt;/p&gt;  &lt;p&gt;Look at the Sony Vaio TT range. Typical Windows Experience Indices look like this:&lt;/p&gt;  &lt;p&gt;Processor = 4.3    &lt;br /&gt;Memory (RAM) = 4.9     &lt;br /&gt;Graphics = 3.2     &lt;br /&gt;Gaming graphics = 4.9     &lt;br /&gt;Primary hard disk = 6.2&lt;/p&gt;  &lt;p&gt;At best only 0.6 of an index better than the Ferrari One. Yet the TT range sells for over £1400 – 3.5 times the price of the Ferrari One, making the Ferrari One an awesome deal.&lt;/p&gt;  &lt;p&gt;The Ferrari One was shipped with Windows 7 Home Premium. I upgraded this to Windows 7 Ultimate by using the Windows Anytime Upgrade feature – allowing you to purchase a new product key and download additional functionality over an internet connection. It took very little time at all, I didn’t time it but it felt like 30mins.&lt;/p&gt;  &lt;p&gt;I’m running Office 2010 (internal build), VS2008 Pro, VS2010 Ultimate beta 2, SQL Express 2008 and Expression Studio 3.&lt;/p&gt;  &lt;p&gt;Unlike other Atom based netbooks, the Ferrari one doesn’t stall when you have more than one application open. Making it awesome for travel and good enough for every day use (although to be perfect for dev I need a smidge more proc perf).&lt;/p&gt;  &lt;p&gt;The Ferrari One has a Synaptics’ multi-gesture touchpad. This appears to only support mouse style functionality (wheel zoom etc) via gestures. Windows 7 doesn’t see it as a multi-touch device :-( Although I have seen mod’ed drivers on the web that apparently enable this functionality. Have to say, if a proper driver for multi-touch was provided the Ferrari One would be ‘the best machine I have ever owned’. And that is some recommendation.&lt;/p&gt;  &lt;p&gt;My Ferrari One model doesn’t have the built in 3G support, or Bluetooth. But I have a 3G stick I use across all my machines as needed and I don’t use BT.&lt;/p&gt;  &lt;p&gt;I am keeping an eye out for ‘Graphics Boosters’ that use the ATI XGP port on the side of the Ferrari One. In theory at least, these devices extend the graphics capability by as much as x4 performance, and bring support for more than two simultaneous monitors and an HDMI out perfect compliment to the Dolby Home Theatre sound supported on the Ferrari One. It’d be pretty cool to use the Ferrari One in a multi-monitor work station with VS2010 (you can have different IDE windows open on different monitors).&lt;/p&gt;  &lt;p&gt;The full spec of my Ferrari One:&lt;/p&gt;  &lt;p&gt;Model: ZH6&lt;/p&gt;  &lt;p&gt;Processor:&amp;#160; AMD Althon 64 X2 dual-core processor L310 (1.20Ghz, 1mb L2 Cache)&lt;/p&gt;  &lt;p&gt;LCD: 11.6” HD Acer LED LCD (1366x768)&lt;/p&gt;  &lt;p&gt;Graphics: Radeon HD 3200 up to 896mb memory (shared)&lt;/p&gt;  &lt;p&gt;Memory: 2GB&lt;/p&gt;  &lt;p&gt;Storage: 250GB HDD&lt;/p&gt;  &lt;p&gt;Card reader: Multi-in-1&lt;/p&gt;  &lt;p&gt;WLAN: Acer Nplify 802.11/b/g/ Draft –N&lt;/p&gt;  &lt;p&gt;Web cam: Acer Crystal Eye webcam (0.3mega pixel)&lt;/p&gt;  &lt;p&gt;Battery: 6-cell Li-on (appears that I’m getting 5hrs on balanced power management. Spare battery around £90).&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9913426" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Ferrari/">Ferrari</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/VS2010/">VS2010</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Paul+Foster/">Paul Foster</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Netbook/">Netbook</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Wotudo/">Wotudo</category></item><item><title>Software changes the world – be proud to be part of it</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/software-changes-the-world-be-proud-to-be-part-of-it.aspx</link><pubDate>Thu, 22 Oct 2009 14:09:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911371</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9911371</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/software-changes-the-world-be-proud-to-be-part-of-it.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/software-changes-the-world-be-proud-to-be-part-of-it.aspx";digg_title = "Software changes the world – be proud to be part of it";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;One of the joys of working for Microsoft is the real world citizenship. That sounds really corporate, but what I mean is the ability to stand up and do the right thing. Microsoft of course does lots locally and internationally as befits a successful company. But its the ability to do stuff as an individual that helps me fulfil ambitions, help others and feel like I’m making a positive contribution to the world.&lt;/p&gt;  &lt;p&gt;For the last few years I’ve been able to support the &lt;a href="http://firsthandtechnology.org.uk"&gt;First Lego League&lt;/a&gt; in the UK, and the UK &lt;a href="http://filmsforlearning.org/"&gt;Films for learning&lt;/a&gt; community by building and maintaining their websites. These are great activities that enable teachers and students of a wide range of ages to get in the mix with science and technology. Both have a huge effect on those taking part – enabling teachers to teach with flair and originality, and students to learn while having fun and enriching experiences.&lt;/p&gt;  &lt;p&gt;Over the summer I’ve been able to do a few fun events with schools and colleges in my area. This has included:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;College Technology day&lt;/strong&gt;. I ran a workshop, repeated three times during the day, on different aspects of software and human interaction including speech controlled robot navigation, direct robot programming, multi-touch on Windows 7 and XNA game development. Nearly 60 students attended during the three workshops, all able to take part hands on building and driving stuff. Fantastic.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;High School induction&lt;/strong&gt;. Initially I was asked to run a robotics workshop as part of the schools activities to welcome its new year six intact. We thought we’d get enough kids interested to run one Saturday morning workshop with 30 student places. It was a surprise and a joy to get a phone call from Mr Cowan – the technology centre manager – to say 145 students had applied to take part. There is only one thing you can do in the face of such enthusiasm – scale out! With the help of Chris Proctor, organiser of the &lt;a href="http://firsthandtechnology.org.uk"&gt;First Lego League&lt;/a&gt; in the UK, as well as my UK colleague Daniel Sumner, I was able to borrow more Lego NXT robots enough to allow ten robotic teams. With Mr Cowan’s and the support of senior teaching staff, we were then able to run the workshop twice a day for two consecutive Saturdays and allow all 145 students to take part! &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Primary School club&lt;/strong&gt;. Keen to support my local school, I was able to attend the after school Lego Club with my NXT robots (MS actually paid for them!!). In the brief hour after school, for a whole term, we built and programmed the robots to complete Lego missions on one of the First Lego League challenges. Fantastic fun, for boys and girls aged only 8yo. It never stops to amaze me how our children can rise to any challenge given the opportunity to participate.&lt;/p&gt;  &lt;p&gt;My most recent adventure was to present a ‘Microsoft and me’ session for a local careers event for high school students. The event was full of fun with Thrust SSC engineers and a British Airways hostess presenting amongst others. I had a smallish group attend my session – an affect of the standardised lacklustre ITC classes I suspect. We had a great interactive session with discusses covering a range of topics including competitive angles. I enjoyed myself very much and today got some nice feedback from the students eval forms including comments like ‘Why can’t we have an IT teacher like that’ and ‘ Paul Foster is cool’. :-)&lt;/p&gt;  &lt;p&gt;My latest project is to try to support a collection of schools in Uganda. They have very little access to computers and therefore the internet, but the teaching staff want to be part of the internet phenomenon and to share their schools stories. By using their mobile phones or dial-up cyber cafes the teachers want to publish what their students are doing. Having got joined up with a UK volunteer recently back from Uganda, thanks to the Films for learning community, I’m now building out a hosted web server that will be able to support not just one school but as many of the local schools as would like to take part. I’m talking to a UK hosting company about their dedicated server products and hope to have the site up and running before Christmas.&lt;/p&gt;  &lt;p&gt;Projects like all of these demonstrate just how powerful software is. As Ray Ozzie says, in one of our new employee induction videos, ‘with software, if you can imagine it, you can build it’.&amp;#160; &lt;/p&gt;  &lt;p&gt;For me, being part of software that does change the world, making a positive contribution to all, makes me proud, excited and humbled. &lt;/p&gt;  &lt;p&gt;I am one of many at Microsoft who does this sort of stuff. We are Microsoft, Microsoft is us. We are a force for good, and all the competitor FUD and the rubbish urban myths will not change us.&lt;/p&gt;  &lt;p&gt;I’m a PC, and I’m going to change the world for the better.&lt;/p&gt;  &lt;p&gt;CROSS POST FROM: &lt;a href="http://wotudo.net"&gt;http://wotudo.net&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911371" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Education/">Education</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/MICROSOFT/">MICROSOFT</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/IAMPC/">IAMPC</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Paul+Foster/">Paul Foster</category></item><item><title>Widget development in Windows Mobile 6.5</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/widget-development-in-windows-mobile-6-5.aspx</link><pubDate>Thu, 22 Oct 2009 08:42:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911203</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9911203</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/widget-development-in-windows-mobile-6-5.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/widget-development-in-windows-mobile-6-5.aspx";digg_title = "Widget development in Windows Mobile 6.5";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;I had two sessions to present at &lt;a href="http://overtheair09.org" target="_blank"&gt;Over The Air 09&lt;/a&gt;. The first was all about the new &lt;a href="http://wotudo.net/files/folders/how2/entry487.aspx" target="_blank"&gt;Widget runtime included in Windows Mobile 6.5&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The runtime brings a Microsoft implementation of W3C Widget support to Windows Mobile for the first time. Our implementation is coupled with the launch of our very own mobile application Marketplace – this goes live with the launch of Windows Mobile 6.5 devices on the 6th Oct – allowing Widgets and native code applications (&amp;lt;10mb in size) to be sold directly to Windows Mobile 6 and upward devices.&lt;/p&gt;  &lt;p&gt;If you are new to Widgets then here is a summary: The widget ideal is to be able to build mobile applications using web development skills – HTML, Script and AJAX. They are installed on the device and look like a native application with just enough device integration to use soft keys and device state.&lt;/p&gt;  &lt;p&gt;So what is in our Widget implementation.&lt;/p&gt;  &lt;p&gt;Firstly, we&amp;#160; are using the Internet Explorer 6 HTML presentation engine (HTML Control). This is coupled with most of the IE8 script engine. These are brought together in the Widget runtime application called RIAHOST.EXE.&lt;/p&gt;  &lt;p&gt;RIAHost adds other stuff, including shell support for devices with touch, soft keys and importantly the Widget object.&lt;/p&gt;  &lt;p&gt;The Widget object allows the Widget programmer to reach beyond the Widget into the state of the device. Being able to determine things like signal and battery strength. If the widget is in focus or hidden. As well as many other things.&lt;/p&gt;  &lt;p&gt;Widgets are brilliant but I immediately want to do more with my Widgets.&lt;/p&gt;  &lt;p&gt;I think, for Widgets to be successful the developer must make them Smart Widgets. Rather than just using them as installed ‘web pages’ Widgets need to know when to start and when to stop doing stuff. The widget that continually calls a web service data update even when it is no longer ‘visible’ to the end user is going to drain the device battery and drive up the users data plan bill!&lt;/p&gt;  &lt;p&gt;With the Widget object, we can get hold of when the device is in focus and when it is hidden – allowing us to start or stop doing stuff. We can also tell if the user is roaming or on their home network – a smart widget might do less data traffic when roaming, or at least remind the user of the potential cost while roaming.&lt;/p&gt;  &lt;p&gt;Widgets can use a local data persistence. Each field stored can be up to 4000bytes. This allows Widgets to have another trick – the perceived performance trick. Performance exists into states – perceived performance is the performance the user sees on their device. Real performance is how practical it is to make a device really do something. They are two different things, with perceived performance being more important than real performance. A smart Widget developer will ensure the perceived performance of their widget is fast. They can do this by making only asynchronous web service calls and by using only stored state on startup – thus removing any ‘web update’ delay.&lt;/p&gt;  &lt;p&gt;What I like even more about the Widget object is that it can be extended. This means over time as more W3C standard interfaces for device service (like geolocation for example) are delivered, then this functionality can be added to WM 6.5 devices. It also means that WM 6.5 devices are open for developers to&amp;#160; innovate and deliver some leading edge solutions!&lt;/p&gt;  &lt;p&gt;Let me give you a quick run down of how this works.&lt;/p&gt;  &lt;p&gt;Are you a COM programmer? Probably not – so let me just tell you something. Windows has all manner of different levels of interoperability, applicable to many different technologies and skill sets. At the fundamental core of Windows is COM. If you can’t extend or subvert Windows functions by any other means you are 99% likely to be able to do it at the COM level.&lt;/p&gt;  &lt;p&gt;The Widget object is implemented with support for the IDispatchEX COM interface. IDispatch is the typical COM automation interface. IDispatchEX – or EXpanded – allows a COM object’s IDispatch interface – which normally reports a static list of method calls – to be extended at runtime with more method calls.&lt;/p&gt;  &lt;p&gt;In a nut shell, Widget has a base level of functionality, which by using the IDispatchEX functionality we can add more functionality too. Quite literally, your new object’s methods appear on the Widget object. For example, Widget.MyMethod().&lt;/p&gt;  &lt;p&gt;How do you do this? Well because Widget has the IDispatchEX, all we have to do is implement a normal IDispatch on our component. This presents method and properties that can be called from our component and that will appear on Widget.&lt;/p&gt;  &lt;p&gt;We have to create a CAB installation file for our component – Widgets aren’t allowed to have ActiveX components in their installation package. This does present an initial installation issue, but basically your Widget needs to test for the existence of the dependant component/s and if they aren’t there redirect the user to the CAB URL so that this can be installed on first use. There after, the component/s will be available to the Widget and any other Widgets that want them.&lt;/p&gt;  &lt;p&gt;There is one more ‘special bit’. To tell Widget that our component is designed to extend it we have to set a registry key. This can be easily done by including the key definition in the CAB installation file for the component. &lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Widgets\ObjectModels\&amp;lt;ObjectName&amp;gt;]&amp;#160;&amp;#160;&amp;#160; &amp;quot;CLSID&amp;quot;=&amp;quot;{GUID}“&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Where GUID is the GUID of your component control implementation.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;A small aside here. My device was running a near final but not final build of Windows Mobile 6.5. When I looked in the device registry to set this key I discovered my ObjectModels was actually BuiltinObjectModels. All the documentation I have seen says it is ObjectModels, but adding the above key to BuiltinObjectModels worked for me :-) Once it worked I didn’t go back to try doing it with a ObjectModels key – sorry pressures of work.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;With that done, and the component installed, our Widget can take advantage of our new functionality using script like this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;Var myObj = widget.createObject(“ObjectName”);&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;myObj.MyMethod();&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What might that new functionality be? Well it could be new W3C bits as they are defined. But what about that intellectual property of yours that you’d prefer not to implement in script for the world to easily see. Or many you just need some additional native code features to help exploit device capability.&lt;/p&gt;  &lt;p&gt;Using this feature means you can achieve all sorts of exciting stuff with your Widgets – or in fact, your exciting stuff can become the basis for other peoples widgets too.&lt;/p&gt;  &lt;p&gt;I’m currently exploring an Augmented Reality framework that could be implemented for Widgets to exploit. This needs some camera integration not available to the Widget script engine. A widget extension object might just be the way to go.&lt;/p&gt;  &lt;p&gt;I’m posting my extended widget source code on the &lt;a href="http://wotudo.net/files/folders/how2/entry504.aspx" target="_blank"&gt;downloads section&lt;/a&gt; of this site. Please also see the session slides PDF for more detail and do take a look a the &lt;a href="http://windowsteamblog.com/blogs/windowsphone/default.aspx" target="_blank"&gt;WindowsMobile team’s blog&lt;/a&gt; – Jorge is doing an awesome job filling in the detail on &lt;a href="http://windowsteamblog.com/blogs/windowsphone/archive/2009/09/22/widget-anatomy-performance-and-battery-life-the-final-frontier.aspx" target="_blank"&gt;Widget development&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There are also some helpful projects on &lt;a href="http://www.codeplex.com/site/search?projectSearchText=widget" target="_blank"&gt;Codeplex&lt;/a&gt; which provide Widget packaging, emulation and project templates for VS2008 and Expression Web.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911203" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Programming/">Programming</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPETeam/">UKDPETeam</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPE/">UKDPE</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+Mobile/">Windows Mobile</category></item><item><title>sidebar: Project Mobile AR</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/sidebar-project-mobile-ar.aspx</link><pubDate>Thu, 22 Oct 2009 08:40:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911202</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9911202</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/sidebar-project-mobile-ar.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/sidebar-project-mobile-ar.aspx";digg_title = "sidebar: Project Mobile AR";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;As discussed at the recent &lt;a href="http://overtheair.org" target="_blank"&gt;OTA09&lt;/a&gt; event, I’m working to build out an AR platform on Windows Mobile.&amp;#160; This is a ‘skunk works’ project filling my waking hours between work and the family.&lt;/p&gt;  &lt;p&gt;Currently, I’m exploring the DirectShow capabilities of the Windows Mobile device. DirectShow allows us to get hold of the device camera and provides a mechanism, via filters, to manipulate the video stream before rendering. &lt;/p&gt;  &lt;p&gt;I currently envision building a transform filter that will enable a form of the Windows Video Mixing Renderer on Windows Mobile. The filter would take layer definitions, graphics or video as an input for the AR elements.&lt;/p&gt;  &lt;p&gt;Performance is going to be a killer on these devices, so will see how rich the VMR functionality can be.&lt;/p&gt;  &lt;p&gt;I haven’t done any serious DirectShow stuff, my only experience comes from some work nearly a decade ok, so I’m ramping up my skills.&lt;/p&gt;  &lt;p&gt;One interesting Bing find, and a proof point for my envisioned solution, is &lt;a href="http://alexmogurenko.com/blog/" target="_blank"&gt;Alex Mogurenko’s&lt;/a&gt; excellent DirectShow.NetCF project. Alex provides two DLLs which implement a custom SampleGrabber filter, making it possible to build a simple .NET CF application that can display video preview and capture stills from the camera.&lt;/p&gt;  &lt;p&gt;My little WM6.5 test project is &lt;a href="http://wotudo.net/files/folders/how2/entry531.aspx" target="_blank"&gt;here&lt;/a&gt; (.Net CF 3.5 app). It works well, performance lags compared to the native HTC Camera application, but not by much. I need to explore this in more detail.&lt;/p&gt;  &lt;p&gt;Following Alex’s lead, I’ll be implementing my own filter next and aiming in the end to provide an AR solution to .NET CF developers. Once I get this going I’ll publish the project on Codeplex.&lt;/p&gt;  &lt;p&gt;TTFN&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911202" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPETeam/">UKDPETeam</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPE/">UKDPE</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+Mobile/">Windows Mobile</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Augmented+Reality/">Augmented Reality</category></item><item><title>Windows 7 application UI enhancements</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/windows-7-application-ui-enhancements.aspx</link><pubDate>Thu, 22 Oct 2009 08:38:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911201</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9911201</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/windows-7-application-ui-enhancements.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/windows-7-application-ui-enhancements.aspx";digg_title = "Windows 7 application UI enhancements";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;Heya, how’s it going?&lt;/p&gt;  &lt;p&gt;If you have Windows applications built using .Net you may be wondering how to add all the cool new Windows 7 taskbar and common dialog features? These are all accessible as native api but we’re in .Net dude – looks like we’re pinvoking!&lt;/p&gt;  &lt;p&gt;Thankfully, all this work has been done for us in the &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows API Code Pack for Microsoft .Net Framework&lt;/a&gt;. We’ll just refer to it as the code pack from here on.&lt;/p&gt;  &lt;p&gt;The code pack is an evolution of the Windows Vista Bridge sample. It has been extended with some of the new Windows 7 API functions.&lt;/p&gt;  &lt;p&gt;Using the code pack – which is a accessible as a static library in our applications – you can do stuff like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows 7 Taskbar Jump Lists, Icon Overlay, Progress Bar, Tabbed Thumbnails, and Thumbnail Toolbars. &lt;/li&gt;    &lt;li&gt;Windows 7 Libraries, Known Folders, non-file system containers. &lt;/li&gt;    &lt;li&gt;Windows Shell Search API support, a hierarchy of Shell Namespace entities, and Drag and Drop functionality for Shell Objects. &lt;/li&gt;    &lt;li&gt;Explorer Browser Control. &lt;/li&gt;    &lt;li&gt;Shell property system. &lt;/li&gt;    &lt;li&gt;Windows Vista and Windows 7 Common File Dialogs, including custom controls. &lt;/li&gt;    &lt;li&gt;Windows Vista and Windows 7 Task Dialogs. &lt;/li&gt;    &lt;li&gt;Direct3D 11.0, Direct3D 10.1/10.0, DXGI 1.0/1.1, Direct2D 1.0, DirectWrite, Windows Imaging Component (WIC) APIs. (DirectWrite and WIC have partial support) &lt;/li&gt;    &lt;li&gt;Sensor Platform APIs &lt;/li&gt;    &lt;li&gt;Extended Linguistic Services APIs &lt;/li&gt;    &lt;li&gt;Power Management APIs &lt;/li&gt;    &lt;li&gt;Application Restart and Recovery APIs &lt;/li&gt;    &lt;li&gt;Network List Manager APIs &lt;/li&gt;    &lt;li&gt;Command Link control and System defined Shell icons. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To start making your application ‘light up’ on Windows 7 consider how easily you can add the following functionality by reviewing the linked videos. Each video is less than 2mins in length – demonstrating just how quickly you can enhance you application with the latest Windows 7 stuff!&lt;/p&gt;  &lt;p&gt;Add a Windows Explorer control to enhance user navigation.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ec0587d5-e66e-41d3-be0f-18a0f6055a57" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=LexvSBkmP8A&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/video5bfa0737ef9e_56FB3E8B.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Use the latest up to date Common File Dialog&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:e36b0499-f9e5-435e-ab0c-a52f1c8c12a5" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=DIoJ233T0JY&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/videob617e2e34560_1F850790.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Add taskbar features to your application such as:&lt;/p&gt;  &lt;p&gt;Jump lists&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:3a1774db-fc6a-4717-9aa7-c9473db2f1c5" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=5mJ-4BTA3yg&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/video9121b2511a43_35F7A617.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Progress bars&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:d3ebdb67-3f08-4b90-a0e5-1f24fdd8f1cd" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=5mJ-4BTA3yg&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/videoe527f894e4a2_2FD0597C.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Overlay images&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:06b33133-c58e-4705-acfc-01e5c46295e8" class="wlWriterSmartContent"&gt;   &lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Nh5029T9gUo&amp;amp;feature=player_profilepage" target="_new"&gt;&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" alt="" src="http://wotudo.net/blogs/wotudo/video7a8eebf32e18_588BBEC5.jpg" galleryimg="no" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;We’ll cover more advanced code pack features over the coming weeks, but get these enhancements sorted in your app ASAP.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911201" width="1" height="1"&gt;</description></item><item><title>Making your app shine on Windows 7: Tabbed Thumb Nails</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-tabbed-thumb-nails.aspx</link><pubDate>Thu, 22 Oct 2009 08:38:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911200</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9911200</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-tabbed-thumb-nails.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-tabbed-thumb-nails.aspx";digg_title = "Making your app shine on Windows 7: Tabbed Thumb Nails";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;This post is one in a series of posts covering the &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows API Code Pack&lt;/a&gt;. The code pack provides a managed code framework for using the new native Windows 7 features.&lt;/p&gt;  &lt;p&gt;In this post we’ll examine how to implement thumbnail previews for a tabbed application UI. We’ll add to each thumbnail preview some buttons to control our application directly from the preview thumbnail. You need to be using .Net 3.5 SP1.&lt;/p&gt;  &lt;p&gt;I used a simple C# Winforms project to test this all out. You’ll need to add five references:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;WindowsBase&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;PresentationCore&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;PresentationFramework&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;Microsoft.WindowsAPICodePack&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;Microsoft.WindowsAPICodePack.Shell&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The code pack framework provides Integration to the Windows 7 thumbnail preview via the TaskbarManager class. The class contains four methods and five properties. The methods mainly deal with the overlay of icons onto the taskbar icon and the progress bar overlay that I’m sure you are already familiar with in Windows 7.&lt;/p&gt;  &lt;p&gt;The properties are the interesting bits for using thumbnail previews. The first property is a a boolean flag – IsPlatformSupported - to indicate if the current platform your app is running on can support thumbnails. Then you have Instance and ApplicationId. Instance represents the Windows Taskbar, and ApplicationId is the unique identifier for your application.&lt;/p&gt;  &lt;p&gt;Then you have the two most useful properties; the TabbedThumbnail and ThumbnailToolbars. These get the manager class for each type allowing you to add and update the thumbnail previews associated with your application and the toolbars that may also exist for each of the previews for your application. Yes each preview could have a different toolbar for each tabbed thumbnail.&lt;/p&gt;  &lt;p&gt;To add support to your application for thumbnail previews all you have to do is populate and maintain these two collections as necessary for your application. Because the code pack framework is provided as a static library doing this is very simple. &lt;/p&gt;  &lt;p&gt;I have a tabcontrol in my Winforms app that allows me to add new tabs containing new instances of the WebBrowser control. In my add new tab button click event I run the following code:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:95980625-4c44-400f-9055-3cadbf0248c9" class="wlWriterSmartContent"&gt;   &lt;div style="border-bottom: #000080 1px solid; border-left: #000080 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; color: #000; font-size: 10pt; border-top: #000080 1px solid; border-right: #000080 1px solid"&gt;     &lt;div style="padding-bottom: 2px; padding-left: 5px; padding-right: 5px; font-family: verdana, tahoma, arial, sans-serif; background: #000080; color: #fff; font-weight: bold; padding-top: 2px"&gt;Code Snippet&lt;/div&gt;      &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt;       &lt;ol style="padding-bottom: 0px; margin: 0px 0px 0px 2.5em; padding-left: 5px; padding-right: 0px; background: #ffffff; padding-top: 0px"&gt;         &lt;li&gt;&lt;span style="color: #2b91af"&gt;TabPage&lt;/span&gt; newTab = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TabPage&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;Tab &amp;quot;&lt;/span&gt; + tabControl1.TabPages.Count + 1); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;tabControl1.TabPages.Add(newTab); &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #2b91af"&gt;WebBrowser&lt;/span&gt; wb = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;WebBrowser&lt;/span&gt;(); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;wb.DocumentTitleChanged += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;(wb_DocumentTitleChanged); &lt;/li&gt;          &lt;li&gt;wb.DocumentCompleted += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;WebBrowserDocumentCompletedEventHandler&lt;/span&gt;(wb_DocumentCompleted); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;wb.Navigated += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;WebBrowserNavigatedEventHandler&lt;/span&gt;(wb_Navigated); &lt;/li&gt;          &lt;li&gt;wb.Dock = &lt;span style="color: #2b91af"&gt;DockStyle&lt;/span&gt;.Fill; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;wb.Navigate(textBox1.Text); &lt;/li&gt;          &lt;li&gt;newTab.Controls.Add(wb); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #008000"&gt;// Add thumbnail toolbar buttons&lt;/span&gt; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&lt;span style="color: #2b91af"&gt;TaskbarManager&lt;/span&gt;.Instance.ThumbnailToolbars.AddButtons(newTab.Handle, thumbButtonBack, thumbButtonForward, thumbButtonRefresh); &lt;/li&gt;          &lt;li&gt;&amp;#160; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&lt;span style="color: #008000"&gt;// Add a new preview&lt;/span&gt; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #2b91af"&gt;TabbedThumbnail&lt;/span&gt; preview = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TabbedThumbnail&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Handle, newTab.Handle); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #008000"&gt;// Event handlers for this preview&lt;/span&gt; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;preview.TabbedThumbnailActivated += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;TabbedThumbnailEventArgs&lt;/span&gt;&amp;gt;(preview_TabbedThumbnailActivated); &lt;/li&gt;          &lt;li&gt;preview.TabbedThumbnailClosed += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;TabbedThumbnailEventArgs&lt;/span&gt;&amp;gt;(preview_TabbedThumbnailClosed); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;preview.TabbedThumbnailMaximized += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;TabbedThumbnailEventArgs&lt;/span&gt;&amp;gt;(preview_TabbedThumbnailMaximized); &lt;/li&gt;          &lt;li&gt;preview.TabbedThumbnailMinimized += &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;EventHandler&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;TabbedThumbnailEventArgs&lt;/span&gt;&amp;gt;(preview_TabbedThumbnailMinimized); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #2b91af"&gt;TaskbarManager&lt;/span&gt;.Instance.TabbedThumbnail.AddThumbnailPreview(preview); &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #008000"&gt;// Select the tab in the application UI as well as taskbar tabbed thumbnail list&lt;/span&gt; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;tabControl1.SelectedTab = newTab; &lt;/li&gt;          &lt;li&gt;&lt;span style="color: #2b91af"&gt;TaskbarManager&lt;/span&gt;.Instance.TabbedThumbnail.SetActiveTab(tabControl1.SelectedTab); &lt;/li&gt;       &lt;/ol&gt;     &lt;/div&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;As you can see. I add a new tabpage, create a new instance of a WebBrowser control. Tie some events to it – these have meaningful code in them ensuring the correct thumbnail behaviour occurs on the Taskbar – and add the browser control to the tabpage.&lt;/p&gt;  &lt;p&gt;Then I add the ThumbnailToolbars buttons. These have already been defined at class level.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c49cecd1-0b83-4dd6-bee7-e83e91fb0ef6" class="wlWriterSmartContent"&gt;   &lt;div style="border-bottom: #000080 1px solid; border-left: #000080 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; color: #000; font-size: 10pt; border-top: #000080 1px solid; border-right: #000080 1px solid"&gt;     &lt;div style="padding-bottom: 2px; padding-left: 5px; padding-right: 5px; font-family: verdana, tahoma, arial, sans-serif; background: #000080; color: #fff; font-weight: bold; padding-top: 2px"&gt;Code Snippet&lt;/div&gt;      &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt;       &lt;ol style="padding-bottom: 0px; margin: 0px 0px 0px 2em; padding-left: 5px; padding-right: 0px; background: #ffffff; padding-top: 0px"&gt;         &lt;li&gt;&amp;#160; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ThumbnailToolbarButton&lt;/span&gt; thumbButtonBack; &lt;/li&gt;          &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ThumbnailToolbarButton&lt;/span&gt; thumbButtonForward; &lt;/li&gt;          &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #2b91af"&gt;ThumbnailToolbarButton&lt;/span&gt; thumbButtonRefresh; &lt;/li&gt;       &lt;/ol&gt;     &lt;/div&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Then a new instance of a TabbedThumbnail is created naming the Windows handle and the new tabpage handle. Following this the event handlers for the thumbnail toolbar buttons are attached.&lt;/p&gt;  &lt;p&gt;Our TabbedThumbnail definition is then added to the Taskbar instance’s collection of TabbedThumbnails. And finally, we ensure the new tabpage is the current tabpage in focus on the tabcontrol and on the taskbar.&lt;/p&gt;  &lt;p&gt;The rest of the code in the application ensures that when tabpages are changed in the tabcontrol the preview thumbnails are synchronised. And likewise, when preview thumbnails are selected or hovered over the correct tabpage is brought to focus.&lt;/p&gt;  &lt;p&gt;The end result lookis like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://wotudo.net/blogs/wotudo/image_11CB0883.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://wotudo.net/blogs/wotudo/image_thumb_7EE65F0B.png" width="475" height="259" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There are all sorts of additional goodies in the TabbedThumbnail class properties that allow you to clip the bitmap and effective zoom into it as well as provide tooltips etc.&lt;/p&gt;  &lt;p&gt;Adding thumbnail previews to your applications seems a small effort for achieving one of the most visible enhancements in the Windows 7 UI. The code pack API makes it easy to do.&lt;/p&gt;  &lt;p&gt;My complete application can be downloaded from &lt;a href="http://wotudo.net/files/folders/how2/entry544.aspx" target="_blank"&gt;here&lt;/a&gt;. It is a simplified version of the code pack Thumbnail sample.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911200" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Programming/">Programming</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPETeam/">UKDPETeam</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPE/">UKDPE</category></item><item><title>XNA 3.1 install onto Windows 7</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/xna-3-1-install-onto-windows-7.aspx</link><pubDate>Thu, 22 Oct 2009 08:37:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911198</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9911198</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/xna-3-1-install-onto-windows-7.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/xna-3-1-install-onto-windows-7.aspx";digg_title = "XNA 3.1 install onto Windows 7";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;I nuked my machines to move up to a clean build of Windows 7 RTM. In rebuilding them I hit a snag with the XNA3.1 install. The install would start and then rollback just after the redistributables copy started.&lt;/p&gt;  &lt;p&gt;To overcome this issue I set the runtime compatibility of the XNA 3.1 install file to be Windows Vista Service Pack 2 – you do this from the file property dialog. Re-running the XNA 3.1 install it all worked fine.&lt;/p&gt;  &lt;p&gt;On starting VS2008 Pro I see that I have both XNA 3.0 and XNA 3.1 project templates available.&lt;/p&gt;  &lt;p&gt;A quick test building the platform game and everything looks good.&lt;/p&gt;  &lt;p&gt;Now I just need a Zune HD!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911198" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/XNA/">XNA</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Programming/">Programming</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category></item><item><title>Making your app shine on Windows 7: Jumplist</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-jumplist.aspx</link><pubDate>Thu, 22 Oct 2009 08:35:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911196</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9911196</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-jumplist.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:right; margin:0px; padding:0px 0px 4px 8px;"&gt;&lt;script type="text/javascript"&gt;digg_url = "http://blogs.msdn.com/paulfo/archive/2009/10/22/making-your-app-shine-on-windows-7-jumplist.aspx";digg_title = "Making your app shine on Windows 7: Jumplist";digg_bgcolor = "#FFFFFF";digg_skin = "normal";&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;digg_url = undefined;digg_title = undefined;digg_bgcolor = undefined;digg_skin = undefined;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;This post is one in a series of posts covering the Windows API Code Pack. The code pack provides a managed code framework for using the new native Windows 7 features.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After thumbnail previews the next item you’ll be looking to implement for your application is a Jumplist. A Jumplist may provide shortcuts to recent documents, frequently use documents and application functionality.&lt;/p&gt;  &lt;p&gt;Setting up a jumplist for your application is as simple as simple can be using the code pack managed API – but there are some gotchas worth noting.&lt;/p&gt;  &lt;p&gt;First, you have to have a valid active window on the taskbar before you can create your jumplist. This isn’t obvious – except when you get the code pack’s error message on first run of your modified application. Remember, in working with the new Taskbar features, you are actually providing the Taskbar with details you want it to attribute to your application. If it doesn’t know about your application, it can’t take your details.&lt;/p&gt;  &lt;p&gt;Second, the code pack API does a good job of proactive error detection. For example, it’ll test to make sure the file you want to list on your jumplist exists. If it doesn’t you get blown out before you get near the Taskbar. The same with file associations. The code pack tests for the file association relationship to your application. If it doesn’t you can’t list the file. For more details on this one, look at the code pack TaskBarDemo sample. You might wonder why this extreme protection. The answer lines in the third gotcha.&lt;/p&gt;  &lt;p&gt;Third, the known category types (Recent, Frequent) are populated by the Taskbar for your application ‘automagically’. So you only have to choose to show one of these categories in your jumplist to get the information displayed. This is because Windows maintains a recent items history infrastructure when you use the current common file dialogs( or explicitly call the relevant API). If you don’t use them (why?), you can hand code this mechanism by using the shell API SHAddToRecentDocs or the code pack’s jumplist.AddToRecent method.&lt;/p&gt;  &lt;p&gt;Fourth, the code pack’s jumplist does a lot of good stuff. This includes maintaining your jumplist against the removed items list created by the user. You may want to have all the items in the jumplist but the user can selectively remove file references from your list. It’s considered bad form to keep putting the item back when the user has removed it, jumplist ensures you don’t make this mistake. If you don’t use jumplist you have to check the removedDestinations property and modify the list yourself.&lt;/p&gt;  &lt;p&gt;Now lets look at the code. Below is the specific parts of a C# Winforms application showing the creation of a jumplist:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1a3f340c-075a-4bfb-8c11-47c874c73707" class="wlWriterSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #000080; color: #fff; font-family: Verdana, Tahoma, Arial, sans-serif; font-weight: bold; padding: 2px 5px"&gt;Code Snippet&lt;/div&gt; &lt;div style="background: #ddd; max-height: 500px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;partial&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Form1&lt;/span&gt; : &lt;span style="color:#2b91af"&gt;Form&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpList&lt;/span&gt; jumpList;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListCustomCategory&lt;/span&gt; category1 = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListCustomCategory&lt;/span&gt;(&lt;span style="color:#a31515"&gt;&amp;quot;Custom Stuff&amp;quot;&lt;/span&gt;);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListCustomCategory&lt;/span&gt; category2 = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListCustomCategory&lt;/span&gt;(&lt;span style="color:#a31515"&gt;&amp;quot;Custom Stuff2&amp;quot;&lt;/span&gt;);&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; Form1()&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;InitializeComponent();&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; Form1_Shown(&lt;span style="color:#0000ff"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af"&gt;EventArgs&lt;/span&gt; e)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// create a new taskbar jump list for the main window&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList = &lt;span style="color:#2b91af"&gt;JumpList&lt;/span&gt;.CreateJumpList();&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Add custom categories&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddCustomCategories(category1, category2);&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;AddTasks();&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.Refresh();&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; AddTasks()&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Path to Windows system folder&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; systemFolder = &lt;span style="color:#2b91af"&gt;Environment&lt;/span&gt;.GetFolderPath(&lt;span style="color:#2b91af"&gt;Environment&lt;/span&gt;.&lt;span style="color:#2b91af"&gt;SpecialFolder&lt;/span&gt;.System);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000"&gt;// Add our user tasks&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddUserTasks(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListLink&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;notepad.exe&amp;quot;&lt;/span&gt;), &lt;span style="color:#a31515"&gt;&amp;quot;Open Notepad&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;IconReference = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IconReference&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;notepad.exe&amp;quot;&lt;/span&gt;), 0)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;});&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddUserTasks(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListLink&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;mspaint.exe&amp;quot;&lt;/span&gt;), &lt;span style="color:#a31515"&gt;&amp;quot;Open Paint&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;IconReference = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IconReference&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;mspaint.exe&amp;quot;&lt;/span&gt;), 0)&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;});&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddUserTasks(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListSeparator&lt;/span&gt;());&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;jumpList.AddUserTasks(&lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;JumpListLink&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;calc.exe&amp;quot;&lt;/span&gt;), &lt;span style="color:#a31515"&gt;&amp;quot;Open Calculator&amp;quot;&lt;/span&gt;)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;IconReference = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;IconReference&lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Path&lt;/span&gt;.Combine(systemFolder, &lt;span style="color:#a31515"&gt;&amp;quot;calc.exe&amp;quot;&lt;/span&gt;), 0)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;});&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;All the work is kicked off in the form’s Shown event. With the creation of a jumplist. Two custom categories are added to it. Then some tasks are added that open other applications. The jumplist is ‘published’ by calling jumplist.refresh();&lt;/p&gt;  &lt;p&gt;Remember the Jumplist is created by the Taskbar for your application. Unlike the Thumbnail preview toolbars there doesn’t appear to be a mechanism of capturing jumplist events into your application. The only event raised by jumplist is when items have been removed from the jumplist since the last jumplist refresh occurred. This means achieving something similar to Internet Explorer 8’s Open new tab jumplist task, requires an ‘external’ communication to occur with your application.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911196" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Programming/">Programming</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPETeam/">UKDPETeam</category></item><item><title>VS2010, .Net 4 and Windows 7 Multitouch WPF apps!</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/06/17/vs2010-net-4-and-windows-7-multitouch-wpf-apps.aspx</link><pubDate>Wed, 17 Jun 2009 19:14:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9769772</guid><dc:creator>paulfo</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9769772</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/06/17/vs2010-net-4-and-windows-7-multitouch-wpf-apps.aspx#comments</comments><description>&lt;p&gt;Hi all,&lt;/p&gt; &lt;p&gt;I've been doing a little playing around with MT on Win7 using the VS2010 and .Net 4 Beta 1 to get some WPF MT demos running.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here are the videos!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Basic how to get MT going code example:&lt;/p&gt; &lt;p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:5dd14cb3-8351-4abf-b097-19868a6395a3" class="wlWriterEditableSmartContent"&gt;&lt;div id="0b18006b-ddeb-4523-9faa-3102edfa0bc9" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=0DM7NQJ0NA4" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/VS2010.Net4andWindows7MultitouchWPFapps_F26D/video8d6099bad1ff.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('0b18006b-ddeb-4523-9faa-3102edfa0bc9'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/0DM7NQJ0NA4&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/0DM7NQJ0NA4&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;Some internal demos that I've made to work on VS2010 and .Net4 beta 1 - using a WPF4 implementation of the Surface ScatterView control (or something that looks a lot like it)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:83147658-e782-46f5-9b9e-386ed7ff067a" class="wlWriterEditableSmartContent"&gt;&lt;div id="c1b90f04-e5b6-4bfd-a25c-24ae07912413" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=CHsqS2QnR14" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/VS2010.Net4andWindows7MultitouchWPFapps_F26D/video58cf00eb3ad5.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('c1b90f04-e5b6-4bfd-a25c-24ae07912413'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/CHsqS2QnR14&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/CHsqS2QnR14&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt; &lt;p&gt;Get building with WPF 4 in MT! I'm using the Codeplex MultitouchVista project which now has a Win7 driver. Works really well - very sweet when you don't have any MT kit!!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9769772" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPETeam/">UKDPETeam</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPE/">UKDPE</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/WPF/">WPF</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/multitouch/">multitouch</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/VS2010/">VS2010</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/-Net4/">.Net4</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/WPF4/">WPF4</category></item><item><title>XNA UK Bar Camp 21st March</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/03/17/xna-uk-bar-camp-21st-march.aspx</link><pubDate>Tue, 17 Mar 2009 12:41:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9483128</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9483128</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/03/17/xna-uk-bar-camp-21st-march.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/XNAUKBarCamp21stMarch_884F/XNAa_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 0px 0px; border-right-width: 0px" height="164" alt="XNAa" src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/XNAUKBarCamp21stMarch_884F/XNAa_thumb.jpg" width="223" align="left" border="0"&gt;&lt;/a&gt;Are getting ready to come to XNA Camp? We have a great selection of speakers AND creators club memberships to give away to attendees (4mths) and speakers (12mths). Everything in fact to get you building games or building more advanced games! With the new Community Games channel on Xbox Live you could also make some money!!!  &lt;p&gt;The XNA UK user group is a great gang of hobbyists, students and professional games developers. Always happy to help fellow game builders the user group provides a wealth of experience and resources to tap into. Why not join us in Birmingham at the Aston Science Park between 09:30 and 18:00. I'm giving the opening session on recent XNA and related technology announcements, then we have an open floor for 20min sessions by attendees.  &lt;p&gt;Some of the speakers confirmed include:  &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Peter McGann - author of the recent PC Plus XNA series.&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;Edward Powell - explaining XNA Game Components &amp;amp; Services&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;Andrew Griffiths - telling us some of the shader tech behind the game Encroach.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;There are still a few more slots available so submit your presentation idea to &lt;a href="mailto:SlotBooker@xna-uk.net"&gt;SlotBooker@xna-uk.net&lt;/a&gt; and receive a 12month Creators Club membership after your presentation. Feel free to submit a XNA question you'd like answered by someone else!  &lt;p&gt;Projector and sound system is all provided by the venue - just bring your laptop to present from and to take part in the LAN party!  &lt;p&gt;Register at: &lt;a href="http://xna.icentrum.co.uk"&gt;http://xna.icentrum.co.uk&lt;/a&gt;  &lt;p&gt;Arrival time: 09:30  &lt;p&gt;Kick off at: 10:00  &lt;p&gt;A light buffet and refreshments will be available - sponsored by Microsoft.&amp;nbsp; &lt;p&gt;Hard close at: 18:00  &lt;p&gt;Venue address:  &lt;blockquote&gt; &lt;p&gt;iCentrum  &lt;p&gt;Aston Science Park  &lt;p&gt;Faraday Wharf  &lt;p&gt;Birmingham&amp;nbsp;&amp;nbsp; B7 4BB&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Car parking is available underneath this building in a pay and display.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9483128" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPETeam/">UKDPETeam</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UK/">UK</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/UKDPE/">UKDPE</category></item><item><title>1st XNA UK user group bar camp - registrations now open!</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/02/23/1st-xna-uk-user-group-bar-camp-registrations-now-open.aspx</link><pubDate>Mon, 23 Feb 2009 14:51:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9441260</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9441260</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/02/23/1st-xna-uk-user-group-bar-camp-registrations-now-open.aspx#comments</comments><description>&lt;p&gt;The first ever XNA UK user group bar camp is taking place on the 21st March at iCentrum in Birmingham. Book your attendance &lt;a href="http://xna.icentrum.co.uk/"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;There are 12 slots that can be pre-booked if you want to show off your latest XNA game for peer review, your latest coding/effect technique or even want to seek input on an XNA coding challenge you are facing! Each session lasts 20mins max (inc. setup).&lt;/p&gt; &lt;p&gt;You can pre-book a session or suggest a session topic by emailing &lt;a href="mailto:slotbooker@xna-uk.net"&gt;slotbooker@xna-uk.net&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The days agenda looks like this:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;09:30 Arrival and last chance to book a slot&lt;/p&gt; &lt;p&gt;10:00 Microsoft session on XNA and Community Games&lt;/p&gt; &lt;p&gt;11:00 Session time&lt;/p&gt; &lt;p&gt;15:00 LAN Party!!&lt;/p&gt; &lt;p&gt;18:00 Close&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;We will have the latest beta of Beatnik's Plain Sight to play during the lan party amongst some other games. This is also an excellent opportunity to use the iCentrum network for what they do best - testing! If you have an XNA multi-player game you'd like to test during the LAN party then please let us know by emailing &lt;a href="mailto:slotbooker@xna-uk.net"&gt;slotbooker@xna-uk.net&lt;/a&gt; so we can work the details out.&lt;/p&gt; &lt;p&gt;If you are new to or an old hand at XNA development there will be lots to discuss, learn and play with. &lt;a href="http://xna.icentrum.co.uk/"&gt;So book your place now!!!&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9441260" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/XNA/">XNA</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Xbox/">Xbox</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/XNAUK/">XNAUK</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/BarCamp/">BarCamp</category></item><item><title>Win 7 beta download stopping 10th Feb</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/02/06/win-7-beta-download-stopping-10th-feb.aspx</link><pubDate>Fri, 06 Feb 2009 14:41:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9401839</guid><dc:creator>paulfo</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9401839</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/02/06/win-7-beta-download-stopping-10th-feb.aspx#comments</comments><description>&lt;p&gt;The Windows 7 beta is only available until the 10&lt;sup&gt;th&lt;/sup&gt; February to download, &lt;a href="http://technet.microsoft.com/en-gb/windows/dd353205.aspx"&gt;so get your copy now&lt;/a&gt;! &lt;p&gt;MSDN and TechNet Subscribers will continue to have access to the Windows 7 Beta bits throughout the Windows 7 Beta phase. The above dates do not apply to MSDN and TechNet Subscribers.  &lt;p&gt;Product keys for the Windows 7 Beta will continue to be available. So if you have the Windows 7 Beta but didn’t get a product key you will be able to do so even after February 12th.  &lt;p&gt;To get more information on Windows 7, check out the following resources: &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-gb/windows/dd353205.aspx"&gt;Windows 7 TechCentre&lt;/a&gt; &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-gb/library/dd349348.aspx"&gt;Windows 7 Beta Deployment Guide&lt;/a&gt; &lt;p&gt;&lt;a href="http://social.technet.microsoft.com/Forums/en/category/w7itpro/"&gt;Windows 7 Forums&lt;/a&gt; &lt;p&gt;Visit the &lt;a href="http://blogs.technet.com/springboard/default.aspx"&gt;Springboard Series blog&lt;/a&gt; to keep an eye on all the announcements&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9401839" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category></item><item><title>London: Pluralsight courses coming up</title><link>http://blogs.msdn.com/b/paulfo/archive/2009/01/23/london-pluralsight-courses-coming-up.aspx</link><pubDate>Fri, 23 Jan 2009 14:13:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9372493</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9372493</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2009/01/23/london-pluralsight-courses-coming-up.aspx#comments</comments><description>&lt;p&gt;Scott Deadrick dropped me a note regarding some up coming Pluralsight courses. Details below:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;We have two, high profile instructors teaching three courses in London in the coming months. I thought your customers might be interested. Volume discounts are available. Details are as follows: &lt;p&gt;Aaron Skonnard [1], Microsoft MVP and DevWeek UK 2009 keynote presenter, Double Feature: WCF+WF -- &lt;p&gt;&lt;a href="http://www.pluralsight.com/main/ilt/course.aspx?id=AP14-AP16"&gt;http://www.pluralsight.com/main/ilt/course.aspx?id=AP14-AP16&lt;/a&gt; &lt;p&gt;16-20 February &lt;p&gt;08:00-18:00 each day with breakfast and lunch provided. &lt;p&gt;&amp;nbsp; &lt;p&gt;Ian Griffiths [2], Microsoft MVP and DevWeek UK 2009 presenter, WPF Fundamentals -- &lt;a href="http://www.pluralsight.com/main/ilt/course.aspx?id=AP15"&gt;http://www.pluralsight.com/main/ilt/course.aspx?id=AP15&lt;/a&gt; &lt;p&gt;10-13 March &lt;p&gt;09:00-17:00 each day with breakfast provided. &lt;p&gt;&amp;nbsp; &lt;p&gt;Ian Griffiths, &lt;p&gt;Silverlight Fundamentals -- &lt;p&gt;&lt;a href="http://www.pluralsight.com/main/ilt/Course.aspx?id=AP19"&gt;http://www.pluralsight.com/main/ilt/Course.aspx?id=AP19&lt;/a&gt; &lt;p&gt;21-24 April &lt;p&gt;09:00-17:00 each day with breakfast provided. &lt;p&gt;&amp;nbsp; &lt;p&gt;As an added bonus, attendees will receive a 12-month subscription, at no additional cost, to the online version of the course they attend, available in the Pluralsight On-Demand! library [3].&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;[1] &lt;a href="http://www.pluralsight.com/main/instructor.aspx?name=Aaron%20Skonnard"&gt;http://www.pluralsight.com/main/instructor.aspx?name=Aaron%20Skonnard&lt;/a&gt; &lt;p&gt;[2] &lt;a href="http://www.pluralsight.com/main/instructor.aspx?name=Ian%20Griffiths"&gt;http://www.pluralsight.com/main/instructor.aspx?name=Ian%20Griffiths&lt;/a&gt; &lt;p&gt;[3] &lt;a href="http://www.pluralsight.com/main/olt/default.aspx"&gt;http://www.pluralsight.com/main/olt/default.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9372493" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/London/">London</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Courses/">Courses</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Pluralsight/">Pluralsight</category></item><item><title>Seadragon Goes Mobile : Microsoft Live Labs</title><link>http://blogs.msdn.com/b/paulfo/archive/2008/12/15/seadragon-goes-mobile-microsoft-live-labs.aspx</link><pubDate>Mon, 15 Dec 2008 13:40:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9219893</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9219893</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2008/12/15/seadragon-goes-mobile-microsoft-live-labs.aspx#comments</comments><description>&lt;p&gt;Microsoft Live Labs has made available a mobile SeaDragon client for the iPhone you can get it from the iTunes App store. The application utilises the Sea Dragon platform to browse Deep Zoom images. Read more here: &lt;a href="http://livelabs.com/blog/seadragon-goes-mobile/"&gt;Seadragon Goes Mobile : Microsoft Live Labs&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9219893" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Microsoft+Live+Labs/">Microsoft Live Labs</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Sea+Dragon/">Sea Dragon</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/iPhone/">iPhone</category></item><item><title>Geek father and son xmas activity</title><link>http://blogs.msdn.com/b/paulfo/archive/2008/12/13/geek-father-and-son-xmas-activity.aspx</link><pubDate>Sat, 13 Dec 2008 23:42:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9211380</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9211380</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2008/12/13/geek-father-and-son-xmas-activity.aspx#comments</comments><description>&lt;p&gt;&lt;img align="left" src="http://www.quasarelectronics.com/images/velleman/mk100.jpg" /&gt;While I was away travelling this week the postie delivered a &lt;a target="_blank" href="http://www.quasarelectronics.com/velleman/mk100-electronic-christmas-tree-kit.htm"&gt;Vellemen Mk100T&lt;/a&gt; - a small electronics kit ideal for that first soldering project. There is just enough soldering for your offspring to learn and practice their technique. All this for under &amp;#163;6!!&lt;/p&gt;  &lt;p&gt;I used a film from &lt;a target="_blank" href="http://filmsforlearning.org/View.aspx?video=155&amp;amp;viewType=Tag&amp;amp;filterValue=solder"&gt;Filmsforlearning.org&lt;/a&gt; to show my eldest son what soldering is and how to do it safely. The kit uses LEDs, Resistors, Capacitors and Transistors - so excellent intro to basic electronics.&lt;/p&gt;  &lt;p&gt;It was a simple and fun activity for the pair of us to complete this pretty little geek Xmas decoration. My son's proud of his first soldering project and I'm proud of my son! At 8yos his awesome :-)&lt;/p&gt;  &lt;p&gt;Recommended as a Christmas holidays activity!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9211380" width="1" height="1"&gt;</description></item><item><title>Home automation - easily and cheaply</title><link>http://blogs.msdn.com/b/paulfo/archive/2008/12/10/home-automation-easily-and-cheaply.aspx</link><pubDate>Wed, 10 Dec 2008 18:25:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9191306</guid><dc:creator>paulfo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9191306</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2008/12/10/home-automation-easily-and-cheaply.aspx#comments</comments><description>&lt;p&gt;I've been playing with some of &lt;a href="http://www.diy.com/diy/jsp/bq/nav/nav.jsp?fh_view_size=6&amp;amp;fh_location=%2f%2fcatalog01%2fen_GB%2fcategories%3c%7b10082%7d%2fcategories%3c%7b8960089%7d%2fspecificationsProductType%3dhome_automation&amp;amp;fh_eds=%c3%9f&amp;amp;&amp;amp;_requestid=19803" target="_blank"&gt;B&amp;amp;Q's HomeEasy&lt;/a&gt; range of automation devices - &lt;a href="http://www.homeeasy.eu/home.php" target="_blank"&gt;switches and dimmers&lt;/a&gt;. These nicely designed pieces of kit are inexpensive - £20 will get you a remote and 3 on/off mains plugs. The remote controls and switches have a range of about 30metres - yes this is all RF stuff not your old world of X10 powerline comms.&lt;/p&gt; &lt;p&gt;There are several different product lines in the range - each with a different type of controller, but as you go up the line the controllers are able to control everything beneath them.&lt;/p&gt; &lt;p&gt;I first started with a middle of the range remote and two dimmer sockets. The remote is pretty cool because it has a built in scheduling function which enables you to setup events. For example, currently the Foster household Christmas lights are being driven by my on/off switches which run to several scheduled events during the day; namely sun rise and sun set.&lt;/p&gt; &lt;p&gt;Because the remote RF range is so big (30metres remember) I can have the one remote with scheduler placed in a central location able to control all the devices around my house. However, I was disappointed to discover that the range isn't long enough to pre-heat my log cabin office in the mornings :-(.&lt;/p&gt; &lt;p&gt;So the hardware is cool and cheap. The next good thing is that several good souls have already created the automation bits you need for Windows so your beloved computer can actually control your devices - rather than just the remote. Note this is a an AND situation. You can have several computer controllers and several remotes working with different mixes of your switches.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.xplmonkey.com/xpl.html" target="_blank"&gt;XPLMonkey&lt;/a&gt; has done most of the specific work for these devices. Based on the &lt;a href="http://www.xpl-home.org/forums/" target="_blank"&gt;open source xplHub project&lt;/a&gt; - these is a simple little .Net assembly you can use. XPLMonkey has created an xpl service for the &lt;a href="http://www.xplmonkey.com/rf.html" target="_blank"&gt;RFXCom RF&lt;/a&gt; controllers. These provide USB or network connected transmitters and receivers of RF automation protocols. The RFXCom devices are particularly cool because they support almost every RF automation frequency out there - enabling you to pick and choose which automation devices you want to use.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.xplmonkey.com/rf.html" target="_blank"&gt;XPLMonkey&lt;/a&gt; has a several examples and well written instructions to get you going quickly. However, the xplMCE client - a client for Windows Media Centre enabling automation actions to be triggered by Media Centre events (think DVD play causing lights to be dimmed, curtains drawn, projector and screen descend from the ceiling...) is stuck on the MCE 2005 (XP) platform. There seem to be some install issues under Windows Vista. Cough. I haven't had time to help resolve these&amp;nbsp; - yet!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Using the RFXCom device via the XPL infrastructure is SOOOO simple. You just create a message type, populate it and fire it off. And bang your lights go out. Or on depending on your action of course :-)&lt;/p&gt; &lt;p&gt;For example:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;XplMsg x = new XplMsg();&lt;br&gt;x.SourceVendor = "xpl";&lt;br&gt;x.SourceDevice = "xplhal";&lt;br&gt;x.SourceInstance = "paulfox2001";&lt;br&gt;x.MsgType = XplMsg.xPLMsgType.cmnd;&lt;br&gt;x.TargetVendor = "mal";&lt;br&gt;x.TargetDevice = "rfxcom";&lt;br&gt;x.TargetInstance = "rfxcom1";&lt;br&gt;x.Class = "homeeasy";&lt;br&gt;x.Type = "basic";&lt;br&gt;x.AddKeyValuePair("unit", "1");&lt;br&gt;x.AddKeyValuePair("level", "15");&lt;br&gt;x.AddKeyValuePair("address", "DimmerOne");&lt;br&gt;x.AddKeyValuePair("command", "on");&lt;br&gt;x.Send();&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This piece of code sets a dimmer controller to a level. The SourceInstance is my PC, the rfxcom1 is my RFXCom USB transmitter connected to the PC. Unit 1, in the message, is my first dimmer controller. You can name/pair off devices with controllers by putting the controllers into their configure state and sending an On command message to them via your transmitter.  &lt;p&gt;So lots of fun to be had over the Christmas hols with automation - did I mention B&amp;amp;Q have their HomeEasy products discounted right now?  &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9191306" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/B_2600_Q/">B&amp;Q</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/XPL/">XPL</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Home+Automation/">Home Automation</category></item><item><title>Tablets reborn</title><link>http://blogs.msdn.com/b/paulfo/archive/2008/12/02/tablets-reborn.aspx</link><pubDate>Tue, 02 Dec 2008 14:57:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9164261</guid><dc:creator>paulfo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9164261</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2008/12/02/tablets-reborn.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/Tabletsreborn_A825/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="175" alt="image" src="http://blogs.msdn.com/blogfiles/paulfo/WindowsLiveWriter/Tabletsreborn_A825/image_thumb.png" width="244" align="left" border="0"&gt;&lt;/a&gt; Have you seen the new &lt;a href="http://www.hp.com/united-states/campaigns/touchsmart/notebook/index.html?jumpid=reg_R1002_USEN" target="_blank"&gt;HP TouchSmart tx2&lt;/a&gt;? Development of the tablet PC now with HP's TouchSmart technology. It looks pretty awesome and is getting some good reviews but I could only find it on the US HP site - come on UK don't dilly dally!!&lt;/p&gt; &lt;p&gt;Key thing for me is if Windows 7 will support this device - if I can determine this than I'm going to be making another personal purchase real soon. At £799&amp;nbsp; expected RRP the family might have to miss out on a summer holiday &lt;strong&gt;again&lt;/strong&gt; - but I must have my precious!&lt;/p&gt; &lt;p&gt;Can't wait to get coding against a real multi-touch device under Windows 7 - its so COOL!!&lt;/p&gt; &lt;p&gt;I still have the HP TC1000 and TC1100 tablets - the forerunners to this style of 'conversion' tablet design. I love these devices because they work so well, and I can drop the kb and go slate. But the processor power and support for Vista/Win7 just isn't there - so its time for an upgrade.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9164261" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Windows+7/">Windows 7</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/HP/">HP</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/HP+touchsmart/">HP touchsmart</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Tx2/">Tx2</category></item><item><title>New releases sneak out</title><link>http://blogs.msdn.com/b/paulfo/archive/2008/11/28/new-releases-sneak-out.aspx</link><pubDate>Fri, 28 Nov 2008 17:24:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9151781</guid><dc:creator>paulfo</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/paulfo/rsscomments.aspx?WeblogPostID=9151781</wfw:commentRss><comments>http://blogs.msdn.com/b/paulfo/archive/2008/11/28/new-releases-sneak-out.aspx#comments</comments><description>&lt;p&gt;While I was travelling last week two new product releases 'snuk' out. Microsoft Robotics Developer Studio 2008 and XNS Games Studio 3.0. Both now supporting the VS 2008 products which makes for a more comfortable environment on Vista.&lt;/p&gt; &lt;p&gt;Microsoft Robotics Developer Studio (MRDS) 2008 has some important changes to licensing as well as exciting feature additions. There are three "per-seat"&amp;nbsp; licenses:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Express. Some feature limitations - 64 objects in the simulator, no simulator editor, no VPL compiler, no multi-node VPL and no support for Windows CE! There are no rights granted to distribute the runtime. This is a pretty big list of take backs which is disappointing - although the original Express did not grant runtime distribution either.&lt;/li&gt; &lt;li&gt;Professional. Everything is included, full function and a right to distribute the runtime as much as you like. Cost $499&lt;/li&gt; &lt;li&gt;Academic. As professional except free via the MSDN Academic Alliance scheme.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;There is plenty of new stuff go &lt;a href="http://msdn.microsoft.com/en-gb/library/cc998522.aspx" target="_blank"&gt;look here for details&lt;/a&gt;&lt;/p&gt; &lt;p&gt;In addition to some of the core programming and tools features there are also some new cool simulations. Most of these are included in the Professional edition due to the Express editions 64 entity limit. The Apartment sim is included in Express and gives you a great place to start perfecting your new 'Roomba' navigation algorithm. The Urban simulation provides a 'DARPA Urban Challenge' like environment in which to perfect your autonomous ground vehicle.&lt;/p&gt; &lt;p&gt;All in, running the pro edition, I'm very happy with the new version. Lots of stuff to explore and understand. Lots of opportunities with my current robot projects including delivery of a full release of services for my Whitebox Robotics PC-Bot 914 - called A1-DW. This has been an on going effort challenged mainly by lack of free time.&lt;/p&gt; &lt;p&gt;Microsoft XNA Games Studio 3.0. I haven't got to do a lot of playing with this yet. But two key things stand out for me. Community Games - enabling us to publish our games via the Xbox infrastructure and receive a revenue share with Microsoft - 10million potential customers!! And the ability to program the Zune platform - ok for Europe this is pretty useless at the moment, but one can only hope Zune will make it across the Atlantic at some point and with new control versions that make it more appropriate for game play. I like the idea to build for Zune - I only have an original version and the controls aren't much cop for my normal game genre (action shooters), so one needs to be creative with the game design for Zune.&lt;/p&gt; &lt;p&gt;&lt;a href="http://creators.xna.com/" target="_blank"&gt;Download XNA Game Studio 3.0&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Over the next month I plan to blog more on my MRDS projects and on XNA 3.0. I'm still new with XNA so plenty to get to explore and I intend to have a lot of fun doing so.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9151781" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/XNA/">XNA</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Robotics/">Robotics</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/MRDS/">MRDS</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/White+Box+Robotics/">White Box Robotics</category><category domain="http://blogs.msdn.com/b/paulfo/archive/tags/Xbox/">Xbox</category></item></channel></rss>
