<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feedproxy.google.com/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feedproxy.google.com/~d/styles/itemcontent.css"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Scott Hanselman's Computer Zen</title>
    <link>http://www.hanselman.com/blog/</link>
    <description>Scott Hanselman's Thoughts on Programming, Technology, Fatherhood, and Life</description>
    <image>
      <url>http://www.hanselman.com/blog/images/zenicon.jpg</url>
      <title>Scott Hanselman's Computer Zen</title>
      <link>http://www.hanselman.com/blog/</link>
    </image>
    <copyright>admin</copyright>
    <lastBuildDate>Thu, 20 Nov 2008 23:21:22 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.7238.742</generator>
    <managingEditor>scott@hanselman.com</managingEditor>
    <webMaster>scott@hanselman.com</webMaster>
    <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feedproxy.google.com/ScottHanselman" type="application/rss+xml" /><feedburner:emailServiceId>ScottHanselman</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=78eb3518-cac8-4055-8555-b6017d044cf9</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=78eb3518-cac8-4055-8555-b6017d044cf9</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=78eb3518-cac8-4055-8555-b6017d044cf9</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=78eb3518-cac8-4055-8555-b6017d044cf9</wfw:commentRss>
      <slash:comments>26</slash:comments>
      <title>Do you have to know English to be a Programmer?</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=78eb3518-cac8-4055-8555-b6017d044cf9</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/vOF0oL4ft-s/DoYouHaveToKnowEnglishToBeAProgrammer.aspx</link>
      <pubDate>Thu, 20 Nov 2008 23:21:22 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;An interesting comment thread broke out in a recent post on &lt;a href="http://www.hanselman.com/blog/UsingCrowdsourcingForExpandingLocalizationOfProducts.aspx"&gt;Using Crowdsourcing for Expanding Localization of Products&lt;/a&gt;. Someone linked to a post and used the phrase:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;"&lt;/em&gt;&lt;a href="http://hype-free.blogspot.com/2008/10/should-we-use-english.html"&gt;&lt;em&gt;&lt;strong&gt;If you don't know English, you're not a programmer&lt;/strong&gt;.&lt;/em&gt;&lt;/a&gt;&lt;em&gt;" &lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The post linked to didn't make the statement so boldly, but it's an interesting "&lt;a href="http://www.jimwestergren.com/link-bait/"&gt;link bait&lt;/a&gt;" phrase, isn't it? It's defintely phrased to get your attention and evoke opinions. I don't agree with it, but I wanted to dig more into the concept. &lt;/p&gt; &lt;p&gt;This whole conversation caught the eye of &lt;a href="http://www.microsoft.com/video/en/us/details/b3a02d0f-f5bc-47d4-acbd-8dc5034dcdb0"&gt;Fabrice Fonck&lt;/a&gt;, General Manager (GM) of Developer Content &amp;amp; Internationalization for DevDiv. He wrote this email to me and I wanted to share it with you. He's was a programmer before he became a manager, and English is not his first language, so I thought it fitting. I also added &lt;strong&gt;emphasis &lt;/strong&gt;in spots. Fabrice believes very strongly in the usefulness of translation and translated content and has an entire organization dedicated to it, so you can understand why he'd feel strongly about this. &lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;I began studying computer science and programming in 1985 as a freshman in a business school in France, my native country. At the time , localized versions of programming tools were not available and I will always remember when I picked up that version of GW-Basic only to realize that it was all in English. Learning programming seemed already daunting, but doing it in a foreign language only increased my level of fear. Over 20 years have gone by and English does not feel quite as foreign to me anymore, but I cannot help but think that for billions of people around the world, taking on such a double challenge may not necessarily lead to the same outcome.&lt;/em&gt; &lt;p&gt;&lt;em&gt;Over the past 17 years in the Developer Division at Microsoft, I have devoted a large portion of my time and energy making sure our products and technologies are available in as many languages as possible because I believe it is important to make them accessible to as many people as possible around the world. During all these years, I have had the privilege of traveling to many countries around the world and I have talked to many of our customers, a number of which through interpreters. &lt;strong&gt;I have met many brilliant developers out there whose English language skills were limited if not practically non-existent.&lt;/strong&gt; This anecdotal evidence is supported by our sales figures.&lt;strong&gt; In Japan for instance, where we have one of our largest developer population in the world, over 99% of our product sales are in Japanese. Entering that market with an English-only product is a recipe for failure. That same is true in counties such as France, Germany, Spain, Russia or China where our localized products represent over 80% of our sales.&lt;/strong&gt; The list of countries goes on and on.&lt;/em&gt; &lt;p&gt;&lt;em&gt;While it is true that a number of people overseas for whom English is not their native tongue will eventually learn and benefit from the vast amounts of technical content available in English, &lt;strong&gt;a greater number will not.&lt;/strong&gt; That is why we continue to expand the number of languages in which Developer Division products and technologies are localized into. Cost is obviously an important factor here, especially for smaller geographies. That is why we continue to invest in technologies such as machine translation, translation wikis and CLIP, and concepts such as crowdsourcing and community engagement to drive down costs and make these languages a reality for the millions of developers out there (and aspiring developers) that do not speak English. &lt;strong&gt;By making our products available in all these languages, we also foster more community engagement in these languages, through blogs, forums, chat rooms, etc.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Here's some choice comments from the previous post:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Erling Paulsen:&lt;/strong&gt; &lt;em&gt;"Most articles, knowledge bases, books and so on are in English, so if you want to read up on something in depth, you need to have at least basic reading skills in English. Translating tooltips inside Visual Studio could end up causing confusion for at least new developers, as what they would see on-screen potentially did not match up with what the tutorial/book they were following." &lt;/em&gt;and&lt;em&gt; "...I truly do appreciate that Microsoft is trying to make an effort, and I believe that MSDN has had a vast improvement in usability the past year or so. And the fact that MSFT are allowing community contribution is absolutely fantastic, but at least to me, the translation effort just seems a bit unnecessary." &lt;/em&gt;and&lt;em&gt; "I never said, or meant to say that you need to be fluent in english to be a good programmer. And as Scott points out, the side-by-side translation feature would actually be a great way for learning english."&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Paul van de Loo: &lt;/strong&gt;"Developers might as well get used to learning new languages (even if they aren't programming languages)."&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Spence:&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;""A programmer who doesn't at least understand English is not a programmer" that's an outrageous statement. That's like saying "a musician who is deaf is not a musician" patently untrue and ridiculous. plus pretty offensive to millions of programmers."&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Ramiro&lt;/strong&gt;: "I believe that in an ideal world every programmer should speak and read enough English to be able to work, learn and interact. However (and specially in Latin America) this is still a long term goal. I really applaud the effort being put in by Microsoft and other companies to make resources more available for everyone."&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Robert Höglund:&lt;/strong&gt; "I do think we developers need a common language. When you have a problem, get a strange exception, 9/10 just googling the error message will get you the answer. I have tried developing on a Swedish version of XP but trying to search for those error messages doesn't work. Can't say i agree with the statement "If you don't know English, you're not a programmer" but it does make life easier."&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Farhaneh:&lt;/strong&gt; "I can not speak and write english very well , but i'm taking classes and reading english books in my major to make it better. because i want to be a good programmer."&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Filini:&lt;/strong&gt; "The english syntax that has been used in programming languages for the last 50 years."&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;John Peek: &lt;/strong&gt;"To say that if you don't know English, you're not a programmer is a perfect example of ethnocentrism in this country."&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;What do YOU think? Is learning English the #1 thing a Programmer should do (after learning to type)? Can you be an awesome programmer and speak little or NO English?&lt;/p&gt; &lt;p&gt;The comment that *I* personally agree with the most is from &lt;strong&gt;Ryan&lt;/strong&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;"It would *seem* (totally non-scientific sampling) that the non-english speakers (as a first language anyway) tend to agree with the statement "If you don't know English, you're not a programmer" more than native english speakers."&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;What do YOU think, Dear Reader?&lt;/p&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/wHdyn9HUkCAgaTrFV9cPW5aKwWA/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/wHdyn9HUkCAgaTrFV9cPW5aKwWA/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=YYpTOOJ6"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=cm6SDIvW"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=cm6SDIvW" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=rgvuCBUK"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=kxG9HShv"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=kxG9HShv" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=IUisIbpl"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=IUisIbpl" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=ibFVTWip"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/vOF0oL4ft-s" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=78eb3518-cac8-4055-8555-b6017d044cf9</comments>
      <category>Internationalization</category>
    <feedburner:origLink>http://www.hanselman.com/blog/DoYouHaveToKnowEnglishToBeAProgrammer.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=2d56d3d0-edf9-4330-b6af-a964b5f6f3a5</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=2d56d3d0-edf9-4330-b6af-a964b5f6f3a5</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=2d56d3d0-edf9-4330-b6af-a964b5f6f3a5</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=2d56d3d0-edf9-4330-b6af-a964b5f6f3a5</wfw:commentRss>
      <slash:comments>37</slash:comments>
      <title>Xbox 360 NXE - Forget Games, The Xbox is a Media Center</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=2d56d3d0-edf9-4330-b6af-a964b5f6f3a5</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/8shvj1ofDeI/Xbox360NXEForgetGamesTheXboxIsAMediaCenter.aspx</link>
      <pubDate>Thu, 20 Nov 2008 07:58:37 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="avatar-body" border="0" alt="avatar-body" align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/avatar-body_3.png" width="150" height="300" /&gt; What's all this talk about gaming on the Xbox 360? I can't remember the last time I actually played a game on the thing, but I &lt;em&gt;can &lt;/em&gt;say that both The Wife and I use it daily. I'd even say she uses the Xbox 360 more than I do. &lt;/p&gt;  &lt;p&gt;She plays music from the Zune and iPod, she runs photo slideshows for the boys and when we have company.&lt;/p&gt;  &lt;p&gt;Recently we had a party for my Dad and the Xbox was showing slideshows of him over the years with his favorite music running in the background. My wife and I didn't think anything of it (it seems pretty obvious to us) but oddly enough it was the &lt;em&gt;hit&lt;/em&gt; of the party. A half-dozen people were literally freaking out. The Xbox can do that?&lt;/p&gt;  &lt;h3&gt;Why You Should Buy an Xbox 360 Even If You Don't Play Games&lt;/h3&gt;  &lt;p&gt;Here's my list. What's yours?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;You can just plug in any MP3 player or Digital Camera that uses USB connectors and immediately view photos and play music. &lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;&lt;em&gt;I've had company come over a number of times with a camera or an SD card, and I've just attached them to the Xbox and we've watched their slides. Just use a USB adapter for camera cards or plug the camera USB connector into the Xbox directly. The same works with Zunes or iPods.&lt;/em&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;You can stream movies from Netflix (some in HD) &lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;&lt;em&gt;This is new and pure hotness. I've been beta testing the &lt;strong&gt;New Xbox Experience (NXE) &lt;/strong&gt;and I don't miss the old Xbox at all. I cancelled by Blockbuster account 6 months ago in anticipation of this. There's about 12,000 movies and 300 in HD. I just happed to watch &amp;quot;Outsourced&amp;quot; (recommended) and it was in HD. The Wife digs it, and we can easily catch up on TV. I hope that someone gets Hulu.com in there and then I could die happy.&lt;/em&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0127.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0127" border="0" alt="DSC_0127" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0127_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;em&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0129.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0129" border="0" alt="DSC_0129" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0129_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0131.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0131" border="0" alt="DSC_0131" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0131_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0133.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0133" border="0" alt="DSC_0133" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0133_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&amp;#160; &lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;You can easily stream video and music from your Windows (or Mac) machine to your Xbox. &lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;&lt;em&gt;You can use any uPNP streaming software like Twonky, or just use Windows Media Player. Click the down arrow on &amp;quot;Library&amp;quot; and click &amp;quot;Media Sharing.&amp;quot; It's even easier in Windows 7. Just click the Windows button and type &amp;quot;Share.&amp;quot; You can share throughout your network, or on a device by device basis. &lt;/em&gt;&lt;/li&gt;        &lt;li&gt;&lt;em&gt;We have a &lt;a href="http://www.zune.net/en-us/software/zunepass/default.htm"&gt;Zune Pass&lt;/a&gt; which basically lets you &amp;quot;lease&amp;quot; music for $14.99 a month. Basically for the price of 1 CD a month we can listen to all the music we like on our two Xboxes and two Zunes. The music streams from my main machine that runs the Zune software.&lt;/em&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0134.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0134" border="0" alt="DSC_0134" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0134_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0135.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0135" border="0" alt="DSC_0135" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0135_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0137.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0137" border="0" alt="DSC_0137" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0137_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;em&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0138.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0138" border="0" alt="DSC_0138" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0138_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;&lt;em&gt;The Xbox360 can console H.264 and MPEG4 video files, but the device you're streaming FROM needs a codec, like 3ivx. I discovered that &lt;a href="http://www.theflip.com"&gt;the Flip&lt;/a&gt; video camera that I bought includes the 3ivx codec. I connected to my Windows Home Server and installed the Flip Software by connecting the Flip to the Windows Home Server (WHS). That got me a free 3ivx codec, and now I can easily stream those files to my Xbox. Bam. (Totally unsupported, remember, I don't work for ANY of those teams.) &lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;You can use &lt;a href="http://www.nullriver.com/products/connect360"&gt;Connect360&lt;/a&gt; to stream content from your Mac to your Xbox360.&lt;/em&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/Windows%20Media%20Player_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Windows Media Player" border="0" alt="Windows Media Player" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/Windows%20Media%20Player_thumb.png" width="244" height="173" /&gt;&lt;/a&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/Media%20Sharing_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Media Sharing" border="0" alt="Media Sharing" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/Media%20Sharing_thumb.png" width="244" height="182" /&gt;&lt;/a&gt;&amp;#160;&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;The Xbox 360 is a Windows Media Center Extender. &lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;&lt;em&gt;You can basically remote into your Windows machine and watch TV if you have a tuner card, watch saved shows and movies, and browse the web (with a Media Center add-on app). It looks and acts just as if you're running Media Center on your PC.&lt;/em&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.joystiq.com/2008/11/19/the-new-xbox-experienced/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/image_6.png" width="292" height="546" /&gt;&lt;/a&gt;We use the Xbox in this way so often that we have two, one old Xbox 360 bought early on and an Xbox Elite with HDMI bought more recently. Both of them seamlessly upgraded to the final NXE this morning.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;The (NXE) New Xbox Experience&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;I won't even try to review the NXE, but suffice to say, it's awesome. Check out the &lt;a href="http://www.joystiq.com/2008/11/19/the-new-xbox-experienced/"&gt;Joystiq videos and reviews of the Xbox NXE for great details&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0129.jpg"&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0125.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0125" border="0" alt="DSC_0125" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0125_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt; &lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0126.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DSC_0126" border="0" alt="DSC_0126" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/Xbox360NXEForgetGamesTheXBoxisaMediaCent_1409A/DSC_0126_thumb.jpg" width="244" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Buying a Xbox 360&lt;/h3&gt;  &lt;p&gt;Here's a screenshot of the very awesome and &lt;a href="http://www.joystiq.com/2008/11/18/holidaze-2008-xbox-360-sku-chart-revisited/"&gt;complete Xbox 360 SKU chart from Joystiq&lt;/a&gt;, trimmed to remove discontinued models. &lt;/p&gt;  &lt;p&gt;If you're looking for balance, &lt;a href="http://www.amazon.com/Xbox-360-Holiday-Bundle-2008-Drive/dp/B001FPBZ3U/ref=sr_1_1?ie=UTF8&amp;amp;s=videogames&amp;amp;qid=1227166323&amp;amp;sr=1-1&amp;amp;tag=diabeticbooks-20"&gt;the Pro is the best deal&lt;/a&gt;. It's $300, has decent storage and supports HiDef via RGB Component Cables. &lt;strike&gt;If you want HDMI, you'll need the Elite&lt;/strike&gt;, but you'll double your hard drive space. &lt;em&gt;(&lt;strong&gt;Update&lt;/strong&gt;: It USED to be the case that the Elite had HDMI but now all Xboxes have at least the port, although the Elite comes with a cable also.) &lt;/em&gt;You can use that space to store movies, videos, photos, etc, but really it's only useful for storing games or ripping CDs. &lt;/p&gt;  &lt;p&gt;OK, I'm off to NOT play games on my Xbox.&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:2154f8e5-c8c7-4e87-9835-6386ca61eebc" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Xbox360" rel="tag"&gt;Xbox360&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Xbox" rel="tag"&gt;Xbox&lt;/a&gt;,&lt;a href="http://technorati.com/tags/NXE" rel="tag"&gt;NXE&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Zune" rel="tag"&gt;Zune&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Review" rel="tag"&gt;Review&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Games" rel="tag"&gt;Games&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Gaming" rel="tag"&gt;Gaming&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/B1OvrFjicbzBwR_T9x2fV0N0Pno/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/B1OvrFjicbzBwR_T9x2fV0N0Pno/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=RAmFN8MK"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=wj4hqqfW"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=wj4hqqfW" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=SnfYQmqi"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=UcCy01IX"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=UcCy01IX" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=1wXBzzb2"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=1wXBzzb2" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=v6ahaTv8"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/8shvj1ofDeI" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=2d56d3d0-edf9-4330-b6af-a964b5f6f3a5</comments>
      <category>Gaming</category>
      <category>Reviews</category>
    <feedburner:origLink>http://www.hanselman.com/blog/Xbox360NXEForgetGamesTheXboxIsAMediaCenter.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=44c56e89-3d95-4093-935c-a194eb9def23</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=44c56e89-3d95-4093-935c-a194eb9def23</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=44c56e89-3d95-4093-935c-a194eb9def23</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=44c56e89-3d95-4093-935c-a194eb9def23</wfw:commentRss>
      <slash:comments>19</slash:comments>
      <title>Update on the GDR that is coming for .NET Framework 3.5 SP1</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=44c56e89-3d95-4093-935c-a194eb9def23</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/mU0zOPidGlc/UpdateOnTheGDRThatIsComingForNETFramework35SP1.aspx</link>
      <pubDate>Sat, 15 Nov 2008 00:56:33 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;As I've you've probably heard, we are working on an update for .NET3.5 SP1 and its 2.0/3.0 sub-components which will contain fixes for the small number of bugs reported by customers since the release of 3.5 SP1 this summer. More information regarding the specific bug fixes included in the update will be provided in a knowledge base article that will be released with this update, although at the end of September &lt;a href="http://www.hanselman.com/blog/UpdateOnNETFramework35SP1AndWindowsUpdate.aspx"&gt;I blogged about this upcoming &amp;quot;GDR&amp;quot; (General Distribution Release) update to .NET 3.5 SP1&lt;/a&gt; and listed the bugs I've been able to confirm so far as being fixed. &lt;/p&gt;  &lt;p&gt;In that post I said:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;Later this year, probably November-ish, the .NET Framework 3.5 SP1 will begin show up on Windows Update in a rolling and throttled fashion so that all machines that have .NET 2.0 or higher will be automatically upgraded to 3.5 SP1.&amp;quot;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Turns out I was wrong on this, and the update will be &lt;strong&gt;available for &lt;em&gt;download from the web&lt;/em&gt; in November, and will be up on Windows Update in January.&lt;/strong&gt; There's a number of reasons for this but the primary one is that customers in general prefer not having any updates during the holidays (IT staff that needs to handle enterprise wide deployments are on vacation, etc) there is no non-security “refresh” for the fourth Tuesday in December, so the next earliest possible release date for our .NET Framework update on WU (Windows Update) is going to be early in into the next year (tentatively a Tuesday in January). As you might suspect the potential audience for such updates on Windows Update (WU) is very large (the vast majority of 1 billion windows PCs worldwide) so we err on the side of caution. &lt;/p&gt;  &lt;p&gt;Once testing is complete and we’re ready to release the update, the release schedule needs to snap to a predetermined release cadence for updates shipping on WU. In general Microsoft releases security updates on the second Tuesday of every month and non-security updates such as this one on the fourth Tuesday of every month. We release on a cadence because large enterprise customers need a predictable schedule for all updates so they can in turn plan their own enterprise wide deployments for updates once we release this.&lt;/p&gt;  &lt;p&gt;The extended testing process and release cadence takes time but the processes are designed to ensure we provide a broad and diverse set of customers with a high quality update combined with a smooth deployment experience.&lt;/p&gt;  &lt;p&gt;Once this is released to Windows Update, you'll be much more likely to find 3.5 SP1 installed on the majority of the 1 billion or so Windows PC worldwide. It'll be nice to have a common baseline for developers to target. Remember also that WU is automatic and unattended, so the .NET Framework 3.5 SP1 will just show up on machines one day (of course Enterprises have additional controls over deployment). All this should make it easier for us developers to figure out which framework to target.&lt;/p&gt;  &lt;p&gt;I hope this post gives you some more information and context on what's going on with this update. It takes a while to dig all this up and bring it to you, so I hope it provides you some value. Spread the word.&lt;/p&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/iQc26SaYXq-SpdkuBmnVTgvqT34/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/iQc26SaYXq-SpdkuBmnVTgvqT34/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=JBB7ueFz"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=MJuQe9j0"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=MJuQe9j0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=QX6h0uTP"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=O8IOsOcA"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=O8IOsOcA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=RELqWgxk"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=RELqWgxk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=MvZujA1F"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/mU0zOPidGlc" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=44c56e89-3d95-4093-935c-a194eb9def23</comments>
      <category>ASP.NET</category>
      <category>Programming</category>
      <category>Windows Client</category>
    <feedburner:origLink>http://www.hanselman.com/blog/UpdateOnTheGDRThatIsComingForNETFramework35SP1.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=7a455ef3-a5db-4ca9-a819-fde33f908aea</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=7a455ef3-a5db-4ca9-a819-fde33f908aea</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=7a455ef3-a5db-4ca9-a819-fde33f908aea</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=7a455ef3-a5db-4ca9-a819-fde33f908aea</wfw:commentRss>
      <slash:comments>31</slash:comments>
      <title>Using Crowdsourcing for Expanding Localization of Products</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=7a455ef3-a5db-4ca9-a819-fde33f908aea</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/c0ug9vo8jAU/UsingCrowdsourcingForExpandingLocalizationOfProducts.aspx</link>
      <pubDate>Thu, 13 Nov 2008 23:22:25 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;Not everyone in the world speaks English. Such a silly thing to say, but if you live in an English-speaking country it's easy to forget that many (most?) people in the world would prefer to do their work in the language of their choice.&lt;/p&gt; &lt;p&gt;Microsoft ships documentation in Visual Studio that is human-translated (a huge effort) into 9 major world languages. That's millions and millions of words * 9 languages. How can we cover more languages? How can we make documentation easier for folks who are trying to learn about our products and don't speak English fluently? How can we make English interfaces easier to use for non-English speakers who &lt;em&gt;want &lt;/em&gt;to learn English?&lt;/p&gt; &lt;p&gt;Last month, I spoke to members of the internationalization/globalization team in DevDiv (Developer Division) about some of the little-known stuff they are doing. I think deserves more attention as there's some pretty innovative things being done. Some are experimental, but there's hope to expand them if they succeed.&lt;/p&gt; &lt;h3&gt;MSDN uses Machine Translation and Crowdsourcing for Documentation&lt;/h3&gt; &lt;p&gt;Doing a lot of work with a few people is hard. Doing a lot of work with a lot of people is confusing and expensive. However, doing a little bit of work with a LOT of interested people can be useful, cheap and fun if you "crowd-source" rather than outsource. Check out the screenshot below or visit the &lt;a href="http://msdn.microsoft.com/pt-br/library/yyaad03b.aspx"&gt;&lt;strong&gt;Brazilian MSDN site&lt;/strong&gt;&lt;/a&gt; and check out the &lt;a href="http://msdn.microsoft.com/pt-br/library/yyaad03b.aspx"&gt;Translation Wiki v2&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/BrazilianMSDN_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="308" alt="BrazilianMSDN" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/BrazilianMSDN_thumb.png" width="504" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You'll see there's the English MSDN documentation on the left, and Brazilian Portuguese on the right.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/LadoALado_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="117" alt="LadoALado" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/LadoALado_thumb.png" width="258" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Make sure to select "side-by-side" or "Lado a Lado." If you hover over a sentence on the Portuguese side, a small Edit button will appear.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="130" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/image_thumb.png" width="489" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Click Edit, and you can suggest a better translation, and they'll go into a queue for community moderators to approve. Notice also that under "Other Suggestions" you'll see existing suggested translations that are in the queue for moderation.&lt;/p&gt; &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="366" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/image_5.png" width="455" border="0"&gt; &lt;/p&gt; &lt;p&gt;The initial Portuguese text comes from the Machine Translation team. For some reason, Portuguese is the best language that the Machine Translation team understands. &lt;/p&gt; &lt;p&gt;The text on the site is roughly 80% MT (Machine Translated) and 20% humans via these technique, and growing. There's a goal to include more languages for the next version of Visual Studio, including &lt;em&gt;possibly&lt;/em&gt; Arabic, Czech, Polish and Turkish, although things are still a little up in the air.&lt;/p&gt; &lt;p&gt;If you know a Brazilian developer, spread the word about this project and encourage them to make edits to the &lt;a href="http://msdn.microsoft.com/pt-br/library/yyaad03b.aspx"&gt;&lt;strong&gt;Brazilian MSDN site&lt;/strong&gt;&lt;/a&gt; and check out the &lt;a href="http://msdn.microsoft.com/pt-br/library/yyaad03b.aspx"&gt;Translation Wiki v2&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Big thanks to our community partners: a group of 30 CS students, partly from the team of Prof. Hirata and Prof. Forster of &lt;a href="http://www.ita.br/"&gt;Instituto Tecnologico de Aeronautica&lt;/a&gt; and the team of Prof. Simone Barbosa from &lt;a href="http://www.puc-rio.br/"&gt;Pontifícia Universidade Católica&lt;/a&gt; who post-edited 1.8 million words of MT'ed content; the Brazilian Terminologist who managed the glossary project with our MVPs; and finally the Academic Evangelist Team in DPE in Brazil who gave us their support throughout the project.&lt;/p&gt; &lt;p&gt;It'll be interesting to see how far this project goes and what other languages can benefit from it.&lt;/p&gt; &lt;h3&gt;Captions Language Interface Pack (CLIP) - includes 9 more partial language translations for Visual Studio &lt;/h3&gt; &lt;p&gt;Here's a &lt;a href="http://office.microsoft.com/en-us/word/HA102898431033.aspx"&gt;description of the CLIP from a launching page&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;"The Microsoft Captions Language Interface Pack (CLIP) is a simple language translation solution that uses tooltip captions to display results. Use CLIP as a language aid, to see translations in your own dialect, update results in your own native tongue or use it as a learning tool.&lt;strong&gt;"&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;This is pretty clever. It's a background application that will show balloon tooltip help in your language while you work in the English version of Visual Studio. For example, in the screenshot below, I'm hovering my mouse over Start Debugging, and the Arabic CLIP pops up with a human translation of that menu item.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/clip_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="217" alt="clip" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/clip_thumb.png" width="454" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;It'll even help with other applications within Windows if it thinks it's got a decent translation, but for now, it is focused on correct translation for common Visual Studio options.&lt;/p&gt; &lt;p&gt;Even better, you can add translations of your own. In future versions, there's talk about setting up sharing (I figure you can hack it today, though, unsupported, by sharing the language database.&lt;/p&gt; &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="200" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/MicrosoftusingCrowdsourcingfordifficultt_BAA5/image_8.png" width="349" border="0"&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4e5258d2-52f4-46b8-8b74-da2dbec7c2f7&amp;amp;displaylang=en"&gt;&lt;strong&gt;Visual Studio CLIP&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;is available in these languages so far, all created with community and student help!&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918741033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Arabic (المنطقة العربية)&lt;/a&gt;&amp;nbsp; &lt;ul&gt; &lt;li&gt;with students from &lt;b&gt;King Fahd University of Petroleum and Minerals (KFUPM)&lt;/b&gt;, managed by Prof. Abdullah Al-Zamel &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918751033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Czech (Česká republika)&lt;/a&gt;&amp;nbsp; &lt;ul&gt; &lt;li&gt;with&amp;nbsp; students from &lt;b&gt;V&lt;/b&gt;&lt;b&gt;ŠB-TU Ostrava&lt;/b&gt; managed by Eng. Jan Martinovič&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918761033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Hebrew (ישראל)&lt;/a&gt;&amp;nbsp; &lt;ul&gt; &lt;li&gt;with students from the &lt;b&gt;Computer Department of the College Of Management &lt;/b&gt;managed by by Prof. Samuel Itzikowitz&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918771033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Hindi (हिन्दी)&lt;/a&gt; and &lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918801033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Tamil (தமிழ்)&lt;/a&gt;  &lt;ul&gt; &lt;li&gt;with a team from the &lt;b&gt;Central Institute of Indian Languages&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918821033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Malayalam (മലയാളം)&lt;/a&gt;&amp;nbsp; &lt;ul&gt; &lt;li&gt;in cooperation with a team from the &lt;b&gt;Central Institute of Indian Languages&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918781033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Oriya (ଓଡ଼ିଆ)&lt;/a&gt;&amp;nbsp; &lt;ul&gt; &lt;li&gt;with students from &lt;b&gt;Ravenshaw University&lt;/b&gt; in India, managed by Prof. Mishra&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918791033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Polish (Polska)&lt;/a&gt;  &lt;ul&gt; &lt;li&gt;with students from &lt;b&gt;Wroclaw University&lt;/b&gt; managed by Prof. Zbigniew Fryžlewicz&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;a href="http://office.microsoft.com/search/redir.aspx?AssetID=DC102918811033&amp;amp;CTT=5&amp;amp;Origin=HA102898431033"&gt;Turkish (Türkiye)&lt;/a&gt;  &lt;ul&gt; &lt;li&gt;with students from &lt;b&gt;Hacettepe Üniversitesi&lt;/b&gt; lead by Prof. Ercin Töreci&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;In addition to the CLIP, there's also the ability to do a Language Pack for the Visual Studio interface itself, as exemplified by the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=88f687e9-d1bf-4326-a683-5ebddb62e07e&amp;amp;DisplayLang=pt-br"&gt;Brazilian Visual Studio Express Language Pack for SP1&lt;/a&gt; that does about a 70% translation of VS into Portuguese. There's talk to do more of these also. That should make &lt;a href="http://msmvps.com/blogs/carlosq/archive/2008/09/02/i-wish-visual-studio-had-multilingual-user-interface-implemented-as-windows-vista.aspx"&gt;Carlos Quintero happy&lt;/a&gt;!&lt;/p&gt; &lt;p&gt;There's a lot of cool possibilities for all this technology, expanding MSDN and VS to as many languages as possible!&lt;/p&gt; &lt;p&gt;If you think this kind of thinking is pretty cool, leave a comment or blog about it and maybe we'll be heard by &lt;em&gt;*ahem*&lt;/em&gt; &lt;a href="http://blogs.msdn.com/somasegar/"&gt;the boss&lt;/a&gt; when he next (&lt;em&gt;soon&lt;/em&gt;) reviews plans for this kind of community involvement. ;)&lt;/p&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/NKcrWWXQ_vGrAUy3am5PwSzELU0/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/NKcrWWXQ_vGrAUy3am5PwSzELU0/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=vkFYXLKy"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=zAzPjcDU"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=zAzPjcDU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=QGHNGZkP"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=9jgal5KH"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=9jgal5KH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=H6zfKUeM"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=H6zfKUeM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=2yp37nr4"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/c0ug9vo8jAU" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=7a455ef3-a5db-4ca9-a819-fde33f908aea</comments>
      <category>ASP.NET</category>
      <category>Internationalization</category>
      <category>Programming</category>
      <category>Tools</category>
      <category>Windows Client</category>
    <feedburner:origLink>http://www.hanselman.com/blog/UsingCrowdsourcingForExpandingLocalizationOfProducts.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=77de80cb-8413-4aa0-8233-785575268192</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=77de80cb-8413-4aa0-8233-785575268192</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=77de80cb-8413-4aa0-8233-785575268192</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=77de80cb-8413-4aa0-8233-785575268192</wfw:commentRss>
      <slash:comments>20</slash:comments>
      <title>Fixed: "Windows Process Activation Service (WAS) is stopping because it encountered an error."</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=77de80cb-8413-4aa0-8233-785575268192</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/uAFg3C4iqD8/FixedWindowsProcessActivationServiceWASIsStoppingBecauseItEncounteredAnError.aspx</link>
      <pubDate>Wed, 12 Nov 2008 08:45:16 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;I'm not yet clear what I did, but I'm blogging it so it can be found if someone else has this issue. &lt;/p&gt;  &lt;p&gt;For whatever reason, last week both of my Vista 64-bit machines suddenly stopped being able to start IIS (Internet Information Server). The service just wouldn't start. I started getting this error instead &amp;quot;Cannot start service W3SVC on Computer '.'&amp;quot; which wasn't too helpful.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/FixedWindowsProcessActivationServiceWAS_5B4/image_3.png" width="350" height="169" /&gt; &lt;/p&gt;  &lt;p&gt;A visit to the System Event Log via the Event Viewer in Computer Management told me these four errors:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&amp;quot;The World Wide Web Publishing Service service depends on the Windows Process Activation Service service which failed to start because of the following error: The system cannot find the file specified.&amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;and&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&amp;quot;The Windows Process Activation Service service terminated with the following error:        &lt;br /&gt;The system cannot find the file specified.&amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;and &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&amp;quot;Windows Process Activation Service (WAS) is stopping because it encountered an error. The data field contains the error number.&amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;and&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&amp;quot;The directory specified for the temporary application pool config files is either missing or is not accessible by the Windows Process Activation Service. Please specify an existing directory and/or ensure that it has proper access flags. The data field contains the error number.&amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/FixedWindowsProcessActivationServiceWAS_5B4/image_6.png" width="420" height="472" /&gt;Unfortunately there's little information to go on in any of these error messages. However, it's clear (as mud) from the last error that there's a directory missing or not accessible. I'll add &amp;quot;anymore&amp;quot; to that because it &lt;em&gt;worked before.&lt;/em&gt; That means that something changed.&lt;/p&gt;  &lt;p&gt;If IIS won't start because Windows Process Activation Service won't start, then I need to get WAS started up first. However, I don't know what directory it doesn't have access to. &lt;/p&gt;  &lt;p&gt;I can see from the Services application that WAS isn't its own executable, but rather lives inside of an instance of svchost.exe, where a lot of services live. &lt;/p&gt;  &lt;p&gt;So I'll fire up Process Monitor and set the filters (filters are VERY important if you want to avoid being overwhelmed quickly in procmon) to show only svchost.exe processes.&lt;/p&gt;  &lt;p&gt;Even still, there's a lot of svchost.exe processes out there and they will quickly fill the monitor up. I'll need to setup some strategic (read: guessed) highlighting as well.&lt;/p&gt;  &lt;p&gt;The hotkey to stop capturing in procmon.exe is Ctrl-E. Basically I'll clear the screen, hit Ctrl-E to capture, try to start WAS (pronounced WAAZ), watch it fail, the stop capture with Ctrl-E.&lt;/p&gt;  &lt;p&gt;Based on the vague message about application pools temporary files and a directory I'll make a guess and configure highlighting to find paths that contain &amp;quot;temp,&amp;quot; &amp;quot;log,&amp;quot; &amp;quot;config&amp;quot; or &amp;quot;app&amp;quot; in Process Monitor as seen in the screenshot below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/FixedWindowsProcessActivationServiceWAS_5B4/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/FixedWindowsProcessActivationServiceWAS_5B4/image_thumb_2.png" width="487" height="307" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After I run the capture, I scroll around looking for suspicious stuff. One of the nice things about Process Monitor is that you can EXCLUDE things in a given capture &lt;em&gt;after that fact. &lt;/em&gt;For example, I saw a pile of Audio and Media related stuff that was visually confusing and cluttering the point, so I excluded it. &lt;/p&gt;  &lt;p&gt;The result is here:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/FixedWindowsProcessActivationServiceWAS_5B4/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/FixedWindowsProcessActivationServiceWAS_5B4/image_thumb_3.png" width="450" height="342" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It looks like there SHOULD be a folder call c:\inetpub\temp\apppools and on my Vista 64 machines, in the last two weeks to a month, it just disappeared. No idea why. I just noticed recently when I tried to move from a local web development service to IIS itself.&lt;/p&gt;  &lt;p&gt;I created the folder, started WAS, then IIS and I was back up and running.&lt;/p&gt;  &lt;p&gt;I'll pass the feedback on to the WAS team about the obscure error messages, but I thought I'd share this little ten minute debugging session to point out a few things that I think are important and possibly helpful, Dear Reader:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Know What Your Processes Are Doing (or at least, know how to find out)&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Knowing how to look INSIDE the Windows &amp;quot;Black Box&amp;quot; using tools like ProcMon makes you realize that no OS is a Black Box at all. It's very empowering to know that you CAN see inside.&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;TASK: &lt;/strong&gt;Learn Process Monitor and Process Explorer.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Enable Your Intuition&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Debugging is 95% tools and 5% intuition. Know what tools can get you that next bit of information you need to take the next step in your analysis.&lt;/li&gt;      &lt;li&gt;If you feel you've hit a wall in your analysis, knock that wall down. Your process is doing IO to a file/registry/device/network/etc. Watch it. Look for failures.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;My next mission is to find out WHY and HOW this directory disappeared on both my machines. What did I install or run recently? Enjoy!c&lt;/p&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/qIvkMAJCyKm6We8w_UAzvXIUdcM/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/qIvkMAJCyKm6We8w_UAzvXIUdcM/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=QkmkEXRs"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=OyLOkaL3"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=OyLOkaL3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=LCTjCY0o"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=hJErW5eE"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=hJErW5eE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=3ttNujv4"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=3ttNujv4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=P26JejCB"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/uAFg3C4iqD8" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=77de80cb-8413-4aa0-8233-785575268192</comments>
      <category>IIS</category>
      <category>Tools</category>
    <feedburner:origLink>http://www.hanselman.com/blog/FixedWindowsProcessActivationServiceWASIsStoppingBecauseItEncounteredAnError.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=674b0c09-2896-465f-a75a-52bbf0a9d781</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=674b0c09-2896-465f-a75a-52bbf0a9d781</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=674b0c09-2896-465f-a75a-52bbf0a9d781</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=674b0c09-2896-465f-a75a-52bbf0a9d781</wfw:commentRss>
      <slash:comments>24</slash:comments>
      <title>Viewing a LOT of Images Effectively (plus 700 Obama Newspaper Covers in Silverlight Deep Zoom )</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=674b0c09-2896-465f-a75a-52bbf0a9d781</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/7dvXqNRUis0/ViewingALOTOfImagesEffectivelyPlus700ObamaNewspaperCoversInSilverlightDeepZoom.aspx</link>
      <pubDate>Fri, 07 Nov 2008 22:40:01 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;script type="text/javascript"&gt;
