<?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>Thu, 09 Jul 2009 14:18:20 PDT</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/">817</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>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">2</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><item><title>Parallelism in VS2010 at Illinois next week...</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/MGGomvvwveU/parallelism-in-vs2010-at-illinois-next.html</link><category>Events</category><author>noreply@blogger.com (The Moth)</author><pubDate>Sat, 20 Jun 2009 06:52:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-818719081686805331</guid><description>The &lt;strong&gt;University of Illinois at Urbana-Champaign&lt;/strong&gt; is holding what seems like a fantastic week-long &lt;a href="http://www.upcrc.illinois.edu/summer/2009/program.html"&gt;summer course on multi-core programming&lt;/a&gt;. They have invited me to give a session (or what they term on that page a "special lecture") on &lt;strong&gt;Parallel Programming in Visual Studio 2010&lt;/strong&gt;! All I have to do this weekend is prepare that lecture :-)&lt;br /&gt;&lt;br /&gt;On a personal note, I've never been to that part of the USA, so I'll spend a couple days in Chicago finding out if all the rumors (good and bad) are true…&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-818719081686805331?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=MGGomvvwveU:AspaDgrLs0s: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=MGGomvvwveU:AspaDgrLs0s: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=MGGomvvwveU:AspaDgrLs0s:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=MGGomvvwveU:AspaDgrLs0s:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=MGGomvvwveU:AspaDgrLs0s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=MGGomvvwveU:AspaDgrLs0s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=MGGomvvwveU:AspaDgrLs0s: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=MGGomvvwveU:AspaDgrLs0s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=MGGomvvwveU:AspaDgrLs0s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/MGGomvvwveU" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-20T06:55:08.554-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/06/parallelism-in-vs2010-at-illinois-next.html</feedburner:origLink></item><item><title>Parallel Stacks and Parallel Tasks screencasts</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/r4ckqxr69dU/parallel-stacks-and-parallel-tasks.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Wed, 17 Jun 2009 16:52:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-2156565591828408890</guid><description>Whether you have read or not my blog posts on the new Visual Studio 2010 debugger windows, you now have the option of seeing them in action in these videos I published on channel9: &lt;a href="http://channel9.msdn.com/posts/DanielMoth/Parallel-Stacks--new-Visual-Studio-2010-debugger-window/"&gt;17-minute screencast on Parallel Stacks&lt;/a&gt; and &lt;a href="http://channel9.msdn.com/posts/DanielMoth/Parallel-Tasks--new-Visual-Studio-2010-debugger-window/"&gt;14-minute screencast on Parallel Tasks&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you don't like watching videos and you don't like reading about features, maybe you prefer the guided hands on approach. Launch your VS2010 instance and go through &lt;a href="http://msdn.microsoft.com/dd554943(VS.100).aspx"&gt;my walkthrough published on MSDN&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-2156565591828408890?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=r4ckqxr69dU:soqNCB7yzFQ: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=r4ckqxr69dU:soqNCB7yzFQ: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=r4ckqxr69dU:soqNCB7yzFQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=r4ckqxr69dU:soqNCB7yzFQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=r4ckqxr69dU:soqNCB7yzFQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=r4ckqxr69dU:soqNCB7yzFQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=r4ckqxr69dU:soqNCB7yzFQ: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=r4ckqxr69dU:soqNCB7yzFQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=r4ckqxr69dU:soqNCB7yzFQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/r4ckqxr69dU" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-17T16:53:44.670-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/06/parallel-stacks-and-parallel-tasks.html</feedburner:origLink></item><item><title>Parallel Stacks – Method View</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/HvfgWtwWnCs/parallel-stacks-method-view.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Sat, 06 Jun 2009 15:24:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-1424285636923982086</guid><description>The new Parallel Stacks window has a special feature (that applies to both &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-stacks-another-new-vs2010.html"&gt;Threads View&lt;/a&gt; and &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-stacks-tasks-view.html"&gt;Tasks View&lt;/a&gt;) that we call Method View. It is accessible from the toolbar and it acts on the current stack frame (i.e. the only one with a green arrow icon or, in the absence of that, the one with the yellow arrow). It takes that method and pivots the diagram on it, coalescing all occurrences of that method into a single node in the center, clearly showing the callees and the callers. Threads that do not have that method on their stack are filtered out and not shown. Check out the before and after screenshots:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/Stacks_MethodView_BeforeAfter.jpg" /&gt;&lt;br /&gt;Switching to another stack frame in Method View will result in that method context becoming the "center of attention", and hence potentially some threads will disappear and others will re-appear on the diagram. The view persists cross debugging sessions (just like all the other options) and to get out of it you simply need to click on the Method View toolbar button again and return to Stack View.&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-1424285636923982086?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=HvfgWtwWnCs:1STye3noqOY: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=HvfgWtwWnCs:1STye3noqOY: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=HvfgWtwWnCs:1STye3noqOY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=HvfgWtwWnCs:1STye3noqOY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=HvfgWtwWnCs:1STye3noqOY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=HvfgWtwWnCs:1STye3noqOY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=HvfgWtwWnCs:1STye3noqOY: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=HvfgWtwWnCs:1STye3noqOY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=HvfgWtwWnCs:1STye3noqOY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/HvfgWtwWnCs" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-06-06T15:24:00.641-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/06/parallel-stacks-method-view.html</feedburner:origLink></item><item><title>Parallel Stacks – Tasks view</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/nmmBNDh7lIk/parallel-stacks-tasks-view.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Wed, 27 May 2009 16:12:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-6718215429249412724</guid><description>This blog post presumes you read my posts on &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-tasks-new-visual-studio-2010.html"&gt;Parallel Tasks&lt;/a&gt; and on &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-stacks-another-new-vs2010.html"&gt;Parallel Stacks&lt;/a&gt;, which describe the usefulness of the new VS2010 debugger windows for debugging multithreaded applications. In today's post I'll expand on the task-specific support in the Parallel Stacks window: we call this the &lt;em&gt;Tasks View of the Parallel Stacks window&lt;/em&gt; and you can switch to that view from the combobox in the toolbar.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/StacksTasksView_0.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Threads versus Tasks&lt;/strong&gt;&lt;br /&gt;For the purposes of this window, there are 3 main differences when you are looking at call stacks of threads versus call stacks of tasks:&lt;br /&gt;&lt;br /&gt;1.      Some threads in your application will be running tasks and others will not.&lt;br /&gt;2.      A thread could be running more than 1 Task (only the task at the top part of the thread's call stack is actually running, you can assert that the other(s) would be in a waiting state).&lt;br /&gt;3.      Call stacks of threads are mapped back to the thread via the Thread ID; call stacks of tasks should be mapped back to the task via the Task ID.&lt;br /&gt;&lt;br /&gt;These 3 differences map to the following 3 observations of what you see in the Tasks View of the Parallel Stacks window (compared to the separately covered &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-stacks-another-new-vs2010.html"&gt;Threads View of the Parallel Stacks window&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;a)      We don’t show the threads not executing tasks.&lt;br /&gt;b)      We split call stacks of threads executing multiple tasks into separate nodes, so you can clearly see each task call stack separately.&lt;br /&gt;c)      The tooltip of the header in the node and on each method context (displaying the stack frames) shows task IDs instead of thread IDs.&lt;br /&gt;&lt;br /&gt;Here is an example where one thread is not running tasks (the Main thread):&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/StacksTasksView_1.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Trimming frames from the bottom &lt;/strong&gt;&lt;br /&gt;You will notice in the screenshot above another difference not mentioned so far: some stack frames at the root of the call stack are trimmed. This is what I call showing the "real" call stacks of tasks. If you think about it, your code created a task pointing it to a method and it is from somewhere close to that method that you want to start looking at the call stack. All the other (typically non-user code) stack frames at the root of the thread's call stack are not of interest in this Tasks View, so we trim them out (as per screenshot above).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Trimming frames from the top&lt;/strong&gt;&lt;br /&gt;We also trim stack frames from the top of the call stack. The consistent decision could have been to trim *all* non-user code at the top since that is not code you would typically care too much about when debugging tasks. However, what is interesting in many scenarios is the first non-user method that was called from the top most user frame – so we kept that one frame and trimmed all the ones above it.&lt;br /&gt;&lt;br /&gt;Here is an example of trimming stack frames from the top and also of a thread running 2 tasks:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/StacksTasksView_2.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;"Go To Thread" and "Go To Task" menu&lt;/strong&gt;&lt;br /&gt;Before anyone panics with the stack trimming I mentioned above, remember that you can always view entire &lt;em&gt;thread&lt;/em&gt; call stacks in this window by switching to the Threads View. In fact, we made it even easier to switch not just view, but also scroll to the exact position you want by offering a menu item (you'll recall I left that out from my context &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-stacks-another-new-vs2010.html"&gt;menu description last time&lt;/a&gt;) that switches views and scrolls to the same stack frame you are looking in the other view.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Status on header tooltip&lt;/strong&gt;&lt;br /&gt;I mentioned the method context tooltip showing task IDs instead of thread IDs and you can see that in the screenshot below. I also mentioned the header tooltip showing task IDs instead of thread IDs; for this tooltip we threw in bonus information by showing you the Status of each task&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/StacksTasksView_3.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Feedback Please&lt;/strong&gt;&lt;br /&gt;Start playing with Visual Studio Beta 1 and let me have it!&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-6718215429249412724?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=nmmBNDh7lIk:TmuheZIJu7w: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=nmmBNDh7lIk:TmuheZIJu7w: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=nmmBNDh7lIk:TmuheZIJu7w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=nmmBNDh7lIk:TmuheZIJu7w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=nmmBNDh7lIk:TmuheZIJu7w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=nmmBNDh7lIk:TmuheZIJu7w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=nmmBNDh7lIk:TmuheZIJu7w: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=nmmBNDh7lIk:TmuheZIJu7w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=nmmBNDh7lIk:TmuheZIJu7w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/nmmBNDh7lIk" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-27T16:12:57.747-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/05/parallel-stacks-tasks-view.html</feedburner:origLink></item><item><title>Parallel Stacks – another new VS2010 debugger window</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/ZLnkVr33W6Y/parallel-stacks-another-new-vs2010.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Wed, 20 May 2009 13:19:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-2327968037691542905</guid><description>&lt;strong&gt;Assumed knowledge aka Background Reading&lt;/strong&gt;&lt;br /&gt;It is important to understand some of the existing &lt;a href="http://www.danielmoth.com/Blog/2008/09/active-and-current-stack-frame-and.html"&gt;Call Stack window features&lt;/a&gt;. Even if you don't care about this VS2010 feature, you can improve your debugging skills with any version of Visual Studio by &lt;a href="http://www.danielmoth.com/Blog/2008/09/active-and-current-stack-frame-and.html"&gt;reading that blog post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Parallel Stacks debugger toolwindow&lt;/strong&gt;&lt;br /&gt;With applications increasingly having more than one thread and with parallelism gaining momentum, we need the ability to view (and navigate) more than 1 call stack from a single view. Previously I discussed the motivation behind this new window &lt;a href="http://www.danielmoth.com/Blog/2008/09/parallel-stacks-for-multi-threaded.html"&gt;here&lt;/a&gt;, and I'll use the exact same code for the following screenshots. Here is the new Parallel Stacks window:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/Stacks_1_Main.jpg" /&gt;&lt;br /&gt;In the picture above you can see the call stacks of 3 threads in a single view. The way you read this picture is that you have one thread that went from Main to A to B. Two other threads started from the same external code and then went to A, but one of them continued to B and then to some external code, and the other continued to C and then some AnonymousMethod. This is also the active stack frame and this is the current thread.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Toolbar buttons&lt;/strong&gt; from left to right&lt;br /&gt;&lt;em&gt;Threads/Tasks combobox:&lt;/em&gt; Switches the view between showing call stacks of threads to showing call stacks of Tasks (and vice versa). More on the Tasks view of the Parallel Stacks window in another post.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Show Only Flagged:&lt;/em&gt; Shows call stacks only for the threads that are flagged in the Threads window.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Toggle Method View:&lt;/em&gt; Switches between normal view and method view. Method view will be the subject of a separate post.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Toggle TopDown/BottomUp Display:&lt;/em&gt; By default stacks are drawn bottom up (so the frame at top of stack appears at the... top). This button allows drawing the diagram top down, more like a call graph.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Auto Scroll To Current Stack Frame:&lt;/em&gt; Auto-scrolls the diagram so the current stack frame is in view. Useful in large diagrams when changing the current stack frame via other windows or when hitting a new breakpoint.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Toggle Zoom Control:&lt;/em&gt; Shows or hides the zoom control. Note that zooming is always available via &lt;a href="http://www.danielmoth.com/Blog/2009/03/zoom-ctrl-mouse-wheel.html"&gt;Ctrl+mousewheel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Context Menu Items&lt;/strong&gt; in random order&lt;br /&gt;The last 5 menuitems are borrowed directly from the Call Stack window and introduce no new behaviors: &lt;em&gt;Go To Source Code&lt;/em&gt;, &lt;em&gt;Go To Disassembly&lt;/em&gt;, &lt;em&gt;Show External Code&lt;/em&gt;, &lt;em&gt;Hexadecimal Display&lt;/em&gt;, &lt;em&gt;Symbol Load Information&lt;/em&gt; and &lt;em&gt;Symbol Settings&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Go To Task (Thread): &lt;/em&gt;This performs the same function as the combobox on the toolbar does, but additionally keeps the same stack frame highlighted. It will be discussed in a separate post.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Switch To Frame:&lt;/em&gt; Same as menuitem on Call Stack window. Additionally, with Parallel Stacks, multiple frames may correspond to a method context so the menuitem has submenus, each representing a specific stack frame. If one of the stack frames is on the current thread (so by definition you are clicking on a node with a blue highlight around it) then that stack frame has a checkmark in front of it. For example, right clicking on Program.A and expanding the first menuitem results in this screenshot:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/Stacks_2_CM.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Annotations and Elements Listed&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Call Stack Segment or Node:&lt;/em&gt; Each "box" contains a series of method contexts for one or more threads. If the node has no arrow lines connected to it, then it represents the entire call path for the thread(s), otherwise you need to follow the arrows to piece together the entire call path of a thread.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Blue Highlight:&lt;/em&gt; The blue highlight indicates the call path to which the &lt;a href="http://www.danielmoth.com/Blog/2008/09/active-and-current-stack-frame-and.html"&gt;current thread&lt;/a&gt; belongs to.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Arrow lines:&lt;/em&gt; Arrow lines connect nodes to make up the entire call path for the thread(s).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Tooltip on Node Header:&lt;/em&gt; The tooltip on each node shows the ID(s) of the thread(s) relevant to the node.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/Stacks_3_TooltipHeader.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Method Context:&lt;/em&gt; Represents one or more stack frames in the same method.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Tooltip on method context:&lt;/em&gt; The tooltip on each method context shows the full details of all the stack frames it represents. If one of the stack frames is also on the current thread, it is shown in bold font.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/Stacks_4_TooltipMethod.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Yellow Arrow Icon:&lt;/em&gt; A yellow arrow in front of a method context indicates that the &lt;a href="http://www.danielmoth.com/Blog/2008/09/active-and-current-stack-frame-and.html"&gt;active stack frame of the current thread&lt;/a&gt; is in that method context. As you'd expect, this icon would appear only at the last frame in a node that also has the blue highlight around it.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Cloth Threads Icon:&lt;/em&gt; A cloth threads icon in front of a method context indicates that the active stack frame of a non-current thread is in that method context. As you'd expect, this icon would appear only at the last frame in a node and there would be no blue highlight.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Green Arrow Icon:&lt;/em&gt; A green arrow in front of a method context indicates that the &lt;a href="http://www.danielmoth.com/Blog/2008/09/active-and-current-stack-frame-and.html"&gt;current stack frame&lt;/a&gt; is in that method context. That method context is also in bold font, and as you'd expect is in a node with a blue highlight. If the method context appears in other places/nodes on the diagram, it is bolded there too. E.g., if in the context menu shown above, we clicked on menuitem '5744: Program.A("hi") Line 23' we would be switching thread and current frame on that thread with a single action, resulting in the picture looking like this:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/Stacks_5_SwitchedFrame.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Navigation Aids&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Bird's Eye View:&lt;/em&gt; When there are scrollbars present, the space between the scrollbars reveals a button that when pressed shows a thumbnail view of the picture which you can use to quickly scroll around it.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Zoom Control:&lt;/em&gt; The zoom control lets you zoom in and out, zoom to fit and zoom to 100%.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Panning:&lt;/em&gt; Pressing the mouse button on any white space and dragging, will scroll the diagram.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Call to Action&lt;/strong&gt;&lt;br /&gt;The call to action is identical to the Call to Action of my post on &lt;a href="http://www.danielmoth.com/Blog/2009/05/parallel-tasks-new-visual-studio-2010.html"&gt;Parallel Tasks&lt;/a&gt;. Read it and come back here to comment ;-)&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-2327968037691542905?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=ZLnkVr33W6Y:GFh_kFeiFWM: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=ZLnkVr33W6Y:GFh_kFeiFWM: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=ZLnkVr33W6Y:GFh_kFeiFWM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=ZLnkVr33W6Y:GFh_kFeiFWM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=ZLnkVr33W6Y:GFh_kFeiFWM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=ZLnkVr33W6Y:GFh_kFeiFWM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=ZLnkVr33W6Y:GFh_kFeiFWM: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=ZLnkVr33W6Y:GFh_kFeiFWM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=ZLnkVr33W6Y:GFh_kFeiFWM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/ZLnkVr33W6Y" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-20T13:31:52.090-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/05/parallel-stacks-another-new-vs2010.html</feedburner:origLink></item><item><title>VS2010 fix for "not all anonymous methods are the same"</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/C7ZbBScKR0E/vs2010-fix-for-not-all-anonymous.html</link><category>dot NET general</category><author>noreply@blogger.com (The Moth)</author><pubDate>Tue, 19 May 2009 12:56:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-561200244664257526</guid><description>Last September (wow, time flies!) I blogged about a VS2008 issue described as: &lt;a href="http://www.danielmoth.com/Blog/2008/09/not-all-anonymousmethods-are-same.html"&gt;Not all AnonymousMethods are the same&lt;/a&gt;. My team fixed this, so let's revisit the equivalent code from that post, this time in VS2010. The screenshot tells the story:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/AnonymousMethodFix.jpg" /&gt;&lt;br /&gt;Notice that anonymous methods now have a suffix? This tells you immediately that the 2 threads are not at the same method. The information becomes even clearer with a new debugging window we are introducing in VS2010 that I will describe in my next post: Parallel &lt;strong&gt;Stac&lt;/strong&gt;ks.&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-561200244664257526?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=C7ZbBScKR0E:4MOI0w66E-k: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=C7ZbBScKR0E:4MOI0w66E-k: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=C7ZbBScKR0E:4MOI0w66E-k:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=C7ZbBScKR0E:4MOI0w66E-k:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=C7ZbBScKR0E:4MOI0w66E-k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=C7ZbBScKR0E:4MOI0w66E-k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=C7ZbBScKR0E:4MOI0w66E-k: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=C7ZbBScKR0E:4MOI0w66E-k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=C7ZbBScKR0E:4MOI0w66E-k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/C7ZbBScKR0E" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-19T12:59:17.860-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/05/vs2010-fix-for-not-all-anonymous.html</feedburner:origLink></item><item><title>Tasks documentation</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/sDii9d_RdkY/tasks-documentation.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Tue, 19 May 2009 08:11:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5275028874102572128</guid><description>Interested in the System.Threading.Tasks namespace? Read here the &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.tasks(VS.100).aspx"&gt;official MSDN documentation&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-5275028874102572128?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=sDii9d_RdkY:8hdkFN97qaw: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=sDii9d_RdkY:8hdkFN97qaw: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=sDii9d_RdkY:8hdkFN97qaw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=sDii9d_RdkY:8hdkFN97qaw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=sDii9d_RdkY:8hdkFN97qaw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=sDii9d_RdkY:8hdkFN97qaw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=sDii9d_RdkY:8hdkFN97qaw: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=sDii9d_RdkY:8hdkFN97qaw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=sDii9d_RdkY:8hdkFN97qaw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/sDii9d_RdkY" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-19T08:11:59.232-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/05/tasks-documentation.html</feedburner:origLink></item><item><title>Parallel Tasks – new Visual Studio 2010 debugger window</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/Qc2mS8JmzLE/parallel-tasks-new-visual-studio-2010.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 15 May 2009 02:55:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5804745168266406592</guid><description>&lt;strong&gt;Assumed knowledge aka Background Reading&lt;/strong&gt;&lt;br /&gt;.NET 4 introduces a new class that lives in mscorlib that I have blogged about before: &lt;a href="http://www.danielmoth.com/Blog/2008/12/introducing-new-task-type.html"&gt;System.Threading.Tasks.Task&lt;/a&gt;, which as you'll recall is also what &lt;a href="http://www.danielmoth.com/Blog/2009/01/parallelising-loops-in-net-4.html"&gt;Parallel.For&lt;/a&gt; depends on. Collectively, all those new classes is what we refer to as Task Parallel Library and the team that owns it has blogged what is &lt;a href="http://blogs.msdn.com/pfxteam/archive/2009/04/14/9549246.aspx"&gt;new for TPL in Beta1&lt;/a&gt;. Another .NET 4 feature I blogged about before also depends on Tasks for its implementation: &lt;a href="http://www.danielmoth.com/Blog/2009/01/plinq.html"&gt;Parallel LINQ&lt;/a&gt;. The same team owns that and there is a blog post of what is &lt;a href="http://blogs.msdn.com/pfxteam/archive/2009/04/29/9576291.aspx"&gt;new for PLINQ in Beta1&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you are a C++ developer, then you'll be happy to know that the &lt;a href="http://blogs.msdn.com/nativeconcurrency/archive/2008/07/01/guided-tour-of-the-concurrency-runtime-and-parallel-libraries-part-1-supporting-fine-grained-tasks.aspx"&gt;task concept also exists in C++ version 10 that ships with VS2010&lt;/a&gt;. In addition to the dedicated native concurrency blog I just linked to, there is a &lt;a href="http://channel9.msdn.com/posts/VisualStudio/Native-Parallelism-with-the-Parallel-Patterns-Library/"&gt;ch9 video on the topic&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Parallel Tasks debugger toolwindow&lt;/strong&gt;&lt;br /&gt;To support the new task-based programming model introduced with Visual Studio 2010 for both managed and native developers, we are introducing a new debugger window: Parallel Tasks. You can open it after you hit a breakpoint, via the same location where all debugger windows live.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/menu_plus_tasks.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sorting, Reordering, Hiding/Showing columns &lt;/strong &gt;&lt;br /&gt;Columns are re-orderable (by dragging them left/right) and sortable (by clicking on them) as indicated by the little triangle, which also shows the sort direction. You can also hide or show columns by right clicking on any column and then (un)checking the column menuitem of interest&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/columnsMenu.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Grouping on a column&lt;/strong&gt;&lt;br /&gt;Via the context menu shown above you can group on your column of choice. What is cool about grouping is that it allows you to flag an entire group with one click (more on flagging later), it allows you to collapse the group (preserved between debugging steps) and it shows a count of the items in the group (even when it is collapsed).&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/groupedTasks.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Description of the 8 Columns&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;- Flag Column&lt;/em&gt;: Each item can be in a flagged or non-flagged state (the default). You can toggle the state of a row by clicking on the corresponding cell. You would do this to make it easier to keep an eye on an item of interest between debugging steps (e.g. breakpoints, F11) or to flag multiple items and then sort on the column to bring them all to the top. Flagging is not persisted between debugging sessions. Another use of flagging is to filter the task call stacks shown in the new Parallel Stacks window, but that is a topic of another blog post.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Icon Column&lt;/em&gt;: This column is blank by default except for one Task which will have a yellow arrow in this cell. The yellow arrow indicates which one is the current task. The current task is one which is executing on the &lt;a href="http://www.danielmoth.com/Blog/2008/09/active-and-current-stack-frame-and.html"&gt;current thread&lt;/a&gt; and whose top stack frame is the current frame. Another icon that can be displayed in this column is the "pause" icon to indicate a frozen thread (more on freezing further down).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Id&lt;/em&gt;: Each Task has a unique Id which can be retrieved programmatically by calling the Id property (for C++ tasks, this will be the memory address). This is useful so you can map the task you are seeing in the window with diagnostic output you may send to some stream; it is also useful for cross-referencing tasks between the Parallel Tasks and the Parallel Stacks windows (which I'll describe in another post).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Status&lt;/em&gt;: The 4 potential values here are Running, Scheduled, Waiting and Waiting-Deadlocked. "Running" are the tasks that are executing code at the moment your app breaks in the debugger (they are at top of stack of a running thread); "Scheduled" are the ones that are sitting in some queue but have not been executed by a thread yet; "Waiting" are the ones that have run, but are now blocked on something, e.g. a Monitor, a critical section; "Waiting-Deadlocked" are the ones that are "Waiting" and additionally we have detected a wait chain with other tasks in the list. For the 2 Waiting states, hovering over the cell displays a tooltip which may have more information, like in the following screenshot.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/waitingTooltip.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Location&lt;/em&gt;: The Location column displays the method that the task is currently in (i.e. the top most user frame of the task's call stack). Hovering over the cell displays in a tooltip the entire call stack for the task (not the entire call stack for the thread!). Naturally, Scheduled tasks do not have a value in this column.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/LocationTooltip.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Task&lt;/em&gt;: The entry point method that was passed to the task when it was constructed. If there was a state argument explicitly passed to the task, the value of that is also shown.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Thread Assignment&lt;/em&gt;: The id of the thread that the task is executing on. Remember, a task can only execute on a single thread, but a thread can be executing multiple tasks. Naturally, Scheduled tasks do not have a value in this column.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Parent&lt;/em&gt;: The Id of the task that is the parent of this task (if there is one). This is not applicable for &lt;a href="http://blogs.msdn.com/nativeconcurrency/archive/2008/07/01/guided-tour-of-the-concurrency-runtime-and-parallel-libraries-part-1-supporting-fine-grained-tasks.aspx"&gt;native scenarios&lt;/a&gt; where the concept of parent and child tasks is not a first class citizen in the programming model.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Task Group&lt;/em&gt;: The address of the task_group that scheduled the task. This is not applicable for managed scenarios.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Parent Child View&lt;/strong&gt;&lt;br /&gt;When the value of any cell in the Parent column is not blank, we know we have parent child relationship(s) in our view. In that case, we can visualize this relationship slightly better by switching to "Parent Child View" via the column context menu (shown in image further above). This switches the first column to contain a treeview that allows collapsing the child nodes/tasks.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/parentChildTasks.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Task Context Menu&lt;/strong&gt;&lt;br /&gt;The ContextMenu described above is the one displayed when right clicking on a column; there is one that is displayed when right clicking on a (task) listviewitem.&lt;br /&gt;&lt;em&gt;- Copy&lt;/em&gt;: Copies the cells in view (tab delimited) to the clipboard.&lt;br /&gt;&lt;em&gt;- Select All&lt;/em&gt;: Or via Ctrl+A to select all tasks, in order to perform one of the other operations in bulk, e.g. copying.&lt;br /&gt;&lt;em&gt;- Hexadecimal Display&lt;/em&gt;: Global debugger setting that switches all debugger windows to hexadecimal display (or Decimal if unchecked).&lt;br /&gt;&lt;em&gt;- Switch To Task&lt;/em&gt;: Sets the selected task to be the current task (as discussed above) and hence get the yellow arrow icon. This action is also performed when double clicking on a Task listviewitem.&lt;br /&gt;&lt;em&gt;- Freeze Assigned Thread&lt;/em&gt;: The concept of freezing a thread existed before this Visual Studio release via the Threads window. The thread that is frozen does not continue execution when the debugger continues to the next step, until the user Thaws it (via the same menu). From the Parallel Tasks window, freezing affects the underlying thread and all tasks on it. I.e. this is still a thread concept rather than a task concept.&lt;br /&gt;&lt;em&gt;- Freeze All Threads But This&lt;/em&gt;: Freezes all threads in view, except the selected one.&lt;br /&gt;&lt;em&gt;- Flag&lt;/em&gt;: Same behaviour as clicking on the flag column, described further above.&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/TaskContextMenu.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Call to Action&lt;/strong&gt;&lt;br /&gt;When you get the VS2010 Beta 1, let me know what you think about this new debugger window as you write your own task-based algorithms: do you like it or do you love it? ;-) More seriously, I am genuinely interested in your bug reports (so the talented developers on my team can fix them for Beta2), what feature do you particularly like (so we make sure not to lose/break it) and what you'd like to see that is not there (so we can include it for the next release or, if it is a low hanging fruit, in this release).&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-5804745168266406592?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=Qc2mS8JmzLE:QV4QmLVJkjY: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=Qc2mS8JmzLE:QV4QmLVJkjY: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=Qc2mS8JmzLE:QV4QmLVJkjY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=Qc2mS8JmzLE:QV4QmLVJkjY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=Qc2mS8JmzLE:QV4QmLVJkjY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=Qc2mS8JmzLE:QV4QmLVJkjY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=Qc2mS8JmzLE:QV4QmLVJkjY: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=Qc2mS8JmzLE:QV4QmLVJkjY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=Qc2mS8JmzLE:QV4QmLVJkjY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/Qc2mS8JmzLE" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-15T02:55:43.906-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">12</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/05/parallel-tasks-new-visual-studio-2010.html</feedburner:origLink></item><item><title>PDB Files</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/v7K2JptkAxw/pdb-files.html</link><category>Links</category><author>noreply@blogger.com (The Moth)</author><pubDate>Wed, 13 May 2009 15:39:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-3612251244178144941</guid><description>I want to share this comprehensive blog article by John Robbins. No need to paraphrase the title, it perfectly describes the content already: &lt;a href="http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx"&gt;PDB Files: What Every Developer Must Know&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-3612251244178144941?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=v7K2JptkAxw:TgSe9pBB9Ds: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=v7K2JptkAxw:TgSe9pBB9Ds: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=v7K2JptkAxw:TgSe9pBB9Ds:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=v7K2JptkAxw:TgSe9pBB9Ds:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=v7K2JptkAxw:TgSe9pBB9Ds:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=v7K2JptkAxw:TgSe9pBB9Ds:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=v7K2JptkAxw:TgSe9pBB9Ds: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=v7K2JptkAxw:TgSe9pBB9Ds:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=v7K2JptkAxw:TgSe9pBB9Ds:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/v7K2JptkAxw" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-13T15:39:36.469-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/05/pdb-files.html</feedburner:origLink></item><item><title>Axum</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/LBAb3de11xc/axum.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Sat, 09 May 2009 14:01:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5763987443705917730</guid><description>My colleagues have released to DevLabs an incubation project: &lt;a href="http://msdn.microsoft.com/devlabs/dd795202.aspx"&gt;Axum&lt;/a&gt; (fka "Maestro").&lt;br /&gt;&lt;blockquote&gt;"Axum aims to validate a safe and productive parallel programming model for .NET"&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;" Axum is a language that builds upon the architecture of the Web and principles of isolation, actors, and message-passing to increase application safety, responsiveness, scalability, and developer productivity.&lt;br /&gt;Other advanced concepts we are exploring are data flow networks, asynchronous methods, and type annotations for taming side-effects."&lt;/blockquote&gt;&lt;br /&gt;After you &lt;a href="http://msdn.microsoft.com/devlabs/dd795202.aspx"&gt;visit the page and download the bits&lt;/a&gt;, head over to the &lt;a href="http://blogs.msdn.com/maestroteam/default.aspx"&gt;dedicated Axum blog&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-5763987443705917730?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=LBAb3de11xc:iLUepBPGYYo: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=LBAb3de11xc:iLUepBPGYYo: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=LBAb3de11xc:iLUepBPGYYo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=LBAb3de11xc:iLUepBPGYYo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=LBAb3de11xc:iLUepBPGYYo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=LBAb3de11xc:iLUepBPGYYo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=LBAb3de11xc:iLUepBPGYYo: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=LBAb3de11xc:iLUepBPGYYo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=LBAb3de11xc:iLUepBPGYYo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/LBAb3de11xc" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-05-09T14:01:41.285-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/05/axum.html</feedburner:origLink></item><item><title>Windows 7 Task Manager screenshot</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/XKE5BKGK2Og/windows-7-task-manager-screenshot.html</link><category>Windows</category><author>noreply@blogger.com (The Moth)</author><pubDate>Mon, 27 Apr 2009 22:59:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-1250611813305030280</guid><description>Previously &lt;a href="http://www.danielmoth.com/Blog/2009/01/windows-7-and-server-2008-r2.html"&gt;I linked to a screenshot of 96 virtual processors&lt;/a&gt; and now I have access to a machine that tops that!&lt;br /&gt;&lt;br /&gt;Count them:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/128VirtualProcessors.png" /&gt;&lt;br /&gt;Nothing else to share here, just a geek showing off ;-)&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-1250611813305030280?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=XKE5BKGK2Og:GQZn1Bz8kZk: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=XKE5BKGK2Og:GQZn1Bz8kZk: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=XKE5BKGK2Og:GQZn1Bz8kZk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=XKE5BKGK2Og:GQZn1Bz8kZk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=XKE5BKGK2Og:GQZn1Bz8kZk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=XKE5BKGK2Og:GQZn1Bz8kZk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=XKE5BKGK2Og:GQZn1Bz8kZk: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=XKE5BKGK2Og:GQZn1Bz8kZk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=XKE5BKGK2Og:GQZn1Bz8kZk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/XKE5BKGK2Og" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-27T22:59:30.798-07:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://www.danielmoth.com/Blog/2009/04/windows-7-task-manager-screenshot.html</feedburner:origLink></item><item><title>Nice collection of .NET 4 links</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/fBzZRvVxi1s/nice-collection-of-net-4-links.html</link><category>dot NET general</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 24 Apr 2009 17:46:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-4345928037480824971</guid><description>Just came across (and thought I'd share) these &lt;a href="http://bogdanbrinzarea.wordpress.com/2009/04/24/learning-net-40-new-features/"&gt;resources for .NET 4 and C# 4 features on Bogdan's blog post&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-4345928037480824971?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=fBzZRvVxi1s:hNRNZ_UytPc: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=fBzZRvVxi1s:hNRNZ_UytPc: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=fBzZRvVxi1s:hNRNZ_UytPc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=fBzZRvVxi1s:hNRNZ_UytPc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=fBzZRvVxi1s:hNRNZ_UytPc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=fBzZRvVxi1s:hNRNZ_UytPc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=fBzZRvVxi1s:hNRNZ_UytPc: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=fBzZRvVxi1s:hNRNZ_UytPc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=fBzZRvVxi1s:hNRNZ_UytPc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/fBzZRvVxi1s" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-24T17:46:55.127-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/04/nice-collection-of-net-4-links.html</feedburner:origLink></item><item><title>CLR 4 ThreadPool Enhancements</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/wWb12FlGacs/clr-4-threadpool-enhancements.html</link><category>dot NET general</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 23 Apr 2009 17:22:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-6814205492502569133</guid><description>Eric Eilebrecht (dev on CLR) is kicking off a blog post series on improvements to the CLR 4 ThreadPool. If you've used the .NET ThreadPool, you must &lt;a href="http://blogs.msdn.com/ericeil/archive/2009/04/23/clr-4-0-threadpool-improvements-part-1.aspx"&gt;read his first installment&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-6814205492502569133?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=wWb12FlGacs:bV4i9GtE0lo: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=wWb12FlGacs:bV4i9GtE0lo: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=wWb12FlGacs:bV4i9GtE0lo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=wWb12FlGacs:bV4i9GtE0lo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=wWb12FlGacs:bV4i9GtE0lo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=wWb12FlGacs:bV4i9GtE0lo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=wWb12FlGacs:bV4i9GtE0lo: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=wWb12FlGacs:bV4i9GtE0lo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=wWb12FlGacs:bV4i9GtE0lo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/wWb12FlGacs" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-23T17:23:00.428-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/04/clr-4-threadpool-enhancements.html</feedburner:origLink></item><item><title>Best source code comments</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/cHh8H3MsjfI/best-source-code-comments.html</link><category>Personal</category><author>noreply@blogger.com (The Moth)</author><pubDate>Wed, 22 Apr 2009 17:18:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-3915784719510614173</guid><description>Literally laughed out loud when this was forwarded to me and they are way too funny not to share – from stackoverflow:&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered"&gt;What is the best comment in source code you have ever encountered?&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-3915784719510614173?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=cHh8H3MsjfI:JdPr0776S-4: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=cHh8H3MsjfI:JdPr0776S-4: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=cHh8H3MsjfI:JdPr0776S-4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=cHh8H3MsjfI:JdPr0776S-4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=cHh8H3MsjfI:JdPr0776S-4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=cHh8H3MsjfI:JdPr0776S-4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=cHh8H3MsjfI:JdPr0776S-4: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=cHh8H3MsjfI:JdPr0776S-4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=cHh8H3MsjfI:JdPr0776S-4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/cHh8H3MsjfI" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-22T17:26:16.748-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/04/best-source-code-comments.html</feedburner:origLink></item><item><title>Measuring performance under Visual Studio</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/f2myWWS5FiI/measuring-performance-under-visual.html</link><category>dot NET general</category><author>noreply@blogger.com (The Moth)</author><pubDate>Mon, 06 Apr 2009 19:58:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5956238954795106987</guid><description>When I created my Visual Studio C# &lt;a href="http://www.danielmoth.com/Blog/2009/02/give-session-on-parallel-programming-or.html"&gt;demos for showing off Tasks versus Threads&lt;/a&gt;, I of course created the project in Release mode, but there were 2 additional things that I had to do.&lt;br /&gt;&lt;br /&gt;One had little impact, but is important to remember: set the power plan on Windows to "High Performance". Otherwise CPU usage can be throttled by the OS, which is not what you want when you are demonstrating parallelism and 100% CPU usage ;-)&lt;br /&gt;&lt;br /&gt;The other had a profound impact and had me puzzled for a bit: use Ctrl+F5 instead of F5. The difference in the time the threads scenario took was humongous. That is because the naïve threads demo creates around 1023 threads and it turns out creating threads under the debugger (F5 case, even in release mode) is measurably slower than not. I should have known that, but I didn't, so sharing it here in case you didn't either: when measuring perf, always use Ctrl+F5 in release mode.&lt;br /&gt;&lt;br /&gt;For a lot more on the performance difference between running under the debugger and not, I recommend Joc's blog post: &lt;a href="http://blogs.msdn.com/ms_joc/archive/2009/02/19/why-is-my-app-so-much-slower-under-the-debugger.aspx"&gt;Why is my app so much slower under the debugger&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-5956238954795106987?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=f2myWWS5FiI:W9ajgw51YXk: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=f2myWWS5FiI:W9ajgw51YXk: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=f2myWWS5FiI:W9ajgw51YXk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=f2myWWS5FiI:W9ajgw51YXk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=f2myWWS5FiI:W9ajgw51YXk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=f2myWWS5FiI:W9ajgw51YXk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=f2myWWS5FiI:W9ajgw51YXk: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=f2myWWS5FiI:W9ajgw51YXk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=f2myWWS5FiI:W9ajgw51YXk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/f2myWWS5FiI" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-04-06T19:59:19.168-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/04/measuring-performance-under-visual.html</feedburner:origLink></item><item><title>Internet Explorer 8 using Restart APIs to full potential</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/QN0FjWCBnD4/internet-explorer-8-using-restart-apis.html</link><category>Windows</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 19 Mar 2009 12:49:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-3259912648162307935</guid><description>I have been playing with internal bits of Internet Explorer 8 for a while and it is pretty cool. Today the final version has shipped and you can &lt;a href="http://www.microsoft.com/ie8"&gt;download IE8 from the Microsoft site&lt;/a&gt;. To see the many cool enhancements I'd encourage you to watch the short videos (or at least just the Overview) on the &lt;a href="http://www.microsoft.com/windows/internet-explorer/videos.aspx"&gt;dedicated IE8 videos page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One of the things I like doing to new apps is crashing them. When a windows app crashes, I fully expect it to restart &lt;strong&gt;and restore the state it had before it died&lt;/strong&gt;. &lt;a href="http://www.danielmoth.com/Blog/2007/03/please-use-restart-api-to-its-full.html"&gt;I ranted in detail on that front in an older post of mine&lt;/a&gt; 2 years ago.&lt;br /&gt;&lt;br /&gt;Internet Explorer 8 finally delivers on my request. This is what I see after I crash it and it restarts:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/IE8_restart.png" /&gt;&lt;br /&gt;Love it!&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-3259912648162307935?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=QN0FjWCBnD4:4cp_9Bsnrlc: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=QN0FjWCBnD4:4cp_9Bsnrlc: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=QN0FjWCBnD4:4cp_9Bsnrlc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=QN0FjWCBnD4:4cp_9Bsnrlc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=QN0FjWCBnD4:4cp_9Bsnrlc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=QN0FjWCBnD4:4cp_9Bsnrlc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=QN0FjWCBnD4:4cp_9Bsnrlc: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=QN0FjWCBnD4:4cp_9Bsnrlc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=QN0FjWCBnD4:4cp_9Bsnrlc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/QN0FjWCBnD4" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-19T12:49:31.362-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/03/internet-explorer-8-using-restart-apis.html</feedburner:origLink></item><item><title>Zoom Ctrl + mouse wheel</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/SACWAuanU9M/zoom-ctrl-mouse-wheel.html</link><category>UserInterfaceDesign</category><author>noreply@blogger.com (The Moth)</author><pubDate>Sun, 15 Mar 2009 20:21:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-7391254768013155758</guid><description>Almost all modern UIs support zooming in and out; it is useful for focusing on a specific area (e.g. seeing the detail better) and for managing scale (e.g. seeing the big picture without scrolling).&lt;br /&gt;&lt;br /&gt;It has become the standard to offer the zooming function via holding down the Ctrl key and scrolling the mouse wheel. Try it now in your internet browser (IE, firefox etc), in any office application (Word, Excel, PowerPoint) including reading or composing email in Outlook, in windows explorer to see more/less files, in Visual Studio 2010 editor and so on and so forth.&lt;br /&gt;&lt;br /&gt;If you take one thing away from this blog post as an end user it is to try Ctrl + mouse wheel. As a developer, offer this feature for your users. I recommend a range of 10% to 2000%.&lt;br /&gt;&lt;br /&gt;Beyond the standard keyboard shortcut though, there seems to be no standard for displaying a UI zoom control. Below are some screenshots of zoom controls to prove the point.&lt;br /&gt;&lt;br /&gt;Word/Excel/PowerPoint, in the status bar:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/zoomOffice2007.png" /&gt;&lt;br /&gt;IE7, in status bar:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/zoomIE7.jpg" /&gt;&lt;br /&gt;FireFox, hidden in a submenu:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/zoomFF.jpg" /&gt;&lt;br /&gt;Outlook, hidden in a dialog off a ribbon button:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/zoomOutlook.jpg" /&gt;&lt;br /&gt;Windows Photo Gallery:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/zoomPhotoGallery.jpg" /&gt;&lt;br /&gt;Class Designer, on a toolbar:&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/zoomClassDesigner.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Our team wanted to add a zoom control for a new VS2010 debugger toolwindow. Even within Visual Studio there are various zoom controls. You can see one of them in the screenshots above from the Class Designer (introduced in VS2005). Here is another example introduced in VS2008 for the WPF designer (aka "Cider")&lt;br /&gt;&lt;img src="http://www.danielmoth.com/Blog/zoomCider.png" /&gt;&lt;br /&gt;Rather than introduce yet another control that was convenient for us to implement, we decided to follow Cider's example (and also suggested to the UX team to standardize on this for Visual Studio). What I like about this control is that it is quick to use (less mouse travel to get to it than other approaches, and just click and drag instead of combobox clunkiness), I like the way it reports the zoom state at the top e.g. "70%", "x2" and, finally, I love the button at the bottom that toggles between the "fit to screen" and "100%" states. Those of you that used it will have also noticed the aesthetically pleasing fade in/out as you hover on/away from it :-)&lt;br /&gt;&lt;br /&gt;Now, even with all these benefits there is a drawback which is acceptable in the WPF designer, but not so acceptable in a smaller surface area (like the typical debugger toolwindow): the control can overlay with the content of the window and, even in the faded out state, it can be annoying for some users. For that reason, we added a toolbar button that simply toggles the visibility of the zoom control. So now you can have your cake and eat it too.&lt;br /&gt;&lt;br /&gt;It is amazing to me how smaller obvious features such as adding zoom support, take more time to think over than what one might expect… If you have used zooming in an application that you believe is better than what's described above, please share!&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-7391254768013155758?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=SACWAuanU9M:UadXvnsZeHo: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=SACWAuanU9M:UadXvnsZeHo: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=SACWAuanU9M:UadXvnsZeHo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=SACWAuanU9M:UadXvnsZeHo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=SACWAuanU9M:UadXvnsZeHo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=SACWAuanU9M:UadXvnsZeHo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=SACWAuanU9M:UadXvnsZeHo: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=SACWAuanU9M:UadXvnsZeHo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=SACWAuanU9M:UadXvnsZeHo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/SACWAuanU9M" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-15T20:21:00.290-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/03/zoom-ctrl-mouse-wheel.html</feedburner:origLink></item><item><title>Perspective on Program Manager</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/QONH6EftoAg/perspective-on-program-manager.html</link><category>Personal</category><author>noreply@blogger.com (The Moth)</author><pubDate>Tue, 10 Mar 2009 12:21:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-1156673709151172754</guid><description>Apologies if you were expecting me to share my own insights (beyond what I &lt;a href="http://www.danielmoth.com/Blog/2008/08/program-manager-role-at-microsoft.html"&gt;already did last year&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Instead I encourage you to read &lt;a href="http://www.joelonsoftware.com/items/2009/03/09.html"&gt;Joel's take&lt;/a&gt; (slightly biased towards junior PMs, towards consumer product PM and towards the early stages of the project lifecycle).&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-1156673709151172754?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=QONH6EftoAg:TNYJV38s2IQ: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=QONH6EftoAg:TNYJV38s2IQ: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=QONH6EftoAg:TNYJV38s2IQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=QONH6EftoAg:TNYJV38s2IQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=QONH6EftoAg:TNYJV38s2IQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=QONH6EftoAg:TNYJV38s2IQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=QONH6EftoAg:TNYJV38s2IQ: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=QONH6EftoAg:TNYJV38s2IQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=QONH6EftoAg:TNYJV38s2IQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/QONH6EftoAg" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-03-10T12:21:12.490-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/03/perspective-on-program-manager.html</feedburner:origLink></item><item><title>Around 1500 geeks in Seattle for the MVP Summit 2009</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/uFm0qNys7wg/around-1500-geeks-in-seattle-for-mvp.html</link><category>Events</category><category>Personal</category><author>noreply@blogger.com (The Moth)</author><pubDate>Fri, 27 Feb 2009 15:39:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-3259270344401380595</guid><description>My last participation as an attendee was the &lt;a href="http://www.danielmoth.com/Blog/2005/09/in-seattle.html"&gt;MVP summit in 2005&lt;/a&gt; and 4 years later I'll be participating again but this time from the other side (was planning to do &lt;a href="http://www.danielmoth.com/Blog/2007/03/mvp-summit-2007.html"&gt;it in 2007&lt;/a&gt; but failed). There are many events to go to and I've narrowed it down to the following. If you read this blog and you are around, why not find me and buy me a beer? ;-)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Saturday &lt;/strong&gt;– &lt;a href="http://altnetseattle.pbwiki.com/"&gt;ALT.NET Seattle 2009&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sunday &lt;/strong&gt;– WSCTC 4th floor (welcome, keynote, reception), and then&lt;br /&gt;&lt;strong&gt;Sunday &lt;/strong&gt;– &lt;a href="http://mvpsummit2009.partywithpalermo.com/"&gt;Jillian's for evening geek party&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Monday &lt;/strong&gt;– Hanging out with Device MVPs: Lunch time + an evening reception, on Redmond campus.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tuesday &lt;/strong&gt;– presenting to C++ MVPs about parallel debugger, and then&lt;br /&gt;&lt;strong&gt;Tuesday &lt;/strong&gt;– presenting to Managed Languages MVPs about parallel debugger, and then&lt;br /&gt;&lt;strong&gt;Tuesday &lt;/strong&gt;– evening at the MVP Summit party.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wednesday &lt;/strong&gt;– probably at WSCTC (keynote, panel and general sessions + lunch).&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-3259270344401380595?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=uFm0qNys7wg:Ga2RdhWexYI: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=uFm0qNys7wg:Ga2RdhWexYI: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=uFm0qNys7wg:Ga2RdhWexYI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=uFm0qNys7wg:Ga2RdhWexYI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=uFm0qNys7wg:Ga2RdhWexYI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=uFm0qNys7wg:Ga2RdhWexYI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DanielMoth?a=uFm0qNys7wg:Ga2RdhWexYI: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=uFm0qNys7wg:Ga2RdhWexYI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DanielMoth?i=uFm0qNys7wg:Ga2RdhWexYI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/uFm0qNys7wg" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-02-27T15:39:43.698-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/02/around-1500-geeks-in-seattle-for-mvp.html</feedburner:origLink></item><item><title>Parallelism in Greek</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/f3U7UyQ01i8/parallelism-in-greek.html</link><category>Events</category><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Mon, 23 Feb 2009 16:53:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-419989785718952593</guid><description>During my working_from_Greece stint over the Christmas and New Year's period, I squeezed in presenting at an event in Athens. Parts of the recorded presentation are now available on the &lt;a href="http://msdn.microsoft.com/el-gr/aa570302.aspx"&gt;Greek MSDN pages&lt;/a&gt;. Scroll down the page to choose between the 2 presentations&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/el-gr/aa570302.aspx"&gt;&lt;img src="http://www.danielmoth.com/Blog/msdnhellasad.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The 1st presentation was &lt;a href="http://www.danielmoth.com/Blog/2009/02/why-care-about-parallelism-aka.html"&gt;this one&lt;/a&gt;. The 2nd presentation was a (interactive) Greek version of the code-heavy &lt;a href="http://www.danielmoth.com/Blog/2009/02/give-session-on-parallel-programming-or.html"&gt;Parallel Programming session&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally, for those of you physically living in Greece, there is a 2-page article/interview on parallel computing in &lt;a href="http://www.e-pcmag.gr/modules/pcmag0/index.php?id=130"&gt;February's PC Magazine&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://www.e-pcmag.gr/modules/pcmag0/index.php?id=130"&gt;&lt;img src="http://www.danielmoth.com/Blog/pcmagad.png" /&gt;&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-419989785718952593?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=xaJyAYZ5"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=pJxcVt7P"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=vLMfPblE"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=vLMfPblE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=IjzXEqpj"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=IjzXEqpj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=1t16Czz3"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=uZ0nwMON"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=uZ0nwMON" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/f3U7UyQ01i8" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-02-23T16:53:09.740-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/02/parallelism-in-greek.html</feedburner:origLink></item><item><title>Why Care About Parallelism aka The Inevitable Shift</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/GZpza057yUU/why-care-about-parallelism-aka.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Sun, 15 Feb 2009 21:56:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-5653190583287213953</guid><description>That was the title of a 45-minute (inc. questions) presentation I gave last December. It was a basic introduction to the manycore shift including what is parallelism and why software developers should care. The session ended by touching at a very high level on what Microsoft is doing in this space.&lt;br /&gt;&lt;br /&gt;It was slides only (well, there were 3 demo/sample apps shown but no code) and you can &lt;a href="http://www.danielmoth.com/Blog/ParallelAthens.zip"&gt;download the deck in a ZIP file&lt;/a&gt; (the slides are a montage from many other decks of other Microsoft employees).&lt;br /&gt;&lt;br /&gt;The basic flow has as follows&lt;br /&gt;&lt;strong&gt;slide 3&lt;/strong&gt;:  Understanding Moore's Law&lt;br /&gt;&lt;strong&gt;slide 4-7&lt;/strong&gt;:  Moore's law is still alive, but is not translated to higher frequencies. That is mainly due to the power wall, which at the end of the day means more heat than the CPU manufacturers can deal with&lt;br /&gt;&lt;strong&gt;slide 8&lt;/strong&gt;: So instead the manycore shift enters with CPU manufacturers adding more cores to the die rather than making a single one go faster. Predictions are for 100-core machines within 5 years (for the record, these are not &lt;em&gt;my&lt;/em&gt; predictions)&lt;br /&gt;&lt;strong&gt;slide 9&lt;/strong&gt;: For us software developers, to take advantage of the increased total horsepower of manycore machines (on the client/desktop) you must employ parallelism. No other magic bullet or automatic gain. It is naïve to think that we will not need the increased speed or that we don’t know what to do with it:&lt;br /&gt;&lt;strong&gt;a.&lt;/strong&gt;      We have been taking advantage (implicitly or explicitly) of increased CPU speeds over our entire existence. Why do we think we'll stop now?&lt;br /&gt;&lt;strong&gt;b.&lt;/strong&gt;      Every shift in the software industry (whether it is the move from console to GUI apps, or desktop to mobile apps or even the recent client side web programming advancements) has been partly possible due to being able to take advantage of higher processor speeds. Why will the next shift in computing (whatever that is) be different?&lt;br /&gt;&lt;strong&gt;slide 10&lt;/strong&gt;: DEMO the morphing application (same one I showed at Tech Ed EMEA)&lt;br /&gt;&lt;strong&gt;slide 11&lt;/strong&gt;: Important to note that not all of the additional cores will be as fast as today's CPUs – they will more likely be of lower frequency; so to get even the same output that we get from one core today, we'll have to use parallelism to leverage more than one cores.&lt;br /&gt;&lt;strong&gt;slide 12&lt;/strong&gt;: Also important to note that it isn’t just Microsoft telling this story. Virtually every industry player is predicting the same situation.&lt;br /&gt;&lt;strong&gt;slide 13&lt;/strong&gt;: So the question is: what do I do with all those cores? Besides the same goals that good multithreading has (responsiveness, scalability and latency-awareness) parallelism takes it to the next level.&lt;br /&gt;&lt;strong&gt;slide 14 to 15&lt;/strong&gt;: Obey Amdahl's Law: do the same thing, but genuinely faster&lt;br /&gt;&lt;strong&gt;slide 16&lt;/strong&gt;: Obey Gustafson's law: do more stuff in the same time!&lt;br /&gt;&lt;strong&gt;slide 17&lt;/strong&gt;: Use speculative execution.&lt;br /&gt;&lt;strong&gt;slide 18&lt;/strong&gt;: DEMO the RayTracer application (same one I showed at PDC)&lt;br /&gt;&lt;strong&gt;slide 19&lt;/strong&gt;: "OK, I am sold. I must use parallelism. Show me how"… "Well, actually it is darn hard today if you try and use traditional multithreading to achieve parallelism"&lt;br /&gt;&lt;strong&gt;slide 20&lt;/strong&gt;: Microsoft established the Parallel Computing Initiative to address the goals/symptoms above&lt;br /&gt;&lt;strong&gt;slide 21&lt;/strong&gt;: Not the only team in Microsoft thinking about this problem. Attacking it from many angles.&lt;br /&gt;&lt;strong&gt;slide 22&lt;/strong&gt;: DEMO Baby Names application&lt;br /&gt;&lt;strong&gt;slide 23&lt;/strong&gt;: I bet you want to see some code… Read the Summary slide, and let's &lt;a href="http://www.danielmoth.com/Blog/2009/02/give-session-on-parallel-programming-or.html"&gt;move on to the next session&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-5653190583287213953?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=EldvyZ5U"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=qzYNEEL6"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=wm3UE1rV"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=wm3UE1rV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=NLXB4ygT"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=NLXB4ygT" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=nTloKpN9"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=MP1AYC4d"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=MP1AYC4d" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/GZpza057yUU" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-02-15T21:56:00.321-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/02/why-care-about-parallelism-aka.html</feedburner:origLink></item><item><title>Give a session on Parallel Programming (or just learn from it)</title><link>http://feedproxy.google.com/~r/DanielMoth/~3/KtfofqDGDmk/give-session-on-parallel-programming-or.html</link><category>ParallelComputing</category><author>noreply@blogger.com (The Moth)</author><pubDate>Thu, 05 Feb 2009 14:15:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7744200.post-3228508164332242008</guid><description>Last year gave the same session on Parallel Programming twice: at PDC2008 and Tech Ed EMEA 2008 (identical content). The fact that those sessions ended up on the #3 and #2 spots in the ranking order, speaks to the fact that people are really interested and accepting of this topic. It is also testament that the technology Microsoft is releasing with Visual Studio 2010 is very compelling. So I invite you here to take my content and reuse it in your local regions!&lt;br /&gt;&lt;br /&gt;The recordings (and slides) of the two identical sessions are available so you can learn by watching them: links from &lt;a href="http://www.danielmoth.com/Blog/2008/10/catch-parallel-programming-in-net-40.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.danielmoth.com/Blog/2008/11/parallel-programming-session-from-tech.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have also captured the session content on this blog:&lt;br /&gt;&lt;br /&gt;1.      Briefly introduce the &lt;a href="http://www.danielmoth.com/Blog/2008/07/moores-law-in-relation-to-manycore.html"&gt;manycore shift&lt;/a&gt; and clarify the &lt;a href="http://www.danielmoth.com/Blog/2008/10/parallel-extensions-are-part-of-net.html"&gt;release vehicle for Parallel Extensions&lt;/a&gt;.&lt;br /&gt;2.      Run one of the &lt;a href="http://channel9.msdn.com/posts/DanielMoth/Intro-to-Parallel-Extensions-to-the-NET-Framework/"&gt;samples that ship with Parallel Extensions&lt;/a&gt; to demonstrate the end user benefit (no code shown at this point).&lt;br /&gt;3.      Clarify the potential &lt;a href="http://www.danielmoth.com/Blog/2008/11/threadingconcurrency-vs-parallelism.html"&gt;difference between parallelism and multi-threading&lt;/a&gt;.&lt;br /&gt;4.      DEMOnstrate &lt;a href="http://www.danielmoth.com/Blog/2008/11/fine-grained-parallelism.html"&gt;Fine Grained Parallelism&lt;/a&gt; via the &lt;a href="http://www.danielmoth.com/Blog/2008/12/introducing-new-task-type.html"&gt;Task-based Programming model&lt;/a&gt; built on the &lt;a href="http://www.danielmoth.com/Blog/2008/11/new-and-improved-clr-4-thread-pool.html"&gt;new ThreadPool&lt;/a&gt;.&lt;br /&gt;5.      DEMOnstrate &lt;a href="http://www.danielmoth.com/Blog/2008/11/debugging-parallel-applications-with.html"&gt;Debugging Parallel Applications&lt;/a&gt;.&lt;br /&gt;6.      DEMOnstrate Structured Parallelism via the static Parallel class, e.g. &lt;a href="http://www.danielmoth.com/Blog/2009/01/parallelising-loops-in-net-4.html"&gt;Imperative Data Parallelism&lt;/a&gt;.&lt;br /&gt;7.      DEMOnstrate Declarative Data Parallelism: &lt;a href="http://www.danielmoth.com/Blog/2009/01/plinq.html"&gt;PLINQ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Many conferences/user groups are interested in technical sessions on &lt;strong&gt;Parallel Programming in .NET 4.0 and Visual Studio 2010&lt;/strong&gt; so use the links above to learn and share.&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-3228508164332242008?l=www.danielmoth.com%2FBlog%2Findex.htm'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=bNfs14Th"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=sb7sC3Vq"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=J43O0jEi"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=J43O0jEi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=tLuvsoEu"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=tLuvsoEu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=cDXSmho3"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/DanielMoth?a=dIciVTXq"&gt;&lt;img src="http://feeds.feedburner.com/~f/DanielMoth?i=dIciVTXq" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DanielMoth/~4/KtfofqDGDmk" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-02-05T14:15:00.695-08: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/02/give-session-on-parallel-programming-or.html</feedburner:origLink></item></channel></rss>
