<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Bug Babble : Babble</title><link>http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx</link><description>Tags: Babble</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Simple VS Addin (updated)</title><link>http://blogs.msdn.com/stevejs/archive/2005/12/21/506477.aspx</link><pubDate>Wed, 21 Dec 2005 22:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:506477</guid><dc:creator>SteveJS</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/506477.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=506477</wfw:commentRss><description>&lt;DIV class=Section1&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;Back during the PDC for Whidbey&amp;nbsp;I wrote a post about &lt;a href="http://blogs.msdn.com/stevejs/archive/2004/01/22/61901.aspx"&gt;Creating a Simple Addin&lt;/A&gt;.&amp;nbsp; Recently I was looking to update it and found a horrible bug in it.&amp;nbsp; First, here is the corrected code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class=Section1&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class=Section1&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; OnConnection(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; application, &lt;SPAN style="COLOR: teal"&gt;ext_ConnectMode&lt;/SPAN&gt; connectMode, &lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; addInInst, &lt;SPAN style="COLOR: blue"&gt;ref&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;Array&lt;/SPAN&gt; custom)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;_applicationObject = (&lt;SPAN style="COLOR: teal"&gt;DTE2&lt;/SPAN&gt;)application;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _addInInstance = (&lt;SPAN style="COLOR: teal"&gt;AddIn&lt;/SPAN&gt;)addInInst;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _debuggerEvents = _applicationObject.Events.DebuggerEvents;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _debuggerEvents.OnEnterBreakMode += &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;_dispDebuggerEvents_OnEnterBreakModeEventHandler&lt;/SPAN&gt;(DebuggerEvents_OnEnterBreakMode);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class=Section1&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;DebuggerEvents&lt;/SPAN&gt; _debuggerEvents;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;private&lt;/SPAN&gt; System.Collections.Generic.&lt;SPAN style="COLOR: teal"&gt;Queue&lt;/SPAN&gt;&amp;lt;&lt;SPAN style="COLOR: teal"&gt;EditPoint&lt;/SPAN&gt;&amp;gt; epQ = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; System.Collections.Generic.&lt;SPAN style="COLOR: teal"&gt;Queue&lt;/SPAN&gt;&amp;lt;&lt;SPAN style="COLOR: teal"&gt;EditPoint&lt;/SPAN&gt;&amp;gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; DebuggerEvents_OnEnterBreakMode(&lt;SPAN style="COLOR: teal"&gt;dbgEventReason&lt;/SPAN&gt; Reason, &lt;SPAN style="COLOR: blue"&gt;ref&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;dbgExecutionAction&lt;/SPAN&gt; ExecutionAction)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: teal"&gt;TextDocument&lt;/SPAN&gt; td = (&lt;SPAN style="COLOR: teal"&gt;TextDocument&lt;/SPAN&gt;) _applicationObject.ActiveDocument.Object(&lt;SPAN style="COLOR: maroon"&gt;"TextDocument"&lt;/SPAN&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: teal"&gt;EditPoint&lt;/SPAN&gt; ep = td.Selection.ActivePoint.CreateEditPoint();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;ep.SetBookmark();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;epQ.Enqueue(ep);&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="COLOR: blue"&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;if&lt;/SPAN&gt; (epQ.Count &amp;gt; 5)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; epQ.Dequeue().ClearBookmark();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/DIV&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;}&lt;/SPAN&gt;&lt;BR&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;I've changed a couple of things.&amp;nbsp;&amp;nbsp;I now create the Editpoint first and use it to set the bookmark rather than setting the bookmark on the selection then creating an editpoint.&amp;nbsp; This removes that&amp;nbsp;possibility&amp;nbsp;that I&amp;nbsp;save a&amp;nbsp;different place then where&amp;nbsp;I set the bookmark.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;The&amp;nbsp;more important issue is I keep a member variable for _applicationObject.Events.DebuggerEvents.&amp;nbsp; Why?&amp;nbsp; Because it keeps&amp;nbsp;that&amp;nbsp;event provider&amp;nbsp;from getting garbage collected.&amp;nbsp; I had made the assumption that the lifetime of _applicationObject.Events.DebuggerEvents would be strictly tied to the DTE object, and managed by automation.&amp;nbsp; That is not the case.&amp;nbsp; The way this bug manifests is pretty ugly since the Addin works as expected for a while,&amp;nbsp;until the Event Provider (_applicationObject.Events.DebuggerEvents) is collected and Finalized, at which point the events just stop coming.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;I wasn't sure if this was by design or not.&amp;nbsp; However,&amp;nbsp;I found this KB article: &lt;A href="http://support.microsoft.com/default.aspx?scid=kb;en-us;555430"&gt;Visual Studio .Net events being disconnected from add-in&lt;/A&gt;,&amp;nbsp;so I am going with it being&amp;nbsp;by design.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=506477" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Bugs/default.aspx">Bugs</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Naming threads in Win32 And .Net</title><link>http://blogs.msdn.com/stevejs/archive/2005/12/19/505815.aspx</link><pubDate>Tue, 20 Dec 2005 08:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:505815</guid><dc:creator>SteveJS</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/505815.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=505815</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;When you are debugging an application with multiple threads it can be handy to have a better name than just the thread id.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is simple to do in managed code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There is a property on the Thread object that you can set.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is also possible to do this for native code. However, there is simply no way you will ever discover it unless someone points you to&amp;nbsp;the difficult to find docs.&amp;nbsp; I knew about&amp;nbsp;the feature&amp;nbsp;and still missed&amp;nbsp;the docs&amp;nbsp;the first time I looked for them!&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;For completness, here is the managed version: &lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/vsdebug/html/vxconSettingThreadNameManaged.asp?frame=true"&gt;Setting a Thread Name (Managed)&lt;/A&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The more interesting one is the native version: &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/vxtsksettingthreadname.asp"&gt;Setting a Thread Name (Unmanaged)&lt;/A&gt;&amp;nbsp;(There is a typo in the documentation's code; 'except' should be '__except'. I've included a corrected copy below.)&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;The native&amp;nbsp;method of setting the thread name&amp;nbsp;is&amp;nbsp;implemented by raising an SEH exception that is continued.&amp;nbsp; If you go to the docs on RaiseException you'll see&amp;nbsp;part of the reason for this strange mechanism.&amp;nbsp; An attached native debugger will get a 'first chance' notification of the exception.&amp;nbsp; Raising an exception is precisely what you need to do to get the native debugger's attention.&amp;nbsp;The one raised here (0x406D1388) is recognized by VS (and WinDbg).&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Note: If anything in your process installs a vectored exception handler, that handler will not&amp;nbsp;be called on this exception code&amp;nbsp;when the&amp;nbsp;VS debugger is attached.&amp;nbsp; The VS debugger always&amp;nbsp;handles this exception code and continues execution,&amp;nbsp;preventing any further handlers.&amp;nbsp;&amp;nbsp;In WinDbg you can go to Debug/Event Filters and set the "Visual C++&amp;nbsp;exception" to be disabled.&amp;nbsp;&amp;nbsp;With that setting,&amp;nbsp;your vectored exception handler will get a shot at 0x406D1388 while WinDbg is debugging it.&lt;/P&gt;&lt;PRE class=code&gt;//
// Usage: SetThreadName (-1, "MainThread");
//
typedef struct tagTHREADNAME_INFO
{
   DWORD dwType; // must be 0x1000
   LPCSTR szName; // pointer to name (in user addr space)
   DWORD dwThreadID; // thread ID (-1=caller thread)
   DWORD dwFlags; // reserved for future use, must be zero
} THREADNAME_INFO;