digg_url = 'http://digg.com/politics/730_Obama_Newspapers_from_66_Countries_DeepZoom_Collection';
&lt;/script&gt;&lt;script src="http://digg.com/tools/diggthis.js" type="text/javascript"&gt;&lt;/script&gt;I don't talk politics as a rule on this blog. However, regardless of your political affiliation, the last week has generated a lot of news. When I saw these &lt;a href="http://www.newseum.org/todaysfrontpages/default_archive.asp?fpArchive=110508"&gt;730 Newspaper images from 66 countries at the &lt;strong&gt;Newseum&lt;/strong&gt;&lt;/a&gt;, &lt;a href="http://blogs.vertigo.com/personal/scott/Blog/default.aspx"&gt;Scott Stanfield&lt;/a&gt; and I immediately said &lt;strong&gt;Silverlight Deep Zoom&lt;/strong&gt;!&lt;/p&gt;  &lt;p&gt;There's a number of good ways to view LOTS of images at a time. I'll share the ones I use. First, here's our &lt;a href="http://bigpicture.vertigo.com/obama/"&gt;&lt;strong&gt;Silverlight DeepZoom Obama News&lt;/strong&gt;&lt;/a&gt; page.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bigpicture.vertigo.com/obama/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/image_7.png" width="404" height="192" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Scroll…zoom…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bigpicture.vertigo.com/obama/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/image_8.png" width="404" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Scroll…zoom…&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/image_9.png" width="404" height="184" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Cool. I had to manage these files and check them out before we made the &lt;a href="http://bigpicture.vertigo.com/obama/"&gt;Silverlight DeepZoom version&lt;/a&gt;, so I tried these programs:&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Windows Explorer&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;So, the story is, the &lt;a href="http://www.newseum.org/todaysfrontpages/default_archive.asp?fpArchive=110508"&gt;Newseum&lt;/a&gt; assembled 730 newspaper front pages from all over. I downloaded them with &lt;a href="http://www.downthemall.net/"&gt;DownThemAll&lt;/a&gt; and put them in a folder in Explorer. I run 64-bit Windows Vista and didn't have to much trouble with Windows Explorer with only ~700 images. I could use the View Thumbnails feature and zoom in and out and it worked pretty good.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Windows Photo Gallery (the Default Preview)&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;If you double click on an image in Windows, you'll get the Windows Photo Gallery by default, which just shows the image. You can then navigate around the folder with the left and right keys. It works pretty well, although the previewer fills the screen completely and starts up maximized which I find kind of irritating. Also, there's no way to see previews of the images that are coming up next. The thumbnail view is gone.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Windows Live Photo Gallery &lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;This is a big improvement on the default one. It's a much more polished version of the default one. The most dramatic feature addition is face recognition. If you click on an image, it'll find people:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/image_12.png" width="581" height="454" /&gt; &lt;/p&gt;  &lt;p&gt;If you click on &amp;quot;people found,&amp;quot; the system will highlight the face that you can then identify, and more importantly, search on.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/image_14.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/image_thumb_4.png" width="454" height="328" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Picasa 3 from Google&lt;/h3&gt;  &lt;p&gt;Picasa 3 is pretty much on par with Windows Live Photo Gallery. They are both fast, they both have some face recognition, although WLPG is much more granular while Picass just has a &amp;quot;show me photos with faces&amp;quot; option. &lt;/p&gt;  &lt;p&gt;Where Picas really shines is with its replacement of the default image previewer. If you let it take over as your default image viewer, when you double click on a file you'll get a nice animation, a gray curtain that falls over your desktop, but more importantly a &amp;quot;FilmStrip&amp;quot; of all the files. This little touch lets you much more easily navigate while still previewing files.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/Fullscreen%20capture%201172008%2020555%20PM_2.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Fullscreen capture 1172008 20555 PM" border="0" alt="Fullscreen capture 1172008 20555 PM" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/Fullscreen%20capture%201172008%2020555%20PM_thumb.jpg" width="504" height="316" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;Expression Media 2&lt;/h3&gt;  &lt;p&gt;A commenter suggested I add &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=media"&gt;Expression Media 2&lt;/a&gt; as the whole &lt;em&gt;point&lt;/em&gt; of Expression Media is to catalog butt-loads of media assets. It shouldn't blink at 700 images…and it didn't.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/Catalog1%20-%20Microsoft%20Expression%20Media%202_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" title="Catalog1 - Microsoft Expression Media 2" border="0" alt="Catalog1 - Microsoft Expression Media 2" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/Catalog1%20-%20Microsoft%20Expression%20Media%202_thumb.png" width="504" height="429" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It's very bare bones from a Consumer point of view, as it's not meant for organizing the family photos. However, it's power is hidden in its keyboard shortcuts. It's obscenely fast. Truly. Everything moves at the speed of thought, and you can batch rename, tag, change, your photos. &lt;/p&gt;  &lt;p&gt;It also notably has a ridiculous number of sorting options, like &lt;em&gt;dozens. &lt;/em&gt;You can sort by height, width, author or whatever metadata you like. Definitely something I'd return to if I had several thousands images.&lt;/p&gt;  &lt;h3&gt;Silverlight DeepZoom&lt;/h3&gt;  &lt;p&gt;First I tried using &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=457B17B7-52BF-4BDA-87A3-FA8A4673F8BF&amp;amp;displaylang=en"&gt;DeepZoom Composer&lt;/a&gt;, which is a free tool for making DeepZoom collections really easily. We figured we'd drag these 700+ files into DeepZoom and bam! We're done. Well, DeepZoom Composer currently can't handle single collections with THAT many images. This isn't a limitation of DeepZoom, it appears, but the editor which hit 2 gigs of RAM and died. Additionally, with that many files, it's easier to just position the images programmatically. I talked to the PM for the product and they're already on it. However, I can still use the DeepZoom tools programmatically. It's not DeepZoom Composer that does ALL the work, in fact. There's a &amp;quot;SparseImageTool.exe&amp;quot; that we can call programmatically.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/giorgio/archive/2008/05/05/deep-zoom-batch-export-programmaticly-using-c.aspx"&gt;Giorgio Sardo has a blog post about this&lt;/a&gt; (&lt;a href="http://blogs.msdn.com/giorgio/archive/2008/08/26/deep-zoom-batch-export-using-c-update.aspx"&gt;latest version here&lt;/a&gt;), and I was able to use his code directly to make a local DeepZoom collection. Here's a snippet of his code with my changes. It's rough, but it's a one off, so be forgiving:&lt;/p&gt;  &lt;pre class="c#" name="code"&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;    // Collection name&lt;br /&gt;    string collectionName = &amp;quot;ObamaZoom&amp;quot;;&lt;br /&gt;    // Folder containing images to be processed&lt;br /&gt;    string sourceImagesFolder = @&amp;quot;C:\\Users\\Scott\\Desktop\\Obama\\&amp;quot;;&lt;br /&gt;    // Destination folder of the batch process&lt;br /&gt;    string outputFolder = &amp;quot;D:\\DeepZoomObamaNews\\&amp;quot;;&lt;br /&gt;&lt;br /&gt;    // Eventually create the output directory&lt;br /&gt;    if (!Directory.Exists(outputFolder))&lt;br /&gt;        Directory.CreateDirectory(outputFolder);&lt;br /&gt;&lt;br /&gt;    CreateCollection(collectionName, sourceImagesFolder, outputFolder);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/// &amp;lt;summary&amp;gt;&lt;br /&gt;/// Create a Test collection using automation&lt;br /&gt;/// &amp;lt;/summary&amp;gt;&lt;br /&gt;static void CreateCollection(string collectionName, string sourceImagesFolder, string outputFolder)&lt;br /&gt;{&lt;br /&gt;    // Create a collection converter&lt;br /&gt;    CollectionConverter collectionConverter = new CollectionConverter();&lt;br /&gt;    // Required parameters&lt;br /&gt;    collectionConverter.SparseImageToolPath = GetSparseImageToolPath();&lt;br /&gt;    collectionConverter.ImagesCollection = GetImages(sourceImagesFolder); // IEnumerable&amp;lt;string&amp;gt; containing the path of the images&lt;br /&gt;    collectionConverter.ImagesDestinationFolder = outputFolder;&lt;br /&gt;    // Optional parameters&lt;br /&gt;    collectionConverter.CollectionName = collectionName;&lt;br /&gt;    collectionConverter.CollectionFormat = CollectionConverter.CollectionFormats.XML;&lt;br /&gt;&lt;br /&gt;    //collectionConverter.ConvertedOverlapPixels = ...&lt;br /&gt;    //collectionConverter.ConvertedTileSize = ...&lt;br /&gt;    //TODO: You can customize the exporting experience here, by setting the according parameters such as:&lt;br /&gt;    // Tile Size, File Format, Collection Format, Compression, Quality, ...&lt;br /&gt;&lt;br /&gt;    // Attach to completion handler&lt;br /&gt;    collectionConverter.BatchCompleted += delegate&lt;br /&gt;     {&lt;br /&gt;         Console.WriteLine(&amp;quot;Conversion completed\nPRESS &amp;lt;ENTER&amp;gt; TO EXIT&amp;quot;);&lt;br /&gt;     };&lt;br /&gt;&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        collectionConverter.BatchCollectionExport();&lt;br /&gt;    }&lt;br /&gt;    catch (Exception e)&lt;br /&gt;    {&lt;br /&gt;        Console.WriteLine(e.Message);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    Console.WriteLine(&amp;quot;Conversion started...&amp;quot;);&lt;br /&gt;    Console.ReadLine();&lt;br /&gt;}&lt;/pre&gt;

