<?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>MSDN Blogs</title><link>http://blogs.msdn.com/default.aspx</link><description>The Blogs of MSDN</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>WCF Service Throttling</title><link>http://blogs.msdn.com/mohamedg/archive/2009/11/08/wcf-service-throttling.aspx</link><pubDate>Sun, 08 Nov 2009 07:03:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919187</guid><dc:creator>mohamedg</dc:creator><slash:comments>0</slash:comments><description>Throttling, generally speaking, is tricky. Get the limits low and you may be prone to DoS and clients timing out trying to connect to your service in vain; Get them high and you may end up with an overloaded service that’s eating up machine resources until it crashes. There’s a sweet spot in between that will give you an optimum throughput and high availability at the same time. The ServiceThrottlingBehavior in WCF enables you to modify three important settings that you should consider tweaking to...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/11/08/wcf-service-throttling.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919187" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/WCF/default.aspx">WCF</category></item><item><title>VB.NET 10 : Optional Nullable Parameter</title><link>http://blogs.msdn.com/wriju/archive/2009/11/08/vb-net-10-optional-nullable-parameter.aspx</link><pubDate>Sun, 08 Nov 2009 06:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919185</guid><dc:creator>wriju</dc:creator><slash:comments>0</slash:comments><description>If you want to assign Nothing to the optional parameter in VB.NET 10, it is just like to obvious now, Sub Main() 'Passing value for the optional parament _age MyFunc( "Wriju" , "wriju@contoso.com" , 30 ) 'No value is supplied for the optional parament _age MyFunc( "Writam" , "writam@contoso.com" ) End Sub Sub MyFunc( ByVal _name As String , ByVal _email As String , Optional ByVal _age As Integer ? = Nothing ) Console .WriteLine( "Name={0}, Email={1}, Age={2}" , _name, _email, _age.ToString()) End...(&lt;a href="http://blogs.msdn.com/wriju/archive/2009/11/08/vb-net-10-optional-nullable-parameter.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919185" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wriju/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/wriju/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/wriju/archive/tags/VB.NET+10/default.aspx">VB.NET 10</category></item><item><title>VB.NET 10 : Multiline Lambdas</title><link>http://blogs.msdn.com/wriju/archive/2009/11/08/vb-net-10-multiline-lambdas.aspx</link><pubDate>Sun, 08 Nov 2009 06:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919181</guid><dc:creator>wriju</dc:creator><slash:comments>0</slash:comments><description>With implicit line continuation VB.NET 10 now allows you to write the multiline Lambdas. That means like your normal Functions you can write functions under Lambdas. So now you may write like, Dim arrInt As Integer () = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } Dim myFinc = Array .FindAll(arrInt, Function (n) If n Mod 2 = 0 Then Console .WriteLine( "{0} is Even" , n) Else Console .WriteLine( "{0} is not Even" , n) End If End Function ) Namoskar!!!...(&lt;a href="http://blogs.msdn.com/wriju/archive/2009/11/08/vb-net-10-multiline-lambdas.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919181" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/wriju/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/wriju/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/wriju/archive/tags/VB.NET+10/default.aspx">VB.NET 10</category></item><item><title>Can Writers Dance The Agile?</title><link>http://blogs.msdn.com/alexhomer/archive/2009/11/08/Can-Writers-Dance-The-Agile_3F00_.aspx</link><pubDate>Sun, 08 Nov 2009 06:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9915921</guid><dc:creator>alexhomer</dc:creator><slash:comments>0</slash:comments><description>It's probably safe to say that only a limited number of the few people who stroll past my blog each week were fans of the Bonzo Dog Doo Dah Band. Or even, while they might recall their 1968 hit single "I'm the Urban Spaceman" (which, I read somewhere, was produced by Paul McCartney under the pseudonym of Apollo C. Vermouth), are aware of their more ground-breaking works such as "The Doughnut In Granny's Greenhouse". So this week's title, based on their memorable non-hit "Can Blue Men Sing The Whites" is pretty much guaranteed to be totally indecipherable to the majority of the population. Except for the fact that the BBC just decided to use it as the title of a new music documentary....(&lt;a href="http://blogs.msdn.com/alexhomer/archive/2009/11/08/Can-Writers-Dance-The-Agile_3F00_.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915921" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/alexhomer/archive/tags/Documentation/default.aspx">Documentation</category><category domain="http://blogs.msdn.com/alexhomer/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/alexhomer/archive/tags/Guidance/default.aspx">Guidance</category></item><item><title>Tool to automate VM setups for Lab</title><link>http://blogs.msdn.com/bharry/archive/2009/11/08/tool-to-automate-vm-setups-for-lab.aspx</link><pubDate>Sun, 08 Nov 2009 05:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919177</guid><dc:creator>bharry</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;One of the cool new capabilities in the 2010 wave of products is Lab Management.&amp;nbsp; It allows you to easily manage a pool of virtual machines and automate deployment and testing of your applications.&amp;nbsp; Lab Management allows you do define "Environments" - collections of virtual machine templates that define your application deployment architecture.&amp;nbsp; For example, a 3 tier environment would have a client, a mid tier and a data tier VM template.&amp;nbsp; Once you have an environment, you can easily and repeatabily deploy builds of your software onto it and run automate or manual tests.&lt;/P&gt;
&lt;P&gt;However, getting a proper environment configured can be a fair amount of work.&amp;nbsp; Preparing all the VMs takes a lot of steps and a lot of time.&amp;nbsp; Accounts need to be set up for talking to TFS.&amp;nbsp; Lab, deployment and test agent software needs to be installed.&amp;nbsp; A bunch of Windows settings need to be adjusted (screen saver turned off, IE popups (like auto complete, etc) need to be disabled, and more).&amp;nbsp; It can take many hours to get it all done and it's easy to miss a step.&lt;/P&gt;
&lt;P&gt;To help with this, we are working on a tool that will automatically prepare your VM templates for you.&amp;nbsp; The first pre-release of the tool is now available on CodePlex here: &lt;A href="https://mail.microsoft.com/OWA/redir.aspx?C=54242112caed45509a455212c709ba7b&amp;amp;URL=http%3a%2f%2fvslabmgmt.codeplex.com%2f" target=_blank&gt;&lt;FONT size=3 face=Calibri&gt;http://vslabmgmt.codeplex.com/&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp; You'll find the documentation for it on the CodePlex site.&lt;/P&gt;
&lt;P&gt;We expect to have it finished and ready for broad use by the time the 2010 products are released.&lt;/P&gt;
&lt;P&gt;I think you'll find this tool to be a really big timesaver for you.&amp;nbsp; Let us know if you have any feedback.&lt;/P&gt;
&lt;P&gt;Brian&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919177" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio+Team+System/default.aspx">Visual Studio Team System</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/TFS/default.aspx">TFS</category></item><item><title>在第二个Exchange 2007站点安装Exchange Cluster</title><link>http://blogs.msdn.com/lxchen/archive/2009/11/08/exchange-2007-exchange-cluster.aspx</link><pubDate>Sun, 08 Nov 2009 02:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919173</guid><dc:creator>clxowen</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;IT管理员也好，IT基础架构项目实施人也员好，我们大都多都在一个位置实施Exchange 2007的安装。在某一次项目实施中，涉及到了在第二个活动目录站点部署Exchange 2007站点安装Exchange Cluster的问题。以下就过程中涉及的一些过程与大家分享一下。&lt;/P&gt;
&lt;P&gt;Exchange 2007中引入站点的概念，并且与活动目录站点紧密集成。因此，在第二个站点中部署Exchange时，都涉及到与第一个站点信息同步问题时，与AD的复制有密切关系。关于这方面的信息，可以参见：Understanding Active Directory Site-Based Routing(&lt;A href="http://technet.microsoft.com/en-us/library/aa998825.aspx"&gt;http://technet.microsoft.com/en-us/library/aa998825.aspx&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;另一个问题大家可能平时不一定注意到了，在安装Windows Cluster服务时，一般都需要创建计算机帐号资源，并且一般由应用系统（Exchange,SQL)安装程序来创建，并且创建时，Cluster服务需要直接联系AD FSMO中的PDC，来确认计算机名称的唯一性，若此时PDC角色不在当前站点时，会对于Exchange 2007的Cluster，不论是SCC，CCR会有复制延迟的问题，导致在Cluster部署时，无法完成安装。&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;作为解决办法，有两个选择：&lt;BR&gt;1.把FSMO中的PDC移动到当前部署Exchange 2007的站点，在全网复制之后，开始Exchange 2007 Cluster的部署&lt;BR&gt;2.pre-stage计算机帐号，这也是建议的方案。先在Windows Cluster中创建计算机帐号资源，等待全网复制之后，再启动Cluster安装&lt;/P&gt;
&lt;P&gt;尽管使用上述pre-stage Computer account的办法，有可能仍然遇上Cluster Setup Failure的场景。此时，建议使用下列办法：&lt;/P&gt;
&lt;P&gt;先确保安装出第一个A节点，之后，一个群集中的剩余节点安装为P节点，然后单独使用exsetup.exe程序启用Cluster功能&amp;nbsp;&lt;/P&gt;
&lt;P&gt;在我安装的过程中，使用了exsetup之后，还会有Information Store不成功的现象，忽略错误，待AD复制足够长时间之后，重新启动exsetup程序，肯定可以成功创建Information Store服务和第一个SG/DB。&lt;/P&gt;
&lt;P&gt;非常概要地和大家分享一下在第二个AD站点中部署Exchange 2007 Cluster的过程，若有进一步信息，可以通过此Blog与我联系。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919173" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lxchen/archive/tags/Exchange++Cluster/default.aspx">Exchange  Cluster</category></item><item><title>How to get Conexant AC link Audio working for old Compaq V2000 laptop with Win7</title><link>http://blogs.msdn.com/mangeshd/archive/2009/11/07/how-to-get-conexant-ac-link-audio-working-for-old-compaq-v2000-laptop-with-win7.aspx</link><pubDate>Sun, 08 Nov 2009 02:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919172</guid><dc:creator>Mangesh Deshpande</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;I have a old Compaq V2000 laptop (almost 4.5 years old) (Intel Centrino Mobile and 512 MB ram) and installed Windows 7 on that. I was scared that it will&amp;nbsp;not install since the system does not meet prerequisite criteria (1 GB ram), but Win 7 got installed perfectly! But showed that 5 drivers were not installed:&lt;/P&gt;
&lt;P&gt;&amp;gt; Wireless Network Adapter&lt;BR&gt;&amp;gt; Display Adapter&lt;BR&gt;&amp;gt; Modem&lt;BR&gt;&amp;gt; Mass Storage Controller&lt;BR&gt;&amp;gt; Multimedia Audio Controller&lt;/P&gt;
&lt;P&gt;Out of these Wireless Network Adapter&amp;nbsp;and&amp;nbsp;Display Adapter were installed by windows update automatically (yeah, I had to reboot the box couple of times and run windows update multiple times). I think Windows Update has the drivers&amp;nbsp;provided by&amp;nbsp;Intel (which is what the Chipset is) here. For Modem, went into troubleshooter and it suggested to download and install the drivers from Motorola site (it actually gave me the link) and once I click the link to download it, that was installed fine as well (it shows as "Motorola SM65 Speakerphone Modem" in Device Manager)&lt;/P&gt;
&lt;P&gt;Bigger problem was finding the right drivers for MultiMedia Audio Controller. I tried installing the drivers that came with the laptop (which was for XP) and I downloaded the latest from Realtek site, but all in vain. I tried uninstalling the one windows by default set there "multimedia audio controller" and then ran window update again and again with no help (the driver installation would always fail). Searched all over the internet and tried every possible forum entries,etc.&lt;/P&gt;
&lt;P&gt;To resolve the problem with this, I did the following:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Visited &lt;A href="http://catalog.update.microsoft.com/v7/site/Home.aspx"&gt;http://catalog.update.microsoft.com/v7/site/Home.aspx&lt;/A&gt;&amp;nbsp;and searched for Contexant AC link audio&lt;/LI&gt;
&lt;LI&gt;There were 100+ matches, out of the ones that I downloaded, the succeeded one was "Conexant - Sound - Conexant AC-Link Audio"&lt;/LI&gt;
&lt;LI&gt;Downloaded it and unzipped the cab (you can use winRAR or 7Zip)&lt;/LI&gt;
&lt;LI&gt;set compatibility mode of HXFSetup.exe from the extracted files to XP SP2 and ran the EXE as administrator&lt;/LI&gt;
&lt;LI&gt;This made the audio controller fire up&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I am left with Mass Storage Controller, but I am not worried about that since I am able to connect and work with my USB pen drives and external hard disks. Wrote the blog post for those who have old v2000 laptops and might have been struggling with similar issues. Please note, what worked for me may not work for you, so keep posting.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919172" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mangeshd/archive/tags/Windows+Server+2008/default.aspx">Windows Server 2008</category></item><item><title>http://silverlight.net/riaservices/ is Live!</title><link>http://blogs.msdn.com/brada/archive/2009/11/07/http-silverlight-net-riaservices-is-live.aspx</link><pubDate>Sun, 08 Nov 2009 02:03:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919170</guid><dc:creator>BradA</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;We have been working for a while to get a community site together where we can aggregate all the great buzz, resources and discussions about .NET RIA Services.&amp;#160;&amp;#160; We hope you enjoy the content we already have up there and help us get more good stuff up there.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://silverlight.net/riaservices/"&gt;http://silverlight.net/riaservices/&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://silverlight.net/riaservices/ "&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/brada/WindowsLiveWriter/httpsilverlight.netriaservicesisLive_FDD2/image_3.png" width="420" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919170" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brada/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/brada/archive/tags/RIAServices/default.aspx">RIAServices</category></item><item><title>Presenting at ASP.NET Connections in Las Vegas</title><link>http://blogs.msdn.com/carlosag/archive/2009/11/08/presenting-at-asp-net-connections-in-las-vegas.aspx</link><pubDate>Sun, 08 Nov 2009 01:49:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919166</guid><dc:creator>CarlosAg</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Next week I will be presenting at the &lt;a href="http://www.devconnections.com/shows/FALL2009ASP/default.asp?s=135" target="_blank"&gt;ASP.NET Connections event&lt;/a&gt; in Las Vegas the following topics:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;AMS04: Boost Your Site’s Search Ranking with the IIS Search Engine Optimization Toolkit&lt;/strong&gt;: Search engines are just robots, and you have to play by their rules if you want to see your site in the top search results. In this session, you will learn how to leverage the IIS Search Engine Optimizer and other tools to improve your Web site for search engine and user traffic. You will leave this session with a set of tips and tricks that will boost the search rank, performance and consistency of your Web site. &lt;strong&gt;Tuesday 10:00 am.&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;AMS10: Developing and Deploying for the Windows Web App Gallery&lt;/strong&gt;: Come hear how the Microsoft Web Platform fosters a powerful development ecosystem for Web applications, and how the latest wave of IIS extensions enable Web applications to move seamlessly from a development environment to a production datacenter. You will also learn how to package a Web application for the Windows Web App Gallery to make it available to millions of users. &lt;strong&gt;Thursday 8:15 am.&lt;/strong&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I will also be participating in a session called: &amp;quot;Q&amp;amp;A session with Scott Guthrie and the ASP.NET and VWD teams at DevConnections&amp;quot; on Wednesday.&lt;/p&gt;  &lt;p&gt;It should be fun. If you are around stop by the Microsoft Web Platform booth where I will be hanging around the rest of the time trying to answer any questions and getting a chance to learn more about how you use IIS or any problems you might be facing.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919166" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/carlosag/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Bahia Valley, Jornadas de Usabilidad y WebsiteSpark</title><link>http://blogs.msdn.com/masaez/archive/2009/11/08/bahia-valley-jornadas-de-usabilidad-y-websitespark.aspx</link><pubDate>Sun, 08 Nov 2009 01:39:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919162</guid><dc:creator>masaez</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;El jueves pasado tuve la oportunidad de visitar la ciudad de Bahia Blanca, participando del primer encuentro de la gente de &lt;a href="http://bahiavalley.wordpress.com/"&gt;Bahia Valley&lt;/a&gt;. Quiero agradecer enormemente a &lt;strong&gt;Leonardo Valente &lt;/strong&gt;de &lt;a href="http://www.italentos.com.ar/"&gt;ITalentos&lt;/a&gt; y a Ricardo de Weerth de &lt;a href="http://www.paradigma.com.ar"&gt;Paradigma&lt;/a&gt; por recibirnos con extrema amabilidad y buena onda durante todo el día. &lt;/p&gt;  &lt;p&gt;Tuvimos una agenda muy ocupada, arrancando con un primer encuentro donde presenté &lt;strong&gt;.NET Framework 4&lt;/strong&gt;, &lt;strong&gt;Visual Studio 2010 &lt;/strong&gt;y una breve muestra de &lt;strong&gt;SketchFlow&lt;/strong&gt;. Existe una comunidad de desarrolladores, Partners y empresas muy extendida que trabaja sobre la plataforma Microsoft en Bahia Blanca y fué muy interesante poder compartir sobre tecnología y proyectos en los que se están trabajando localmente.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/masaez/WindowsLiveWriter/BahiaValleyJornadasdeUsabilidadyWebsiteS_14662/estacionsud_2.jpg"&gt;&lt;img title="estacionsud" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="269" alt="estacionsud" src="http://blogs.msdn.com/blogfiles/masaez/WindowsLiveWriter/BahiaValleyJornadasdeUsabilidadyWebsiteS_14662/estacionsud_thumb.jpg" width="417" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Mas tarde, se realizó la primer parte de las dos actividades planteadas para las &lt;strong&gt;Jornadas de Usabilidad&lt;/strong&gt;, a cargo de &lt;a href="http://www.inspiro.com.ar/eduardo-mercovich.html"&gt;&lt;strong&gt;Eduardo Mercovich&lt;/strong&gt;&lt;/a&gt;, fundador de &lt;a href="http://www.inspiro.com.ar/"&gt;Gaia Inspiro&lt;/a&gt;. Eduardo, adémás de un gran &lt;a href="http://www.flickr.com/photos/eduardo-mercovich/"&gt;fotografo&lt;/a&gt;, se especializa en Usabilidad, mejorando la experiencia de los usuarios de múltiples plataformas y organizaciones. Uno de los puntos principales de su presentación, fue el entender al usuario, su tarea y en particular &lt;strong&gt;su contexto&lt;/strong&gt;, citando múltiples ejemplos y contra-ejemplos, llevándonos a pensar la forma en la cual construimos aplicaciones, y a definir &lt;strong&gt;nuevos procesos&lt;/strong&gt; de desarrollo que integren aún más al usuario y sus necesidades. Eduardo, realmente un placer conocerte.&lt;/p&gt;  &lt;p&gt;Hacia el final de día tuvimos el encuentro de &lt;strong&gt;Bahia Valley. &lt;/strong&gt;El lugar no podía estar mejor elegido, pueden encontrar &lt;a href="http://bahiavalley.wordpress.com/2009/11/06/bahia-valley-night-las-primeras-fotos/"&gt;las primeras fotos en el blog oficial&lt;/a&gt;. Allí, conversamos sobre la Web de hoy, y presenté el programa &lt;strong&gt;WebsiteSpark&lt;/strong&gt; y el acuerdo realizado con la red de &lt;strong&gt;Palermo Valley&lt;/strong&gt; (ver detalles más abajo).&lt;/p&gt;  &lt;p&gt;Quiero agradecer a todos los que se acercaron e hicieron de la jornada un día excelente. Nuevamente muchisimas gracias a Leonardo y la gente del &lt;strong&gt;Polo Tecnológico&lt;/strong&gt; por coordinar mi presentación en tiempo record y con tan excelente organización. Espero poder volver pronto!&lt;/p&gt;  &lt;h1&gt;Sobre WebsiteSpark y PalermoValley&lt;/h1&gt;  &lt;p&gt;&lt;strong&gt;WebsiteSpark&lt;/strong&gt; es un programa pensado para desarrolladores y diseñadores independientes y empresas de software pequeñas dedicadas al desarrollo de sitios web, obteniendo software y recursos de Microsoft sin costo alguno por tres años. Los beneficios del programa incluyen:&lt;/p&gt;  &lt;p&gt;•3 licencias de Visual Studio 2008 Professional Edition    &lt;br /&gt;•1 licencia de Epression Studio 3 (Incluyendo Blend, Sketchflow y Web)     &lt;br /&gt;•2 licencias de Expression Web 3     &lt;br /&gt;•4 licencias por procesador de Windows Web Server 2008 R2     &lt;br /&gt;•4 licencias pro procesador de SQL Server 2008 Web Edition     &lt;br /&gt;•Panel de Control DotNetPanel&lt;/p&gt;  &lt;p&gt;Además, las licencias de Windows Server y SQL Server pueden usarse para ambientes de desarrollo como de producción, ya sea en una modalidad de hosteo propio, como por medio de un hoster asociado al programa. &lt;/p&gt;  &lt;p&gt;Ademas del software gratuito, el programa incluye soporte de producto (hasta 2 incidentes de soporte profesional), entrenamiento gratuito, y oportunidades para hacer crecer el negocio del participante. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Las condiciones para aplicar al programa son:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Dedicarse al desarrollo de sitios Web.&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Ser una empresa de 10 o menos empleados.&lt;/strong&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La red de Palermo Valley será el canal para acercar este beneficio a los interesados, incluyendo a los diferentes Valleys de la red de todo latinoamérica. Para solicitar acceder a sus beneficios, deben escribir un correo a &lt;a href="mailto:spark@palermovalley.com"&gt;&lt;strong&gt;spark@palermovalley.com&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Para conocer más detalles del programa, pueden acceder a &lt;a title="http://www.microsoft.com/web/websitespark/" href="http://www.microsoft.com/web/websitespark/"&gt;http://www.microsoft.com/web/websitespark/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Saludos!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919162" width="1" height="1"&gt;</description></item><item><title>Large object graphs in WCF</title><link>http://blogs.msdn.com/adamze/archive/2009/11/08/large-object-graphs-in-wcf.aspx</link><pubDate>Sun, 08 Nov 2009 01:04:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919155</guid><dc:creator>Adam Zebrowski</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Few days ago i was puzzled why my data access component (DAC) exposed via WCF started firing some cryptic exceptions like:&lt;/p&gt;  &lt;p&gt;WCF System.Net.WebException: The underlying connection was closed: The connection was closed unexpectedly&lt;/p&gt;  &lt;p&gt;after some head scratching and checking the message size which shouldn’t have been too large, i started thinking about object graph size, and of course forgot to tweek the WCF behaviours:&lt;/p&gt;  &lt;p&gt;&amp;lt;&lt;strong&gt;behavior&lt;/strong&gt; name=&amp;quot;Service.ServiceImplementation.&lt;strong&gt;ServiceBehaviour&lt;/strong&gt;&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;strong&gt;dataContractSerializer&lt;/strong&gt; maxItemsInObjectGraph=&amp;quot;&lt;font color="#ff8080"&gt;XXX&lt;/font&gt;&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/behavior&amp;gt;&lt;/p&gt;  &lt;p&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/serviceBehaviors&amp;gt;&lt;/p&gt;  &lt;p&gt;(Just remember to set it on both server and client.)&lt;/p&gt;  &lt;p&gt;Separate question remains: When the graph becomes too large and you should start streaming…&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919155" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adamze/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Windows Media Metadata in Managed Code (and by extension - Silverlight)</title><link>http://blogs.msdn.com/jitghosh/archive/2009/11/07/windows-media-metadata-in-managed-code-and-by-extension-silverlight.aspx</link><pubDate>Sun, 08 Nov 2009 00:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919152</guid><dc:creator>jitghosh</dc:creator><slash:comments>0</slash:comments><description>I have encountered several inquiries about accessing the metadata embedded in Windows Media file headers from Silverlight. Unfortunately Silverlight does not expose this information out of the box. The only way you can access this is by utilizing the Windows Media Format SDK. The Format SDK exposes its functionality in COM and requires you to write your code in C++. The nice thing about Visual C++, is that the C++ compiler allows you to author mixed mode assemblies i.e. one assembly containing both...(&lt;a href="http://blogs.msdn.com/jitghosh/archive/2009/11/07/windows-media-metadata-in-managed-code-and-by-extension-silverlight.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919152" width="1" height="1"&gt;</description></item><item><title>5 City NZ Unplugged Technical Training Tour Coming in December 2009!</title><link>http://blogs.msdn.com/nzdev/archive/2009/11/08/5-city-nz-unplugged-technical-training-tour-coming-in-december-2009.aspx</link><pubDate>Sun, 08 Nov 2009 00:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919153</guid><dc:creator>nzdev</dc:creator><slash:comments>0</slash:comments><description>Get ready Dunedin, Christchurch, Wellington Tauranga and Auckland! Microsoft Unplugged is coming to you for the last time for 2009&amp;nbsp;just before the christmas holiday season. During this tour, &lt;A href="http://blogs.msdn.com/nzisv/" mce_href="http://blogs.msdn.com/nzisv/"&gt;Mike Zeff&lt;/A&gt;, &lt;A href="http://blogs.msdn.com/ryantarak/" mce_href="http://blogs.msdn.com/ryantarak/"&gt;Ryan Tarak&lt;/A&gt; from Microsoft and John Daniel Trask will be covering Windows Azure and Visual Studio 2010. Kicking off in Wellington&amp;nbsp;on Tue 1st December, the Unplugged Technical Training&amp;nbsp;will start&amp;nbsp;at 1:30pm and finish at 5pm in each city. &lt;A href="http://www.microsoft.com/nz/events/unplugged/msdn-dec09.mspx" mce_href="http://www.microsoft.com/nz/events/unplugged/msdn-dec09.mspx"&gt;Click here&lt;/A&gt; for full details and to register! &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919153" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nzdev/archive/tags/New+Zealand/default.aspx">New Zealand</category><category domain="http://blogs.msdn.com/nzdev/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.msdn.com/nzdev/archive/tags/Azure/default.aspx">Azure</category><category domain="http://blogs.msdn.com/nzdev/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/nzdev/archive/tags/MSDN+Unplugged/default.aspx">MSDN Unplugged</category><category domain="http://blogs.msdn.com/nzdev/archive/tags/Ryan+Tarak/default.aspx">Ryan Tarak</category><category domain="http://blogs.msdn.com/nzdev/archive/tags/Mike+Zeff/default.aspx">Mike Zeff</category></item><item><title>HDI Video: Generate from Usage in Visual Studio 2010 with Karen Liu</title><link>http://blogs.msdn.com/charlie/archive/2009/11/07/hdi-video-generate-from-usage-with-karen-liu.aspx</link><pubDate>Sat, 07 Nov 2009 23:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9898211</guid><dc:creator>Charlie Calvert</dc:creator><slash:comments>0</slash:comments><description>&lt;style type="text/css"&gt;




span.squiggle { color: red; text-decoration: underline;}
.listing { font-weight: bold }
.figure { font-weight: bold }
.note { font-weight: italic; background: lightgray; border: 1px solid black; }&lt;/style&gt;  &lt;p&gt;Karen Liu, the Lead Program Manager for the Visual C# and Visual Basic IDEs, has created a &lt;a href="http://msdn.microsoft.com/en-us/vcsharp/ee633445.aspx"&gt;new video&lt;/a&gt; on &lt;a href="http://msdn.microsoft.com/en-us/library/dd409796(VS.100).aspx"&gt;Generate from Usage&lt;/a&gt; (GFU), a feature found in Visual Studio 2010, Beta 2. This post recaps what is included in the video, including the sections that show how GFU can be used to enhance &lt;a href="http://www.extremeprogramming.org/rules/testfirst.html"&gt;test first development&lt;/a&gt;. The video is shot in both VB and C#. Since this is a C# blog, I’ll show only C# code, and will translate the VB code that Karen shows into C#.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Download the &lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=linqfarm&amp;amp;DownloadId=8077"&gt;source code&lt;/a&gt; from the &lt;a href="http://code.msdn.microsoft.com/linqfarm"&gt;LINQ Farm&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Generate from Usage (GFU) is a new feature in 2010 that allows you to write code that consumes a library or API before that API even exists. Using Visual Studio menus or shortcuts, you can automatically generate classes, constructors, methods, fields and properties from the code you typed in the editor.&lt;/p&gt;  &lt;p&gt;As the video begins, Karen first types in the code to initialize a class called &lt;strong&gt;Automobile&lt;/strong&gt; that does not yet exist:&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:5cf3a3f0-6bee-4a46-8d17-8a5e29158786" class="wlWriterEditableSmartContent"&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: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;var&lt;/span&gt; myCar = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; Automobile(Make: &lt;span style="color:#a31515"&gt;&amp;quot;Honda&amp;quot;&lt;/span&gt;, Model: &lt;span style="color:#a31515"&gt;&amp;quot;Accord&amp;quot;&lt;/span&gt;);&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Notice that the class name &lt;strong&gt;Automobile&lt;/strong&gt; is &lt;u&gt;not&lt;/u&gt; colored in teal, which is Visual Studio’s way of telling you that it does not yet it exist. When seen inside Visual Studio, the word &lt;strong&gt;Automobile&lt;/strong&gt; will also have red squiggly (or wavy) underline, and a small blue&lt;strong&gt; smart tag &lt;/strong&gt;under the letter A, as shown in Figure 1. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure01_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure01" border="0" alt="Figure01" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure01_thumb.png" width="644" height="161" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="figure"&gt;Figure 1: The red squiggle is Visual Studio’s way of telling you that the type &lt;u&gt;Automobile&lt;/u&gt; will not compile. The blue &lt;em&gt;smart tag&lt;/em&gt; under the letter A let’s the user know that an expansion tip is available by simultaneously pressing the Control key and a period (Ctrl + .).&lt;/p&gt;  &lt;p&gt;The smart tag under the letter A is Visual Studio’s way of telling you to press the control and period keys to bring up a special expansion tip, as shown in Figure 2. Here we see two options, one for directly creating a class called &lt;strong&gt;Automobile&lt;/strong&gt;, and the other for bringing up a dialog which allows us to define or tweak the details of the type of we create.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure02_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure02" border="0" alt="Figure02" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure02_thumb.png" width="644" height="247" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="figure"&gt;Figure 2: Viewing an expansion tip in Visual Studio.&lt;/p&gt;  &lt;p&gt;You can also bring up the options to create a new class or type by right clicking on the word &lt;strong&gt;Automobile&lt;/strong&gt; and selecting &lt;strong&gt;Generate&lt;/strong&gt; from the popup menu, as shown in Figure 3.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure03_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure03" border="0" alt="Figure03" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure03_thumb.png" width="644" height="174" /&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p class="figure"&gt;Figure 3: A second way to generate a class is to right click the word &lt;u&gt;Automobile&lt;/u&gt; and choose &lt;u&gt;Generate &lt;/u&gt;from the popup menu.&lt;/p&gt;  &lt;p&gt;If you select the option to create a new class, then Visual Studio will automatically generate a new file called &lt;strong&gt;Automobile.cs&lt;/strong&gt; and place inside it a new class called &lt;strong&gt;Automobile&lt;/strong&gt;. The entire generated file is shown in Listing 1.&lt;/p&gt;  &lt;p class="listing"&gt;Listing 1: The code generate when you choose to create a new class based on an undefined identifier in Visual Studio 2010.&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:51302077-3aa5-4dcb-94f7-45db8bcc830f" class="wlWriterEditableSmartContent"&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: 300px; 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;using&lt;/span&gt; System;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Text;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; DeleteMe&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Automobile&lt;/span&gt;&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;}&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;You can now go back to your original source file where you will see that there is still a red squiggly and blue tool tip, as shown in Figure 4. These hints are shown because we have not yet created a constructor for the &lt;strong&gt;Automobile&lt;/strong&gt; class. If we again press control plus period, then the option to generate these code elements is made available to us, as shown in Figure 4.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure04_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure04" border="0" alt="Figure04" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure04_thumb_1.png" width="644" height="146" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="figure"&gt;Figure 4: Selecting the smart tag a second time brings up an option to automatically generate the constructor and associated fields for your class.&lt;/p&gt;  &lt;p&gt;The code that is generated by selecting the expansion tip is shown in Listing 2. Notice that on lines 10 and 11 fields were created for your class and on lines 16 and 17 code was generated inside the constructor for initializing them. A comment in the form of a &lt;strong&gt;TODO&lt;/strong&gt; item is also added to your class. These &lt;strong&gt;TODO&lt;/strong&gt; items are visible in the Visual Studio &lt;a href="http://msdn.microsoft.com/en-us/library/zce12xx2(VS.100).aspx"&gt;Task List&lt;/a&gt;. You can access the &lt;strong&gt;Task List &lt;/strong&gt;by choosing &lt;strong&gt;View | Task List &lt;/strong&gt;from the menu, or by pressing &lt;strong&gt;Ctrl+W, T&lt;/strong&gt;. Be sure to choose the &lt;strong&gt;Comments&lt;/strong&gt; option from the drop down at the top of the &lt;strong&gt;Task List&lt;/strong&gt;.&lt;/p&gt;  &lt;p class="listing"&gt;Listing 2: The code for the Automobile’s constructor is automatically generated by the IDE.&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:39825868-2600-44c3-aca2-c3e2393bc188" class="wlWriterEditableSmartContent"&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; 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;using&lt;/span&gt; System;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Text;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; GenerateFromUsageSample&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Automobile&lt;/span&gt;&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:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; Make;&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;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; Model;&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:#0000ff"&gt;public&lt;/span&gt; Automobile(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; Make, &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; Model)&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;&lt;span style="color:#008000"&gt;// TODO: Complete member initialization&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.Make = Make;&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;&lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.Model = Model;&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;}&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;Karen next types in code for a &lt;strong&gt;TurnLeft &lt;/strong&gt;method, and for a property called &lt;strong&gt;IsFacingNorth&lt;/strong&gt;. As she types each item, a smart tag appears, and again she has the option to press &lt;strong&gt;Ctrl+.&lt;/strong&gt; to automatically generate code for the &lt;strong&gt;Automobile &lt;/strong&gt;class. The code typed in the program’s entry point is shown in Listing 3, and the code generated by the IDE is shown mostly in Listing 4. Notice, however, that code for a private object called &lt;strong&gt;distance &lt;/strong&gt;was automatically generated in the &lt;strong&gt;Main&lt;/strong&gt; method. The IDE actually gives you the option to create either a &lt;strong&gt;private &lt;/strong&gt;field, as shown here, or a &lt;strong&gt;public&lt;/strong&gt; property.&lt;/p&gt;  &lt;p class="listing"&gt;Listing 3: The complete code for Karen’s first sample includes a constructor, a method called &lt;u&gt;TurnLeft&lt;/u&gt;, and a property called &lt;u&gt;IsFacingNorth&lt;/u&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:98dfe693-a81d-4df2-8435-00a22ea59678" class="wlWriterEditableSmartContent"&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; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; GenerateFromUsage&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Program&lt;/span&gt;&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:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff"&gt;object&lt;/span&gt; distance;&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;static&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;[] args)&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;&lt;span style="color:#0000ff"&gt;var&lt;/span&gt; myCar = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Automobile&lt;/span&gt;(Make: &lt;span style="color:#a31515"&gt;&amp;quot;Honda&amp;quot;&lt;/span&gt;, Model: &lt;span style="color:#a31515"&gt;&amp;quot;Accord&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;myCar.TurnLeft(distance);&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;myCar.IsFacingNorth = &lt;span style="color:#0000ff"&gt;true&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;}&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 class="listing"&gt;Listing 4: The code generated by the IDE for the TurnLeft method and the IsFacingNorth property.&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:f7d9d6bd-a681-4139-b84f-0468606a8287" class="wlWriterEditableSmartContent"&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; 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;using&lt;/span&gt; System;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; GenerateFromUsage&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;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Automobile&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&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;&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; Make;&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:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; Model;&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;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; Automobile(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; Make, &lt;span style="color:#0000ff"&gt;string&lt;/span&gt; Model)&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;&lt;span style="color:#008000"&gt;// TODO: Complete member initialization&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.Make = Make;&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;&lt;span style="color:#0000ff"&gt;this&lt;/span&gt;.Model = Model;&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;&lt;span style="color:#0000ff"&gt;internal&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; TurnLeft(&lt;span style="color:#0000ff"&gt;object&lt;/span&gt; distance)&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;&lt;span style="color:#0000ff"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;NotImplementedException&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;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;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;bool&lt;/span&gt; IsFacingNorth { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&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;When looking at Listing 4, notice that code for generating a &lt;strong&gt;NotImplementedException &lt;/strong&gt;is automatically generated in the &lt;strong&gt;TurnLeft &lt;/strong&gt;method. The IDE was also smart enough to discern that the &lt;strong&gt;IsFacingNorth&lt;/strong&gt; property returns a &lt;strong&gt;bool&lt;/strong&gt;. All the lines of code shown in Listing 4 were generated by typing just three lines of code in the &lt;strong&gt;main &lt;/strong&gt;method found in Listing 3.&lt;/p&gt;  &lt;h2&gt;The C# Side&lt;/h2&gt;  &lt;p&gt;In the second part of the video Karen shows how you can use &lt;em&gt;generate from usage&lt;/em&gt; (GFU) to enhance your experience when creating unit tests. Many theorists advocate using a test first methodology in which you first create a test, and then write the code that you want to test. You will see that GFU can be used to make this style of development quite natural and simple to use inside of Visual Studio.&lt;/p&gt;  &lt;p class="note"&gt;NOTE: This section of the post requires high end versions of Visual Studio that contain the test wizards. Even if you don’t have those tools, you can still follow along to see how Generate from Usage can be used in all versions of Visual Studio to make it easier to create unit tests.&lt;/p&gt;  &lt;p&gt;Begin by starting a new console application called &lt;strong&gt;Customer&lt;/strong&gt;. Choose &lt;strong&gt;Tests | New Test &lt;/strong&gt;from the Visual Studio menu. Select &lt;strong&gt;Basic Unit Test&lt;/strong&gt; from the dialog, and name it &lt;strong&gt;Customers&lt;/strong&gt;, as shown in Figure 5. When you press &lt;strong&gt;OK &lt;/strong&gt;in the &lt;strong&gt;Add New Test &lt;/strong&gt;dialog you will be prompted for the name of your unit test project. Type in &lt;strong&gt;CustomerTests&lt;/strong&gt;. When you are done, the &lt;strong&gt;Solution Explorer&lt;/strong&gt; for your project should look as it does in Figure 6.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure06_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure06" border="0" alt="Figure06" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure06_thumb.png" width="577" height="484" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p class="figure"&gt;Figure 5: Create a new unit test project that will house a file called Customers.&lt;/p&gt;  &lt;p&gt;Right click on the &lt;strong&gt;Customer&lt;/strong&gt; node in the &lt;strong&gt;solution explorer&lt;/strong&gt; and choose &lt;strong&gt;Add | New Folder&lt;/strong&gt; to create a new directory called &lt;strong&gt;Models&lt;/strong&gt;. When you are done you should see a new node in the &lt;strong&gt;solution explorer&lt;/strong&gt;, as shown in Figure 6. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure07_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure07" border="0" alt="Figure07" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure07_thumb.png" width="315" height="386" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p class="figure"&gt;Figure 6: This solution contains two projects, one a simple console application called &lt;u&gt;Customer &lt;/u&gt;that contains a folder called &lt;u&gt;Models&lt;/u&gt;. The other project is called &lt;u&gt;CustomerTests&lt;/u&gt; and it is designed to hold unit tests.&lt;/p&gt;  &lt;p&gt;I want to check if my Customer list is create correctly. In the Customers file from your test project, create a method called IsCustomerListValid. Inside the method create code to initialize a &lt;strong&gt;CustomerList&lt;/strong&gt; object, as shown in Listing X. &lt;/p&gt;  &lt;p&gt;Listing 5: A simple unit test with the code to initialize a class called CustomerList. Note that the CustomerList is not colored in Teal, since its declaration has not been created yet.&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:fbbd71a3-4443-4c5b-bdba-8d3dee069dfa" class="wlWriterEditableSmartContent"&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: 300px; 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;using&lt;/span&gt; System;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Text;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; Microsoft.VisualStudio.TestTools.UnitTesting;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; CustomerTests&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:#2b91af"&gt;TestClass&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;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Customers&lt;/span&gt;&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:#2b91af"&gt;TestMethod&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;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; IsCustomerListValid()&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;CustomerList cust = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; CustomerList();&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;}&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;At this stage, there is no CustomerList, so in Visual Studio you will again see the red squiggles and the blue smart tag, just as I showed in Figure 2. Without needing to take your hands off the keyboard, you can press control plus dot to bring up the expansion tips as in Figure 2. This time select &lt;strong&gt;New Type. &lt;/strong&gt;A dialog comes up like the one shown in Figure 7. In the dialog we can change the accessibility, the kind of code to generate and the project file and directory where we want to place it. Set the &lt;strong&gt;Access&lt;/strong&gt; to &lt;strong&gt;public&lt;/strong&gt; and the &lt;strong&gt;Kind&lt;/strong&gt; to &lt;strong&gt;class&lt;/strong&gt;. Use the &lt;strong&gt;Project&lt;/strong&gt; drop down to select the &lt;strong&gt;Customer&lt;/strong&gt; project and the the &lt;strong&gt;Create new file&lt;/strong&gt; drop down to select the &lt;strong&gt;Model&lt;/strong&gt; directory. Type in &lt;strong&gt;CustomerList.cs &lt;/strong&gt;as the name of the file to create. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure05_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure05" border="0" alt="Figure05" src="http://blogs.msdn.com/blogfiles/charlie/WindowsLiveWriter/HDIVideoGeneratefromUsagewithKarenLiu_7209/Figure05_thumb.png" width="378" height="407" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p class="figure"&gt;Figure 7. Selecting the kind of type that you want to create, as well as the project, folder and file in which you want to place it.&lt;/p&gt;  &lt;p&gt;When you press OK in the&lt;strong&gt; Generate New Type&lt;/strong&gt; dialog, the new type will be created, and the IDE will add the using directive and the correct references. You can now fill out your test and your generated class as shown in Listing 6 and 7. Note that we have used generate from usage to enhance the &lt;strong&gt;CustomerList&lt;/strong&gt; class with a method called &lt;strong&gt;Add.&lt;/strong&gt; I then manually wrote code to create a list into which the text we pass can be inserted.&lt;/p&gt;  &lt;p class="listing"&gt;Listing 6: A simple unit test.&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:2d4608a7-da3a-480f-8b2f-520f6b9aea55" class="wlWriterEditableSmartContent"&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: 300px; 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;using&lt;/span&gt; Customer.Models;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;using&lt;/span&gt; Microsoft.VisualStudio.TestTools.UnitTesting;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; CustomerTests&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[&lt;span style="color:#2b91af"&gt;TestClass&lt;/span&gt;]&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;Customers&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&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;[&lt;span style="color:#2b91af"&gt;TestMethod&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;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; IsCustomerListValid()&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;&lt;span style="color:#2b91af"&gt;CustomerList&lt;/span&gt; cust = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;CustomerList&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;cust.Add(&lt;span style="color:#a31515"&gt;&amp;quot;Karen&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af"&gt;Assert&lt;/span&gt;.IsNotNull(cust);&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;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p class="listing"&gt;Listing 7: The using directive, namespace, CustomerList class and header for the Add method were auto-generated. I manually created the list and inserted the call to Add an item into it.&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:2c11c353-a69d-4687-bb78-e50d45f80650" class="wlWriterEditableSmartContent"&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: 300px; 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;using&lt;/span&gt; System.Collections.Generic;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;namespace&lt;/span&gt; Customer.Models&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;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;CustomerList&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;&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;&lt;span style="color:#2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&amp;gt; list = &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&amp;gt;();&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:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; Add(&lt;span style="color:#0000ff"&gt;string&lt;/span&gt; p)&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;list.Add(p);&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;}&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;You can now use the Test | View menu to bring up the Test List Editor and Test View to select and run your test.&lt;/p&gt;  &lt;h2&gt;Summary&lt;/h2&gt;  &lt;p&gt;In this post you got a second look at the code used in Karen Liu’s generate from usage video. You saw that GFU can be used to create classes, constructors, parameters, properties and fields. You also explored the powerful &lt;strong&gt;Generate New Type&lt;/strong&gt; dialog which gives you the flexibility to choose the kind of type you want to create, as well as the project, directory and file in which you want to insert it. Finally, you saw that generate from usage can be powerful aid when you are engaged in test first development.&lt;/p&gt;  &lt;h2&gt;Resources&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Download the &lt;a href="http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=linqfarm&amp;amp;DownloadId=8077"&gt;source code&lt;/a&gt; from the &lt;a href="http://code.msdn.microsoft.com/linqfarm"&gt;LINQ Farm&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vcsharp/ee633445.aspx"&gt;The How Do I Generate from Usage Video&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd409796(VS.100).aspx"&gt;Generate from Usage in the MSDN Library&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/vbteam/archive/2008/12/13/walkthrough-tdd-support-with-the-generate-from-usage-feature-in-vs-2010-lisa-feigenbaum.aspx"&gt;Walkthrough: TDD Support with the Generate From Usage Feature in VS 2010 (Lisa Feigenbaum)&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blog.noop.se/archive/2009/06/16/generate-from-usage-in-visual-studio-2010.aspx"&gt;Magnus Martensson on Generate from Usage&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/zce12xx2(VS.100).aspx"&gt;Task Lists and TODO comments in the MSDN Library&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2fcharlie%2farchive%2f2009%2f11%2f07%2fhdi-video-generate-from-usage-with-karen-liu.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2fcharlie%2farchive%2f2009%2f11%2f07%2fhdi-video-generate-from-usage-with-karen-liu.aspx" /&gt;&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9898211" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/charlie/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Video/default.aspx">Video</category><category domain="http://blogs.msdn.com/charlie/archive/tags/LinqFarm/default.aspx">LinqFarm</category><category domain="http://blogs.msdn.com/charlie/archive/tags/C_2300_+4.0/default.aspx">C# 4.0</category><category domain="http://blogs.msdn.com/charlie/archive/tags/Testing/default.aspx">Testing</category></item><item><title>The two most important components of letting go and moving on are (1) letting go and (2) moving on</title><link>http://blogs.msdn.com/michkap/archive/2009/11/07/9919141.aspx</link><pubDate>Sat, 07 Nov 2009 22:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919141</guid><dc:creator>Michael S. Kaplan</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;It was Friday afternoon when Santhosh (Santhosh Pillai, aka THE Santhosh, the guy who helped us with the collation story for Malayalam way back when) was asking a question. The question was:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face="times new roman,times"&gt;Hi:&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face="times new roman,times"&gt;Is there an updated version of this page &lt;/FONT&gt;&lt;/EM&gt;&lt;A href="http://www.microsoft.com/globaldev/keyboards/kbdinmal.htm"&gt;&lt;EM&gt;&lt;FONT face="times new roman,times"&gt;http://www.microsoft.com/globaldev/keyboards/kbdinmal.htm&lt;/FONT&gt;&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&lt;FONT face="times new roman,times"&gt; available now that Malayalam has Atomic Chillus in Unicode 5.1?&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT face="times new roman,times"&gt;Thanks&lt;BR&gt;Santhosh&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Interesting.... though of course the real underlying question should be more about the keyboard layout(s) in Windows -- the website is just a description of the set of layouts that are installed in the operating system.&lt;/P&gt;
&lt;P&gt;Updating the web site (the actual website, I mean - not the old one we're talking about here!) is a separate matter, but that can't ever happen until/unless the thing the site is meant to be described is updated.&lt;/P&gt;
&lt;P&gt;Now back in the old days, there was a time that I was one of the people Microsoft sent to Unicode Technical Committee meetings, one of the people who came back from those meetings working on how and when to make updates to Windows, sometimes the person who made the actual updates to the keyboard layouts, and always the person who checked in the final layouts to the product.&lt;/P&gt;
&lt;P&gt;In those days, answering this question would have simply been an act of recollection -- remembering the salient details of&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;the updates in Unicode;&lt;/LI&gt;
&lt;LI&gt;the plan for when to get the updates into fonts, character map, collation, and keyboards;&lt;/LI&gt;
&lt;LI&gt;how the plan went.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;but now things are different.&lt;/P&gt;
&lt;P&gt;The Malayalam Chillu debate was going on strong while I was still involved with Unicode, though no final decisions had been made. And whether or not a need existed to include atomic characters for these entities was a fairly central question that would have to be solved before anyone discussed what product changes would be needed and when.&lt;/P&gt;
&lt;P&gt;But other people were minding those stores, I was doing other things.&lt;/P&gt;
&lt;P&gt;So to answer Santhosh's question, I did it the old-fashioned way - I looked at the product to see what was there.&lt;/P&gt;
&lt;P&gt;First, I started in Character Map. I knew the fonts would be updated (Peter Constable was the one who explained to me how the Chillus worked way back when this all first started in Unicode years ago), so I wanted to look and see if there were any characters that were in the font but not in the Charmap list of names, like this one:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 490px; HEIGHT: 516px" src="http://www.trigeminal.com/images/chillu01.jpg" width=490 height=516 mce_src="http://www.trigeminal.com/images/chillu01.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Indeed,&amp;nbsp;there are 17 of them if you include the atomic Chillus, the ones added for Sanskrit, the symbols, the signs, and so on:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;nbsp;ഽ U+0d3d MALAYALAM SIGN AVAGRAHA&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;ൄ U+0d44 MALAYALAM VOWEL SIGN VOCALIC RR&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp; &amp;nbsp;ൢ U+0d62 MALAYALAM VOWEL SIGN VOCALIC L&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp; &amp;nbsp;ൣ U+0d63 MALAYALAM VOWEL SIGN VOCALIC&amp;nbsp;LL&lt;/LI&gt;
&lt;LI&gt;൰ U+0d70 MALAYALAM NUMBER TEN&lt;/LI&gt;
&lt;LI&gt;൱ U+0d71 MALAYALAM NUMBER ONE HUNDRED&lt;/LI&gt;
&lt;LI&gt;൲ U+0d72 MALAYALAM NUMBER ONE THOUSAND&lt;/LI&gt;
&lt;LI&gt;൳ U+0d73 MALAYALAM FRACTION ONE QUARTER&lt;/LI&gt;
&lt;LI&gt;൴ U+0d74 MALAYALAM FRACTION ONE HALF&lt;/LI&gt;
&lt;LI&gt;൵ U+0d75 MALAYALAM FRACTION THREE QUARTERS&lt;/LI&gt;
&lt;LI&gt;൹ U+0d79 MALAYALAM DATE MARK&lt;/LI&gt;
&lt;LI&gt;ൺ U+0d7a MALAYALAM LETTER CHILLU NN&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;ൻ U+0d7b MALAYALAM LETTER CHILLU N&lt;/LI&gt;
&lt;LI&gt;ർ U+0d7c MALAYALAM LETTER CHILLU&amp;nbsp;RR&lt;/LI&gt;
&lt;LI&gt;ൽ U+0d7d MALAYALAM LETTER CHILLU L&lt;/LI&gt;
&lt;LI&gt;ൾ U+0d7e MALAYALAM LETTER CHILLU&amp;nbsp;LL&lt;/LI&gt;
&lt;LI&gt;ൿ U+0d7f MALAYALAM LETTER CHILLU K&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Then I handed each one to LCMapString one at a time. None of them had weight in Vista but all of them have an assigned weight in Windows 7 (some as numbers, some as symbols, some as letters -- kine of what you might expect by looking at the list).&lt;/P&gt;
&lt;P&gt;Okay, good so far -- just no updated character list in Character Map. Unfortunate, but hardly tragic, as the sadness over not seeing the name in the lower left hand corner of that dialog is quickly mitigated by the character's presence in the font itself! :-)&lt;/P&gt;
&lt;P&gt;The keyboard story was less fortunate.&lt;/P&gt;
&lt;P&gt;I loaded up the one and only keyboard layout in MSKLC:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 346px; HEIGHT: 537px" src="http://www.trigeminal.com/images/chillu02.jpg" width=346 height=537 mce_src="http://www.trigeminal.com/images/chillu02.jpg"&gt;&lt;/P&gt;
&lt;P&gt;took a quick look at the keyboard, and then saved it out as a KLC file looking at code points in case I missed anything.&lt;/P&gt;
&lt;P&gt;They aren't there.&lt;/P&gt;
&lt;P&gt;Oops.&lt;/P&gt;
&lt;P&gt;My first reaction was that somebody must have messed up, been asleep at the switch, etc.&lt;/P&gt;
&lt;P&gt;But then I realized that was how everyone felt whenever they came to me because of something they perceived as an omission or bug. Knowing more of the underlying infrastructure does not make me any more psychic than the people who used to&amp;nbsp;come to me -- I cannot read the minds or intents of the owners.&lt;/P&gt;
&lt;P&gt;Maybe the update was not so easy to do. The Character Map thing is an obvious omission, but that is just a small bug on someone to get it updated.&lt;/P&gt;
&lt;P&gt;The keyboard layout is the complicated one, of course. The layout is based on the INSCRIPT standards coming out of India, and although adding the letters would not have been unreasonable, there are two sides to that story and there may well have been reasons not to add them, too.&lt;/P&gt;
&lt;P&gt;Collation beyond the "some weight" question is an interesting one; ideally it would be handled with equivalences&amp;nbsp;the way we did Romanian with the comma below/cedilla below.&lt;/P&gt;
&lt;P&gt;Grabbing the table from the &lt;A href="http://www.unicode.org/versions/Unicode5.1.0/#Malayalam_Chillu_Characters" mce_href="http://www.unicode.org/versions/Unicode5.1.0/#Malayalam_Chillu_Characters"&gt;Unicode 5.1 update&lt;/A&gt;:&lt;/P&gt;
&lt;H3&gt;Table 1. Atomic Encoding of &lt;I&gt;Chillus&lt;/I&gt; &lt;/H3&gt;
&lt;P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;&lt;BR&gt;&amp;nbsp; &lt;/TD&gt;
&lt;TD&gt;&lt;B&gt;Visual &lt;/B&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;B&gt;Representation in 5.0 and Prior&lt;/B&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;B&gt;Preferred 5.1 Representation&lt;/B&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;&lt;IMG style="VERTICAL-ALIGN: -10px" alt=CHILLU_NN.png src="http://www.unicode.org/versions/Unicode5.1.0/images/mlym_nn.png" width=37 height=29&gt;&lt;/TD&gt;
&lt;TD&gt;NNA, VIRAMA, ZWJ&lt;BR&gt;(0D23, 0D4D, 200D)&lt;/TD&gt;
&lt;TD&gt;0D7A MALAYALAM LETTER CHILLU NN &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;2&lt;/TD&gt;
&lt;TD&gt;&lt;IMG style="VERTICAL-ALIGN: -10px" alt=CHILLU_N.png src="http://www.unicode.org/versions/Unicode5.1.0/images/mlym_n.png" width=26 height=29&gt; &lt;/TD&gt;
&lt;TD&gt;NA, VIRAMA, ZWJ&lt;BR&gt;(0D28, 0D4D, 200D)&lt;/TD&gt;
&lt;TD&gt;0D7B MALAYALAM LETTER CHILLU N&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;&lt;IMG style="VERTICAL-ALIGN: -10px" alt=CHILLU_RR.png src="http://www.unicode.org/versions/Unicode5.1.0/images/mlym_rr.png" width=17 height=29&gt; &lt;/TD&gt;
&lt;TD&gt;RA, VIRAMA, ZWJ&lt;BR&gt;(0D30, 0D4D, 200D)&lt;/TD&gt;
&lt;TD&gt;0D7C MALAYALAM LETTER CHILLU RR &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;4&lt;/TD&gt;
&lt;TD&gt;&lt;IMG style="VERTICAL-ALIGN: -10px" alt=CHILLU_L.png src="http://www.unicode.org/versions/Unicode5.1.0/images/mlym_l.png" width=29 height=30&gt; &lt;/TD&gt;
&lt;TD&gt;LA, VIRAMA, ZWJ&lt;BR&gt;(0D32, 0D4D, 200D)&lt;/TD&gt;
&lt;TD&gt;0D7D MALAYALAM LETTER CHILLU L &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;5&lt;/TD&gt;
&lt;TD&gt;&lt;IMG style="VERTICAL-ALIGN: -10px" alt=CHILLU_LL.png src="http://www.unicode.org/versions/Unicode5.1.0/images/mlym_ll.png" width=25 height=29&gt; &lt;/TD&gt;
&lt;TD&gt;LLA, VIRAMA, ZWJ&lt;BR&gt;(0D33, 0D4D, 200D)&lt;/TD&gt;
&lt;TD&gt;0D7E MALAYALAM LETTER CHILLU LL &lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;6&lt;/TD&gt;
&lt;TD&gt;&lt;IMG style="VERTICAL-ALIGN: -10px" alt=k src="http://www.unicode.org/versions/Unicode5.1.0/images/mlym_k.png" width=25 height=29&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;I&gt;undefined&lt;/I&gt;&lt;/TD&gt;
&lt;TD&gt;0D7F MALAYALAM LETTER CHILLU K&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;Ok, looking at the weights of the first five entries in that table:&lt;/P&gt;
&lt;TABLE border=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;old way&lt;/TD&gt;
&lt;TD&gt;weight&lt;/TD&gt;
&lt;TD&gt;new way&lt;/TD&gt;
&lt;TD&gt;weight&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;U+0d23 U+0d4d U+200d&lt;/TD&gt;
&lt;TD&gt;3a 77 01 01 01 01 00&lt;/TD&gt;
&lt;TD&gt;U+0d7a&lt;/TD&gt;
&lt;TD&gt;3a 72 01 01 01 01 00&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;U+0d28 U+0d4d U+200d&lt;/TD&gt;
&lt;TD&gt;3a 8b 01 01 01 01 00&lt;/TD&gt;
&lt;TD&gt;U+0d7b&lt;/TD&gt;
&lt;TD&gt;3a 86 01 01 01 01 00&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;U+0d30 U+0d4d U+200d&lt;/TD&gt;
&lt;TD&gt;3a a7 01 01 01 01 00&lt;/TD&gt;
&lt;TD&gt;U+0d7c&lt;/TD&gt;
&lt;TD&gt;3a a6 01 01 01 01 00&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;U+0d32 U+0d4d U+200d&lt;/TD&gt;
&lt;TD&gt;3a af 01 01 01 01 00&lt;/TD&gt;
&lt;TD&gt;U+0d7d&lt;/TD&gt;
&lt;TD&gt;3a aa 01 01 01 01 00&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;U+0d33 U+0d4d U+200d&lt;/TD&gt;
&lt;TD&gt;3a b3 01 01 01 01 00&lt;/TD&gt;
&lt;TD&gt;U+0d7e&lt;/TD&gt;
&lt;TD&gt;3a ae 01 01 01 01 00&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;They don't match. I'd have to see what else is in the Malayalam table to know if it is only the equivalence that wasn't done (there might be actual ordering issues also) but I can't tell for sure (I have my hands full trying to learn Tamil and Bengali!). Offhand the weights never look to far from each other, so perhaps it was just a conscious decision to not support the equivalance....&lt;/P&gt;
&lt;P&gt;I honestly don't know the answer to any of the questions I posed above, but I can probably ask a question or two of some people next week (post re-org I'm not 100% sure owns all this stuff now, so it could take me some time to track down who to ask!).&lt;/P&gt;
&lt;P&gt;But either way there are at a mimimum a few bugs that I found in all this; I'll talk to some testers I know down the hall about those ones even sooner.&lt;/P&gt;
&lt;P&gt;As I said in the title, the two most important components of letting go and moving on are (1) letting go and (2) moving on. But I'm likely to get curious now and again about how things are going....&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919141" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michkap/archive/tags/Collation_2F00_Casing/default.aspx">Collation/Casing</category><category domain="http://blogs.msdn.com/michkap/archive/tags/Keyboards/default.aspx">Keyboards</category><category domain="http://blogs.msdn.com/michkap/archive/tags/Locales_2F00_Cultures/default.aspx">Locales/Cultures</category><category domain="http://blogs.msdn.com/michkap/archive/tags/Linguistic/default.aspx">Linguistic</category><category domain="http://blogs.msdn.com/michkap/archive/tags/Unicode_2F00_standards/default.aspx">Unicode/standards</category><category domain="http://blogs.msdn.com/michkap/archive/tags/Fonts_2F00_Typography/default.aspx">Fonts/Typography</category><category domain="http://blogs.msdn.com/michkap/archive/tags/Unicode+Lame+List/default.aspx">Unicode Lame List</category></item><item><title>ODF plugfest and OOoCon, Orvieto</title><link>http://blogs.msdn.com/dmahugh/archive/2009/11/07/odf-plugfest-and-ooocon-orvieto.aspx</link><pubDate>Sat, 07 Nov 2009 21:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919134</guid><dc:creator>dmahugh</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;I’ve spent the last week in the city of Orvieto, perched atop a hill in Umbria, Italy.&amp;nbsp; Monday and Tuesday I particpated in the second ODF Plugfest, and then Wednesday through Friday I attended OOoCon, the annual OpenOffice.org conference.&amp;nbsp; I gave a presentation on Wednesday about Office’s approach to interoperability with OpenOffice.org, which you can find on the &lt;A href="http://conference.services.openoffice.org/index.php/ooocon/2009/schedConf/presentations" mce_href="http://conference.services.openoffice.org/index.php/ooocon/2009/schedConf/presentations"&gt;OOoCon presentation page&lt;/A&gt;, and you can find the presentations from the plugfest, as well as the test scenarios we went through, on the &lt;A href="http://plugtest.opendocsociety.org/doku.php" mce_href="http://plugtest.opendocsociety.org/doku.php"&gt;plugfest web site&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;It was great to see everyone I had met at the last plugfest, and I also had the opportunity to finally meet in person many people I’ve only known via email and the ODF TC calls, including Svante Schubert, Charles Schulz, Louis Suarez-Potts, Eike Rathke and others.&amp;nbsp; Everyone was great, and made me feel very welcome.&lt;/P&gt;
&lt;P&gt;I was planning to do some sightseeing in Rome this weekend, but there is a train strike that begins at 21:00 today (Saturday), so I’m going to stay right here in Orvieto until Monday, when I’ll fly to Brussels for meetings and preparations for the upcoming &lt;A href="http://blogs.msdn.com/dmahugh/archive/2009/10/13/dii-workshop-brussels-november-12.aspx" mce_href="http://blogs.msdn.com/dmahugh/archive/2009/10/13/dii-workshop-brussels-november-12.aspx"&gt;DII workshop&lt;/A&gt; on Thursday, November 12.&amp;nbsp; If you’d like to see the photos I’ve taken in Orvieto this week, you can find them on &lt;A href="http://www.flickr.com/photos/dougerino/tags/orvieto/" mce_href="http://www.flickr.com/photos/dougerino/tags/orvieto/"&gt;Flickr&lt;/A&gt;, and I’ve also included thumbnails of a few favorites below.&lt;/P&gt;
&lt;P&gt;And now, after a long day of photographing the sights of Orvieto, it’s time to get out and enjoy some local cuisine.&amp;nbsp; Buon appetito!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.flickr.com/photos/dougerino/4072312034/" mce_href="http://www.flickr.com/photos/dougerino/4072312034/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image28.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image28.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4072545725/" mce_href="http://www.flickr.com/photos/dougerino/4072545725/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image25.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image25.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4070295070/" mce_href="http://www.flickr.com/photos/dougerino/4070295070/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image_43.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image_43.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4076758097/" mce_href="http://www.flickr.com/photos/dougerino/4076758097/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image3.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image3.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4082946279/" mce_href="http://www.flickr.com/photos/dougerino/4082946279/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image42.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image42.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4066978183/" mce_href="http://www.flickr.com/photos/dougerino/4066978183/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image15.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image15.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4083126508/" mce_href="http://www.flickr.com/photos/dougerino/4083126508/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image16.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image16.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4084154950/" mce_href="http://www.flickr.com/photos/dougerino/4084154950/"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image_18.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image_18.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4083615012/" mce_href="http://www.flickr.com/photos/dougerino/4083615012/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image1.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image1.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4081124710/" mce_href="http://www.flickr.com/photos/dougerino/4081124710/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image11.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image11.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4079176429/" mce_href="http://www.flickr.com/photos/dougerino/4079176429/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image10.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image10.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4082886887/" mce_href="http://www.flickr.com/photos/dougerino/4082886887/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image7%5B1%5D.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image7%5B1%5D.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4082878779/" mce_href="http://www.flickr.com/photos/dougerino/4082878779/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image4.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image4.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4081106544/" mce_href="http://www.flickr.com/photos/dougerino/4081106544/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image1%5B1%5D.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image1%5B1%5D.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4070314512/" mce_href="http://www.flickr.com/photos/dougerino/4070314512/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image36.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image36.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4069537237/" mce_href="http://www.flickr.com/photos/dougerino/4069537237/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image21.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image21.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4079177797/" mce_href="http://www.flickr.com/photos/dougerino/4079177797/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image301.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image301.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4077911684/" mce_href="http://www.flickr.com/photos/dougerino/4077911684/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image271.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image271.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4079936324/" mce_href="http://www.flickr.com/photos/dougerino/4079936324/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image39.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image39.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;A href="http://www.flickr.com/photos/dougerino/4072192153/" mce_href="http://www.flickr.com/photos/dougerino/4072192153/"&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://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image18.png" width=104 height=84 mce_src="http://blogs.msdn.com/blogfiles/dmahugh/WindowsLiveWriter/ODFplugfestandOOoConOrvieto_13C2/image18.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919134" width="1" height="1"&gt;</description></item><item><title>Premultiplied alpha and image composition</title><link>http://blogs.msdn.com/shawnhar/archive/2009/11/07/premultiplied-alpha-and-image-composition.aspx</link><pubDate>Sat, 07 Nov 2009 20:34:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919127</guid><dc:creator>ShawnHargreaves</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;From &lt;a href="http://en.wikipedia.org/wiki/Alpha_compositing" target="_blank"&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;Alpha compositing is the process of combining an image with a background to create the appearance of partial transparency. It is often useful to render image elements in separate passes, and then combine the resulting multiple 2D images into a single, final image in a process called compositing.&amp;quot;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Example&lt;/h3&gt;  &lt;p&gt;I am making a Pong game. I start by clearing my background to CornflowerBlue (100, 149, 237). I then draw a translucent grey box (128, 128, 128, 128) at the top of the screen, which will form the background of my score display. With conventional alpha blending:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;((128, 128, 128) * 0.5)&amp;#160; +&amp;#160; ((100, 149, 237) * (1 - 0.5))&amp;#160; =&amp;#160; (114, 138, 182)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Well and good. But over time, my overlays get more complex, including a map, radar, waypoint indicators, mission objectives, leaderboard rankings, etc. (what can I say, this is a &lt;em&gt;complex &lt;/em&gt;Pong game :-)&amp;#160; To avoid redrawing so much stuff every frame, wouldn't it be cool if I could draw the overlays just once to a rendertarget, then copy the resulting static image over the top of my animating gameplay?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;A Problem&lt;/h3&gt;  &lt;p&gt;Unfortunately, this doesn't work using conventional alpha blending:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Clear rendertarget to (0, 0, 0, 0)&lt;/p&gt;    &lt;p&gt;Blend 50% grey into the rendertarget:&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ((128, 128, 128, 128) * 0.5)&amp;#160; +&amp;#160; ((0, 0, 0, 0) * (1 - 0.5))&amp;#160; =&amp;#160; (64, 64, 64, 64)&lt;/p&gt;    &lt;p&gt;Clear backbuffer to CornflowerBlue (100, 149, 237)&lt;/p&gt;    &lt;p&gt;Blend rendertarget over the backbuffer:&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ((64, 64, 64) * 0.25)&amp;#160; +&amp;#160; ((100, 149, 237) * (1 - 0.25))&amp;#160; =&amp;#160; (91, 127, 194)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Whoah! That's not even remotely the same result as before. The blend operation is happening twice: first when we draw into the rendertarget, then again when we draw the rendertarget into the backbuffer. Our alpha value ends up getting squared, so 0.5 becomes 0.25.&lt;/p&gt;  &lt;p&gt;We could fix this by removing one of the blend operations:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Disable blending while drawing to the rendertarget&lt;/li&gt;    &lt;li&gt;Or disable blending while drawing the rendertarget over the backbuffer&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But these are rarely good solutions, since you most likely need blending in both places&amp;#160; (the overlays in my Pong game are built from many layers of alpha blended graphics, and the gameplay scene should be visible behind them).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Some Math&lt;/h3&gt;  &lt;p&gt;Given a series of drawing operations which blend over the top of each other:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;result = a -&amp;gt; b -&amp;gt; c -&amp;gt; d&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;we would like to be able to group a set of calls from the middle of this sequence, storing their result in a rendertarget, then later replace that set of calls with the contents of the rendertarget:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;tmp = b -&amp;gt; c&lt;/p&gt;    &lt;p&gt;result = a -&amp;gt; tmp -&amp;gt; d&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The problem is that this changes the order of the blend operations. What was:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;result = blend(blend(blend(a, b), c), d)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;becomes:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;result = blend(blend(a, blend(b, c)), d)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Because conventional alpha blending is not associative, changing the order of evaluation changes the result.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;The Solution&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/shawnhar/archive/2009/11/06/premultiplied-alpha.aspx" target="_blank"&gt;Premultiplied alpha blending&lt;/a&gt; is associative, so any number of blending operations can be grouped and reordered without affecting the final result.&lt;/p&gt;  &lt;p&gt;To use premultiplied alpha, we make two changes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Convert our source colors into premultiplied format, so translucent grey becomes (64, 64, 64, 128) rather than (128, 128, 128, 128)      &lt;p&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Change RenderState.SourceBlend from Blend.SourceAlpha to Blend.One &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Working through the same example as before:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Clear rendertarget to (0, 0, 0, 0)&lt;/p&gt;    &lt;p&gt;Blend 50% grey into the rendertarget:&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (64, 64, 64, 128) +&amp;#160; ((0, 0, 0, 0) * (1 - 0.5))&amp;#160; =&amp;#160; (64, 64, 64, 128)&lt;/p&gt;    &lt;p&gt;Clear backbuffer to CornflowerBlue (100, 149, 237)&lt;/p&gt;    &lt;p&gt;Blend rendertarget over the backbuffer:&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (64, 64, 64) +&amp;#160; ((100, 149, 237) * (1 - 0.5))&amp;#160; =&amp;#160; (114, 138, 182)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Tada! That's the same result as when we were drawing everything directly to the backbuffer.&lt;/p&gt;  &lt;p&gt;Premultiplied alpha r0x0rz.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Historical Aside&lt;/h3&gt;  &lt;p&gt;Alvy Ray Smith writes about the &lt;a href="http://www.alvyray.com/memos/7_alpha.pdf" target="_blank"&gt;invention of the alpha channel&lt;/a&gt; and &lt;a href="http://www.alvyray.com/memos/4_comp.pdf" target="_blank"&gt;image composition&lt;/a&gt;. I find it interesting that this was invented in the 1970s, and fully grokked as of the classic &lt;a href="http://portal.acm.org/citation.cfm?id=808606" target="_blank"&gt;Porter-Duff paper&lt;/a&gt; in 1984, yet here we are a quarter of a century later, still having a hard time making composition work right because for some reason premultiplied alpha never became as widely understood as it deserves to be.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919127" width="1" height="1"&gt;</description></item><item><title>Post #4 – Copying VSIX extensions to the Experimental Instance</title><link>http://blogs.msdn.com/mglehman/archive/2009/11/07/post-4-copying-vsix-extensions-to-the-experimental-instance.aspx</link><pubDate>Sat, 07 Nov 2009 19:50:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919120</guid><dc:creator>Michael Lehman</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;When using Visual Studio Extensions (aka VSIXs), sometimes you may want to use those Extensions when debugging in the Experimental Instance of Visual Studio.&lt;/p&gt;  &lt;p&gt;However, when installing VSIXs via the Extension Manager or by double clicking on a .vsix file, they are only installed in the main instance.&lt;/p&gt;  &lt;p&gt;To copy the extensions, select “Reset the Microsoft Visual Studio 2010 Experimental Instance” from the Start –&amp;gt; Microsoft Visual Studio 2010 Beta2 SDK –&amp;gt; Tools menu.&lt;/p&gt;  &lt;p&gt;Your main instance VSIXs will be copied into a folder for the Experimental Instance and the next time the Experimental Instance is started they will be installed.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note:&amp;#160; They may not be enabled to be sure to check the Extension Manager to make sure the ones you need are Enabled.&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919120" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mglehman/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Post #3 (a bit delayed)</title><link>http://blogs.msdn.com/mglehman/archive/2009/11/07/post-3-a-bit-delayed.aspx</link><pubDate>Sat, 07 Nov 2009 19:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919116</guid><dc:creator>Michael Lehman</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;While I "fell off the horse" of daily blogging, I'm climbing back on and will still do a post-per-day, it's just that I'm going to do 5 of them today :)&lt;/P&gt;
&lt;P&gt;Today's post is about the "sticky toolbox" feature you can use with the UML designers.&lt;/P&gt;
&lt;P&gt;So many times I've been creating a diagram by dragging and dropping the elements on to the diagram and then went back, one-at-a-time, to select the Connector tool to draw a line.&lt;/P&gt;
&lt;P&gt;Turns out you can double click on the connector tool and then it will stay as the selected tool until you hit Esc or select something else.&amp;nbsp; Thus you can connect multiple items without having to go back to the tool box!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919116" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mglehman/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>setting up the new Mac</title><link>http://blogs.msdn.com/nadyne/archive/2009/11/07/setting-up-the-new-mac.aspx</link><pubDate>Sat, 07 Nov 2009 18:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918987</guid><dc:creator>nadyne</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;As I mentioned earlier, I bought a new MacBook.  My old MacBook was the first-gen black one, and it was getting quite long in the tooth.  Spurred on by a good deal at MicroCenter (thanks again to &lt;a href="http://twitter.com/flargh/" mce_href="http://twitter.com/flargh/"&gt;Peter Cohen&lt;/a&gt; for alerting to me it!), I got one of the new unibody MacBooks. &lt;/p&gt;

&lt;p&gt;Since it's just an off-the-shelf MacBook, there's a couple of immediate upgrades to be done to it.  It comes with 2-GB of RAM, which I'm upgrading to 4-GB.  This time around, &lt;a href="http://www.newegg.com/" mce_href="http://www.newegg.com/"&gt;NewEgg&lt;/a&gt; seems to have the best price on RAM.  I'm also going for a larger hard drive than the 250-GB one included, moving up to a 500-GB 7200rpm drive.  It's not quite as fast as a SSD, but SSDs are still a bit more than I want to pay to go into a MacBook.  &lt;/p&gt;

&lt;p&gt;After installing the hard drive and RAM (the guide at &lt;a href="http://www.ifixit.com/blog/?p=1664" mce_href="http://www.ifixit.com/blog/?p=1664"&gt;iFixit&lt;/a&gt; is quite useful), then it's time to partition the hard drive and reinstall the OS.  I always reinstall the OS on a new Mac so that I only get the stuff I need.  Why install gigs of printer drivers when I don't even own a printer?  &lt;/p&gt;

&lt;p&gt;I usually have one system partition and one data partition.  I move my user folder to the data partition, and I keep as much stuff on that partition instead of the system partition as I can.  That way, should something go belly-up on my system partition, I can (hopefully) still recover my data partition and not lose as much.  &lt;/p&gt;

&lt;p&gt;After the OS is reinstalled, then it's time to install the apps that I use the most: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Office 2008 &lt;/li&gt;
&lt;li&gt;iLife '09 &lt;/li&gt;
&lt;li&gt;Firefox (I prefer Safari, but there are sites that don't play well with it) &lt;/li&gt;
&lt;li&gt;EverNote &lt;/li&gt;
&lt;li&gt;Tweetie (although I'll give Twitterific a go again, since &lt;a href="http://www.macheist.com/" mce_href="http://www.macheist.com/"&gt;MacHeist&lt;/a&gt; gave me a free license) &lt;/li&gt;
&lt;li&gt;Quicken 2007 (I'm really not a big fan of Quicken, but I'm a very deep user of it (my entire financial life is in that data file), and none of the more Mac-friendly apps meet my needs yet) &lt;/li&gt;
&lt;li&gt;The Sims 3 (I hope it runs well on the MB!) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you know what I'm doing with my weekend!  I'm sure I'm forgetting some of the apps that I'll install over the weekend, this is just off the top of my head. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9918987" width="1" height="1"&gt;</description></item><item><title>Windows Mobile 6.5 Start Screen PNG Icon Display problem</title><link>http://blogs.msdn.com/mikefrancis/archive/2009/11/07/windows-mobile-6-5-start-screen-png-icon-display-problem.aspx</link><pubDate>Sat, 07 Nov 2009 18:42:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919108</guid><dc:creator>mjf</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;p&gt;Some developers are reporting a problem with the PNG icon not displaying in the Start screen.The usual symptom is that it does not show up immediately after installation but is seen after a device reset. This problem occurs if following the &lt;span&gt;...&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;&lt;b&gt;Note:&lt;/b&gt; Cross posted from &lt;a href="http://blog.mjfnet.com/Blog/"&gt;Mike Francis: My Mobile Home&lt;/a&gt;.
&lt;br /&gt;&lt;a href="http://blog.mjfnet.com/Blog/2009/11/06/WindowsMobile65StartScreenPNGIconDisplayProblem.aspx"&gt;Permalink&lt;/a&gt;
&lt;br /&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919108" width="1" height="1"&gt;</description></item><item><title>Why Twitter Lists are good for People Search</title><link>http://blogs.msdn.com/skennedy/archive/2009/11/07/why-twitter-lists-are-good-for-people-search.aspx</link><pubDate>Sat, 07 Nov 2009 18:27:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919105</guid><dc:creator>sjkennedy</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This week I was reading a great &lt;a href="http://mashable.com/2009/11/03/twitter-lists-faq/"&gt;Mashable&lt;/a&gt; article by Liz Pullen &lt;a href="http://twitter.com/nwjerseyliz"&gt;@nwjerseyliz&lt;/a&gt;. The article was an FAQ on the new Twitter Lists feature. Twitter lists are essentially an easy way to group or categorise your followers – in effect enabling you to have multiple Twitter streams. Liz identified 3 potential applications of Twitter Lists:&lt;/p&gt;  &lt;p&gt;1. &lt;strong&gt;Lists as a way of organising your followers&lt;/strong&gt; – enables you to follow groups of people more easily. At the moment, I have lists on &lt;a href="http://twitter.com/sjkennedy/socialmedia"&gt;Socialmedia&lt;/a&gt;, &lt;a href="http://twitter.com/sjkennedy/tech"&gt;Tech&lt;/a&gt;, &lt;a href="http://twitter.com/sjkennedy/photographers"&gt;Photographers&lt;/a&gt; and &lt;a href="http://twitter.com/sjkennedy/Microsoft"&gt;Microsoft&lt;/a&gt;. A quick glance at each list and I can see what is going on in that particular group of Twitter users. Very handy. Indeed Twitter clients like &lt;a href="http://seesmic.com"&gt;Seesmic&lt;/a&gt; and &lt;a href="http://brizzly.com"&gt;Brizzly&lt;/a&gt; already consume these lists – and &lt;a href="http://tweetdeck.com"&gt;Tweetdeck&lt;/a&gt; is not far behind.&amp;#160; (Having seen the exchange between &lt;a href="http://twitter.com/scobleizer"&gt;@scobleizer&lt;/a&gt; and Tweetdeck founder &lt;a href="http://twitter.com/iaindodsworth"&gt;@iaindodsworth&lt;/a&gt; this week). So the concept of the Twitter sub-stream is with us to stay.&lt;/p&gt;  &lt;p&gt;2. &lt;strong&gt;Lists as a form of recommendation&lt;/strong&gt; – if you get listed by someone then that is a vote of confidence in you and the content you peddle – sorry, I meant Tweet. :-)&lt;/p&gt;  &lt;p&gt;3.&lt;strong&gt; Lists as a way of measuring influence&lt;/strong&gt; – the more lists you are on, contribute to your overall clout in the Twittersphere. It’s no longer just about number of followers (indeed if it ever was).&lt;/p&gt;  &lt;p&gt;These are all excellent uses of the List feature – however, there is also another powerful application of them.&lt;/p&gt;  &lt;p&gt;Up until now, the way people on Twitter are categorised are by the information provided in their bio. Bios generally tend to be short, and contain keywords – which help with people searches. However, in some cases a bio can contain no information or indeed someone’s bio could be obscure or humorous, and so doesn’t necessarily outline what the person tweets about.&lt;/p&gt;  &lt;p&gt;The introduction of Twitter Lists then is a clever way of tagging Twitter users – clever because it doesn’t rely on the individual necessarily to do it* – as the Twitter community when creating lists, are effectively generating meaningful tags on people.&lt;/p&gt;  &lt;p&gt;* &lt;em&gt;Of course by a user creating lists themselves they are providing more meta-data about themselves. Just look at my lists again. &lt;a href="http://twitter.com/sjkennedy/socialmedia"&gt;Socialmedia&lt;/a&gt;, &lt;a href="http://twitter.com/sjkennedy/tech"&gt;Tech&lt;/a&gt;, &lt;a href="http://twitter.com/sjkennedy/photographers"&gt;Photographers&lt;/a&gt; and &lt;a href="http://twitter.com/sjkennedy/Microsoft"&gt;Microsoft&lt;/a&gt; – tells people what my areas of interest are.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;All of a sudden the People Search capabilities of Twitter have grown exponentially. Not only is there more meaningful keywords on Twitter users now – the number of lists a Twitter user is on, is an indicator of influence – or effectively people rank. People searches on Twitter can return more relevant people search results with this additional keyword data – and the additional data on rank. &lt;/p&gt;  &lt;p&gt;Twitter Lists will proliferate, because firstly, it is in our nature to simplify and group the people we follow, and secondly the reputation element is enough of a carrot for people to create lists. The carrot being the possibility of a reciprocated addition to a List – or indeed the opportunity to gaining potentially more followers.&lt;/p&gt;  &lt;p&gt;Twitter lists can be both public and private. But, the social nature of Twitter means most lists will be public. Public Lists are indexable links by Search Engines. I’m sure engineers at Twitter, Bing, Google and Yahoo are relishing this new source of people meta-data for people searches – or if they’re not they should be.&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:0767317B-992E-4b12-91E0-4F059A8CECA8:1b692f2b-5cb6-4f49-8d86-262a4103538e" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Socialmedia" rel="tag"&gt;Socialmedia&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Twitter" rel="tag"&gt;Twitter&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Lists" rel="tag"&gt;Lists&lt;/a&gt;,&lt;a href="http://technorati.com/tags/People+Search" rel="tag"&gt;People Search&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919105" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/skennedy/archive/tags/Search/default.aspx">Search</category></item><item><title>VidasM</title><link>http://blogs.msdn.com/ronpih/archive/2009/11/07/vidasm.aspx</link><pubDate>Sat, 07 Nov 2009 18:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919100</guid><dc:creator>ronpih</dc:creator><slash:comments>0</slash:comments><description>&lt;P&gt;&lt;A href="http://www.ssas-info.com/VidasMatelisBlog/" mce_href="http://www.ssas-info.com/VidasMatelisBlog/"&gt;Vidas Matelis&lt;/A&gt; has been &lt;A href="http://twitter.com/VidasM" mce_href="http://twitter.com/VidasM"&gt;twittering like crazy&lt;/A&gt; about PowerPivot.&amp;nbsp; At this point, he's the one to follow for info about what's happening in PowerPivot land.&amp;nbsp; He is also starting up a &lt;A href="http://powerpivot-info.com/" mce_href="http://powerpivot-info.com/"&gt;new PowerPivot&amp;nbsp;website&lt;/A&gt; similar to his &lt;A href="http://ssas-info.com/" mce_href="http://ssas-info.com/"&gt;SSAS-info&lt;/A&gt;&amp;nbsp;site.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919100" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ronpih/archive/tags/PowerPivot/default.aspx">PowerPivot</category></item><item><title>Le 1er Décembre 2009 sera la journée Middleware FY10 !</title><link>http://blogs.msdn.com/fredaatz/archive/2009/11/07/le-1er-d-cembre-2009-sera-la-journ-e-middleware-fy10.aspx</link><pubDate>Sat, 07 Nov 2009 17:23:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919089</guid><dc:creator>Aatz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;3 Témoignages de DSI (FNAC, JM Bruneau, SCC)&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;&lt;font size="2"&gt;o Des chantiers de refonte SI en technologies Microsoft sur fond d’existants totalement non Microsoft (mainframe, AS400, Java/J2EE…)&lt;/font&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;font size="2"&gt;o Un projet de dématérialisation fiscale&amp;#160; &lt;/font&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;font size="2"&gt;· &lt;b&gt;Des cas pratiques projets&lt;/b&gt; :&amp;#160; l’UNESCO (MOSS et SAP), Limagrain et Lamartinière (Intégration Dynamics AX),…etc.&lt;/font&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;font size="2"&gt;· &lt;b&gt;Exclusivités produits&lt;/b&gt; : .NET 4.0 et « DUBLIN » le serveur d’application Microsoft, Master Data Management avec SQL Server 2008 R2&lt;/font&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;font size="2"&gt;· &lt;b&gt;La présence des équipes produits Corp&lt;/b&gt;.&lt;/font&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;font size="2"&gt;· &lt;b&gt;6 partenaires sponsors &lt;/b&gt;: LOGICA, Avanade, CODit, Expertime, SWORD, MCNEXT&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;&lt;b&gt;Une journée à ne pas manquer (invitation ci-jointe) !&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/france/serveur/biztalk/roadshow.html"&gt;http://www.microsoft.com/france/serveur/biztalk/roadshow.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/france/serveur/biztalk/roadshow.html"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/fredaatz/WindowsLiveWriter/Le1erDcembre2009seralajourneMiddlewareFY_102AE/clip_image001_028856ba-61eb-45e9-a81e-bd47bc35b62e.jpg" width="398" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919089" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fredaatz/archive/tags/Microsoft+Technology+Center/default.aspx">Microsoft Technology Center</category><category domain="http://blogs.msdn.com/fredaatz/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/fredaatz/archive/tags/WebServices/default.aspx">WebServices</category><category domain="http://blogs.msdn.com/fredaatz/archive/tags/MTC+Paris/default.aspx">MTC Paris</category></item><item><title>7.11 - Праздник Windows 7 в Метрополисе</title><link>http://blogs.msdn.com/sos/archive/2009/11/07/windows-7-retail-launch-in-russia.aspx</link><pubDate>Sat, 07 Nov 2009 16:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919082</guid><dc:creator>sos</dc:creator><slash:comments>1</slash:comments><description>&lt;P&gt;Только что вернулся с &lt;A href="http://blogs.msdn.com/sos/archive/2009/11/06/windows-7-retail-launch-come-to-meet-at-metropolis.aspx" mce_href="http://blogs.msdn.com/sos/archive/2009/11/06/windows-7-retail-launch-come-to-meet-at-metropolis.aspx"&gt;праздника Windows 7&lt;/A&gt; в Метрополисе на Войковской, посвященного началу розничных продаж Windows 7 в России. Добровольно простояв всего 3 часа на стенде, рассказывая посетителям про преимущества операционной системы, почему-то ужасно устал. Тем не менее, сразу поделюсь несколькими фотографиями и впечатлениями.&lt;/P&gt;
&lt;P&gt;Ещё в метро, выйдя из вагона на ст.Войковская, я заметил входящих в вагон маму с ребенком, несущем воздушный шарик Windows 7. Сразу у выхода из метро стояли промоутеры, заманивающие на акцию, а из самого Метрополиса также толпой шли красивые девушки и дети с шариками.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb.png" width=369 height=277 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb.png"&gt;&lt;/A&gt; &lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_1.png" width=412 height=276 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;В самом центре было расположено 7 точек, на каждой из которых рассказывали про различные преимущества Windows 7: надёжность, производительность, удобство, безопасность, Windows Live и т.д. Посетители могли прослушать и просмотреть демонстрацию, после чего их просили повторить что-то из показанного, и ставили штампик в “обходной лист”. Обойдя все 7 точек, можно было сдать тест на знание Windows 7 в М-Видео и выиграть ноутбук.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_6.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_2.png" width=371 height=279 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_2.png"&gt;&lt;/A&gt; &lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_8.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_3.png" width=370 height=278 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Попадались удивительные люди. Начиная от пожилых людей, которые с легкостью ориентировались в системе, заканчивая молодой девушкой, которая спрашивала у меня, какие новшества для программистов внести в Windows 7, есть ли там редактор с подсветкой кода (“у нас есть такой редактор, называется Visual Studio Express”), и можно ли поковыряться в командной строке (пришлось показать Powershell). Спрашивал, какая система стоит дома – только у уже упомянутой девушки Ubuntu, у двух ребят МакОС, у остальных – XP, 7 или Vista (в порядке убывания популярности). Пообщался с несколькими (твиттер)знакомыми и своими бывшими студентами, которые подходили на стенд – в том числе с &lt;A href="http://twitter.com/deeper2k" mce_href="http://twitter.com/deeper2k"&gt;@deeper2k&lt;/A&gt;, с которым раньше не был знаком лично. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_10.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_10.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_4.png" width=378 height=284 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_4.png"&gt;&lt;/A&gt; &lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_12.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_12.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_5.png" width=377 height=284 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_5.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;В общем, праздник удался! Настоявшись 3 часа на стенде, пошел раздавать шарики посетителям – в основном детям и молодым девушкам. Встретил англоговорящую семью с ребенком 5-6 лет, который пользуется домашней XP. Познакомился с девушками-школьницами, у которых дома уже стоит Windows 7. Поучаствовал в видео, которое снимали наши студенты-партнёры для международного студенческого портала – надеюсь, скоро сможем вам его показать.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_18.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_18.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_8.png" width=277 height=245 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_8.png"&gt;&lt;/A&gt; &lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_16.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_16.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_7.png" width=164 height=244 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_7.png"&gt;&lt;/A&gt; &lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_20.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_20.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_9.png" width=253 height=245 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Оказалось, что 3 часа говорить с людьми – это очень утомительно (хотя тоже самое со сцены делается легко). В результате, сильно утомилася, и с фотоотчетом опоздал – меня опередил &lt;A href="http://www.thevista.ru/page.php?id=12035" mce_href="http://www.thevista.ru/page.php?id=12035"&gt;deeper2k на сайте theVista.ru&lt;/A&gt;. Ему удалось снять много интересного, в том числе и то, как Николай Прянишников вручал ноутбук одному из победителей. Зато мне удалось снять изнанку праздника, штаб-квартиру Майкрософт, из которой координировались все действия.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_24.png" mce_href="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_24.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_11.png" width=447 height=253 mce_src="http://blogs.msdn.com/blogfiles/sos/WindowsLiveWriter/7.11Windows7_10E9B/image_thumb_11.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Также прямые репортажи с мероприятия можно читать &lt;A href="http://twitter.com/#search?q=%23win7ret" mce_href="http://twitter.com/#search?q=%23win7ret"&gt;в твиттере с тегом #win7ret&lt;/A&gt;. Я со своей стороны тоже старался немного писать &lt;A href="http://twitter.com/shwars" mce_href="http://twitter.com/shwars"&gt;в твиттер&lt;/A&gt;, правда, не очень получалось.&lt;/P&gt;
&lt;P&gt;А кто-нибудь из вас был на мероприятии? Как впечатления?&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919082" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/sos/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.msdn.com/sos/archive/tags/_1604380437043D0435043D043D043E043504_/default.aspx">Жизненное</category></item></channel></rss>