<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>The Moth</title><link>http://www.danielmoth.com/Blog/index.htm</link><description>Developer, &lt;a href="http://www.danielmoth.com/cvMVP.htm" title="joining Microsoft means losing the MVP award"&gt;Former MVP&lt;/a&gt;, now at Microsoft</description><language>en</language><managingEditor>noreply@blogger.com (The Moth)</managingEditor><lastBuildDate>Sat, 07 Nov 2009 07:59:52 PST</lastBuildDate><generator>Blogger</generator><atom:id xmlns:atom="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-7744200</atom:id><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">839</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DanielMoth" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/DanielMoth" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="https://intouch.particls.com/download/?mode=2&amp;feed=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="https://intouch.particls.com/resources/buttons/it-button2.gif">Subscribe with Particls</feedburner:feedFlare><feedburner:feedFlare href="http://www.addtoany.com/?linkname=The%20Moth&amp;linkurl=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth&amp;type=feed" src="http://www.addtoany.com/addfr-b.gif">Add to Any Feed Reader</feedburner:feedFlare><feedburner:feedFlare href="http://www.fwicki.com/users/default.aspx?addfeed=http%3A%2F%2Ffeeds.feedburner.com%2FDanielMoth" src="http://www.fwicki.com/images/ui/fwicki_clicklet.png">Subscribe with fwicki</feedburner:feedFlare><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><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>MPI Project Template for VS2010</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/0GA2bYOoFd8/mpi-project-template-for-vs2010.html</link><category>HPC</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 06 Nov 2009 20:54:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-6701763445884658334</guid><description>If you are developing MS MPI applications with Visual Studio 2010, you are probably tired of following some tedious steps for every new C++ project that you create, similar to the following:&lt;blockquote&gt;&lt;strong&gt;1.&lt;/strong&gt; In Solution Explorer, right-click &lt;strong&gt;YourProjectName&lt;/strong&gt;, then click &lt;strong&gt;Properties &lt;/strong&gt;to open the &lt;strong&gt;Property Pages &lt;/strong&gt;dialog box.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Expand &lt;strong&gt;Configuration Properties &lt;/strong&gt;and then under &lt;strong&gt;VC++ Directories &lt;/strong&gt;place the cursor at the beginning of the list that appears in the &lt;strong&gt;Additional Include Directories &lt;/strong&gt;text box and then specify the location of the MS MPI C header files, followed by a semicolon, e.g.&lt;br /&gt;&lt;code&gt;C:\Program Files\Microsoft HPC Pack 2008 SDK\Include;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; Still under &lt;strong&gt;Configuration Properties &lt;/strong&gt;and under &lt;strong&gt;VC++ Directories &lt;/strong&gt;place the cursor at the beginning of the list that appears in the&lt;strong&gt; Library Directories &lt;/strong&gt;text box and then specify the location of the Microsoft HPC Pack 2008 SDK library file, followed by a semicolon, e.g.&lt;br /&gt;if you want to build/debug 32bit application:&lt;br /&gt;&lt;code&gt;C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\i386;&lt;/code&gt;&lt;br /&gt;if you want to build/debug 64bit application:&lt;br /&gt;&lt;code&gt;C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\amd64;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Under &lt;strong&gt;Configuration Properties &lt;/strong&gt;and then under &lt;strong&gt;Linker&lt;/strong&gt;, select &lt;strong&gt;Input &lt;/strong&gt;and place the cursor at the beginning of the list that appears in the &lt;strong&gt;Additional Dependencies &lt;/strong&gt;text box and then type the name of the MS MPI library, i.e.&lt;br /&gt;&lt;code&gt;msmpi.lib;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; In the code file&lt;br /&gt;&lt;code&gt;include "mpi.h"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6.&lt;/strong&gt; To debug the MPI project you have just setup, under &lt;strong&gt;Configuration Properties &lt;/strong&gt;select &lt;strong&gt;Debugging &lt;/strong&gt;and then switch the &lt;strong&gt;Debugger to launch &lt;/strong&gt;combo value from &lt;code&gt;Local Windows Debugger&lt;/code&gt; to &lt;code&gt;MPI Cluster Debugger&lt;/code&gt;.&lt;/blockquote&gt;Wouldn't it be great if at C++ project creation time you could choose an &lt;strong&gt;MPI Project Template&lt;/strong&gt; that included the steps/configurations above? If you answered "yes", I have good news for you courtesy of a developer on our team (Qing). &lt;br /&gt;&lt;br /&gt;Feel free to download from Visual Studio gallery the &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/90fb60d4-0b8c-472f-8135-683d3c45f45a"&gt;MPI Project Template&lt;/a&gt;.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/MPIProjectTemplate.png" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-6701763445884658334?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0GA2bYOoFd8:8MkiM6QU2IY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0GA2bYOoFd8:8MkiM6QU2IY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0GA2bYOoFd8:8MkiM6QU2IY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0GA2bYOoFd8:8MkiM6QU2IY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0GA2bYOoFd8:8MkiM6QU2IY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0GA2bYOoFd8:8MkiM6QU2IY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0GA2bYOoFd8:8MkiM6QU2IY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0GA2bYOoFd8:8MkiM6QU2IY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0GA2bYOoFd8:8MkiM6QU2IY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/0GA2bYOoFd8" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-11-06T20:54:45.524-08:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/11/mpi-project-template-for-vs2010.html</feedburner:origLink></item><item><title>Instructions for collecting dumps in VS2010</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/CKiYCvZ6M4M/instructions-for-collecting-dumps-in.html</link><category>VisualStudio</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 29 Oct 2009 20:11:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-2723203874933244033</guid><description>Came across this on an internal email thread and thought it would be useful to share, in case you run into a VS crash and wish to collect the information needed by Microsoft support.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; Start 2 instances of Visual Studio 2010  (devenv.exe).&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; In the first one select Tools -&gt; Attach to Process.&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; Click the Select button for “Attach to:” and select Managed and Native.&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Select the other devenv from the list and click Attach.&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Switch to the other devenv.&lt;br /&gt;&lt;strong&gt;6.&lt;/strong&gt; Load your solution and try to reproduce the crash.&lt;br /&gt;&lt;strong&gt;7.&lt;/strong&gt; When you hit the crash the debugger should automatically break.&lt;br /&gt;&lt;strong&gt;8.&lt;/strong&gt; Select Debug -&gt; Save Dump As, then set the type to minidump with heap  and save the file to a location with lot’s of space.&lt;br /&gt;&lt;br /&gt;Note: If you are running the VB &lt;a href="http://www.danielmoth.com/Blog/2009/10/visual-studio-profile.html"&gt;profile&lt;/a&gt; you will not see the Save Dump As menu item. To add this menu item:&lt;br /&gt;&lt;strong&gt;a.&lt;/strong&gt; Select Tools -&gt; Customize&lt;br /&gt;&lt;strong&gt;b.&lt;/strong&gt; Select the Commands tab&lt;br /&gt;&lt;strong&gt;c.&lt;/strong&gt; Select Debug from the “Menu bar” dropdown&lt;br /&gt;&lt;strong&gt;d.&lt;/strong&gt; Click “Add Command…”&lt;br /&gt;&lt;strong&gt;e.&lt;/strong&gt; Select Debug from the Categories list.&lt;br /&gt;&lt;strong&gt;f.&lt;/strong&gt; Find the “Save Dump As” entry in the Commands window.&lt;br /&gt;&lt;strong&gt;g.&lt;/strong&gt; Click OK (the “Save Dump As…” command is added to the top of the Debug menu).&lt;br /&gt;&lt;strong&gt;h.&lt;/strong&gt; Click “Close”&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-2723203874933244033?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CKiYCvZ6M4M:JWfk6JoCjaU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CKiYCvZ6M4M:JWfk6JoCjaU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CKiYCvZ6M4M:JWfk6JoCjaU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=CKiYCvZ6M4M:JWfk6JoCjaU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CKiYCvZ6M4M:JWfk6JoCjaU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=CKiYCvZ6M4M:JWfk6JoCjaU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CKiYCvZ6M4M:JWfk6JoCjaU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CKiYCvZ6M4M:JWfk6JoCjaU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=CKiYCvZ6M4M:JWfk6JoCjaU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/CKiYCvZ6M4M" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-29T20:11:35.157-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/instructions-for-collecting-dumps-in.html</feedburner:origLink></item><item><title>Positioning the Parallel Stacks window</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/rSVPC72hQC4/positioning-parallel-stacks-window.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 22 Oct 2009 20:22:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-3222084881935602383</guid><description>When we developed the &lt;a href="http://www.danielmoth.com/Blog/2009/10/parallel-tasks-and-parallel-stacks.html"&gt;Parallel Debugging windows&lt;/a&gt;, we had to choose their default &lt;a href="http://www.danielmoth.com/Blog/2009/10/window-positions-in-visual-studio.html"&gt;position in Visual Studio&lt;/a&gt;. For Parallel Tasks it was easy: we chose wherever the Threads window appears by default, since the two windows share characteristics in usage and appearance. Parallel Stacks may be similar to the basic concept of the Call Stack window, but it has slightly different usage patterns and very different UI. Here I'll describe our rational for the current choice for the Parallel Stacks window, offering tips and request feedback.&lt;br /&gt;&lt;br /&gt;It was more challenging that just picking a position at random, especially due to the window having high screen real estate demands for typical applications – after all, it is a graphical view of all the call stacks of all the threads/tasks in your application. So, we quickly dismissed having it docked at the bottom or top since those are typically narrow in height windows. Some of us believed that the document editor area would be a good place for it since it has more screen real estate to offer. That approach breaks down when you realize that the Parallel Stacks window is not just presenting data, but it also allows you to quickly switch to any stack frame of any thread (with a double click). When that user action takes place, the code editor navigates to the method context and thus steals the focus from the Parallel Stacks window which gets pushed to the back (this also happens when you simply toggle the "Show External Code" option). So if you want to navigate to various places in the code via a series of examinations, that position quickly becomes irritating (just like if you docked Solution Explorer in the code editor area).&lt;br /&gt;&lt;br /&gt;So we decided the default position to be floating! The idea is that you can resize it based on your preferences and move it in and out of the way if necessary: you get to see as much of it as you want and you keep it on top of other windows (typically to the right side). The real expectation is that you will &lt;strong&gt;drag the floating window to your second monitor and &lt;a href="http://www.danielmoth.com/Blog/2009/10/visual-studio-2010-floating-windows-can.html"&gt;maximize it&lt;/a&gt; there&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Two other options came close to be chosen and I'll offer them here as tips in case they suit you better (in particular if you don't have a second monitor or when debugging on the go on your laptop). One is to dock it within the document editor, but in a New Vertical Tab Group. This way it takes up the space it typically needs, while keeping your code editor in view when you switch stack frames.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/NewVerticalTabGroup.png" /&gt;&lt;br /&gt;&lt;br /&gt;The other option is to dock the Parallel Stacks window where the Solution Explorer window lives. That way you can resize that group of windows horizontally to see more content (and use for navigation) without taking too much away from your code view (assuming your lines of code are not extremely long). When you are done using it, you can quickly resize it back to normal.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/DockedWithSolutionExplorer.png" /&gt;&lt;br /&gt;&lt;br /&gt;It is amazing how much thought/discussion goes into, what many people would consider, an insignificant detail, but that is the kind of thing I enjoy, which I guess is why I do what I do. In any case, I am eager to hear how we got this decision wrong, so please let me know.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-3222084881935602383?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rSVPC72hQC4:HbuoXAG89c4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rSVPC72hQC4:HbuoXAG89c4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rSVPC72hQC4:HbuoXAG89c4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=rSVPC72hQC4:HbuoXAG89c4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rSVPC72hQC4:HbuoXAG89c4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=rSVPC72hQC4:HbuoXAG89c4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rSVPC72hQC4:HbuoXAG89c4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rSVPC72hQC4:HbuoXAG89c4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=rSVPC72hQC4:HbuoXAG89c4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/rSVPC72hQC4" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-22T20:22:17.815-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/positioning-parallel-stacks-window.html</feedburner:origLink></item><item><title>Window Positions in Visual Studio</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/dLYgAdUV50U/window-positions-in-visual-studio.html</link><category>VisualStudio</category><author>noreply@blogger.com (The Moth)</author><pubDate>Tue, 20 Oct 2009 17:04:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5610674765583152889</guid><description>There are many toolwindows in Visual Studio and each release keeps adding new ones. This is great for offering more features and increasing productivity, but it also adds to the number of windows we need to manage and it makes it even more important to understand how the positioning works in VS (and most of this applies to toolbars as well).&lt;br /&gt;&lt;br /&gt;The first important thing to understand is that there are 3 different window configurations persisted per user on the machine.&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; The &lt;strong&gt;standard&lt;/strong&gt; configuration: the default when you open a solution in Visual Studio.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; The &lt;strong&gt;debugging&lt;/strong&gt; configuration: the one when you hit F5 (and a little window earthquake takes place while everything readjusts).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; The often forgotten, &lt;strong&gt;full screen&lt;/strong&gt; configuration when you hit Shift+Alt+Enter, in any of the previous configurations&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Once you understand the above, you should never utter the words: "didn't I just close that window, why did it come back", which we typically hear from presenters on stage after hiding, for example, Solution Explorer and then when they hit F5 it comes back. You need to hide (or otherwise position) each window for every one of the 3 configurations if you really want it to be like that all the time. Another example is if you decide to move the Breakpoints window in standard configuration, don't be surprised if it pops up somewhere else when you debug: to make sure it appears at the same place always, you need to move it to where you want in all configurations. Understanding the above also means that you won’t be looking for the Parallel Tasks window when in standard configuration since it is a debugging window and hence applicable only when in debugging mode. I hope the point is made.&lt;br /&gt;&lt;br /&gt;The second most important thing to understand is that each window has a default position for each one of the configurations. Those default positions are different per &lt;a href="http://www.danielmoth.com/Blog/2009/10/visual-studio-profile.html"&gt;profile that you chose the first time you run Visual Studio&lt;/a&gt;. Just because you have some defaults, it doesn't mean you need to stick with them, so choose what is best for you.&lt;br /&gt;&lt;br /&gt;So what are the two basic choices we make per window?&lt;br /&gt;&lt;strong&gt;A.&lt;/strong&gt; Is it hidden or visible. If it is hidden, we should at least know where it lives on the menus so we can bring it up when we need it (and thus avoid the "out of sight, out of mind" pitfall). So go ahead and explore all the menus under the View menu and don't forget the ones under Architecture, Test and Analyze:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/ViewArchTestAnalMenus.png"/&gt;&lt;br /&gt;Don't forget that menu options change when you are in debugging mode, so explore the Debug menu once you've hit a breakpoint:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/DebugMenuB2.png"/&gt;&lt;br /&gt;&lt;em&gt;TIP&lt;/em&gt;: If you are not familiar with all of these windows above, maybe you are not the VS power user you thought you were ;-)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;B.&lt;/strong&gt; If you've opened a window, it has a default position that each profile team chose. You need to decide where it lives: floating (this is usually a temporary state or &lt;a href="http://www.danielmoth.com/Blog/2009/10/visual-studio-2010-floating-windows-can.html"&gt;used on the secondary monitor, combined with MAX options&lt;/a&gt;), docked to the left/right/top/bottom (further decision if it is pinned or autohides controlled via the pushpin) or even docked to the center as a tabbed document (see the drop down options in the &lt;a href="http://www.danielmoth.com/Blog/2009/10/visual-studio-2010-floating-windows-can.html"&gt;screenshot of the link&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;With regards to moving a window around for docking I often observe people fighting the IDE, especially since each docking target can have multiple side-by-side groups. It is quite simple. Drag the window towards your desired area and look out for blue shaded region to appear, it represents where your window will go: if you like that position then you can release the mouse button; if you don't, keep moving the window. Along with the blue shadowed region, you also get some arrow targets appearing that you can drag the mouse pointer over (while still keeping the mouse button down so as not to release the window). Here is a screenshot of dragging the Parallel Stacks window towards the top and moving the mouse over the left arrow box that appeared.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/BlueHighlightDocking.png"/&gt;&lt;br /&gt;After this screenshot was taken I released the mouse button and a new window group was created next to the Parallel Tasks window that was occupied by the Parallel Stacks window. If I wanted it to join the same group as the Parallel Tasks window, I would have dragged towards the middle box and released then.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TIP&lt;/strong&gt;: if you want to drag a window out of its group to floating, don't drag it by the title bar, but instead drag it from its tab. I.e. in the following screenshot, dragging from the title bar (red circle) will float the entire window group whereas dragging from the tab (blue circle) will float just the Parallel Tasks window.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/ToolwindowTabTitlebar.png"/&gt;&lt;br /&gt;&lt;br /&gt;Finally, you can backup and restore the window layouts via the Tools-&gt; Import and Export Settings menu. FYI, they are stored on your machine in this folder: "%userprofile%\AppData\Roaming\Microsoft\VisualStudio\9.0". Look for the windows.prf and windowsidx.prf files. I found that via this &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.providetoolwindowvisibilityattribute(VS.100).aspx"&gt;msdn link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-5610674765583152889?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dLYgAdUV50U:PSaoEjqEskM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dLYgAdUV50U:PSaoEjqEskM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dLYgAdUV50U:PSaoEjqEskM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=dLYgAdUV50U:PSaoEjqEskM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dLYgAdUV50U:PSaoEjqEskM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=dLYgAdUV50U:PSaoEjqEskM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dLYgAdUV50U:PSaoEjqEskM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dLYgAdUV50U:PSaoEjqEskM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=dLYgAdUV50U:PSaoEjqEskM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/dLYgAdUV50U" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-20T17:04:23.993-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/window-positions-in-visual-studio.html</feedburner:origLink></item><item><title>Visual Studio 2010 Beta2 (build 21006)</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/dZG-xNSpjo8/visual-studio-2010-beta2-build-21006.html</link><category>VisualStudio</category><author>noreply@blogger.com (The Moth)</author><pubDate>Mon, 19 Oct 2009 09:11:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-2508559922450665638</guid><description>MSDN Subscribers can download &lt;a href="http://msdn.microsoft.com/vstudio/"&gt;Visual Studio&lt;/a&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;2010 Beta2&lt;/a&gt; today with general public availability to follow in a couple of days. Official blog posts by &lt;a href="http://blogs.msdn.com/somasegar/archive/2009/10/19/announcing-visual-studio-2010-and-net-fx-4-beta-2.aspx"&gt;Soma&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have been using this since October 8th (2 days after it was built as you can tell from the build number) and it is amazingly better than the Beta1 in terms of performance, stability and new features too. It is worthy of its "go-live" license.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/VS2010SplashWin7.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;More posts to follow from me on VS2010; for now, I just updated the VS &lt;a href="http://www.danielmoth.com/Blog/2009/10/visual-studio-profile.html"&gt;Profile screenshot&lt;/a&gt; and the &lt;a href="http://www.danielmoth.com/Blog/2009/10/parallel-tasks-and-parallel-stacks.html"&gt;Parallel Debugging content&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-2508559922450665638?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dZG-xNSpjo8:xGr2nchZWhM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dZG-xNSpjo8:xGr2nchZWhM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dZG-xNSpjo8:xGr2nchZWhM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=dZG-xNSpjo8:xGr2nchZWhM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dZG-xNSpjo8:xGr2nchZWhM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=dZG-xNSpjo8:xGr2nchZWhM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dZG-xNSpjo8:xGr2nchZWhM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=dZG-xNSpjo8:xGr2nchZWhM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=dZG-xNSpjo8:xGr2nchZWhM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/dZG-xNSpjo8" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-19T10:29:31.257-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/visual-studio-2010-beta2-build-21006.html</feedburner:origLink></item><item><title>Parallel Tasks and Parallel Stacks content updated for VS2010 Beta2</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/0UprxXcoG0M/parallel-tasks-and-parallel-stacks.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Mon, 19 Oct 2009 08:59:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5687617201343812403</guid><description>For VS2010 Beta2, rather than write new introductory and overview posts on my two favorite debugger windows (Parallel Tasks and Parallel Stacks), I thought I’d update 4 of the existing blog posts on those topics.&lt;br /&gt;&lt;br /&gt;Please read the updated text and enjoy the updated screenshots&lt;br /&gt;-        &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-tasks-new-visual-studio-2010.html"&gt;Parallel Tasks&lt;/a&gt;&lt;br /&gt;-        &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-stacks-another-new-vs2010.html"&gt;Parallel Stacks&lt;/a&gt;&lt;br /&gt;-        &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-stacks-tasks-view.html"&gt;Parallel Stacks – Tasks View&lt;/a&gt;&lt;br /&gt;-        &lt;a href="http://www.danielmoth.com/Blog/2009/06/parallel-stacks-method-view.html"&gt;Parallel Stacks – Method View&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also, I have updated the recordings behind the screencast URLs on channel9:&lt;br /&gt;-        &lt;a href="http://channel9.msdn.com/posts/DanielMoth/Parallel-Stacks--new-Visual-Studio-2010-debugger-window/"&gt;Parallel Stacks&lt;/a&gt;&lt;br /&gt;-        &lt;a href="http://channel9.msdn.com/posts/DanielMoth/Parallel-Tasks--new-Visual-Studio-2010-debugger-window/"&gt;Parallel Tasks&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Each one of the links above has a comment section, feel free to use it for feedback and questions!&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-5687617201343812403?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0UprxXcoG0M:sBcAcCX9meE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0UprxXcoG0M:sBcAcCX9meE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0UprxXcoG0M:sBcAcCX9meE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0UprxXcoG0M:sBcAcCX9meE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0UprxXcoG0M:sBcAcCX9meE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0UprxXcoG0M:sBcAcCX9meE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0UprxXcoG0M:sBcAcCX9meE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0UprxXcoG0M:sBcAcCX9meE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0UprxXcoG0M:sBcAcCX9meE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/0UprxXcoG0M" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-19T08:59:00.376-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/parallel-tasks-and-parallel-stacks.html</feedburner:origLink></item><item><title>Installing HPC Server 2008</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/MaJMwPUlonk/installing-hpc-server-2008.html</link><category>HPC</category><author>noreply@blogger.com (The Moth)</author><pubDate>Sun, 18 Oct 2009 20:47:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-8269553742481441665</guid><description>Recently I decided to play around with developing for a cluster on the Microsoft platform and below are the steps I had to take with regards to installation.&lt;br /&gt;&lt;br /&gt;First I gathered a number of old machines at the office, in my case that is 3 dual-core boxes, but you could have done it with just 2 PCs (or many more of course). &lt;strong&gt;On each one&lt;/strong&gt; of those you must install: &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=2C6DB4F3-B604-461F-9170-43E9CEE062C5"&gt;Windows HPC Server 2008&lt;/a&gt; (link to trial)&lt;blockquote&gt;a. This includes a trial of the &lt;strong&gt;Windows Server 2008 RTM 64-bit&lt;/strong&gt; operating system (SRVHPC_EN.iso). I already had Windows Server on a separate disc, so I installed what I had. I did not try R2, which is the same code base as Win7, but that should work too. Note that this is just the vanilla operating system (even Standard Edition is good enough) and the important part is the 64-bit. I will assume that you are all capable of installing an OS, so no more instruction or special consideration needed here (window update, join domain, add users etc).&lt;br /&gt;&lt;br /&gt;b. The second part of the link above is an add-on to the operating system, namely the &lt;strong&gt;HPC Pack 2008&lt;/strong&gt; (HPCEval.iso). It is a wizard with a set of steps to complete which are all fairly explanatory of the "click Next" flavor. After installation of the HPC Pack, the &lt;strong&gt;HPC Cluster Manager&lt;/strong&gt; application runs up automatically (or else you can run it through the Start menu) for further step-by-step configuration in an easy to follow outofthebox To-do List.&lt;/blockquote&gt;&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/HPCPack2008.png"/&gt;&lt;br /&gt;&lt;br /&gt;Here are some tips for step b from above, for your developer cluster setup:&lt;br /&gt;&lt;blockquote&gt;i) In the HPC Pack wizard, you will create one of the machines as the Head Node.&lt;br /&gt;&lt;br /&gt;ii) In the HPC Pack wizard, the remainder machines will be created as the Compute Nodes.&lt;br /&gt;&lt;br /&gt;iii) In Cluster Manager, click on "Configure your network" and choose topology 5 "All Nodes only on an Enterprise Network".&lt;br /&gt;&lt;br /&gt;iv) In Cluster Manager, click on "Add compute nodes" and then select "Add compute nodes that have already been configured".&lt;br /&gt;&lt;br /&gt;v) In Cluster Manager, click "Change the role of the head node" and also make it a WCF Broker Node.&lt;br /&gt;&lt;br /&gt;vi) In Cluster Manager, "Validate your cluster" under Diagnostics.&lt;/blockquote&gt;&lt;br /&gt;It may be useful to cross-reference the text above with the following screenshot of HPC Cluster Manager&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/HPCClusterManager.png"/&gt;&lt;br /&gt;&lt;br /&gt;Now that your cluster is installed, you need to set up your development machine (x86 or x64) for developing on this cluster. Here are the things you need to install:&lt;br /&gt;&lt;blockquote&gt;1. &lt;a href="http://msdn.microsoft.com/en-us/vstudio/default.aspx"&gt;Visual Studio 2010&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. HPC Pack 2008. This is essentially the same msi you installed on the server (step b above), but here you will choose the 3rd option Client Utilities (which will probably be your only enabled option as per my screenshot further above).&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=12887da1-9410-4a59-b903-693116bfd30e"&gt;HPC Pack 2008 SDK&lt;/a&gt;. This allows writing client applications that interact with the Job Scheduler running on the Head Node. MSDN has a dedicated page to the &lt;a href="http://msdn.microsoft.com/en-us/library/cc853440(VS.85).aspx"&gt;HPC SDK&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;4. (optional) Install the separate &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/90fb60d4-0b8c-472f-8135-683d3c45f45a"&gt;MPI Project Template&lt;/a&gt;, for VS2010.&lt;/blockquote&gt;&lt;br /&gt;You are now ready to develop your cluster applications on your development machine and to debug/deploy them on your cluster. More on that in future blog posts.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-8269553742481441665?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=MaJMwPUlonk:SuxMVyUbQe0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=MaJMwPUlonk:SuxMVyUbQe0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=MaJMwPUlonk:SuxMVyUbQe0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=MaJMwPUlonk:SuxMVyUbQe0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=MaJMwPUlonk:SuxMVyUbQe0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=MaJMwPUlonk:SuxMVyUbQe0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=MaJMwPUlonk:SuxMVyUbQe0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=MaJMwPUlonk:SuxMVyUbQe0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=MaJMwPUlonk:SuxMVyUbQe0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/MaJMwPUlonk" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-18T20:47:08.647-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/installing-hpc-server-2008.html</feedburner:origLink></item><item><title>PDC09 or SC09</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/hjiPaGICcCo/pdc09-or-sc09.html</link><category>Events</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 16 Oct 2009 17:19:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5569282946015225750</guid><description>Recently I was given the choice to attend the &lt;a href="http://microsoftpdc.com/"&gt;PDC&lt;/a&gt;09 or the &lt;a href="http://www.supercomputing.org/"&gt;Super Computing&lt;/a&gt; conference: &lt;a href="http://sc09.supercomputing.org/"&gt;SC09&lt;/a&gt;. They both run in the same week, so attending both was not an option.&lt;br /&gt;&lt;br /&gt;From a personal perspective I like visiting new cities, but in this case I have been to both Los Angeles and Portland so that is not a factor. From a geek perspective I like getting a feel for as many conferences as possible and &lt;a href="http://channel9.msdn.com/pdc2008/TL26/"&gt;I did PDC last year&lt;/a&gt; (&lt;a href="http://www.microsoft.com/emea/teched2008/developer/tv/default.aspx?vid=59"&gt;repeated at Tech ED EMEA&lt;/a&gt;), whereas I have never been to an SC conference – so that tipped the balance a bit. More importantly from a more_useful_to_my_job perspective, I need to "connect" with more developers that are interested in the HPC and GPU space… This is the customer I want to delight with the work our team will deliver beyond VS2010…&lt;br /&gt;&lt;br /&gt;If you, dear reader, are going to PDC09 be assured that the work our team is delivering in VS2010 will be well represented. View the &lt;a href="http://blogs.msdn.com/pfxteam/archive/2009/10/16/9908290.aspx"&gt;relevant PDC sessions here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you are planning on attending SC09, please drop me a note (via the email link on the left) so we can meet and have a chat in Portland…&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-5569282946015225750?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=hjiPaGICcCo:k0hSi6UOYvI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=hjiPaGICcCo:k0hSi6UOYvI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=hjiPaGICcCo:k0hSi6UOYvI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=hjiPaGICcCo:k0hSi6UOYvI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=hjiPaGICcCo:k0hSi6UOYvI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=hjiPaGICcCo:k0hSi6UOYvI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=hjiPaGICcCo:k0hSi6UOYvI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=hjiPaGICcCo:k0hSi6UOYvI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=hjiPaGICcCo:k0hSi6UOYvI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/hjiPaGICcCo" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-16T17:19:16.779-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/pdc09-or-sc09.html</feedburner:origLink></item><item><title>Parallelizing a loop with tasks, avoiding the pitfall</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/APOWjb3IIfI/parallelizing-loop-with-tasks-avoiding.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Tue, 13 Oct 2009 14:39:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-1437230731705972942</guid><description>Most readers of this blog should know that it is extremely easy to &lt;a href="http://www.danielmoth.com/Blog/2009/01/parallelising-loops-in-net-4.html"&gt;parallelize loops with .NET 4&lt;/a&gt;. So serial code performing matrix multiplication like this:&lt;pre&gt;    for (int i = 0; i &lt; size; i++)&lt;br /&gt;    {&lt;br /&gt;      for (int j = 0; j &lt; size; j++)&lt;br /&gt;      {&lt;br /&gt;        int tmp = 0;&lt;br /&gt;        for (int k = 0; k &lt; size; k++)&lt;br /&gt;        {&lt;br /&gt;          tmp += m1[i, k] * m2[k, j];&lt;br /&gt;        }&lt;br /&gt;        result[i, j] = tmp;&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;…can be parallelized like this:&lt;pre&gt;      Parallel.For(0, size, (int i) =&gt;&lt;br /&gt;      {&lt;br /&gt;        for (int j = 0; j &lt; size; j++)&lt;br /&gt;        {&lt;br /&gt;          int tmp = 0;&lt;br /&gt;          for (int k = 0; k &lt; size; k++)&lt;br /&gt;          {&lt;br /&gt;            tmp += m1[i, k] * m2[k, j];&lt;br /&gt;          }&lt;br /&gt;          result[i, j] = tmp;&lt;br /&gt;        }&lt;br /&gt;      });&lt;/pre&gt;How about parallelizing the code using &lt;a href="http://www.danielmoth.com/Blog/2008/12/introducing-new-task-type.html"&gt;Tasks&lt;/a&gt; directly (instead of indirectly)? The clever thing to do is somehow partition the data (statically or dynamically) and assign chunks to tasks, but even the naïve approach of one task per outer iteration is better than nothing:&lt;pre&gt;    Task[] tasks = new Task[size];&lt;br /&gt;    for (int i = 0; i &lt; size; i++)&lt;br /&gt;    {&lt;br /&gt;      tasks[i] = Task.Factory.StartNew(() =&gt;&lt;br /&gt;      {&lt;br /&gt;        for (int j = 0; j &lt; size; j++)&lt;br /&gt;        {&lt;br /&gt;          int tmp = 0;&lt;br /&gt;          for (int k = 0; k &lt; size; k++)&lt;br /&gt;          {&lt;br /&gt;            tmp += m1[i, k] * m2[k, j];&lt;br /&gt;          }&lt;br /&gt;          result[i, j] = tmp;&lt;br /&gt;        }&lt;br /&gt;      });&lt;br /&gt;    }&lt;br /&gt;    Task.WaitAll(tasks);&lt;br /&gt;&lt;/pre&gt;Can you see the issue with the code above?&lt;br /&gt;&lt;br /&gt;TIP: the issue has nothing to do with tasks, threads or even .NET 4. It has to do with anonymous methods since the day they were introduced. The clue is that the following snippet fixes the issue:&lt;pre&gt;    Task[] tasks = new Task[size];&lt;br /&gt;    for (int n = 0; n &lt; size; n++)&lt;br /&gt;    {&lt;br /&gt;      int i = n;&lt;br /&gt;      tasks[n] = Task.Factory.StartNew(() =&gt;&lt;br /&gt;      {&lt;br /&gt;        for (int j = 0; j &lt; size; j++)&lt;br /&gt;        {&lt;br /&gt;          int tmp = 0;&lt;br /&gt;          for (int k = 0; k &lt; size; k++)&lt;br /&gt;          {&lt;br /&gt;            tmp += m1[i, k] * m2[k, j];&lt;br /&gt;          }&lt;br /&gt;          result[i, j] = tmp;&lt;br /&gt;        }&lt;br /&gt;      });&lt;br /&gt;    }&lt;br /&gt;    Task.WaitAll(tasks);&lt;/pre&gt;If you know the reason please move along. If however this was news to you, go read the &lt;a href="http://stackoverflow.com/questions/512166/c-the-foreach-identifier-and-closures"&gt;entire page (and the outbound links) on stackoverflow&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By the way, we could have fixed the snippet with this approach too, since tasks accept a state parameter:&lt;pre&gt;    Task[] tasks = new Task[size];&lt;br /&gt;    for (int i = 0; i &lt; size; i++)&lt;br /&gt;    {&lt;br /&gt;      tasks[i] = Task.Factory.StartNew(ii =&gt;&lt;br /&gt;      {&lt;br /&gt;        int iii = (int)ii;&lt;br /&gt;        for (int j = 0; j &lt; size; j++)&lt;br /&gt;        {&lt;br /&gt;          int tmp = 0;&lt;br /&gt;          for (int k = 0; k &lt; size; k++)&lt;br /&gt;          {&lt;br /&gt;            tmp += m1[iii, k] * m2[k, j];&lt;br /&gt;          }&lt;br /&gt;          result[iii, j] = tmp;&lt;br /&gt;        }&lt;br /&gt;      }, i);&lt;br /&gt;    }&lt;br /&gt;    Task.WaitAll(tasks);&lt;/pre&gt;More on why you may choose to pass the variable as state instead of capturing it, in a future post.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-1437230731705972942?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=APOWjb3IIfI:CWrnYetZFY8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=APOWjb3IIfI:CWrnYetZFY8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=APOWjb3IIfI:CWrnYetZFY8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=APOWjb3IIfI:CWrnYetZFY8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=APOWjb3IIfI:CWrnYetZFY8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=APOWjb3IIfI:CWrnYetZFY8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=APOWjb3IIfI:CWrnYetZFY8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=APOWjb3IIfI:CWrnYetZFY8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=APOWjb3IIfI:CWrnYetZFY8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/APOWjb3IIfI" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-13T14:39:33.059-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/parallelizing-loop-with-tasks-avoiding.html</feedburner:origLink></item><item><title>Visual Studio Profile</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/CUQxfAbo9yg/visual-studio-profile.html</link><category>VisualStudio</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 09 Oct 2009 16:51:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-8159792512162515851</guid><description>Visual Studio 2005 introduced the concept of profiles (which still exists in VS2008 and VS2010). You first experience that through the annoying dialog you see the first time you launch VS asking to bucket yourself into one of General, Project Management, VB, C#, C++, F# and Web.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/ChooseDefaultEnvironmentSettings.png" /&gt;&lt;br /&gt;&lt;em&gt;TIP: Click on each one of the options in the list to read the description on the right that gives insight into what will happen.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Once you choose your label, you get default settings that the product teams decided around default window &amp;amp; toolbar layouts, order of choices in the New Project dialog, menu configurations and keyboard shortcuts.&lt;br /&gt;&lt;br /&gt;I guess I was used to the configurations of VS.NET 2002 and VS.NET 2003 so I did not embrace this VS2005 feature. FYI, I &lt;strong&gt;always pick General&lt;/strong&gt;, which largely represents the settings that the early version of Visual Studio had and the one that caters better for developers programming in more than one language.&lt;br /&gt;&lt;br /&gt;The profile concept gives the product teams the power to say things like (NOTE: I am making up these examples!) "you are a VB developer, I don’t think you need the Threads window shown by default" or "you are a C# developer, you have no use for the Object Browser" and so on. As a developer, I'd rather see everything. Moreover, most settings that are pre-chosen can be changed via the Tools-&gt;Options dialog so why try and bucket me, just try to educate me more about how to configure things. In any case, that is probably the saving grace for the feature: you can override and change most of the decisions made on your behalf. This is another reason you must navigate every option in the Tools-&gt;Options dialog, which I always advocate to new VS users. Besides creating, you can also persist your own settings via the Tools-&gt;Import and Export menu and can even &lt;a href="http://blogs.msdn.com/saraford/archive/2008/12/05/did-you-know-you-can-create-toolbar-buttons-to-quickly-toggle-your-favorite-vs-settings-371.aspx"&gt;create macros attached to toolbarbuttons for switching fast between them&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To reset VS completely (which includes asking again for a profile choice when you start it next time), from an elevated VS command prompt type: &lt;a href="http://msdn.microsoft.com/en-us/library/bb245788(VS.80).aspx#vs05idetips_topic6"&gt;devenv /resetuserdata&lt;/a&gt; (warning: all your preference settings will be lost, so back them up). Try the various profiles (with your existing projects) to see what you may be missing…&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-8159792512162515851?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CUQxfAbo9yg:ToaTZMMFFLM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CUQxfAbo9yg:ToaTZMMFFLM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CUQxfAbo9yg:ToaTZMMFFLM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=CUQxfAbo9yg:ToaTZMMFFLM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CUQxfAbo9yg:ToaTZMMFFLM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=CUQxfAbo9yg:ToaTZMMFFLM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CUQxfAbo9yg:ToaTZMMFFLM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=CUQxfAbo9yg:ToaTZMMFFLM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=CUQxfAbo9yg:ToaTZMMFFLM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/CUQxfAbo9yg" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-09T16:51:34.113-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/visual-studio-profile.html</feedburner:origLink></item><item><title>Windows Mobile development in VS2010</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/iSMs_1dXlro/windows-mobile-development-in-vs2010.html</link><category>Mobile and Embedded</category><author>noreply@blogger.com (The Moth)</author><pubDate>Wed, 07 Oct 2009 21:55:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-4360119394989654801</guid><description>With the release yesterday of &lt;strong&gt;Windows Phone&lt;/strong&gt; (&lt;a href="http://www.microsoft.com/presspass/features/2009/oct09/10-06WinMo65.mspx"&gt;press release&lt;/a&gt; , &lt;a href="http://windowsteamblog.com/blogs/windowsphone/default.aspx"&gt;blog post&lt;/a&gt; , &lt;a href="http://www.windowsmobiletraining.com/WelcomeLanding.aspx"&gt;training&lt;/a&gt; , &lt;a href="http://www.microsoft.com/windowsmobile/en-us/default.mspx?WT.mc_ID=wpvan"&gt;launch site&lt;/a&gt;) and with the upcoming release of Visual Studio 2010 Beta2, we are starting to see the question again: "where is the smart device development support in Visual Studio 2010?".&lt;br /&gt;&lt;br /&gt;This question was asked a lot during the VS2010 Beta1 timeframe and the answer remains the same: Mobile Development Tools are now aligned to the mobile platform releases and are hence decoupled from Visual Studio releases, so I personally guess we should see tool support in VS2010 when a new mobile platform is released. For now, stick with VS2008 for device development needs (&lt;a href="http://msdn.microsoft.com/en-us/library/sa69he4t(VS.100).aspx"&gt;official statement&lt;/a&gt;) and keep an eye on the &lt;a href="http://msdn.microsoft.com/en-us/windowsmobile/default.aspx"&gt;Windows Mobile Development Center&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-4360119394989654801?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=iSMs_1dXlro:k5Eh4giCCe8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=iSMs_1dXlro:k5Eh4giCCe8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=iSMs_1dXlro:k5Eh4giCCe8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=iSMs_1dXlro:k5Eh4giCCe8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=iSMs_1dXlro:k5Eh4giCCe8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=iSMs_1dXlro:k5Eh4giCCe8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=iSMs_1dXlro:k5Eh4giCCe8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=iSMs_1dXlro:k5Eh4giCCe8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=iSMs_1dXlro:k5Eh4giCCe8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/iSMs_1dXlro" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-07T21:55:51.083-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/windows-mobile-development-in-vs2010.html</feedburner:origLink></item><item><title>Visual Studio 2010 floating windows can be maximized</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/yeP5FJvawA4/visual-studio-2010-floating-windows-can.html</link><category>VisualStudio</category><author>noreply@blogger.com (The Moth)</author><pubDate>Mon, 05 Oct 2009 20:47:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-470113734831013620</guid><description>Sometimes the little features give you the most pleasure. At long last, Visual Studio 2010 floating toolwindows can be maximized via the maximize button (or double clicking on their title bar, of course). This featurette came late in the Beta1 cycle.&lt;br /&gt;&lt;br /&gt;Below a screenshot of the maximize button (when window is floating) plus the menu options when you hit the triangle drop down indicator on the title bar. Also circled in red the maximized button appearance when the window is maximized:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/MaxRestoreMenuButton.png"/&gt; &lt;br /&gt;&lt;br /&gt;When you combine the floating window maximization support with the &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/08/31/multi-monitor-support-vs-2010-and-net-4-series.aspx"&gt;VS2010 multi-monitor support&lt;/a&gt;, you get the productivity of being able to quickly drag a window to the other monitor, maximize it (and when you are done, restore it and return it). &lt;br /&gt;&lt;br /&gt;As I keep saying about VS2010, ILTNUI (I Love The New UI).&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-470113734831013620?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=yeP5FJvawA4:bT-KVEImCiQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=yeP5FJvawA4:bT-KVEImCiQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=yeP5FJvawA4:bT-KVEImCiQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=yeP5FJvawA4:bT-KVEImCiQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=yeP5FJvawA4:bT-KVEImCiQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=yeP5FJvawA4:bT-KVEImCiQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=yeP5FJvawA4:bT-KVEImCiQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=yeP5FJvawA4:bT-KVEImCiQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=yeP5FJvawA4:bT-KVEImCiQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/yeP5FJvawA4" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-05T20:47:54.094-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/visual-studio-2010-floating-windows-can.html</feedburner:origLink></item><item><title>Visual Studio Documentary</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/BQYPKczoSmM/visual-studio-documentary.html</link><category>Links</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 01 Oct 2009 01:00:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-2395579904739662772</guid><description>Hopefully anyone reading this blog monitors ch9, but on the remote chance that is not true, you must watch the two-part brilliant 1-hour documentary on Visual Studio: &lt;a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-One/"&gt;Part One&lt;/a&gt; and &lt;a href="http://channel9.msdn.com/shows/VisualStudioDocumentary/The-Visual-Studio-Documentary-Part-Two/"&gt;Part Two&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-2395579904739662772?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=BQYPKczoSmM:kXhJjMo7XFU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=BQYPKczoSmM:kXhJjMo7XFU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=BQYPKczoSmM:kXhJjMo7XFU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=BQYPKczoSmM:kXhJjMo7XFU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=BQYPKczoSmM:kXhJjMo7XFU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=BQYPKczoSmM:kXhJjMo7XFU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=BQYPKczoSmM:kXhJjMo7XFU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=BQYPKczoSmM:kXhJjMo7XFU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=BQYPKczoSmM:kXhJjMo7XFU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/BQYPKczoSmM" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-10-01T01:00:02.869-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/10/visual-studio-documentary.html</feedburner:origLink></item><item><title>MSDN Mag: Parallel Debugging in VS2010</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/0TTAaBjgyeo/msdn-mag-parallel-debugging-in-vs2010.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Wed, 09 Sep 2009 18:14:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-2724097053180139592</guid><description>The September issue of the MSDN Magazine has gone live online and the article I co-authored is also available.&lt;br /&gt;&lt;br /&gt;Warning: contains screenshots of VS2010 Beta2 that is not released yet ;-)&lt;br /&gt;&lt;br /&gt;Enjoy: &lt;a href="http://msdn.microsoft.com/magazine/ee410778.aspx"&gt;Debugging Task-Based Parallel Applications in Visual Studio 2010&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-2724097053180139592?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0TTAaBjgyeo:hVe2UKPD070:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0TTAaBjgyeo:hVe2UKPD070:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0TTAaBjgyeo:hVe2UKPD070:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0TTAaBjgyeo:hVe2UKPD070:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0TTAaBjgyeo:hVe2UKPD070:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0TTAaBjgyeo:hVe2UKPD070:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0TTAaBjgyeo:hVe2UKPD070:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=0TTAaBjgyeo:hVe2UKPD070:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=0TTAaBjgyeo:hVe2UKPD070:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/0TTAaBjgyeo" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-09-09T18:14:17.584-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/09/msdn-mag-parallel-debugging-in-vs2010.html</feedburner:origLink></item><item><title>.NET 4: Monitor.Enter replaced by Monitor.Enter</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/ALS9m-yl1o4/net-4-monitorenter-replaced-by.html</link><category>dot NET general</category><author>noreply@blogger.com (The Moth)</author><pubDate>Mon, 31 Aug 2009 18:27:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-8405929422539302611</guid><description>The most common way to protect resources from concurrent access from multiple threads in .NET is by using the C# lock (or SyncLock in VB) statement. &lt;pre&gt;lock(obj)&lt;br /&gt;{&lt;br /&gt; // only 1 thread executes this at a time&lt;br /&gt;}&lt;/pre&gt;Under the covers it generates code that is equivalent to:&lt;pre&gt;    Monitor.Enter(obj);&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt; // only 1 thread executes this at a time&lt;br /&gt;    }&lt;br /&gt;    finally&lt;br /&gt;    {&lt;br /&gt;        Monitor.Exit(obj);&lt;br /&gt;    }&lt;/pre&gt; If you compile the above under Visual Studio 2010 and look at the code generation in your favorite disassembler (e.g. Reflector before it gets a chance to be updated for .NET 4 and hide the detail) you'll find different code generation similar to this:&lt;br /&gt;&lt;pre&gt;    bool taken = false;&lt;br /&gt;    try&lt;br /&gt;    {&lt;br /&gt;        Monitor.Enter(obj, ref taken);&lt;br /&gt;        // only 1 thread executes this at a time&lt;br /&gt;    }&lt;br /&gt;    finally&lt;br /&gt;    {&lt;br /&gt;        if (taken)&lt;br /&gt;        {&lt;br /&gt;            Monitor.Exit(obj);&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;The most important thing to note is the introduction of a &lt;a href="http://msdn.microsoft.com/en-us/library/dd289498(VS.100).aspx"&gt;new overload for Monitor.Enter&lt;/a&gt; (and there is one for &lt;a href="http://msdn.microsoft.com/en-us/library/dd289679(VS.100).aspx"&gt;TryEnter&lt;/a&gt; too) which are public so you can even use them directly.&lt;br /&gt;&lt;br /&gt;Instead of explaining here what problem the new APIs are trying to address (asynchronous exceptions occurring just before the try block and after the call to Monitor.Enter), I defer you to &lt;a href="http://www.bluebytesoftware.com/blog/2007/01/30/MonitorEnterThreadAbortsAndOrphanedLocks.aspx"&gt;Joe's old blog post on orphaned locks&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Don't be too surprised if the original Monitor.Enter overloads (without the boolean parameter) become obsolete.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-8405929422539302611?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=ALS9m-yl1o4:UNmrZN6jjeE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=ALS9m-yl1o4:UNmrZN6jjeE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=ALS9m-yl1o4:UNmrZN6jjeE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=ALS9m-yl1o4:UNmrZN6jjeE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=ALS9m-yl1o4:UNmrZN6jjeE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=ALS9m-yl1o4:UNmrZN6jjeE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=ALS9m-yl1o4:UNmrZN6jjeE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=ALS9m-yl1o4:UNmrZN6jjeE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=ALS9m-yl1o4:UNmrZN6jjeE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/ALS9m-yl1o4" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-31T18:33:31.031-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/08/net-4-monitorenter-replaced-by.html</feedburner:origLink></item><item><title>VS2010 Beta1 demos on parallelism</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/VHoHreMXKTU/vs2010-beta1-demos-on-parallelism.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 20 Aug 2009 23:44:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-2287138504283052775</guid><description>Recently I &lt;a href="http://www.danielmoth.com/Blog/2009/07/updated-beta1-slides-for-parallelism.html"&gt;updated the slides&lt;/a&gt; of my &lt;a href="http://www.danielmoth.com/Blog/2009/02/give-session-on-parallel-programming-or.html"&gt;parallelism session&lt;/a&gt; to match the Visual Studio 2010 Beta1 bits.&lt;br /&gt;&lt;br /&gt;In this post I'd like to share the demos from that session, also updated for .NET 4 Beta1 (my motto is "better late than never" ;-)&lt;br /&gt;&lt;br /&gt;Download my &lt;a href="http://www.danielmoth.com/Blog/Beta1Demos.zip"&gt;demo code files here at your own risk&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The RayTracer sample can be downloaded along with other &lt;a href="http://code.msdn.microsoft.com/ParExtSamples"&gt;parallel extension samples&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-2287138504283052775?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=VHoHreMXKTU:7kerHRHVjNk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=VHoHreMXKTU:7kerHRHVjNk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=VHoHreMXKTU:7kerHRHVjNk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=VHoHreMXKTU:7kerHRHVjNk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=VHoHreMXKTU:7kerHRHVjNk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=VHoHreMXKTU:7kerHRHVjNk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=VHoHreMXKTU:7kerHRHVjNk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=VHoHreMXKTU:7kerHRHVjNk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=VHoHreMXKTU:7kerHRHVjNk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/VHoHreMXKTU" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-20T23:44:00.588-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/08/vs2010-beta1-demos-on-parallelism.html</feedburner:origLink></item><item><title>HPC Debugging and Profiling support</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/XbppRDRyYJA/hpc-debugging-and-profiling-support.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 14 Aug 2009 12:31:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-1633024613109973570</guid><description>Not sure how many subscribers to this blog are HPC developers, but it is an area I will be covering more next year as I am expanding my responsibilities to include the High Performance Computing domain (which obviously falls under the parallelism umbrella). To get a taste of the kind of work we are talking about, read &lt;a href="http://blogs.msdn.com/somasegar/archive/2009/08/07/debugging-profiling-and-analyzing-parallel-applications.aspx"&gt;Soma's blog post on the current tooling offerings in that space&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-1633024613109973570?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=XbppRDRyYJA:1uq-IswEXGc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=XbppRDRyYJA:1uq-IswEXGc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=XbppRDRyYJA:1uq-IswEXGc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=XbppRDRyYJA:1uq-IswEXGc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=XbppRDRyYJA:1uq-IswEXGc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=XbppRDRyYJA:1uq-IswEXGc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=XbppRDRyYJA:1uq-IswEXGc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=XbppRDRyYJA:1uq-IswEXGc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=XbppRDRyYJA:1uq-IswEXGc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/XbppRDRyYJA" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-14T12:32:33.822-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/08/hpc-debugging-and-profiling-support.html</feedburner:origLink></item><item><title>STM.NET</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/KscVWoGluAo/stmnet.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 14 Aug 2009 12:25:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-3571556210539137317</guid><description>Hopefully developers on the Microsoft platform subscribe to the announcements on Soma's blog; if you don't, you may have missed &lt;a href="http://blogs.msdn.com/somasegar/archive/2009/07/27/stm-net-in-devlabs.aspx"&gt;this post&lt;/a&gt; pointing to the &lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee334183.aspx"&gt;STM.NET dev lab project&lt;/a&gt; (this is the 2nd devlab project released from my extended team, the 1st being &lt;a href="http://www.danielmoth.com/Blog/2009/05/axum.html"&gt;Axum&lt;/a&gt;). If Software Transactional Memory is your interest, stay tuned on &lt;a href="http://blogs.msdn.com/stmteam/"&gt;the team's blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;( after seeing their logo, I'll now try to take out of my mind the &lt;a href="http://en.wikipedia.org/wiki/Atomic_(song)"&gt;Atomic tune&lt;/a&gt; )&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-3571556210539137317?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=KscVWoGluAo:-SztBP-tGlI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=KscVWoGluAo:-SztBP-tGlI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=KscVWoGluAo:-SztBP-tGlI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=KscVWoGluAo:-SztBP-tGlI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=KscVWoGluAo:-SztBP-tGlI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=KscVWoGluAo:-SztBP-tGlI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=KscVWoGluAo:-SztBP-tGlI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=KscVWoGluAo:-SztBP-tGlI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=KscVWoGluAo:-SztBP-tGlI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/KscVWoGluAo" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-14T12:26:44.716-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/08/stmnet.html</feedburner:origLink></item><item><title>Mobile developer? The Race is On!</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/1HUnk8B4PQQ/mobile-developer-race-is-on.html</link><category>Mobile and Embedded</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 14 Aug 2009 12:17:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-6692898775867872108</guid><description>In case my Windows Mobile developer friends have missed this, Loke shares how the &lt;a href="http://blogs.msdn.com/lokeuei/archive/2009/07/27/the-race-is-on.aspx"&gt;Race is On&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-6692898775867872108?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=1HUnk8B4PQQ:Yma-bxQbmvQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=1HUnk8B4PQQ:Yma-bxQbmvQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=1HUnk8B4PQQ:Yma-bxQbmvQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=1HUnk8B4PQQ:Yma-bxQbmvQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=1HUnk8B4PQQ:Yma-bxQbmvQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=1HUnk8B4PQQ:Yma-bxQbmvQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=1HUnk8B4PQQ:Yma-bxQbmvQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=1HUnk8B4PQQ:Yma-bxQbmvQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=1HUnk8B4PQQ:Yma-bxQbmvQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/1HUnk8B4PQQ" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-14T12:18:55.981-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/08/mobile-developer-race-is-on.html</feedburner:origLink></item><item><title>Parallel Tasks and Parallel Stacks windows making your debugging life easier</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/2IaX3_GAFjo/parallel-tasks-and-parallel-stacks.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 14 Aug 2009 12:04:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5968198338689751461</guid><description>As I was catching up with my RSS reader I found two posts on John Robbins' blog worth mentioning.&lt;br /&gt;&lt;br /&gt;One of them starts with a screenshot and mention of my team's Parallel Stacks window – check out &lt;a href="http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/07/13/easier-multithreaded-debugging.aspx"&gt;John's blog post on easier multithreaded debugging&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The other &lt;a href="http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/07/17/automatically-freezing-threads-brrrrr.aspx"&gt;blog post offers a macro&lt;/a&gt; for the very common requirement to &lt;strong&gt;Freeze All Threads But &lt;/strong&gt;the one of interest. The good news for those of you adopting the task-based programming model is that this is a menu item on the ContextMenu of the new &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-tasks-new-visual-studio-2010.html"&gt;Parallel Tasks window (see last screenshot at the bottom)&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-5968198338689751461?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=2IaX3_GAFjo:QSUi-h49GJw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=2IaX3_GAFjo:QSUi-h49GJw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=2IaX3_GAFjo:QSUi-h49GJw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=2IaX3_GAFjo:QSUi-h49GJw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=2IaX3_GAFjo:QSUi-h49GJw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=2IaX3_GAFjo:QSUi-h49GJw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=2IaX3_GAFjo:QSUi-h49GJw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=2IaX3_GAFjo:QSUi-h49GJw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=2IaX3_GAFjo:QSUi-h49GJw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/2IaX3_GAFjo" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-14T12:06:18.878-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/08/parallel-tasks-and-parallel-stacks.html</feedburner:origLink></item><item><title>Support more than 64 cores from .NET code?</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/8kNDn7_9GRc/support-more-than-64-cores-from-net.html</link><category>Windows</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 24 Jul 2009 17:26:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-9029930392058137798</guid><description>As you know by now, &lt;a href="http://www.danielmoth.com/Blog/2008/11/how-many-cores-does-windows-support.html"&gt;Windows 7 supports up to 256 logical processors&lt;/a&gt; (a &lt;a href="http://www.microsoft.com/whdc/system/Sysinternals/MoreThan64proc.mspx"&gt;4-fold increase&lt;/a&gt; from previous versions). A few months ago I &lt;a href="http://www.danielmoth.com/Blog/2009/04/windows-7-task-manager-screenshot.html"&gt;posted my screenshot of a system with 128 cores&lt;/a&gt; and reader kotsoft asked why the CPU utilization was at 50%.&lt;br /&gt;&lt;br /&gt;The reason is that I was running a straightforward .NET 4 app that used TPL and the CLR 4 ThreadPool does not take advantage of more than 64 cores. Digging deeper reveals that there are certain &lt;a href="http://msdn.microsoft.com/en-us/library/dd405503(VS.85).aspx"&gt;new (native obviously) APIs&lt;/a&gt; that an application must use to go beyond the 64-core support and specifically the ones &lt;a href="http://msdn.microsoft.com/en-us/library/dd405527(VS.85).aspx"&gt;described here about processor groups&lt;/a&gt; – the CLR is not utilizing them in this release.&lt;br /&gt;&lt;br /&gt;I wonder who will be the first to wrap these functions from managed code and show an example of their usage…&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-9029930392058137798?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=8kNDn7_9GRc:K8HtM-8681E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=8kNDn7_9GRc:K8HtM-8681E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=8kNDn7_9GRc:K8HtM-8681E:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=8kNDn7_9GRc:K8HtM-8681E:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=8kNDn7_9GRc:K8HtM-8681E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=8kNDn7_9GRc:K8HtM-8681E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=8kNDn7_9GRc:K8HtM-8681E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=8kNDn7_9GRc:K8HtM-8681E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=8kNDn7_9GRc:K8HtM-8681E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/8kNDn7_9GRc" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-24T17:26:24.156-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/07/support-more-than-64-cores-from-net.html</feedburner:origLink></item><item><title>RegistryOptions.Volatile in .NET 4</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/mL_m9MAIgug/registryoptionsvolatile-in-net-4.html</link><category>dot NET general</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 17 Jul 2009 12:54:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-786509250874765842</guid><description>About 18 months ago I wrote a blog post offering an unsupported solution for &lt;a href="http://www.danielmoth.com/Blog/2007/12/volatile-registrykey.html"&gt;working with volatile registry keys from .NET code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;FYI, support for volatile keys is introduced in the Microsoft.Win32 namespace of .NET 4 Beta1 (for the desktop only, so far). The API is simple enough that no sample is needed, start at the new overload for RegistryKey.CreateSubKey that accepts the new enumeration &lt;a href="http://msdn.microsoft.com/library/microsoft.win32.registryoptions(VS.100).aspx"&gt;RegistryOptions&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-786509250874765842?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=mL_m9MAIgug:tDJCPNsuyPg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=mL_m9MAIgug:tDJCPNsuyPg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=mL_m9MAIgug:tDJCPNsuyPg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=mL_m9MAIgug:tDJCPNsuyPg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=mL_m9MAIgug:tDJCPNsuyPg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=mL_m9MAIgug:tDJCPNsuyPg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=mL_m9MAIgug:tDJCPNsuyPg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=mL_m9MAIgug:tDJCPNsuyPg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=mL_m9MAIgug:tDJCPNsuyPg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/mL_m9MAIgug" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-17T12:54:54.609-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/07/registryoptionsvolatile-in-net-4.html</feedburner:origLink></item><item><title>Updated Beta1 slides for parallelism</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/r7mBQGxG6Qw/updated-beta1-slides-for-parallelism.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 02 Jul 2009 18:56:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-6076016002014206162</guid><description>For those of you interested in &lt;a href="http://www.danielmoth.com/Blog/2009/02/give-session-on-parallel-programming-or.html"&gt;my session on parallelism with VS2010&lt;/a&gt;, I gave an extended/longer version of it recently and included a bunch of new slides and updated the existing ones to match the recent release of VS2010 Beta1. &lt;a href="http://www.danielmoth.com/Blog/DanielMoth_ParallelProgrammingVS2010_Beta1.pptx"&gt;Get the updated pptx here&lt;/a&gt; (checkout the annotated slides 16 and 17 on Parallel Tasks and Parallel Stacks).&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-6076016002014206162?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=r7mBQGxG6Qw:_OeXRCp4gZg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=r7mBQGxG6Qw:_OeXRCp4gZg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=r7mBQGxG6Qw:_OeXRCp4gZg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=r7mBQGxG6Qw:_OeXRCp4gZg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=r7mBQGxG6Qw:_OeXRCp4gZg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=r7mBQGxG6Qw:_OeXRCp4gZg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=r7mBQGxG6Qw:_OeXRCp4gZg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=r7mBQGxG6Qw:_OeXRCp4gZg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=r7mBQGxG6Qw:_OeXRCp4gZg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/r7mBQGxG6Qw" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-02T18:56:00.607-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/07/updated-beta1-slides-for-parallelism.html</feedburner:origLink></item><item><title>Debug .NET dumps with VS2010</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/rn-eyTyfwtI/debug-net-dumps-with-vs2010.html</link><category>dot NET general</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 02 Jul 2009 18:45:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-6802828497559251207</guid><description>Tess has written a &lt;a href="http://blogs.msdn.com/tess/archive/2009/06/16/first-look-at-debugging-net-4-0-dumps-in-visual-studio-2010.aspx"&gt;great post on debugging .NET dumps in Visual Studio 2010&lt;/a&gt; (which also briefly touches on the &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-stacks-another-new-vs2010.html"&gt;Parallel Stacks window&lt;/a&gt; ;-)&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-6802828497559251207?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rn-eyTyfwtI:x5Kp5guiXFA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rn-eyTyfwtI:x5Kp5guiXFA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rn-eyTyfwtI:x5Kp5guiXFA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=rn-eyTyfwtI:x5Kp5guiXFA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rn-eyTyfwtI:x5Kp5guiXFA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=rn-eyTyfwtI:x5Kp5guiXFA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rn-eyTyfwtI:x5Kp5guiXFA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=rn-eyTyfwtI:x5Kp5guiXFA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=rn-eyTyfwtI:x5Kp5guiXFA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/rn-eyTyfwtI" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-02T18:45:36.882-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/07/debug-net-dumps-with-vs2010.html</feedburner:origLink></item><item><title>yearsOnThisPlanet++</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/q1JkoR0mDUE/yearsonthisplanet.html</link><category>Personal</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 02 Jul 2009 18:39:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-2096577389986121041</guid><description>Today I am one year older (but not wiser ;-). &lt;a href="http://www.danielmoth.com/Blog/2008/07/34.html"&gt;This time last year I got an SSN&lt;/a&gt; and had almost no friends in the USA, while this year I've booked a bar to host the many cool people I've met here. If you are in Seattle and coming to my party, it's gonna be messy so come prepared ;-)&lt;div class="blogger-post-footer"&gt;&lt;br/&gt;&lt;hr/&gt;
&lt;span style="font-style: italic;font-size:85%;"&gt;Comments about this post welcome at &lt;a href="http://www.danielmoth.com/Blog/"&gt;the original blog&lt;/a&gt;&lt;/span&gt;.&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7744200-2096577389986121041?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=q1JkoR0mDUE:wPTlc82oIiY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=q1JkoR0mDUE:wPTlc82oIiY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=q1JkoR0mDUE:wPTlc82oIiY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=q1JkoR0mDUE:wPTlc82oIiY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=q1JkoR0mDUE:wPTlc82oIiY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=q1JkoR0mDUE:wPTlc82oIiY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=q1JkoR0mDUE:wPTlc82oIiY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=q1JkoR0mDUE:wPTlc82oIiY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=q1JkoR0mDUE:wPTlc82oIiY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/q1JkoR0mDUE" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-02T18:39:55.334-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/07/yearsonthisplanet.html</feedburner:origLink></item></channel></rss>