&lt;p&gt;This code takes the input folder and creates an output folder with the DeepZoom processed files you need. ScottS then said he thought the result would look better if it looks more like the &lt;a href="http://memorabilia.hardrock.com/"&gt;HardRock Cafe Memorabilia site&lt;/a&gt;, so we used Vertigo Software's &amp;quot;BigPicture&amp;quot; application (it's internal for now, but he's looking into what to do with it. &lt;a href="http://blogs.vertigo.com/personal/scott/Blog/default.aspx"&gt;Contact him if you want more details&lt;/a&gt;.) which easily handles all the dynamic positioning of the images in their collections.&lt;/p&gt;

&lt;p&gt;The result is pretty cool. Even cooler if you press the Full Screen button (fourth from the left):&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bigpicture.vertigo.com/obama/default.htm"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ViewingaLOTofImagesEffectivelyorDeepZoom_BB10/image_17.png" width="640" height="426" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;I think it'd be interesting if this technology wasn't just used as an occasional showcase when an event happens, but as a regular everyday thing. I wonder if it would be hard/cool/interesting/compelling to read a regular newspaper like this? Or of PDF files supported this kind of view? For me, the fun is just the buttery smoothness of the zooming. The frame-rate is crazy fast. Enjoy.&lt;/p&gt;