void SetThreadName( DWORD dwThreadID, LPCSTR szThreadName)
{
   THREADNAME_INFO info;
   info.dwType = 0x1000;
   info.szName = szThreadName;
   info.dwThreadID = dwThreadID;
   info.dwFlags = 0;

   __try
   {
      RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD), (DWORD*)&amp;amp;info );
   }
   __except(EXCEPTION_CONTINUE_EXECUTION)
   {
   }
}&lt;/PRE&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=505815" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Bugs/default.aspx">Bugs</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>FuncEvil, the Clipboard, and Deadlocks</title><link>http://blogs.msdn.com/stevejs/archive/2005/12/08/501939.aspx</link><pubDate>Fri, 09 Dec 2005 10:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:501939</guid><dc:creator>SteveJS</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/501939.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=501939</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;Mike Stall has a great post that, for a debugger dev, is the moral equivalent of sticking a fork in a toaster.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The basic problem he addresses is that once you are stopped in the debugger the UI for your application will no longer paint.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;What if you need to see something on that UI? &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;If you like to live on the edge, Mike’s &lt;a href="http://blogs.msdn.com/jmstall/archive/2005/12/07/funceval_message_pump.aspx"&gt;Evil trick to render UI when stopped at a breakpoint&lt;/A&gt; is the answer for you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Unfortunately, you need to be stopped on the UI thread for it to work.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Pumping messages on another thread will not unblock the UI to paint.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Even more unfortunate is that switching threads in the debugger won’t help.&amp;nbsp;&amp;nbsp;Function evaluation when debugging managed code requires you to be at a reasonable point on the thread. It is very unlikely you will randomly be at such a point, unless you stopped on the thread in question.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can see the result I got when I stop on another thread, then switched to the UI thread:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;?System.Windows.Forms.MessageBox.Show("pump")&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;Cannot evaluate expression because a thread is stopped at a point where garbage collection is impossible, possibly because the code is optimized.”&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Now don’t let this dissuade you from how useful this very, very, very dangerous trick can be.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Sometimes playing with fire is useful.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Not rendering the UI is only one problem that can happen due to the debugger stopping a process. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;A really bad problem that lack of message pumping can cause is clipboard deadlock. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;The real problem is&amp;nbsp;&lt;/SPAN&gt;due to delayed rendering, which requires the app that copied to the clipboard to be live.&amp;nbsp; You can read about delayed rendering&amp;nbsp;on the MSDN &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/dataexchange/clipboard/clipboardoperations.asp"&gt;Clipboard Operations&lt;/A&gt; page.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The basic problem is that the application you are debugging owns the clipboard, and other apps need it to respond to messages to get the contents of the clipboard. You can see this by creating a trivial winform app with a button and a RichTextbox:&lt;/P&gt;
&lt;P&gt;
&lt;P&gt;&lt;A title="Photo Sharing" href="http://www.flickr.com/photos/41403334@N00/71710810/"&gt;&lt;IMG height=301 alt=TrivialWinForm src="http://static.flickr.com/35/71710810_c1a4882f5b_o.png" width=304&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(Note you need to use a RichTextBox here … a normal TextBox will actually copy the contents to the clipboard rather than using delayed rendering.)&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;First set a breakpoint in the button handler.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Then select the “Copy me at your own Risk!” text and copy it to the clipboard with Ctrl-C.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Now hit the button.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Nothing is wrong yet.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However if you go to any application and hit paste that application is now hung, and will remain so until you continue from the breakpoint.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you hit paste in the debugger you’ll deadlock that too without any way to continue from the bp.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Clipboard deadlock&amp;nbsp;has hit me few a times composing mail while stopped at a breakpoint.&amp;nbsp;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt; &lt;/SPAN&gt;Using the trick that Mike outlines does free&amp;nbsp;the applications&amp;nbsp;waiting for your winform app to provide the clipboard data. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;If you do not understand why func eval is evil I must end by pointing you to Mike's older post &lt;a href="http://blogs.msdn.com/jmstall/archive/2005/03/23/400794.aspx"&gt;Func-eval is evil&lt;/A&gt;, and GreggM's more recent&amp;nbsp;post &lt;A id=_ctl0__ctl0__ctl0__ctl0_RecentPosts__ctl0_postlist__ctl0_EntryItems__ctl0_PostTitle href="/greggm/archive/2005/11/18/494648.aspx"&gt;&lt;FONT color=#006bad&gt;Func eval and System.Windows.Forms.Form&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp; Func Eval is powerful, and with great power comes a bunch of power to shoot yourself in the foot.&amp;nbsp; Be careful using func eval.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=501939" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Bugs/default.aspx">Bugs</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Change Debugger behavior with Attributes</title><link>http://blogs.msdn.com/stevejs/archive/2005/12/03/499803.aspx</link><pubDate>Sun, 04 Dec 2005 00:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:499803</guid><dc:creator>SteveJS</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/499803.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=499803</wfw:commentRss><description>&lt;DIV class=Section1&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;Certain metadata attributes modify the stepping, breakpoint, and callstack behavior of the VS managed Debugger.&amp;nbsp; This is useful if you are creating an interpreter, language runtime, or a tool that modifies the code in a managed assembly.&amp;nbsp; There are three flavors of these attributes that affect execution control.&amp;nbsp; Each behaves slightly differently, and I always forget which does what, so I'm recording it here for my own reference as well.&amp;nbsp;&lt;/SPAN&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;The code below shows examples using all three attributes: DebuggerStepThrough, DebuggerHidden, and DebuggerNonUserCode.&amp;nbsp; The example also shows the hidden line directive.&amp;nbsp;&amp;nbsp;I've inlined the explanation as comments in the code so it can travel with the example.&amp;nbsp;&amp;nbsp;This general area of writing tools that interact with the debugger has been well explored on Mike Stall's blog:&lt;/SPAN&gt;&lt;BR&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;/SPAN&gt;&amp;nbsp;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a href="http://blogs.msdn.com/jmstall/archive/2005/06/19/FeeFee_SequencePoints.aspx"&gt;#line hidden and 0xFeeFee sequence points&lt;/A&gt;&lt;/SPAN&gt;&lt;BR&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a href="http://blogs.msdn.com/jmstall/archive/2004/12/31/344832.aspx"&gt;How can I debug Just My Code?&lt;/A&gt;&lt;/SPAN&gt;&lt;BR&gt;
&lt;P style="MARGIN: 0in 0in 0pt"&gt;&lt;a href="http://blogs.msdn.com/jmstall/archive/2005/07/27/state_machine_theory.aspx"&gt;Debug support for arbitrary state-machines&lt;/A&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;using&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; System;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// This example shows the use of the three debugger attributes&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// that modify the runtime behavior of the VS debugger.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// The motivating example is part of an AOP (Aspect Oriented Programming)&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// implemenatation.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// The concepts around AOP are pretty interesting, but for this&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// example it is sufficient to know that anything called a 'Thunk'&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// is something added by the tool that is of no interest to the user.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// The example code is what a weaver that uses C# as a backend could &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// send to the compiler to accomplish the hiding of &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// JoinPointThunks, and the calls to those thunks.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// Try stepping through this with this option on:&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// Tools/Options/Debugging/General/Enable Just My Code&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// Then try the same with the option off.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// You'll see that each attribute creates a slightly different end user&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// behavior and slightly different ease of debugging for yourself&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// when you need to debug the glue code you are hiding from the user.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: teal"&gt;DynamicallyAddedUserCode&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; bar()&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style="COLOR: maroon"&gt;"Hello advice\n"&lt;/SPAN&gt;);&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;};&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: teal"&gt;Weaver&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Diagnostics.&lt;SPAN style="COLOR: teal"&gt;DebuggerStepThrough&lt;/SPAN&gt;]&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; ExampleJoinPointThunk_withDebuggerStepThrough()&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Tools/Options/Debugging/Enable Just My Code ON:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//CALLSTACK view: Frame is viewable&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//BP: Will hit bp.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//STEPPING:&amp;nbsp; Will not stop inside due to a step.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// (Even from bp hit! Any step is a step out.)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Step in will land inside called methods.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Tools/Options/Debugging/Enable Just My Code OFF:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="COLOR: green"&gt;//CALLSTACK view: [External Code] frame.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//&amp;nbsp;&amp;nbsp; Real frame is viewable by selecting 'Show External Code'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//&amp;nbsp;&amp;nbsp; in Callstack window.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//BP: No bp will set or hit. A warning is provided, &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//STEPPING: Will not stop inside method (step in or step out)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//&amp;nbsp; A step in will land in called methods.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;DynamicallyAddedUserCode&lt;/SPAN&gt;.bar();&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; thisGoesTo = 11;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Diagnostics.&lt;SPAN style="COLOR: teal"&gt;DebuggerHidden&lt;/SPAN&gt;]&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; ExampleJoinPointThunk_withDebuggerHidden()&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Tools/Options/Debugging/Enable Just My Code ON:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//CALLSTACK view: Frame is completely hidden.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//BP: A Bp will set with no error, but will not hit!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//stepping: A Step in will land in called methods.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Tools/Options/Debugging/Enable Just My Code OFF:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//CALLSTACK view: Frame is completely hidden. (i.e. No [External Code])&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//BP:Warning provided, no bp will set or hit.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//STEPPING: Will not stop inside method (step in or step out)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//&amp;nbsp; A step in will land in called methods.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;DynamicallyAddedUserCode&lt;/SPAN&gt;.bar();&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; thisGoesTo = 11;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Diagnostics.&lt;SPAN style="COLOR: teal"&gt;DebuggerNonUserCode&lt;/SPAN&gt;]&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; ExampleJointPointThunk_withDebuggerNonUserCode()&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// [Same as normal code.]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Tools/Options/Debugging/Enable Just My Code ON: &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//CALLSTACK view: &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;Normal&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt; view, callstack is viewable.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//BP: A bp will set and hit.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//STEPPING: Step as normal.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// [Same as Debugger StepThrough]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Tools/Options/Debugging/Enable Just My Code OFF&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//CALLSTACK view:[ External Code] frame.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//&amp;nbsp;&amp;nbsp; Real frame is viewable by selecting 'Show External Code'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//&amp;nbsp;&amp;nbsp; in Callstack window.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//BP: Warning provided, no bp will set or hit.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//STEPPING:&amp;nbsp; Will not stop inside method (step in or step out)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//&amp;nbsp; A step in will land in called methods.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//_________________________________________________________________&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;DynamicallyAddedUserCode&lt;/SPAN&gt;.bar();&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; thisGoesTo = 11;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;};&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;class&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; &lt;SPAN style="COLOR: teal"&gt;Program&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;{&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; foo()&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;#line&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; hidden&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//this emits a Sequence Point with line = 0xFeeFEE&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;//Imagine these hidden areas were added dynamically&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Weaver&lt;/SPAN&gt;.ExampleJoinPointThunk_withDebuggerStepThrough();&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;#line&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; default&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; theone = 1;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;#line&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; hidden&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Weaver&lt;/SPAN&gt;.ExampleJoinPointThunk_withDebuggerHidden();&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;#line&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; default&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; volume = 11;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;#line&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; hidden&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: teal"&gt;Weaver&lt;/SPAN&gt;.ExampleJointPointThunk_withDebuggerNonUserCode();&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;#line&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt; default&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; answer = 42;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;Main&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;[] args)&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foo();&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;}&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// The #line hidden directive places 0xFeeFee sequence point in the line &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// information. The 0xFeeFee sequence point tells the debugger to continue&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// stepping.&amp;nbsp; It is not necessary unless a step can end at the location.&amp;nbsp; &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// If you are writing a compiler and emitting your own debug information,&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// then it is often possible to simply omit the line info for code that would&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// be marked hidden. If you decompile the above code with ILDasm /Linenum you&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// will see an example of that strategy.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// However there are cases where it is important to use the a hidden sequence&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// point. Any place where a branch instruction lands must use a hidden sequence&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// point if you do not want the debugger to stop there.&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;//&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// The motivating example for this is having all exit points from a Try block&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// branch to a single leave instruction.&amp;nbsp; If you produce that type of codegen&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;// you will need to use 0xFeeFee to create reasonable stepping behavior.&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;P class=Section1 style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: 'Courier New'"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=499803" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Bugs/default.aspx">Bugs</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Netmodules: Sort of like a lib</title><link>http://blogs.msdn.com/stevejs/archive/2005/11/27/497333.aspx</link><pubDate>Mon, 28 Nov 2005 06:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:497333</guid><dc:creator>SteveJS</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/497333.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=497333</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;I first ran into netmodules before VS 2002 was shipped. The netmodule gave me precisely what I asked for, without actually solving my problem.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I wanted to use multiple languages (C#, and C++ /clr)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;in a single assembly.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It turns out a single assembly can be multi-module.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; Multi-module means a single .Net assembly is spread across multiple win32 dlls. &amp;nbsp;&lt;/SPAN&gt;What I really wanted was a single module&amp;nbsp;assembly written in multiple languages. Netmodules couldn't solve my problem back then, but with the VS 2005&amp;nbsp;C++ linker&amp;nbsp;they can now.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Check out JuFeng's articles for some more in depth coverage, and an explanation why you might want a multi-module assembly:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;a href="http://blogs.msdn.com/junfeng/archive/2004/07/15/183813.aspx"&gt;MultiModule Assemblies&lt;/A&gt; &lt;/P&gt;
&lt;P style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;a href="http://blogs.msdn.com/junfeng/archive/2005/02/12/371683.aspx"&gt;Netmodule vs. Assembly&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Since JuFeng's examples didn't show how to create debug info I thought I'd make an updated example here.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Here's a quick example with a multi-module assembly:&lt;/P&gt;
&lt;P&gt;&lt;A title="Photo Sharing" href="http://www.flickr.com/photos/41403334@N00/67750045/"&gt;&lt;IMG height=195 alt=a_source src="http://static.flickr.com/26/67750045_149369f8c9_o.png" width=273&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;A title="Photo Sharing" href="http://www.flickr.com/photos/41403334@N00/67750046/"&gt;&lt;IMG height=105 alt=b_source src="http://static.flickr.com/34/67750046_ce07feeb38_o.png" width=238&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;From the Visual Studio&amp;nbsp; 2005 Command Prompt:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;C:\blog\linkexample&amp;gt;vbc /target:module /debug+ b.vb&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;C:\blog\linkexample&amp;gt;csc /debug+ /addmodule:b.netmodule a.cs&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;C:\blog\linkexample&amp;gt;devenv /debugexe a.exe&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Check out the modules window:&lt;/P&gt;
&lt;P&gt;&lt;A title="Photo Sharing" href="http://www.flickr.com/photos/41403334@N00/67750048/"&gt;&lt;IMG height=74 alt=multi_module src="http://static.flickr.com/26/67750048_6436579988_o.png" width=709&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;And the callstack window:&lt;/P&gt;
&lt;P&gt;&lt;A title="Photo Sharing" href="http://www.flickr.com/photos/41403334@N00/67755934/"&gt;&lt;IMG height=88 alt=multi2_callstack src="http://static.flickr.com/29/67755934_08261ecb38_o.png" width=294&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;To get a single file assembly I'll need to recompile the cs file into a netmodule then use the c++ linker.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;C:\blog\linkexample&amp;gt;csc /addmodule:b.netmodule /target:module /debug+ a.cs&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;C:\blog\linkexample&amp;gt;link /entry:fooCS.Main /out:theone.exe /subsystem:console /debug a.netmodule b.netmodule&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;C:\blog\linkexample&amp;gt;devenv /debugexe theone.exe&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Now check out the modules window:&lt;/P&gt;
&lt;P&gt;&lt;A title="Photo Sharing" href="http://www.flickr.com/photos/41403334@N00/67750050/"&gt;&lt;IMG height=54 alt=single_module src="http://static.flickr.com/34/67750050_5b72c149be_o.png" width=730&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;And the callstack window:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A title="Photo Sharing" href="http://www.flickr.com/photos/41403334@N00/67755935/"&gt;&lt;IMG height=79 alt=single2_callstack src="http://static.flickr.com/32/67755935_9777ee3976_o.png" width=321&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=497333" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Bugs/default.aspx">Bugs</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Post Mortems</title><link>http://blogs.msdn.com/stevejs/archive/2005/11/10/491389.aspx</link><pubDate>Thu, 10 Nov 2005 20:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:491389</guid><dc:creator>SteveJS</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/491389.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=491389</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;I won the guess the murderer contest.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Shai and I compete to guess who the real murderer is on Law and Order Criminal Intent.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Last night we watched Sunday's two hour show.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It's a toss up who wins, but one of us always gets it by two thirds of the way through.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That's the point where the amount of time left means the current suspect can't be the real murderer, and typically there was only one other possible suspect.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The more unlikely the suspect, the higher our certainty.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That just makes for better TV.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;This mechanism of diagnosis is not very helpful for figuring out real world problems.&amp;nbsp; There is no way to use a Tivo to tell you everything will be resolved in the next 20 minutes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It does however have something in common with Post Mortems.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;A Post Mortem is where the team shines the bright light of 20/20 hindsight on all the decisions that were hard.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This perspective is much like having the extra knowledge that everything&amp;nbsp;will be wrapped up in 20 minutes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Things that were unknowns are now knowns.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Those tough calls that could have caused problems, yet no problems appeared: obviously good decisions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Those tough calls that did cause problems: obviously we shouldn't do that again … duh!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Unfortunately these fantastic insights are entirely informed via knowledge&amp;nbsp;not present at the time the decision was made.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I'm certainly not saying that Post mortems are useless!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It's just that after you've categorized the bad decisions and the good decisions you still need to synthesize some useful advice that does not require precognition to use properly.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;On the other hand, making decisions based on what makes for good TV sounds like it could be fun.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=491389" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Perf Awareness is not Premature </title><link>http://blogs.msdn.com/stevejs/archive/2005/11/06/489644.aspx</link><pubDate>Mon, 07 Nov 2005 02:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:489644</guid><dc:creator>SteveJS</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/489644.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=489644</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;I've&amp;nbsp;found myself adding a timer to each of the unit test frameworks I use so I can see how long my tests take.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I am not trying to do anything complex.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I just want to be aware of&amp;nbsp;the perf.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The same way pass and fail are visible, 1ms vs 90ms is visible. &lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Premature optimization rightly has a bad rep.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Creating&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;complex code where performance doesn't matter is a bad tradeoff.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;That's not what I'm doing here.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I&amp;nbsp;am not trying to code for perf.&amp;nbsp; I'm trying to be perf aware.&amp;nbsp; If&amp;nbsp;the test&amp;nbsp;is fast I'm certainly not going to use that as an excuse to&amp;nbsp;start changing code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If it's slow, I know about it and I won't check in something that kills perf.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; Once you have a number, t&lt;/SPAN&gt;he real question is: How do you judge if it is&amp;nbsp;fast or slow?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; The answer is a perf budget.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Rico Mariani has a great &lt;a href="http://blogs.msdn.com/ricom/archive/2003/12/12/43245.aspx"&gt;Designing for Performance&lt;/A&gt;&amp;nbsp;post where he talks about&amp;nbsp;using Perf budgets.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;In the absence of a perf budget, spend your time getting a perf budget rather than mucking about with code.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Once you have perf budgets, being aware of resource consumption makes it easier to see problems earlier.&amp;nbsp; A perf problem is a bug.&amp;nbsp; Fixing a&amp;nbsp;bug before it gets into the source tree is always a good idea.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=489644" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Bugs/default.aspx">Bugs</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Tabs vs Spaces</title><link>http://blogs.msdn.com/stevejs/archive/2005/10/30/487102.aspx</link><pubDate>Mon, 31 Oct 2005 03:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:487102</guid><dc:creator>SteveJS</dc:creator><slash:comments>15</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/487102.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=487102</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Of course, there is only one answer to whether tabs&amp;nbsp;should be&amp;nbsp;allowed in a source file.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The utility of one is just so obvious I'll simply avoid commenting on it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;:-)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;If&amp;nbsp;you must&amp;nbsp;wander from sources written with one convention to those written in another, you should definitely set Visual Studio (or whatever editor you use) to show whitespace as visible.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can change this in VS by going to Edit/Advanced/View White Space. &lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;I also change the default color for visible whitespace to silver.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;Silver&lt;/SPAN&gt; on a white background&amp;nbsp;is unobtrusive, yet noticeable when there is inconsistency. &lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;(Next time, I'll go into whether Big Endian or Little Endian byte ordering is better. :-)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=487102" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>More hours in the day</title><link>http://blogs.msdn.com/stevejs/archive/2005/10/20/483107.aspx</link><pubDate>Thu, 20 Oct 2005 19:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:483107</guid><dc:creator>SteveJS</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/483107.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=483107</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;In the summer of '94 I sketched a design for my ideal&amp;nbsp;'mp3' player.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;I didn't spec the compression format.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If I had, it would have been called a &lt;A href="http://en.wikipedia.org/wiki/Mp3 "&gt;'bit' player&lt;/A&gt;&amp;nbsp;back then.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;I wanted a walkman replacement.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, the feature I&amp;nbsp;most craved was understandable fast play, and rewind.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;My motive was to record all my lectures for a day, then listen to them later in fast play, thus&amp;nbsp;creating more hours in my day.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;In &lt;A href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-111Introductory-Digital-Systems-LaboratoryFall2002/CourseHome/index.htm"&gt;'Digital Death Lab' &lt;/A&gt;class, my lab partner, Gio, and I had implemented&amp;nbsp;fast play as&amp;nbsp;our final project. &amp;nbsp;Maintaining pitch is the hard part, you can toss pauses between words, but you can't just toss samples without making&amp;nbsp;it sound like &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/B0000C0FKK/102-2363746-4474537?v=glance"&gt;'A Very Special&amp;nbsp;Chipmunks&amp;nbsp;Physics Lecture'&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;I&amp;nbsp;see that&amp;nbsp;&lt;/SPAN&gt;Windows media player 10 has fast play.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Does anyone know if mobile products expose it?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Do any mp3 players&amp;nbsp;solve my&amp;nbsp;'more hours in the day scenario' for a mobile device?&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=483107" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Login fun</title><link>http://blogs.msdn.com/stevejs/archive/2005/10/17/481908.aspx</link><pubDate>Mon, 17 Oct 2005 19:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:481908</guid><dc:creator>SteveJS</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/481908.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=481908</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="COLOR: black"&gt;Jeff Atwood argues that the Login dialog should infer the&amp;nbsp;username from the password: &lt;/SPAN&gt;&lt;A href="http://www.codinghorror.com/blog/archives/000413.html"&gt;&lt;SPAN style="COLOR: blue"&gt;http://www.codinghorror.com/blog/archives/000413.html&lt;/SPAN&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;That reminded me that many user's of XP home don't have a password, which is even simpler.&amp;nbsp;&lt;SPAN style="COLOR: black"&gt;If you are cringing at the thought of a blank password; Uncringe. The blank password is better than you think.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;By default, an XP account with no password does not allow remote login.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;See &lt;/SPAN&gt;&lt;a href="http://blogs.msdn.com/aaron_margosis/archive/2004/6/17.aspx"&gt;&lt;SPAN style="COLOR: blue"&gt;http://blogs.msdn.com/aaron_margosis/archive/2004/6/17.aspx&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style="COLOR: black"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;for details.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="COLOR: black"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=481908" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Full Impact Dance Nostalgia</title><link>http://blogs.msdn.com/stevejs/archive/2005/10/15/481453.aspx</link><pubDate>Sat, 15 Oct 2005 22:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:481453</guid><dc:creator>SteveJS</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/481453.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=481453</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Shai is an artist in crunch mode, so I was a lone bachelor at the Dance Underground last night.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Lindy Hop is my Performance-Art-Sport relaxation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Simple basics with a tentative newcomer, or stanzas of movement with a confident pro, are a joy after a long separation.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Back in the day, dancing five to six nights a week, I would&amp;nbsp;fall into a dance rut.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Along with other drones of dance I would shuffle into a room with Steven Mitchell to learn two things: I was far from as good as I thought, and yes there is an another horizon to explore.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Steven's workshops are cathartic.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;He tears you down and remakes you.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You would fall to a depth of dispair during the middle of the workshop.&amp;nbsp; Can I dance at all?&amp;nbsp;&amp;nbsp;But by the end you were a toddler &lt;A href="http://www.dreamwvr.com/diode_on.htm"&gt;Timothy Leary&lt;/A&gt; jumped up on sugar, paragliding to the summit of a Caucasus mountain ecstatic to &lt;A href="http://www.warrenmiller.com.au/2005Images.htm"&gt;Warren Miller&lt;/A&gt; your way toward&amp;nbsp;an all night &lt;A href="http://www.emeraldcityblues.com"&gt;Blues party&lt;/A&gt;.&amp;nbsp; One workshop would reveal a path to movement sharper than &lt;A href="http://en.wikipedia.org/wiki/Dorothy_Parker"&gt;Dorothy Parker.&lt;/A&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Another would take your black and white view of connection, and not just add color, but transform it to a full motion &lt;A href="http://en.wikipedia.org/wiki/Baz_Luhrmann"&gt;Baz Luhrmann&lt;/A&gt; extravaganza in three dimensions with sea spray and strobe lights.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;The secret&amp;nbsp;was not&amp;nbsp;teaching you&amp;nbsp;something you didn't know.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It was doing the most basic parts of what you know, differently and better.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The despair felt midway was for a&amp;nbsp;loss of grace.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A stroll was now a stumble. Steven wants you to stroll differently.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;By the end you didn't just forgive Steven for making you clumsy.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You adored him for teaching you to float.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Best of all: It would take months of effort before you actually got any of it right.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=481453" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>unread writer</title><link>http://blogs.msdn.com/stevejs/archive/2005/10/04/477203.aspx</link><pubDate>Wed, 05 Oct 2005 07:03:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:477203</guid><dc:creator>SteveJS</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/477203.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=477203</wfw:commentRss><description>&lt;P&gt;I've never read a book by my favorite writer.&amp;nbsp; Joss Whedon created the TV shows Buffy the Vampire Slayer, Angel, and Firefly.&amp;nbsp;&amp;nbsp;Now, he's created the movie Serenity.&amp;nbsp;&amp;nbsp;&lt;A href="http://www.hatrack.com/"&gt;Orson Scott Card&lt;/A&gt;&amp;nbsp;(also&amp;nbsp;not bad in the writing department)&amp;nbsp;says&amp;nbsp;&lt;A href="http://www.hatrack.com/osc/reviews/everything/2005-09-30-extra.shtml"&gt;Serenity is the best sci fi movie&amp;nbsp;he's seen&lt;/A&gt;.&amp;nbsp; I thought it was incredible, but for me, my Mom's reaction was the most surprising.&lt;/P&gt;
&lt;P&gt;My&amp;nbsp;Mom is no breathless sci fi&amp;nbsp;fan.&amp;nbsp;I wasn't sure she would like it at all.&amp;nbsp;She&amp;nbsp;said it reminded her of seeing&amp;nbsp;the original Star Wars.&amp;nbsp;&amp;nbsp;She doesn't think&amp;nbsp;it was like Star Wars. Instead it was remembering the feeling&amp;nbsp;of not knowing&amp;nbsp;what to expect and&amp;nbsp;finding something&amp;nbsp;new and great in a movie.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Shai and I didn't get to experience it that way.&amp;nbsp; We've watched the Firefly series on TV, then the entire series on DVD.&amp;nbsp; The&amp;nbsp;characters, and the writing were&amp;nbsp;familar to us, but the result&amp;nbsp;was still great.&amp;nbsp; If you haven't heard of Firefly go see this movie.&amp;nbsp; If you have, convince someone you wouldn't expect to be a fan to&amp;nbsp;go see it with you.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=477203" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Learning about Strengths</title><link>http://blogs.msdn.com/stevejs/archive/2005/09/24/473659.aspx</link><pubDate>Sun, 25 Sep 2005 04:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:473659</guid><dc:creator>SteveJS</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/473659.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=473659</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;I knew he wouldn't read them, so I asked to borrow the two management books on Andy's ottoman. Ironically the books explained why I borrowed them, as well as why Andy didn't want to read them.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;The books were &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/0684852861/102-5193139-0288101?v=glance"&gt;"First Break all the Rules"&lt;/A&gt;, and &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/0743201140/102-5193139-0288101?v=glance"&gt;"Now Discover your Strengths"&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The first book explains what makes for an effective team, how to measure that, and touches on 'strengths'.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The second book delves into details behind the 'strengths' idea.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I am not a manger. I don't plan on becoming one.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Why would I be interested in these books?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;It is one of my strengths.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Actually it's a couple of them: (links to strengths are too &lt;A href="http://gmj.gallup.com/book_center/strengthsfinder/"&gt;gallup's strengthsfinder website&lt;/A&gt;)&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;&lt;A href="http://gmj.gallup.com/content/content.asp?ci=694"&gt;Learner&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;, &lt;A href="http://gmj.gallup.com/content/content.asp?ci=658"&gt;Deliberative&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;, &lt;A href="http://gmj.gallup.com/content/content.asp?ci=688"&gt;Input&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;, &lt;A href="http://gmj.gallup.com/content/content.asp?ci=691"&gt;Intellection&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;, and &lt;A href="http://gmj.gallup.com/content/content.asp?ci=703"&gt;Relator&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;These five, in this order, are my strengths according to a very cool online quiz.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(You must buy the 2nd book to take the quiz. Yes, I think it is annoying too.)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;What do these mean?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You can find out in detail at &lt;A href="http://gmj.gallup.com/book_center/strengthsfinder/"&gt;gallup's website&lt;/A&gt;, but I'll go ahead and paraphrase here.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Learner&lt;/SPAN&gt; means I like the process of learning.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I like learning for it's own sake.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The usefulness of what I am learning does not matter.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I just enjoy the process.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;I am so much a learner it is actually difficult for me to comprehend that anyone wouldn't enjoy learning.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That is why not being a manager, and having no plans on becoming one had zero impact on my desire to pick up these books.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It also explains why I bought and read more than 11 guide books on art when visiting Florence.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Deliberative &lt;/SPAN&gt;means I am very serious and take a great deal of care in all my decisions and activities.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;This explains why, before I even broached the subject of borrowing them, I made sure Andy didn't want to read the books.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It also explains why writing this takes me forever.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Input &lt;/SPAN&gt;means I crave to know more, and likely collect and archive information.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;This is why I bought the books after having borrowed them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I was a little disappointed in this strength, because I think learner covers this.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However I did carry those 11 guide books from Florence back home to Seattle.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You could be a learner and simply use the library. I still have 5 bookshelves stacked 3 deep, after selling the books I didn't 'need' to Twice Sold Tales.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Intellection &lt;/SPAN&gt;means I like to think.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I am introspective and like intellectual discussions.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Do I get to have any strengths that don't mean the same thing?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Maybe this test would give me different results if I took it later? These questions might not be posed by 'Gary' the input learner who didn't have intellection.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That could be because the lack of intellection would mean it never crosses Gary's mind.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, it might be because Gary was lucky enough to get a top 5 strength that exposed a usefully distinct aspect of his personality.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;This strength explains picking up these books, rather than say &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/1585740365/102-5193139-0288101?v=glance"&gt;"Bass Wisdom"&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I am introspective, and I don't like fish.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These books provide a different perspective for looking at one of my favorite topics … me.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In the second book, I like the section on 'Managing people with X strength' more than the section that describes the strength.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;The 'how to manage' section gives greater insight into the practical effect of a strength.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Relator &lt;/SPAN&gt;means I enjoy working with people where I have close and strong relationships.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;This strength is about my dominate style of interacting with other people.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I work well in a small well knit team.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;I also bought the 2nd book for my wife Shai and had her take the test as well.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Shai is&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;A href="http://gmj.gallup.com/content/content.asp?ci=625"&gt;Activator&lt;/A&gt;, &lt;A href="http://gmj.gallup.com/content/content.asp?ci=697"&gt;Maximizer&lt;/A&gt;, &lt;A href="http://gmj.gallup.com/content/content.asp?ci=640"&gt;Command&lt;/A&gt;, &lt;A href="http://gmj.gallup.com/content/content.asp?ci=712"&gt;Self-assurance&lt;/A&gt;, and &lt;A href="http://gmj.gallup.com/content/content.asp?ci=700"&gt;Positivity&lt;/A&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Activator&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;means making things happen.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(Let's stop talking and do it.) (Such as selling my stuff on Ebay.)&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Maximizer&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;means enjoying the process of taking something that works and making it much, much better.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Command &lt;/SPAN&gt;means having presence.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;People strong in command take control and make decisions.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Self-assurance&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;means having confidence in your decisions.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Positivity &lt;/SPAN&gt;means having enthusiasm that is contagious.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Seeing the set of top 5 after taking the test is very strange.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I picked likely strengths for both Shai and I before taking the test. The real results were completely different from my predictions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The test did much better than I did.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It's almost spooky.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;The general advice is to capitalize on your strengths and attempt to avoid your weaknesses.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When you have a weakness you've identified, you should not attempt to 'train it' into a strength.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It's a weakness because you don't like doing it, not simply because you are bad it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Instead you should make your weakness irrelevant.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;As an example, if by some amazing stroke of bad luck I suddenly became a salesman, I'd find my relative clumsiness around meeting new people to be a major disadvantage.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I could 'learn' the skills necessary to meet people (particularly since learning is my top strength).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, after an amazing amount of effort I still would never be as good as someone who had &lt;A href="http://gmj.gallup.com/content/content.asp?ci=721"&gt;&lt;SPAN style="FONT-WEIGHT: bold"&gt;Woo&lt;/SPAN&gt; &lt;/A&gt;as their top strength.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;On the other hand, if in my fictional sales job was a position based on handling a small number of longtime clients with complicated and rapidly changing needs, it's likely I'd be much better than the salesman that had &lt;SPAN style="FONT-WEIGHT: bold"&gt;&lt;A href="http://gmj.gallup.com/content/content.asp?ci=721"&gt;Woo&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;as their top strength.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In that circumstance, the weakness is irrelevant.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Marcus Buckingham gives advice in the &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/0743261658/102-5193139-0288101?v=glance"&gt;"One thing you need to know"&lt;/A&gt; about how to accentuate your strengths and minimize your weaknesses without needing to actually identify them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The book has at least 3 "One things" (4 if you are married). The 4 topics are "How to be a great leader", "How to be a great manager", "How to have sustained individual success", and "How to have a happy marriage."&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The answer's are really good … so go buy the book.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;All three books give practical advice grounded in quite a bit of data.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The great thing about the strengths test is how specific it is.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;An ordered set of 5 out of 34 strengths is more like your personality dna.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, this does require you to piece together the implications of how your strengths inter-relate all on your own.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There are to many possible combinations for them to go into any depth about combinations.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;It's hard to explain just how effective these strengths are as a tool for introspection.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Over the course of writing this I have grabbed a bunch of books from my book shelf.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here are three: &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/0767903080/102-5193139-0288101?v=glance"&gt;"Sin and Syntax"&lt;/A&gt;, &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/0465067867/102-5193139-0288101?v=glance"&gt;"Where does the weirdness go?"&lt;/A&gt;, and &lt;A href="http://www.amazon.com/exec/obidos/tg/detail/-/0385510675/102-5193139-0288101?v=glance"&gt;"The Fiefdom syndrome"&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;All of these books (Input) were related to some rather esoteric point that I wanted to pull in (Intellection), but later decided was straying too much from the topic (Deliberative).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Strengths still need the skills to back them.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A skillful and deliberative writer will take the time to be concise.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;In my case being deliberative has me rearranging sentences into other sentences that are roughly just as bad.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I need to reread "Sin and Syntax" and practice getting my thoughts into print quickly. Then I can then take yet more time and be concise.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=473659" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>One week only!</title><link>http://blogs.msdn.com/stevejs/archive/2005/09/11/463839.aspx</link><pubDate>Mon, 12 Sep 2005 06:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:463839</guid><dc:creator>SteveJS</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/463839.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=463839</wfw:commentRss><description>&lt;P&gt;Eveyone seems to be leaving town for a week.&amp;nbsp; Many are claiming to be enroute to some &lt;A href="http://msdn.microsoft.com/events/pdc/"&gt;'PDC&lt;/A&gt;'&amp;nbsp;in LA.&amp;nbsp; Yet suspiciously, this so called&amp;nbsp;&lt;A href="http://pdcbloggers.net/"&gt;'PDC'&lt;/A&gt;&amp;nbsp;lasts precisely a week.&amp;nbsp; A very &lt;A href="http://www.newyorkmetro.com/fashion/fashionshows/index.html"&gt;fashionable week&lt;/A&gt;.&amp;nbsp; Is this just coincidence?&amp;nbsp;&amp;nbsp;Or am I&amp;nbsp;simply not in the loop?&lt;/P&gt;
&lt;P&gt;Actually, my&amp;nbsp;&lt;A href="http://mensfashion.about.com/"&gt;friend&lt;/A&gt;&amp;nbsp;Daniel writes for About.com and is&amp;nbsp;at &lt;A href="http://www.newyorkmetro.com/fashion/fashionshows/index.html"&gt;New York's Fashion week&lt;/A&gt;.&amp;nbsp; I believe GE has already considered the &lt;A href="http://www.ge.com/stories/en/13085.html"&gt;cross over potential &lt;/A&gt;for the crowds at these two conventions, but alas they are on separate coasts.&amp;nbsp; One must choose.&amp;nbsp; I know&amp;nbsp;many &lt;A href="http://msdn.microsoft.com/vcsharp/community/events/pdc05/default.aspx"&gt;people&lt;/A&gt; &lt;a href="http://blogs.msdn.com/ms_joc/"&gt;at&lt;/A&gt; &lt;a href="http://blogs.msdn.com/matt_pietrek/"&gt;work&lt;/A&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/habibh/"&gt;are&lt;/A&gt;&amp;nbsp;going to &lt;A href="http://msdn.microsoft.com/events/pdc"&gt;LA&lt;/A&gt;.&amp;nbsp; I can confidently say&amp;nbsp;I'd rather be going to the PDC than fashion week.&amp;nbsp;Those fashion week crowds can be&amp;nbsp;&lt;A href="http://extratv.warnerbros.com/dailynews/extra/0404/04_06c.html"&gt;dangerous&lt;/A&gt;!&amp;nbsp;&amp;nbsp;If you're lucky enough to be in LA for PDC, say hi to my work mates.&amp;nbsp; Every single one of them&amp;nbsp;is excited to talk to you.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=463839" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item><item><title>Parse Error!</title><link>http://blogs.msdn.com/stevejs/archive/2005/09/07/462311.aspx</link><pubDate>Thu, 08 Sep 2005 08:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:462311</guid><dc:creator>SteveJS</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/stevejs/comments/462311.aspx</comments><wfw:commentRss>http://blogs.msdn.com/stevejs/commentrss.aspx?PostID=462311</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Ebay has an &lt;/FONT&gt;&lt;A href="http://developer.ebay.com/"&gt;&lt;FONT face=Verdana&gt;SDK&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;.&amp;nbsp;From the site:&amp;nbsp;"Now Available:&amp;nbsp; eBay SDK for Windows 3.0" My first thought: Who is still using Windows 3.0?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Why would anyone make an sdk for it?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Back up. Reparse. It's the 3.0 Version of the eBay SDK.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Ah ha!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Interesting.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This might be fun to play around with in VS Whidbey.&amp;nbsp; I don't have an eBay account, as my wife Shai handles the selling of my stuff on eBay: &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Shai: We need a new table for the microwave.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Me: What happened to my old kitchen table that was holding the microwave?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Shai: I sold it on eBay.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;An eBay account appears to be a requirement to make any effective use the sdk.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That seems reasonable to me so I try to sign up using my gmail account.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The gmail address, however, is not good enough unless&amp;nbsp;I cough up a credit card number. I don't want to give out a credit card number when my only goal is to play with an sdk.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;But there is an alternative!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Ebay suggests providing an ISP, Company, or&amp;nbsp;School email address. So instead I decide I'll go ahead and use my work address.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;It won't accept my work address.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It just plain doesn't think my work email is valid.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Perhaps it's because it ends with @microsoft.com?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Is that a red flag that someone is probably trying to scam the system?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Very odd.&amp;nbsp; So I use my alum email address instead (a much better idea anyway!) and now I have an ebay account.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;As luck would have it my wife just called.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Me: Do you have anything I can sell on eBay?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Shai: What!?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;(laughter) Why!?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;What have I sold &lt;SPAN style="FONT-WEIGHT: bold; FONT-STYLE: italic"&gt;recently&lt;/SPAN&gt;&lt;SPAN style="FONT-STYLE: italic"&gt; &lt;/SPAN&gt;that would make you want to sell my stuff on eBay?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Me: hmmm…. Shai items to sell?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Shai: Are you trying to think?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Don't hurt yourself.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Me: How about your cactus?&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Shai: (laughter) You are not selling anything!&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: 'Times New Roman'; mso-outline-level: 1"&gt;&lt;FONT face=Verdana&gt;Maybe I'll get back to actually trying out that SDK at some point…&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=462311" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/stevejs/archive/tags/Babble/default.aspx">Babble</category></item></channel></rss>