&lt;p&gt;Thank &lt;a href="http://vertigo.com/Default.aspx"&gt;Scott Stanfield and Vertigo Software&lt;/a&gt; for hosting it!&lt;/p&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/Lz7xOUMltm8m2bwb5MVlbdaRvRg/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/Lz7xOUMltm8m2bwb5MVlbdaRvRg/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=1ZpvUbSH"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=ih0iB06Q"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=ih0iB06Q" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=V2t77Djp"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=k9fADJSu"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=k9fADJSu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=etVYTlUg"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=etVYTlUg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=O7Hv3sW6"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/7dvXqNRUis0" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=674b0c09-2896-465f-a75a-52bbf0a9d781</comments>
      <category>Silverlight</category>
    <feedburner:origLink>http://www.hanselman.com/blog/ViewingALOTOfImagesEffectivelyPlus700ObamaNewspaperCoversInSilverlightDeepZoom.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=a4e63e35-3842-4b03-a908-3938a4d9abd8</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=a4e63e35-3842-4b03-a908-3938a4d9abd8</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=a4e63e35-3842-4b03-a908-3938a4d9abd8</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a4e63e35-3842-4b03-a908-3938a4d9abd8</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <title>ASP.NET and jQuery</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=a4e63e35-3842-4b03-a908-3938a4d9abd8</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/seBoktCLqpU/ASPNETAndJQuery.aspx</link>
      <pubDate>Thu, 06 Nov 2008 06:49:04 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/ASP.NETandjQuery_132F9/image_3.png" width="262" height="84" /&gt; It looks like many of you have already noticed that there's an &lt;a href="http://code.google.com/p/jqueryjs/downloads/list"&gt;official Visual Studio autocomplete file for jQuery &lt;strong&gt;posted up at the jQuery site&lt;/strong&gt;&lt;/a&gt;. It's significant that it's hosted by the jQuery team in that it's a contribution by the Visual Studio team but it's not up at CodePlex, because it really belongs to jQuery so there's where you'll find it. &lt;/p&gt;  &lt;p&gt;This isn't a new jQuery file and nothing's been &amp;quot;forked&amp;quot; so don't freak out. It's just a documentation file, as you can see if you go to the &lt;a href="http://docs.jquery.com/Downloading_jQuery#Download_jQuery"&gt;Download jQuery page&lt;/a&gt;. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;&lt;a href="http://docs.jquery.com/Release:jQuery_1.2.6"&gt;1.2.6 (Release Notes)&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.min.js"&gt;Minified&lt;/a&gt;, &lt;a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.pack.js"&gt;Packed&lt;/a&gt;, &lt;a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.js"&gt;Uncompressed&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Documentation: &lt;a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6-vsdoc.js"&gt;Visual Studio&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Now, the Visual Studio-specific aspect of this is a temporary thing, as it's planned for Visual Studio to support a more standard syntax at some future date, but until then, there's this file and we'll make sure it's kept updated. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx"&gt;&lt;strong&gt;Jeff King &lt;/strong&gt;has details on how to use this file&lt;/a&gt; in your projects. In the VERY near future there will be a hotfix that will cause Visual Studio to look for files that end in &amp;quot;-vsdoc.js&amp;quot; for intellisense which will make including it in your project automatic.&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;UPDATE: The very near future is NOW. You can now download a small hotfix that causes Visual Studio to automatically look for intellisense files named *-vsdoc.js&amp;quot; next to the runtime file. From &lt;/strong&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/11/07/hotfix-to-enable-vsdoc-js-intellisense-doc-files-is-now-available.aspx"&gt;&lt;strong&gt;Jeff King's blog&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Last week I mentioned we would be releasing a Hotfix to accompany our &lt;/em&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx"&gt;&lt;em&gt;new jQuery VSDoc file&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&amp;#160; This Hotfix is now available at the &lt;/em&gt;&lt;a href="http://code.msdn.microsoft.com/KB958502"&gt;&lt;em&gt;MSDN Code Gallery&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&amp;#160; Here's a direct download link for this small (2MB) patch:&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736"&gt;&lt;strong&gt;&lt;em&gt;http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;I want to emphasize that &lt;strong&gt;this patch is intended for&lt;/strong&gt; &lt;strong&gt;all JavaScript files, not just those related to jQuery&lt;/strong&gt;.&amp;#160; Generally, we will opportunistically look for documentation files related to the script file.&amp;#160; For example, given &amp;quot;mylibrary.js&amp;quot;, we will search in the same directory for:&lt;/em&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;em&gt;mylibrary&lt;strong&gt;-vsdoc&lt;/strong&gt;.js, then if we don't find it we will search for... &lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;mylibrary&lt;strong&gt;.debug&lt;/strong&gt;.js, then if we don't find it we will search for... &lt;/em&gt;&lt;/li&gt;      &lt;li&gt;&lt;em&gt;mylibrary.js&lt;/em&gt;&lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;There's a few things that are nice about this jQuery file is that it supports and understands jQuery plug-ins. If you're into jQuery and ASP.NET, &lt;a href="http://code.google.com/p/jqueryjs/downloads/list"&gt;go check it out&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Related Links&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://channel9.msdn.com/pdc2008/PC31/"&gt;Stephen Walther's ASP.NET and jQuery presentation at PDC&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a href="http://weblogs.asp.net/stephenwalther/archive/2008/10/29/jquery-and-asp-net-ajax-demo-code.aspx"&gt;Code and Demos for Stephen's jQuery talk&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/bleroy/archive/2008/10/27/jquery-intellisense-documentation-file-available.aspx"&gt;jQuery IntelliSense documentation file available&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx"&gt;Rich IntelliSense for jQuery&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/jQueryToShipWithASPNETMVCAndVisualStudio.aspx"&gt;jQuery to ship with ASP.NET MVC and Visual Studio&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/d8CktXODXYhASDjMkSt80fslsPI/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/d8CktXODXYhASDjMkSt80fslsPI/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=rSCH7Txv"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=h29YHcQ3"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=h29YHcQ3" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=HUav8mYM"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=BwyLezGE"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=BwyLezGE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=sVV7mJcH"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=sVV7mJcH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=jNVkELkR"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/seBoktCLqpU" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=a4e63e35-3842-4b03-a908-3938a4d9abd8</comments>
      <category>ASP.NET</category>
      <category>ASP.NET Dynamic Data</category>
      <category>ASP.NET MVC</category>
      <category>Javascript</category>
    <feedburner:origLink>http://www.hanselman.com/blog/ASPNETAndJQuery.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=f1e44e84-2d50-499c-951f-29509d2ffe38</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=f1e44e84-2d50-499c-951f-29509d2ffe38</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=f1e44e84-2d50-499c-951f-29509d2ffe38</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f1e44e84-2d50-499c-951f-29509d2ffe38</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <title>The Weekly Source Code 36 - PDC, BabySmash and Silverlight Charting</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=f1e44e84-2d50-499c-951f-29509d2ffe38</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/4J0QsXDhyJ0/TheWeeklySourceCode36PDCBabySmashAndSilverlightCharting.aspx</link>
      <pubDate>Thu, 06 Nov 2008 05:33:18 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;&lt;a href="http://channel9.msdn.com/pdc2008/TL49/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Scott Hanselman presenting at PDC 2008" border="0" alt="Scott Hanselman presenting at PDC 2008" align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TheWeeklySourceCode36PDCBabySmashandSilv_E62E/image_3.png" width="370" height="196" /&gt;&lt;/a&gt;First, let me remind you that in my new ongoing &lt;a href="http://www.hanselman.com/blog/ReadingToBeABetterDeveloperTheCoding4FunDevKit.aspx"&gt;quest to &lt;strong&gt;read source code to be a better developer&lt;/strong&gt;&lt;/a&gt;, Dear Reader, I present to you &lt;em&gt;thirty-fifth in a infinite &lt;/em&gt;number of posts of &amp;quot;&lt;a href="http://www.hanselman.com/blog/CategoryView.aspx?category=Source+Code"&gt;&lt;strong&gt;The Weekly Source Code&lt;/strong&gt;&lt;/a&gt;.&amp;quot;&lt;/p&gt;  &lt;p&gt;At the end of my &lt;a href="http://channel9.msdn.com/pdc2008/TL49/"&gt;crazy babies talk at PDC&lt;/a&gt; (&lt;a href="http://www.hanselman.com/blog/TipsForPreparingForATechnicalPresentation.aspx"&gt;Tips on how I prepared here&lt;/a&gt;) I had a big demo where I gave a URL to a &lt;a href="http://www.hanselman.com/babysmashsl"&gt;Silverlight version&lt;/a&gt; of &lt;a href="http://www.babysmash.com"&gt;BabySmash&lt;/a&gt; that &lt;a href="http://www.garchibald.com/babysmash"&gt;Grant&lt;/a&gt; and I built for the show. You can &lt;a href="http://channel9.msdn.com/pdc2008/TL49/"&gt;watch the presentation online if you like&lt;/a&gt; and fast forward to the end (around 60 minutes in) and see the big demo. Basically we had the Silverlight BabySmash talk via ADO.NET Data Services (I'll post in detail in the near future) to a SQL backend. Then I had an MVC reporting site that had some charts that would update as folks smashed. There were over 90,000 smashes during the talk. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/codinghorror/status/978287538"&gt;&lt;img style="border-right-width: 0px; margin: 10px 0px 10px 15px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TheWeeklySourceCode36PDCBabySmashandSilv_E62E/image_8.png" width="270" height="96" /&gt;&lt;/a&gt;The chart was updating &lt;em&gt;as folks were smashing &lt;/em&gt;and we even had a Baby vs. Baby fight break out where the &amp;quot;A&amp;quot; people and the &amp;quot;J&amp;quot; people were going at it. &lt;a href="http://www.codinghorror.com"&gt;Jeff Atwood&lt;/a&gt; started the bloodbath &lt;a href="http://twitter.com/codinghorror/status/978287538"&gt;with this tweet&lt;/a&gt; as he urged on the overflow room along with &lt;a href="http://www.haacked.com"&gt;Phil Haack&lt;/a&gt;. That man's trouble, I tell you.&lt;/p&gt;  &lt;p&gt;In the talk, I started out with a old .NET 1.1 chart from 2003 and showed it working, unchanged, in ASP.NET 3.5 SP1. It's just a nice reminder that things usually work just as they should. Then I upgraded it to a new .NET 4.0 ASP.NET Chart that I'll blog about in detail soon. Then, I showed the final site with the new Silverlight Charts. &lt;a href="http://timheuer.com/"&gt;Tim Heuer&lt;/a&gt; has a &lt;a href="http://timheuer.com/blog/archive/2008/10/28/silverlight-toolkit-released-with-charting-databinding.aspx"&gt;great post on how to databind with these new charts&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;What's really cool about these Silverlight Charts is that they are &lt;a href="http://www.opensource.org/licenses/ms-pl.html"&gt;Ms-PL (Microsoft Public License)&lt;/a&gt; which is a REALLY relaxed license. They're released as part of the larger &lt;a href="http://www.codeplex.com/Silverlight"&gt;Silverlight Toolkit&lt;/a&gt; up at &lt;a href="http://www.codeplex.com/Silverlight"&gt;http://www.codeplex.com/Silverlight&lt;/a&gt;. There's a bunch of controls in there. It is a preview release though, so things will change, and hopefully only get better:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Components in the &lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Quality%20Bands&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Preview"&gt;Preview&lt;/a&gt; Quality Band&lt;/b&gt;       &lt;ul&gt;       &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#AutoCompleteBox"&gt;AutoCompleteBox&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#NumericUpDown"&gt;NumericUpDown&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Viewbox"&gt;Viewbox&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Expander"&gt;Expander&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%203&amp;amp;referringTitle=Home&amp;amp;ANCHOR#ImplicitStyleManager"&gt;ImplicitStyleManager&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%202&amp;amp;referringTitle=Home"&gt;Charting&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Components in the &lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Quality%20Bands&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Stable"&gt;Stable&lt;/a&gt; Quality Band&lt;/b&gt;       &lt;ul&gt;       &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#TreeView"&gt;TreeView&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#DockPanel"&gt;DockPanel&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#WrapPanel"&gt;WrapPanel&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20November%202008%20overview&amp;amp;referringTitle=Home&amp;amp;ANCHOR#Label"&gt;Label&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#HeaderedContentControl"&gt;HeaderedContentControl&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;        &lt;li&gt;&lt;b&gt;&lt;a href="http://www.codeplex.com/Silverlight/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201&amp;amp;referringTitle=Home&amp;amp;ANCHOR#HeaderedItemsControl"&gt;HeaderedItemsControl&lt;/a&gt;&lt;/b&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can check out the &lt;a href="http://silverlight.net/samples/sl2/toolkitchartsamples/run/default.html"&gt;Toolkit Chart samples and run them yourself here&lt;/a&gt;. It's nice that the chart sampler actually includes the source code within the Silverlight sample app. You can browse dozens of charts, then switch tabs and see the XAML and code-behind. This all lives in Microsoft.Windows.Controls.DataVisualization, the namespace (so far) for these controls.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TheWeeklySourceCode36PDCBabySmashandSilv_E62E/image_5.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TheWeeklySourceCode36PDCBabySmashandSilv_E62E/image_thumb_1.png" width="520" height="415" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;My reporting page included a Silverlight Chart and a Virtual Earth control to show where people were smashing from. The data is coming from the &lt;strike&gt;Astoria&lt;/strike&gt; ADO.NET Data Service, which is easy to get to via either JavaScript or from Silverlight.&lt;/p&gt;  &lt;p&gt;You add the charts to your Silverlight application by adding a reference to the assembly then assigning a namespace to them:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;xmlns:charting=&amp;quot;clr-namespace:Microsoft.Windows.Controls.DataVisualization.Charting;assembly=Microsoft.Windows.Controls.DataVisualization&amp;quot;      &lt;br /&gt;xmlns:datavis=&amp;quot;clr-namespace:Microsoft.Windows.Controls.DataVisualization;assembly=Microsoft.Windows.Controls.DataVisualization&amp;quot; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Them, lay them out. I've got two charts here, one column and one pie. I also did some stuff like the linear gradient for the background, etc. Still, pretty simple.&lt;/p&gt;  &lt;pre class="xml" name="code"&gt;&amp;lt;charting:Chart Grid.Column=&amp;quot;0&amp;quot; Height=&amp;quot;300&amp;quot;  StylePalette=&amp;quot;{StaticResource PaletteColors}&amp;quot; Style=&amp;quot;{StaticResource ChartStyle1}&amp;quot; &amp;gt;&lt;br /&gt;    &amp;lt;charting:Chart.Background&amp;gt;&lt;br /&gt;        &amp;lt;LinearGradientBrush EndPoint=&amp;quot;1.332,1.361&amp;quot; StartPoint=&amp;quot;-0.107,-0.129&amp;quot;&amp;gt;&lt;br /&gt;            &amp;lt;GradientStop Color=&amp;quot;#FF6CA9D5&amp;quot;/&amp;gt;&lt;br /&gt;            &amp;lt;GradientStop Color=&amp;quot;#FFFFFFFF&amp;quot; Offset=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;        &amp;lt;/LinearGradientBrush&amp;gt;&lt;br /&gt;    &amp;lt;/charting:Chart.Background&amp;gt;&lt;br /&gt;    &amp;lt;charting:Chart.Axes&amp;gt;&lt;br /&gt;        &amp;lt;charting:Axis x:Name=&amp;quot;colAxis&amp;quot; Orientation=&amp;quot;Vertical&amp;quot; AxisType=&amp;quot;Linear&amp;quot; Minimum=&amp;quot;0&amp;quot; Maximum=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/charting:Axis&amp;gt;&lt;br /&gt;    &amp;lt;/charting:Chart.Axes&amp;gt;&lt;br /&gt;    &amp;lt;charting:Chart.Series&amp;gt;&lt;br /&gt;        &amp;lt;charting:ColumnSeries x:Name=&amp;quot;colSeries&amp;quot; ItemsSource=&amp;quot;{StaticResource BasicValues}&amp;quot; DependentValueBinding=&amp;quot;{Binding Count}&amp;quot; IndependentValueBinding=&amp;quot;{Binding Character}&amp;quot; Title=&amp;quot;Character&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;/charting:ColumnSeries&amp;gt;&lt;br /&gt;    &amp;lt;/charting:Chart.Series&amp;gt;&lt;br /&gt;&amp;lt;/charting:Chart&amp;gt;&lt;br /&gt;&amp;lt;charting:Chart Style=&amp;quot;{StaticResource ChartStyle1}&amp;quot; Grid.Column=&amp;quot;1&amp;quot; Height=&amp;quot;300&amp;quot;  StylePalette=&amp;quot;{StaticResource PaletteColors}&amp;quot; &amp;gt;&lt;br /&gt;    &amp;lt;charting:Chart.Axes&amp;gt;&lt;br /&gt;        &amp;lt;charting:Axis Orientation=&amp;quot;Vertical&amp;quot; AxisType=&amp;quot;Linear&amp;quot; Maximum=&amp;quot;100000&amp;quot;&amp;gt;&amp;lt;/charting:Axis&amp;gt;&lt;br /&gt;    &amp;lt;/charting:Chart.Axes&amp;gt;&lt;br /&gt;    &amp;lt;charting:Chart.Series&amp;gt;&lt;br /&gt;        &amp;lt;charting:PieSeries x:Name=&amp;quot;pieSeries&amp;quot; ItemsSource=&amp;quot;{StaticResource BasicValues}&amp;quot; DependentValueBinding=&amp;quot;{Binding Count}&amp;quot; IndependentValueBinding=&amp;quot;{Binding Character}&amp;quot; Title=&amp;quot;Character&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;/charting:PieSeries&amp;gt;&lt;br /&gt;    &amp;lt;/charting:Chart.Series&amp;gt;&lt;br /&gt;&amp;lt;/charting:Chart&amp;gt;&lt;/pre&gt;

&lt;p&gt;We had a generic list of &amp;quot;CharacterSmash&amp;quot; data, as in List&amp;lt;CharacterSmash&amp;gt; that we'd be binding to the chart.&lt;/p&gt;

&lt;pre class="c#" name="code"&gt;private readonly List&amp;lt;CharacterSmash&amp;gt; characterData = new List&amp;lt;CharacterSmash&amp;gt;();&lt;/pre&gt;

&lt;p&gt;For the purposes of the presentation, I just polled for the data by making an asynchronous call to the service, then updating the bar and pie chart when it returned:&lt;/p&gt;

&lt;pre class="c#" name="code"&gt;private void RequestSmashCountData()&lt;br /&gt;{&lt;br /&gt;    var container = new SmashMetricsContainer(new Uri(&amp;quot;/BabySmashPDC/SmashService.svc&amp;quot;, UriKind.Relative));&lt;br /&gt;&lt;br /&gt;    // Setup data query&lt;br /&gt;    var query = container.SmashCount;&lt;br /&gt;&lt;br /&gt;    // Start the async query&lt;br /&gt;    query.BeginExecute((asyncResult =&amp;gt;&lt;br /&gt;                            {&lt;br /&gt;                                // Get the matching results from the service call&lt;br /&gt;                                var matches = query.EndExecute(asyncResult);&lt;br /&gt;                                UpdateCharacterData(matches);&lt;br /&gt;                                UpdateBarChart();&lt;br /&gt;                                UpdatePieChart();&lt;br /&gt;                            }), null);&lt;br /&gt;}&lt;/pre&gt;

&lt;p&gt;See how the BeginExecute includes the &amp;quot;do this when you return&amp;quot; as a lambda? It's a tidy syntax. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;UPDATE: Tim Heuer emailed me to say that we're re-databinding the results. Instead, he wisely points out:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;&amp;quot;On the code where you are getting the smash metrics for the silverlight charts…I see that you are re-binding the data?&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;If you bind to an observablecollection and just change that the chart should change with the data…including the Y-axis growth.&amp;quot;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;Excellent point! Tim's right. The way I'm doing it works, but it's old school. If I just updated a ObservableCollection the chart would notice the changes and update itself.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;The updates are also clean, just databinding the results:&lt;/p&gt;

&lt;pre class="c#" name="code"&gt;private void UpdateBarChart()&lt;br /&gt;{&lt;br /&gt;    var axis = (Axis)FindName(&amp;quot;colAxis&amp;quot;);&lt;br /&gt;    if (axis != null)&lt;br /&gt;        axis.Maximum = GetMaximumCount() + 50;&lt;br /&gt;&lt;br /&gt;    var colSeriesControl = (ColumnSeries)FindName(&amp;quot;colSeries&amp;quot;);&lt;br /&gt;    if (colSeriesControl != null)&lt;br /&gt;        colSeriesControl.ItemsSource = characterData;&lt;br /&gt;}&lt;/pre&gt;

&lt;p&gt;All we had to do that was interesting at all was to make sure the Y-axis grew as the data grew.&lt;/p&gt;

&lt;p&gt;Who do we have to thank for this charting control? &lt;a href="http://blogs.msdn.com/delay"&gt;David Anson&lt;/a&gt; is who. Basically he was the Primary Dev and only Tester on the whole thing, and you should &lt;a href="http://blogs.msdn.com/delay"&gt;check out his blog for lots of inside information on charting in Silverlight&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE: David had development help from Jafar Husain, Jeremy Sheldon, Delian Tchoparinov, Alex Gorev and Sean Boon and designer Mehdi Slaoui Andaloussi.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If making a complex chart seems daunting, &lt;a href="http://blogs.msdn.com/delay/archive/2008/10/29/click-your-way-to-great-silverlight-charts-live-chartbuilder-sample-and-source-code.aspx"&gt;David has &lt;strong&gt;ChartBuilder&lt;/strong&gt;&lt;/a&gt; that &lt;a href="http://delay.members.winisp.net/ChartBuilder/"&gt;you run now in your browser&lt;/a&gt;. It'll generate and show you the XAML you need for your chart.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://delay.members.winisp.net/ChartBuilder/"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TheWeeklySourceCode36PDCBabySmashandSilv_E62E/image_11.png" width="520" height="397" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;There was so much announced at PDC, I wanted to make sure that folks heard about this important release that might have been lost in the shuffle. Even better, &lt;a href="http://www.codeplex.com/Silverlight/SourceControl/ListDownloadableCommits.aspx"&gt;the source is open&lt;/a&gt; so if you don't like it, change it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related Links&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://blogs.msdn.com/delay/archive/2008/11/04/smaller-is-still-better-a-simple-step-continues-to-shrink-the-download-size-of-silverlight-2-applications.aspx"&gt;&lt;strong&gt;Make your Silverlight Applications Smaller with ReXapper&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://blogs.msdn.com/delay/archive/2008/10/29/click-your-way-to-great-silverlight-charts-live-chartbuilder-sample-and-source-code.aspx"&gt;&lt;strong&gt;ChartBuilder&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; and &lt;/strong&gt;&lt;a href="http://blogs.msdn.com/delay/archive/2008/10/28/announcing-a-free-open-source-charting-solution-for-silverlight-silverlight-toolkit-released-today-at-pdc.aspx"&gt;&lt;strong&gt;Intro to Charting with Silverlight&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://silverlight.net/samples/sl2/toolkitcontrolsamples/run/default.html"&gt;&lt;strong&gt;Silverlight Tookit Samples&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.codeplex.com/Silverlight"&gt;&lt;strong&gt;http://www.codeplex.com/Silverlight&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://blogs.msdn.com/sburke/"&gt;&lt;strong&gt;Shawn Burke's blog (he's the boss)&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://silverlight.net/forums/35.aspx"&gt;&lt;strong&gt;Silverlight Control Support Forum&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://timheuer.com/blog/archive/2008/10/28/silverlight-toolkit-released-with-charting-databinding.aspx"&gt;&lt;strong&gt;Tim Heuer on the Silverlight Toolkit&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://silverlight.net/blogs/jesseliberty/"&gt;&lt;strong&gt;Jesse Liberty's Silverlight Blog&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href="http://www.garchibald.com/babysmash"&gt;&lt;strong&gt;Grant Archibald on Silverlight and BabySmash&lt;/strong&gt;&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/ZcQMounlppQJzWnWz14d-cLGwYQ/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/ZcQMounlppQJzWnWz14d-cLGwYQ/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=fEU2aK8E"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=6nIpJhoL"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=6nIpJhoL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=PHEsT0kC"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=RFhP4Gdk"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=RFhP4Gdk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=mQCn7Cyn"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=mQCn7Cyn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=fjGBb2aP"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/4J0QsXDhyJ0" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=f1e44e84-2d50-499c-951f-29509d2ffe38</comments>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
      <category>BabySmash</category>
      <category>Open Source</category>
      <category>PDC</category>
      <category>Silverlight</category>
      <category>Source Code</category>
    <feedburner:origLink>http://www.hanselman.com/blog/TheWeeklySourceCode36PDCBabySmashAndSilverlightCharting.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=768ccbab-7f06-499a-b1d0-504e2e7f0116</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=768ccbab-7f06-499a-b1d0-504e2e7f0116</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=768ccbab-7f06-499a-b1d0-504e2e7f0116</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=768ccbab-7f06-499a-b1d0-504e2e7f0116</wfw:commentRss>
      <slash:comments>72</slash:comments>
      <title>2008 - Congratulations, America has a President-Elect</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=768ccbab-7f06-499a-b1d0-504e2e7f0116</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/WDL0iU7kBb8/2008CongratulationsAmericaHasAPresidentElect.aspx</link>
      <pubDate>Wed, 05 Nov 2008 06:11:38 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;We have a new president here in the US. He is president-elect Barack Obama. This was a very long presidential race, long by even American standards. We're all exhausted from this race as a country and excited for January 20th, when the new president is inaugurated. It was a good race. John McCain gave a thoughtful and gracious concession speech. Barack Obama gave an inspirational acceptance speech.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.nkiwane.com"&gt;My wife, Mo, voted&lt;/a&gt; in her first election as a US Citizen. My boys will grow up in a country that values people of all kinds, including ones that look like them. Voter turnout was at historic levels and was organized and peaceful - THAT is a testament to this country and what we stand for.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.hanselman.com/blog/content/binary/babyobama.jpg" border="0"&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Now, let's get to work, America.&lt;br&gt;&lt;/p&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/Frhu1wuTC2bHXI9GGN0SBFFTf7Q/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/Frhu1wuTC2bHXI9GGN0SBFFTf7Q/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=rkOjRL3w"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=XJksbiXh"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=XJksbiXh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=hjFWR8Ep"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=VtKPTEVy"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=VtKPTEVy" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=dqtwUSw0"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=dqtwUSw0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=Pn4d9cQ4"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feedproxy.google.com/~r/ScottHanselman/~4/WDL0iU7kBb8" height="1" width="1"/&gt;</description>
      <comments>http://www.hanselman.com/blog/CommentView.aspx?guid=768ccbab-7f06-499a-b1d0-504e2e7f0116</comments>
      <category>Musings</category>
    <feedburner:origLink>http://www.hanselman.com/blog/2008CongratulationsAmericaHasAPresidentElect.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://www.hanselman.com/blog/Trackback.aspx?guid=874df48c-4453-4169-910b-2ffb7eae80cb</trackback:ping>
      <pingback:server>http://www.hanselman.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.hanselman.com/blog/PermaLink.aspx?guid=874df48c-4453-4169-910b-2ffb7eae80cb</pingback:target>
      <dc:creator>Scott Hanselman</dc:creator>
      <wfw:comment>http://www.hanselman.com/blog/CommentView.aspx?guid=874df48c-4453-4169-910b-2ffb7eae80cb</wfw:comment>
      <wfw:commentRss>http://www.hanselman.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=874df48c-4453-4169-910b-2ffb7eae80cb</wfw:commentRss>
      <slash:comments>12</slash:comments>
      <title>Tips for Preparing for a Technical Presentation</title>
      <guid isPermaLink="false">http://www.hanselman.com/blog/PermaLink.aspx?guid=874df48c-4453-4169-910b-2ffb7eae80cb</guid>
      <link>http://feedproxy.google.com/~r/ScottHanselman/~3/nmtwxbiD-C0/TipsForPreparingForATechnicalPresentation.aspx</link>
      <pubDate>Tue, 04 Nov 2008 06:43:32 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;I felt &lt;a href="http://channel9.msdn.com/pdc2008/TL49/"&gt;pretty good about my presentation&lt;/a&gt; at &lt;a href="http://sessions.microsoftpdc.com"&gt;PDC&lt;/a&gt; last week. They are WAY more uptight about presentations at PDC than at TechEd. You have to go through dry-runs and slide reviews and all sorts of things that I was dodging at every turn.&lt;/p&gt;  &lt;p&gt;The talk is available, as are all PDC talks, up at &lt;a title="http://sessions.microsoftpdc.com" href="http://sessions.microsoftpdc.com"&gt;http://sessions.microsoftpdc.com&lt;/a&gt;. You can get them in these formats &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL49.wmv"&gt;WMV-HQ&lt;/a&gt;, &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV/TL49.wmv"&gt;WMV&lt;/a&gt;, &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/ZUNE/TL49.wmv"&gt;Zune&lt;/a&gt;, &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/MP4/TL49.mp4"&gt;MP4&lt;/a&gt; which is cool. I like the WMV-HQ version, over the WMV version, because it includes picture-in-picture video. My talk is no fun if you can't see me being silly. You can also watch it &lt;a href="http://channel9.msdn.com/pdc2008/TL49/"&gt;streaming in the browser via Silverlight&lt;/a&gt; and &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/PPTX/TL49.pptx"&gt;download my PPTX&lt;/a&gt;. If you saw it live, don't forget to &lt;a href="http://snurl.com/4syyi"&gt;evaluate the session as I have to Crush Anders&lt;/a&gt; in the scores. (Note to self, register CrushAnders.com and .net)&lt;/p&gt;  &lt;p&gt;Anyway, someone was asking how I prepare for a talk, so I figured this would be as good enough time as any for a post on the topic.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TipsforPreparingforaTechnicalPresentatio_12E38/image_3.png" width="224" height="250" /&gt;These basic tips from a few years back still stand - &lt;a href="http://www.hanselman.com/blog/11TopTipsForASuccessfulTechnicalPresentation.aspx"&gt;11 Top Tips for a Successful Technical Presentation&lt;/a&gt;, but this post is about the actual preparation process and some tips and techniques that might help.&lt;/p&gt;  &lt;p&gt;I thought I did a good job, with 72 slides and 8 demos in 75 minutes and only one person said it felt rushed in the comments. ;) Of course, I had about 9 hours of content, but I did prepare in specific ways in order to pull it off.&lt;/p&gt;  &lt;h3&gt;Know Where Things Are - Beforehand&lt;/h3&gt;  &lt;p&gt;You can easily waste 2 to 5 minutes over an hour long talk &lt;em&gt;looking for crap. &lt;/em&gt;Seriously, I don't need to see how slow you are with Explorer. If you want to have your audience rush the stage, be slow in finding stuff. ;) &lt;/p&gt;  &lt;p&gt;Make a folder of links that is specific to your talk. I made one and numbered each link in the order I was going to use them. That includes links to folders, files, browsers, batch files, reset scripts, whatever. &lt;/p&gt;  &lt;p&gt;My talk also included a lot of websites that I knew I'd be visiting. I made a Links toolbar in IE and setup links to everything I'd visit, in order.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TipsforPreparingforaTechnicalPresentatio_12E38/image_8.png"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TipsforPreparingforaTechnicalPresentatio_12E38/image_thumb_2.png" width="491" height="20" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;My tiny head is on those links not because of my huge ego, but because those links are inside my domain and IE used my favicon.ico. ;)&lt;/p&gt;  &lt;h3&gt;&amp;quot;Sync to Paper&amp;quot; and Know Your Timing&lt;/h3&gt;  &lt;p&gt;I'm a gadget guy, sure, and I've got the same todo.txt file on my desktop that the rest of you do, but there's really something about &amp;quot;syncing to paper.&amp;quot; before every talk I write a few things down. I do it on a &lt;a href="http://www.hanselman.com/blog/PersonalSystemsOfOrganization.aspx"&gt;Moleskine notebook that I wrote about in my Personal Systems of Organization post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Over the years I've come up with a few techniques on paper that have helped me greatly. Scanned below is the notes I used in my PDC talk.&lt;/p&gt;  &lt;p&gt;On the left-hand side you'll see 5 sections, numbered from top to bottom. I make &lt;strong&gt;one section per 15 minute segment&lt;/strong&gt;. This was a 75 minute talk, so there's 5 sections. Sometimes I'll take the FIRST and LAST section and split them into 5/10 and 10/5 respectively. Regardless of how &lt;em&gt;you &lt;/em&gt;do it, the point here is to know these things:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Know Where You Are Supposed to Be &lt;/strong&gt;      &lt;ul&gt;       &lt;li&gt;I use the segments to let me know where I'm supposed to be at 15 min, 30 min, etc. Looking at the notes, if I'm on the PLINQ demo and it's only 20 minutes in, I'm going WAY too fast for example.&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Know &lt;/strong&gt;&lt;strong&gt;Where You Are Going&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;It's nice to be free of knowing what's next. The mind can free associate better if it isn't saddled with where it's headed. That's the paper's job. I glance down just to see that I'm on track.&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Know &lt;/strong&gt;&lt;strong&gt;Your Pacing and &lt;/strong&gt;&lt;strong&gt;Know &lt;/strong&gt;&lt;strong&gt;What You Can Drop&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;On the left side I've numbered the demos 1 or 2. The #2's I can drop if I need to save time. The #1's can't be dropped or it'll ruin everything. Have enough demos to fill the time, but also know ahead of time which demos to drop if need be.&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TipsforPreparingforaTechnicalPresentatio_12E38/BabySmashPresentationNotes_2.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="BabySmash Presentatio nNotes" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TipsforPreparingforaTechnicalPresentatio_12E38/BabySmashPresentationNotes_thumb.jpg" width="520" height="418" /&gt;&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h3&gt;Know Your Narrative and Where to &amp;quot;Pivot&amp;quot;&lt;/h3&gt;  &lt;p&gt;If you've ever been unfortunate enough to come upon me &lt;em&gt;freaking out &lt;/em&gt;before a talk at a conference, I've likely accosted you and run through the narrative or the &amp;quot;story arc.&amp;quot; I keep doing this until it really resonates with me and the half-dozen folks I abuse regularly, like &lt;a href="http://www.haacked.com"&gt;Phil Haack&lt;/a&gt; and &lt;a href="http://blog.wekeroad.com/"&gt;Rob Conery&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;It's all the same basic middle-school speech stuff we've all learned before, but I'm constantly reminding myself of these questions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Why is the audience there? &lt;/li&gt;    &lt;li&gt;Who is the audience? &lt;/li&gt;    &lt;li&gt;How can I avoid wasting their time? &lt;/li&gt;    &lt;li&gt;What's the one thing they should get out of the talk?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I also try to focus on a story arc that looks like:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;What is this? &lt;/li&gt;    &lt;li&gt;This is it. &lt;/li&gt;    &lt;li&gt;What was that?&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 5px 10px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="The .NET Framework Universe" align="right" src="http://www.hanselman.com/blog/content/binary/WindowsLiveWriter/TipsforPreparingforaTechnicalPresentatio_12E38/image_6.png" width="484" height="252" /&gt;Seems silly, but it works. You'll see that I repeat myself four or five times to make sure important points get hit and pounded in. This style of arc works in most technical talks, but others are more complex so I use what I call a &amp;quot;pivot point.&amp;quot;&lt;/p&gt;  &lt;p&gt;I call it that because in basketball once you've planted your feet you have to pivot on one foot. You can move all over as long as you keep that one foot planted. If the basketball analogy doesn't work for you, then think of holding your finger on a chess piece while you think of your next move.&lt;/p&gt;  &lt;p&gt;For the PDC talk, we had these nice posters to pass out. They look nice as placemats or on the wall, but they look busy on a slide, so I covered them with bright colored shapes. The &lt;strong&gt;Core &lt;/strong&gt;shape was my pivot point. I'd start there, go to Client, then come back to Core. I'd go to Data, then back to Core. Just like that, Rinse, Repeat.&lt;/p&gt;  &lt;p&gt;If you've got a meandering talk, like I did, finding a place to keep coming back to can really help. It helps me.&lt;/p&gt;  &lt;h3&gt;Have a Pre-Talk Checklist and Demo Reset&lt;/h3&gt;  &lt;p&gt;Make a complete list of everything that you need to do before your talk. If that means find a Diet Coke and use the bathroom, fine, put it on the list. Here's mine for this talk, &lt;em&gt;unedited&lt;/em&gt;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Courier New"&gt;reset the database       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;resize and prep the browser       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;cache the font list       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;remove my son's face from the xaml       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;* Pick up the Samsung SilverLight Phone       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;Test the Phone remote viewing software       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;prep the mac, test the mac's video output (1280)       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;*dvi-vga adapter for the mac       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;check all font sizes in all apps       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;run zoomin       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;shutdown services, and the mesh       &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Courier New"&gt;Warn orcsweb that traffic is coming&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I had a bunch of stuff that could have gone wrong if I hadn't checked ahead of time. The Mac I used for the Surface demo only output at 1280x1024. I checked that with the tech guy at 8am. I didn't have a DVI-VGA adapter, so I got one at Radio Shack. I went into every app I was going to run and made sure the fonts were at a visible size (I like Consolas 15pt). I also shutdown all non-essential services. ALL of them. I go from 107 programs running to less than 50. I shutdown piles of stuff in Services.msc like &amp;quot;Infrared Service&amp;quot; and all that crap. I called my ISP, &lt;a href="http://www.orcsweb.com"&gt;Orcsweb&lt;/a&gt;, and warned them I was doing a demo so they'd babysit the box and not think there was an attack. &lt;/p&gt;  &lt;p&gt;Preparations like this, and batch files that reset your demos, drop and recreate your database, clear caches, prime caches or whatever administrivia you need, just take a few minutes to do, but they make a presentation look much more professional. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Related Posts&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/PersonalSystemsOfOrganization.aspx"&gt;Personal Systems of Organization&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.hanselman.com/blog/11TopTipsForASuccessfulTechnicalPresentation.aspx"&gt;11 Top Tips for a Successful Technical Presentation&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;br/&gt;&lt;hr/&gt;© 2008 Scott Hanselman. All rights reserved. &lt;br/&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.googleadservices.com/~a/rWBcdf65v3JNsY1vrVWg0gXaBL8/a"&gt;&lt;img src="http://feedads.googleadservices.com/~a/rWBcdf65v3JNsY1vrVWg0gXaBL8/i" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=htny1tr0"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=J1VVOsOh"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=J1VVOsOh" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=CfqLlvWr"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?d=799" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~f/ScottHanselman?a=GsGqY9kS"&gt;&lt;img src="http://feedproxy.google.com/~f/ScottHanselman?i=GsGqY9kS" border="0"&gt;&