<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Josh Reuben</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/JoshReuben/Atom.aspx" />
    <subtitle type="html"> </subtitle>
    <id>http://geekswithblogs.net/JoshReuben/Default.aspx</id>
    <author>
        <name>JoshReuben</name>
        <uri>http://geekswithblogs.net/JoshReuben/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2009-07-21T06:26:33Z</updated>
    <entry>
        <title>6 months in review</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2009/07/05/6-months-in-revue.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2009/07/05/6-months-in-revue.aspx</id>
        <published>2009-07-05T14:13:27-05:00:00</published>
        <updated>2009-07-21T06:26:33Z</updated>
        <content type="html">&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;Mother of all Blog Posts&lt;/font&gt;&lt;/p&gt;
&lt;h1 style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;Building expertise in WPF / Silverlight&lt;/h1&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;a class="image" title="The WPF architecture. Blue elements are Windows components; brown ones are WPF components." href="/wiki/File:WPF.svg"&gt;&lt;img alt="" src="http://www.heroicsalmonleap.net/images/SilverlightDeveloperReference.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Core Programming Concepts&lt;/u&gt;&lt;/strong&gt;: Declerative programming, Dependency properties, DataBinding, Commands, Triggers, VSM, Control templating, the inheritence model , XAML extensions and control templating&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Transforms and animations&lt;/u&gt;&lt;/strong&gt; - SVG experience helps&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Comprehend the core differences in SL and WPF&lt;/u&gt;&lt;/strong&gt;-  lack of Commands and Triggers (Behaviours and VSM are superior anyway), Calling different types of services (WCF, Sockets, Duplex, ADO.NET Data Services, RIA services) &lt;/font&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;à&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt; naturally supports good architecture, &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Silverlight 3&lt;/u&gt;&lt;/strong&gt; -  navigation , out of browser experience, popups etc&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;MSDN + Adam Nathan book&lt;/u&gt;&lt;/strong&gt; are a great place to kick off&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246821769&amp;amp;sr=8-2"&gt;&lt;img style="WIDTH: 189px; HEIGHT: 162px" border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/21oV8AE-VyL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;     &lt;strong&gt;&lt;u&gt;    &lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Petzold’s WPF 3D Book&lt;/u&gt;&lt;/strong&gt; – A great resource for learning 3D in general – it really mixes well 3D maths with the core programmatic constructs of WPF 3D. There are 3 major limitations to WPF 3D: 1) Retained mode graphics have performance issues. 2) for a high level scene graph, the primitives are still primitive – wouldn’t be great if we had intrinsic data structures for rendering NURBS patches. 3) Point animation of a mesh vertex is on the heap (each interpolation is like writing to the same string object) &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/font&gt;&lt;span style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;à&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt; requires annoying work arrounds.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://www.amazon.com/3D-Programming-Windows-Pro-Developer/dp/0735623945/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246821846&amp;amp;sr=8-1"&gt;&lt;img style="WIDTH: 157px; HEIGHT: 152px" border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/21w4MsutkDL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Silverlight Animation book&lt;/u&gt;&lt;/strong&gt; – collision detection, kinematrics, particle systems, etc. I like the way that the VSM is leveraged for cartoon like affects and the technique of programmatically manipulating the storyboard as a declarative timer.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://www.amazon.com/Foundation-Silverlight-Animation-Jeff-Paries/dp/1430215690/ref=sr_1_4?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246821897&amp;amp;sr=8-4"&gt;&lt;img style="WIDTH: 165px; HEIGHT: 164px" border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/51mNXzfM6HL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Silverlight Toolkit / WPF Toolkit&lt;/u&gt;&lt;/strong&gt; – especially DataGrid and Charts&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mehdis/WindowsLiveWriter/DesignersGuidetoStylingSilverlightToolki_E604/image_6.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border="0" alt="image" width="556" height="408" src="http://blogs.msdn.com/blogfiles/mehdis/WindowsLiveWriter/DesignersGuidetoStylingSilverlightToolki_E604/image_thumb_2.png" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Expression&lt;/u&gt;&lt;/strong&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l3 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;u&gt;&lt;strong&gt;Blend&lt;/strong&gt;&lt;/u&gt; - how else would you template your controls. I feel pretty comfortable using this tool(may polish up the data binding side)&lt;/font&gt;&lt;/p&gt;
&lt;div align="left"&gt;&lt;img border="0" alt="" width="972" height="604" src="http://itpro.nikkeibp.co.jp/article/NEWS/20090319/326893/ExpressionBlend3UserInterface_web.jpg" /&gt;&lt;/div&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l3 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt; &lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l3 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Encoder&lt;/u&gt;&lt;/strong&gt; - media encoding with markers, leveraging IIS smooth streaming&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l3 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt; &lt;img class="image image-preview " title="Microsoft Expression Encoder 2" alt="Microsoft Expression Encoder 2" width="500" height="389" src="http://www.screenshots-archive.com/files/images/Microsoft_Expression_Encoder_2_2.preview.png" /&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l3 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;DeepZoom&lt;/u&gt;&lt;/strong&gt; – creating Image pyramids&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l3 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" border="0" alt="dzcAlbums" width="475" height="361" src="http://blog.kirupa.com/wp-content/uploads/2008/03/dzcalbums1.jpg" /&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l3 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: &amp;quot;Courier New&amp;quot;; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;(I have not yet dug deep into expression Design&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;        &lt;strong&gt;&lt;u&gt; &lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;RIA Services&lt;/u&gt;&lt;/strong&gt; – a prescriptive model that takes n-tier development to the next level of abstraction.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;img alt="Infrastructure behind a DomainService and DomainContext" src="http://www.nikhilk.net/Content/Posts/RIAServices/Infrastructure.png" /&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;strong&gt;&lt;u&gt;  &lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Blend Behaviours&lt;/u&gt;&lt;/strong&gt; – abstract out triggers and actions into declarative components&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt; &lt;img alt="" src="http://blog.kirupa.com/wp-content/uploads/2009/03/behaviorstabassetlibrary.png" /&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;Perf tools&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;strong&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Automation using White&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;strong&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;SilverlightSpy&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;strong&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;SL unit testing&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;strong&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;MVVM &lt;/u&gt;&lt;/strong&gt;– the view has a view model and the view model has a model (whose change notifications it observes). Leverage XAML databinding and DelegateCommands (as the VM is out of the Logical Tree)&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;img alt="" src="http://www.orbifold.net/default/wp-content/uploads/MVVM.jpg" /&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpLast"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Composite Application Library&lt;/u&gt;&lt;/strong&gt; – Constructing a mutiview GUI leveraging MVVM, Loading isolated module via IoC and DI, mapping views to regions - &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;Unity DI Container, DelegateCommands, EventAggreagater, RegionManager etc.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l3 level1 lfo1" class="MsoListParagraphCxSpLast"&gt;&lt;img alt="" src="http://davidhayden.com/photos/CompositeApplicationLibrary.jpg" /&gt;&lt;/p&gt;
&lt;h1 style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;Maths&lt;/h1&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;font size="3" face="Calibri"&gt;in order to construct AI algorithms, you need 2 core subsets of knowledge: Programmatic and Mathematic skillsets. Learning Software Engineering through 10 years of practice can yield for me the ability to take a set of algorithms to construct an n-tier solution (with all the –ability adjectives {scalability, maintainability, performability (ha), etc}) while a straight mathematician would flounder on basic programming constructs. By learning the math, I canaggregate knowledge silos - eg in a few hours comprehend the gist of a highly specialized phd thesis that someone spent 5 years writing). &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;To that affect I’ve gone through the following Schaums Guides (plus watched Jason &lt;strong&gt;&lt;u&gt;Gibbs maths training DVD in Linear Algebra - &lt;font face=""&gt;&lt;a href="http://www.mathtutordvd.com/"&gt;http://www.mathtutordvd.com/&lt;/a&gt; &lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Advanced Calculus&lt;/u&gt;&lt;/strong&gt; – reading through this felt like sense of achievement one gets from climbing a mountain. I achieved a decent comprehension&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpFirst"&gt;&lt;font size="3" face="Calibri"&gt; &lt;a href="http://www.amazon.com/Schaums-Outline-Advanced-Calculus-Second/dp/0071375678/ref=sr_1_2?ie=UTF8&amp;amp;qid=1246822039&amp;amp;sr=8-2"&gt;&lt;img style="WIDTH: 140px; HEIGHT: 133px" border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/51Y-Yrrjb1L._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Probability&lt;/u&gt;&lt;/strong&gt; – slightly simplistic. Stochastic trees are a great mathematical visualization technique for understanding Bayes Theorum. Useful for reasoning under uncertainty.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://www.amazon.com/Schaums-Outline-Theory-Problems-Probability/dp/0071352031/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246822113&amp;amp;sr=8-1"&gt;&lt;img border="0" alt="Product Details" width="160" height="160" src="http://ecx.images-amazon.com/images/I/51i3r1vGM4L._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA160_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Linear Algebra&lt;/u&gt;&lt;/strong&gt; –different techniques for solving systems of linear equations.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;&lt;a href="http://www.amazon.com/Schaums-Outline-Algebra-Seymour-Lipschutz/dp/0071362002/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246822258&amp;amp;sr=8-2"&gt;&lt;img style="WIDTH: 146px; HEIGHT: 141px" border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/51qcT50kjIL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" /&gt;&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Operations Research&lt;/u&gt;&lt;/strong&gt; – allocation of scarce resources&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://www.amazon.com/Schaums-Outline-Operations-Research-Richard/dp/0070080208/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246822303&amp;amp;sr=8-1"&gt;&lt;img style="WIDTH: 142px; HEIGHT: 148px" border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/3131MR%2B6ksL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpLast"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Numerical Recipes&lt;/u&gt;&lt;/strong&gt; – function approximation. The notes were slightly sparse.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l2 level1 lfo2" class="MsoListParagraphCxSpLast"&gt;&lt;a href="http://www.amazon.com/Schaums-Outline-Numerical-Analysis-Francis/dp/0070552215/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246822369&amp;amp;sr=8-1"&gt;&lt;img style="WIDTH: 146px; HEIGHT: 135px" border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/518YhpElaOL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;Putting things into perspective:&lt;/h1&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Larry Gonicks history books&lt;/u&gt;&lt;/strong&gt; – a great way to learn the tapestry of history in a compact and humorous manner&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpFirst"&gt;&lt;a href="http://www.amazon.com/Cartoon-History-Modern-World-Part/dp/0060760044/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246823420&amp;amp;sr=8-1"&gt;&lt;img border="0" alt="Product Details" width="160" height="160" src="http://ecx.images-amazon.com/images/I/514WFiKBFWL._SL160_AA160_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;       &lt;strong&gt;&lt;u&gt;  &lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;The ascent of money&lt;/u&gt;&lt;/strong&gt; – I’ve always enjoyed Nial Ferguson’s geopolitical and socioeconomic analysis. Can we unify behavioral and quantitative finance?&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;&lt;a href="http://www.amazon.com/Ascent-Money-Financial-History-World/dp/B001PDGGWW/ref=sr_1_3?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246823636&amp;amp;sr=8-3"&gt;&lt;img style="WIDTH: 150px; HEIGHT: 150px" border="0" alt="Product Details" width="115" onload="if (typeof uet =='function') { uet('af'); }" height="115" src="http://ecx.images-amazon.com/images/I/31ggsPWiqsL._SL160_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Ending Aging&lt;/u&gt;&lt;/strong&gt; – a snapshot of the current state of research into alleviating the affects of the 7 malady categories of aging: - I corresponded with the author during my Bioinformatics days.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://www.amazon.com/Ending-Aging-Rejuvenation-Breakthroughs-ebook/dp/B001INWR8G/ref=sr_1_3?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246823710&amp;amp;sr=8-3"&gt;&lt;img style="WIDTH: 158px; HEIGHT: 163px" border="0" alt="Product Details" width="115" onload="if (typeof uet =='function') { uet('af'); }" height="115" src="http://ecx.images-amazon.com/images/I/41DUUoDLz9L._SL160_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;font size="3"&gt;&lt;strong&gt;&lt;u&gt;The trouble with physics&lt;/u&gt;&lt;/strong&gt; – by Lee Smolin. String “Theory” (more like conjencture / cult of Ed Witten) is actually based on another unproven conjecture – supersymmetry. It is not currently falsifiable and has turned into consensus science, drawing away from other potential theories such as Twister theory or Loop Quantum Gravity. M theory is just a vague concept and there are an infinite number of string theories – in programming ,we call this a code smell. While it holds mathematically (and has led to new maths such as Guage theory), it wont be the 1&lt;/font&gt;&lt;sup&gt;&lt;font size="2"&gt;st&lt;/font&gt;&lt;/sup&gt;&lt;font size="3"&gt; mathematically elegant theory that doenst hold in reality.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://www.amazon.com/Trouble-Physics-String-Science-ebook/dp/B001GCUMFY/ref=sr_1_4?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246822855&amp;amp;sr=8-4"&gt;&lt;img border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/5103RmfwziL._SL160_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpLast"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;A new kind of science&lt;/u&gt;&lt;/strong&gt; – just like cellular autonoma, Wolfram proposes that complexity evolves out of simple rules. Reads like a pop sci book. Strangely enough, the concepts of quantum or probabilistic states and states that modify rules are not covered!&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l1 level1 lfo3" class="MsoListParagraphCxSpLast"&gt;&lt;a href="http://www.amazon.com/New-Kind-Science-Stephen-Wolfram/dp/1579550088/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1246823018&amp;amp;sr=8-1"&gt;&lt;img border="0" alt="Product Details" width="115" height="115" src="http://ecx.images-amazon.com/images/I/51MDQ4ARGGL._SL160_PIsitb-sticker-arrow-dp,TopRight,12,-18_SH30_OU01_AA115_.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1 style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;.NET Parallel Development&lt;/h1&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;TPL&lt;/u&gt;&lt;/strong&gt; – a .NET 4 scale up stack for data &amp;amp; task parallelization. Various levels of abstraction – PLINQ, parallel iterators, Tasks (similar to an automated threadpool), futures (tasks that promise to asynchronously return values). + many new thread model synchronization locks. see - &lt;font face=""&gt;&lt;a href="http://blogs.msdn.com/pfxteam/default.aspx"&gt;http://blogs.msdn.com/pfxteam/default.aspx&lt;/a&gt;, &lt;font face=""&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd460693(VS.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd460693(VS.100).aspx&lt;/a&gt; , &lt;font face=""&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=348f73fd-593d-4b3c-b055-694c50d2b0f3"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=348f73fd-593d-4b3c-b055-694c50d2b0f3&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpFirst"&gt;&lt;a class="image" title="The .NET Framework stack." href="/wiki/File:DotNet.svg"&gt;&lt;img class="thumbimage" alt="" width="250" height="292" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/DotNet.svg/250px-DotNet.svg.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;DryadLINQ&lt;/u&gt;&lt;/strong&gt; – a declarative scale out API of MS Research for scaling processing out to multiple nodes - SEE &lt;font face=""&gt;&lt;a href="http://research.microsoft.com/en-us/projects/DryadLINQ/"&gt;http://research.microsoft.com/en-us/projects/DryadLINQ/&lt;/a&gt; , &lt;font face=""&gt;&lt;a href="http://connect.microsoft.com/site/sitehome.aspx?SiteID=891"&gt;http://connect.microsoft.com/site/sitehome.aspx?SiteID=891&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt; &lt;img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/accesine960/260153/o_ms-dryad-job.png" /&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Accelerator&lt;/u&gt;&lt;/strong&gt; – a non LINQ enabled GPGPU API from ms research which is limited to 2D matrices. It leverages a high level shader to map processing into the GPU - SEE &lt;font face=""&gt;&lt;a href="http://research.microsoft.com/en-us/projects/accelerator/default.aspx"&gt;http://research.microsoft.com/en-us/projects/accelerator/default.aspx&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;&lt;a class="iZoom" _counted="undefined" href="http://www.tomshardware.com/gallery/008-111097,0101-111097-0-2-3-0-jpg-.html"&gt;&lt;img title="nvidia CUDA" alt="nvidia CUDA" _counted="undefined" src="http://media.bestofmicro.com/nvidia-CUDA,Q-1-111097-13.jpg" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Axum&lt;/u&gt;&lt;/strong&gt; – a research API based upon the agent paradigm which isolates agent interactions through message channels. Feels clunky to me. SEE &lt;font face=""&gt;&lt;a href="http://blogs.msdn.com/maestroteam/default.aspx"&gt;http://blogs.msdn.com/maestroteam/default.aspx&lt;/a&gt;, &lt;font face=""&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx"&gt;http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt;&lt;img style="WIDTH: 422px; HEIGHT: 228px" alt="" width="600" height="329" src="http://www.infoq.com/cn/news/2009/05/resource/news/2009/04/Axum/en/resources/axum.png" /&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Solver Foundation&lt;/u&gt;&lt;/strong&gt; – (horrendous doco) - Optimization API host exposed as a web service, a C# API, or an excel plugin. It suceeds where Excel Services failed. &lt;font face=""&gt;&lt;a href="http://code.msdn.microsoft.com/solverfoundation"&gt;http://code.msdn.microsoft.com/solverfoundation&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;&lt;img class="reflect" title="" alt="Solver Foundation by Microsoft Research on Flickr." width="500" onload="show_notes_initially();" height="357" src="http://farm4.static.flickr.com/3250/3309843602_5a8108a4d4.jpg?v=0" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l4 level1 lfo6" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Windows HPC&lt;/u&gt;&lt;/strong&gt; – a grid computing host management environment – includes a prioritized job scheduler and management utilities  - SEE &lt;font face=""&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc907080(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc907080(VS.85).aspx&lt;/a&gt; , &lt;font face=""&gt;&lt;a href="http://www.microsoft.com/hpc/en/us/default.aspx"&gt;http://www.microsoft.com/hpc/en/us/default.aspx&lt;/a&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt 36pt" class="MsoListParagraphCxSpLast"&gt;&lt;o:p&gt;&lt;font size="3" face="Calibri"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;h1 style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;NET 4&lt;/h1&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo4" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Oslo + Quadrant&lt;/u&gt;&lt;/strong&gt; – still half baked.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo4" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;WF 4&lt;/u&gt;&lt;/strong&gt; – still half baked – currently no state machine or rule engine support evident. Note that persistence and tracking have been abstracted out to Dublin (WAS 2.0) , which wont be released in the NET 4 timeframe.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo4" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Entity Framework&lt;/u&gt;&lt;/strong&gt; – pretty easy to learn these changes&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo4" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;WCF&lt;/u&gt;&lt;/strong&gt; – discovery, REST templates&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo4" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;System.Xaml&lt;/u&gt;&lt;/strong&gt; – still half baked&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo4" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;What happened to Software Factories (&lt;strong&gt;&lt;u&gt;Blueprints&lt;/u&gt;&lt;/strong&gt;)?&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo4" class="MsoListParagraphCxSpLast"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;&lt;strong&gt;&lt;u&gt;Azure&lt;/u&gt;&lt;/strong&gt; – what a mess! SQL Data Services doesn’t work, Cloud Workflows were a fork and have been scrapped and Silverlight SMEWAs require live mesh client! Note: Azure is NOT A GRID COMPUTING PLATFORM!!! I’ll wait for v2 thanks.&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo4" class="MsoListParagraphCxSpLast"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;h1 style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;Work &lt;/h1&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Constructed Silverlight Timeline for Matach&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Constructed prototype of Silverlight media playback system for Youniversity&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Completed Amdoc’s staffing workflow system&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Constructed Southridge WPF labs for MS&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Constructed WPF control Library &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;for Elta&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Attrrnded the Mix conference&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Taught the Metro WPF course in Israel, Australia, New Zealand, Turkey&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;  &lt;font size="3"&gt;      App Profiling for IFN - fun with &lt;strong&gt;&lt;u&gt;Ants profiler!&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;font size="3" face="Calibri"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&lt;img alt="" src="http://www.componentone.com/newimages/products/screenshots/redgate/AP_homepage_image_final.gif" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Constructed the Silverlight 3 Courseware Library for MS&lt;/font&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 10pt 36pt; mso-list: l5 level1 lfo5" class="MsoListParagraphCxSpLast"&gt;&lt;span style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="3"&gt;·&lt;/font&gt;&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;font size="3" face="Calibri"&gt;Constructed WPF GIS &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;control and architectured Composite client for current customer.&lt;/font&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt" class="MsoNormal"&gt;&lt;o:p&gt;&lt;font size="3" face="Calibri"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/133271.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/133271.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/133271.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/133271.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Dev Team Management best practices</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2008/11/22/dev-team-management-best-practices-again.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2008/11/22/dev-team-management-best-practices-again.aspx</id>
        <published>2008-11-22T08:32:33-06:00:00</published>
        <updated>2008-11-23T05:55:12Z</updated>
        <content type="html">&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409834"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Goal&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Ensure your developers build code to meet the spec (the contract of customer requirements) in a timely manner&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Ensure your developers build code changes that don’t break the spec and that pass functional requirements&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Ensure your developers build code which is robust (not fragile) and that meets design and code quality guidelines&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409835"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;The Spec&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Make sure that the technical analyst provides appropriate specs! &lt;/span&gt;&lt;/u&gt;&lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Keep it deliverable – compile-able. No point building mounds of UML diagrams that don’t stay in synch with the project&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;consists of: Use Case Scenarios, Interfaces, Code Contracts, Unit Tests, pre &amp;amp; post conditions.&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;To plug in Use Case Scenarios, need a generic baseline architecture.&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409836"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Use Case Scenario approach with VSTS&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409837"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Scenarios and Tasks&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;
    &lt;ul style="MARGIN-TOP: 0cm" type="circle"&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Each use case focuses on describing how an end user or client can achieve a goal.&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Forces you to think about the spec functional requirements. &lt;/span&gt;&lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;decompose into Tasks&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Scenarios and their Tasks map to VSTS. &lt;/span&gt;&lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;checkin policies force developers to associate each changeset with a task – track progress, avoid unnecessary work.&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;From nouns in scenarios identify entities. Each task maps to a method. &lt;/span&gt;&lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Consider Workflows&lt;/span&gt;&lt;/u&gt;&lt;span style="FONT-SIZE: 10pt"&gt; – each scenario maps to a sequential or state machine &lt;strong&gt;Workflow&lt;/strong&gt; and each task maps to an &lt;strong&gt;Activity&lt;/strong&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409838"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;VSTS benefits&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;
    &lt;ul style="MARGIN-TOP: 0cm" type="circle"&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;20 tools in one&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Integrated work item list – scenarios, bugs, tasks, tests, QoS&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Source control with Checkin policies &lt;/span&gt;&lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Database schema version control, comparison and test data generation&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Real Project health tracking via reportage&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Integrated testing environment – 6 types of test: regression, web, load, custom, manual&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Build &amp;amp; test servers&lt;/span&gt; &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409839"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Design By Contract&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409840"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Interfaces for Design By Contract&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;
    &lt;ul style="MARGIN-TOP: 0cm" type="circle"&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;define precise verifiable interface specifications for software components&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;In VS, can generate classes from Interfaces, then automatically construct class diagram&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Each interface method should map to a task&lt;/span&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;The interfaces force the developer to implement all tasks &lt;/span&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409841"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Interface Code Contracts&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;
    &lt;ul style="MARGIN-TOP: 0cm" type="circle"&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;See previous post!&lt;/span&gt;&lt;/u&gt; &lt;/li&gt;
        &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Applies Preconditions and Postconditions - &lt;/span&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;img alt="" width="800" height="500" v:shapes="Picture_x0020_49" src="/images/geekswithblogs_net/JoshReuben/1.jpg" /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BORDER-TOP: windowtext 1pt solid; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 4pt"&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;using &lt;u&gt;System.Diagnostics.Contracts&lt;/u&gt;;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;[&lt;u&gt;ContractClass&lt;/u&gt;(&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;typeof&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;(&lt;u&gt;IFooContract&lt;/u&gt; ))]&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;interface &lt;/strong&gt;&lt;strong&gt;IFoo &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;int &lt;/strong&gt;&lt;strong&gt;Count &lt;/strong&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;strong&gt;get; &lt;/strong&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;void &lt;/strong&gt;&lt;strong&gt;Put(&lt;/strong&gt;&lt;strong&gt;int &lt;/strong&gt;&lt;strong&gt;value );&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;[&lt;u&gt;ContractClassFor&lt;/u&gt;(&lt;/strong&gt;&lt;strong&gt;typeof&lt;/strong&gt;&lt;strong&gt;(IFoo))]&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;sealed class &lt;/strong&gt;&lt;strong&gt;&lt;u&gt;IFooContract&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt; : IFoo &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;int &lt;/strong&gt;&lt;strong&gt;Count &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 2cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;get &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 2cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 3cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;CodeContract.&lt;u&gt;Ensures&lt;/u&gt;( 0 &lt;/strong&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;strong&gt;= CodeContract.&lt;u&gt;Result&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;strong&gt;() );&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 3cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;return &lt;/strong&gt;&lt;strong&gt;CodeContract.&lt;u&gt;Result&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;strong&gt;int&lt;/strong&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;strong&gt;(); &lt;/strong&gt;// dummy return&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 2cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;void &lt;/strong&gt;&lt;strong&gt;Put(&lt;/strong&gt;&lt;strong&gt;int &lt;/strong&gt;&lt;strong&gt;value)&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 2cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;CodeContract.&lt;u&gt;Requires&lt;/u&gt;( 0 &lt;/strong&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;strong&gt;= value );&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; TEXT-INDENT: 1cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div style="BORDER-BOTTOM: medium none; TEXT-ALIGN: justify; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; unicode-bidi: embed; PADDING-RIGHT: 0cm; DIRECTION: ltr; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;img alt="" v:shapes="_x0000_i1025" src="/images/geekswithblogs_net/JoshReuben/2.jpg" /&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409842"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Static Analysis with FxCop&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr; BACKGROUND: #f8fcff"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Ensure code standards in [relevant] rules are met – checks: &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Correctness, Library design , Localization , Naming conventions , Performance , Security &lt;/span&gt;&lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Analyzes the compiled code for conformance to Microsoft's .NET Framework Design Guidelines. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;img width="800" height="500" v:shapes="_x0000_i1031" alt="" src="/images/geekswithblogs_net/JoshReuben/3.jpg" /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: left; MARGIN: 12pt 0cm 3pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;strong&gt;&lt;font size="6"&gt;&lt;a name="_Toc192409843"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt; FONT-WEIGHT: normal"&gt;Detecting duplicate code with Simian&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;One of the easiest “&lt;a href="http://davidhayden.com/blog/dave/archive/2004/12/09/675.aspx"&gt;&lt;font color="#0000ff"&gt;code smells&lt;/font&gt;&lt;/a&gt;” to deodorise is that of "duplicate code" - &lt;a href="http://www.redhillconsulting.com.au/products/simian"&gt;&lt;font color="#0000ff"&gt;Simian&lt;/font&gt;&lt;/a&gt; is a Similarity Analyser that detects duplications in source code (C#, C, C++ ASP, XML, HTML etc); once detected you can easily locate the duplication and perform an "&lt;strong&gt;Extract Method&lt;/strong&gt;" refactor in Visual Studio. &lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://www.redhillconsulting.com.au/products/simian"&gt;&lt;font color="#0000ff"&gt;Simian&lt;/font&gt;&lt;/a&gt; is a command line tool - but you can integrate it into Visual Studio via the extensibility of the &lt;strong&gt;External Tools&lt;/strong&gt; menu. Here is an example of the standard output produced by Simian when run against some source code:&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT: windowtext 1pt solid; PADDING-BOTTOM: 1pt; PADDING-LEFT: 4pt; PADDING-RIGHT: 4pt; BACKGROUND: #dddddd; MARGIN-LEFT: 12pt; BORDER-TOP: windowtext 1pt solid; MARGIN-RIGHT: 0cm; BORDER-RIGHT: windowtext 1pt solid; PADDING-TOP: 1pt"&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt;Similarity Analyser 2.2.23 - http://www.redhillconsulting.com.au/products/simian/index.html&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt;Copyright (c) 2003-08 RedHill Consulting Pty. Ltd. All rights reserved.&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt;Simian is not free unless used solely for non-commercial or evaluation purposes.&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt;{failOnDuplication=true, ignoreCharacterCase=true, ignoreCurlyBraces=true, ignoreIdentifierCase=true, ignoreModifiers=true, ignoreStringCase=true, threshold=6}&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt;&lt;span style="BACKGROUND: yellow"&gt;Found 6 duplicate lines in the following files:&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt; &lt;span style="BACKGROUND: yellow"&gt;Between lines 201 and 207 in /Users/haruki_zaemon/Projects/redhill/simian/build/dist/src/java/awt/image/WritableRaster.java&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt; &lt;span style="BACKGROUND: yellow"&gt;Between lines 1305 and 1311 in /Users/haruki_zaemon/Projects/redhill/simian/build/dist/src/java/awt/image/Raster.java&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt;Found 6 duplicate lines in the following files:&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt; &lt;span style="BACKGROUND: yellow"&gt;Between lines 920 and 926 in /Users/haruki_zaemon/Projects/redhill/simian/build/dist/src/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0cm; MARGIN: 2.4pt 0cm; PADDING-LEFT: 0cm; PADDING-RIGHT: 0cm; BACKGROUND: #dddddd; BORDER-TOP: medium none; BORDER-RIGHT: medium none; PADDING-TOP: 0cm"&gt;&lt;font size="2"&gt; &lt;span style="BACKGROUND: yellow"&gt;Between lines 908 and 914 in /Users/haruki_zaemon/Projects/redhill/simian/build/dist/src/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409844"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Enforcing Code Style with &lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;StyleCop&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
&lt;ul type="disc"&gt;
    &lt;li style="TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;enforce a common set of best practices for layout, readability, maintainability, and documentation of C# source code. &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: left; MARGIN: 0cm 0cm 0pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;produce elegant, consistent code that your team members and others who view your code will find highly readable. &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;img border="0" width="1600" height="1000" v:shapes="_x0000_i1032" alt="" src="/images/geekswithblogs_net/JoshReuben/4.jpg" /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;a name="_Toc192409845"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;ParameterizedUnit Testing&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Ensure that all methods work – that changes to code don’t break other methods&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Generate a Test project – each [Task mapped] method should have a postcondition test&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Regression test – attach the util to the DLL&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Automatically generate unit tests using Pex:&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;img border="0" width="800" height="500" v:shapes="_x0000_i1033" alt="" src="/images/geekswithblogs_net/JoshReuben/5.jpg" /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Enterprise&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt; Library and Policy Injection&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Improved Productivity (satisfy common application concerns out of the box) , Configuration Driven Design&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;EntLib application blocks - Caching , Data Access (redundant), Cryptography , Exception Handling , Logging , Security , Validation &lt;/span&gt;&lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Policy Injection – &lt;span style="COLOR: black"&gt;Aspect oriented programming - separate&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: black; FONT-SIZE: 10pt"&gt; &lt;/span&gt;&lt;span style="COLOR: black; FONT-SIZE: 10pt"&gt;cross-cutting logic from domain-specific logic&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;. Inversion of Control - &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;instead of the programmer specifying cross-cutting functionality via function calls, instead register desired &lt;em&gt;responses&lt;/em&gt; to particular policy rule defined events.&lt;/span&gt; &lt;/li&gt;
    &lt;li style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm 2.4pt 36pt; unicode-bidi: embed; DIRECTION: ltr; VERTICAL-ALIGN: top"&gt;&lt;span style="COLOR: black; FONT-SIZE: 10pt"&gt;Eg for a function - inject validation, tracing , exception handling , Authorization, caching, update performance counters. Using the PIAB, such functionality would be introduced through the creation of policies that define the implementation details needed at run time. Policies can be applied to objects through configuration or by decorating classes with attributes. Each policy has a set of matching rules to determine where it should be applied, and a collection of handlers that determine which behaviors should be introduced when invoking methods on the object. The PIAB comes with a number of useful handlers for validation, logging, exception handling, managing performance counters, authorization, and caching. Many of these handlers leverage EntLibs other application blocks. PIAB supports matching rules based on types, assemblies, member names, method signatures, namespaces, parameter types, property types, return types, custom attributes, tags&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;img border="0" width="1680" height="1050" v:shapes="_x0000_i1029" alt="" src="/images/geekswithblogs_net/JoshReuben/6.jpg" /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; MARGIN: 2.4pt 0cm; unicode-bidi: embed; DIRECTION: ltr"&gt; &lt;/div&gt;
&lt;span style="FONT-SIZE: 10pt"&gt;&lt;br clear="all" /&gt;
&lt;/span&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/127299.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/127299.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/127299.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/127299.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Code Contracts - the dark horse of the PDC</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2008/11/02/code-contracts---the-dark-horse-of-the-pdc.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2008/11/02/code-contracts---the-dark-horse-of-the-pdc.aspx</id>
        <published>2008-11-02T21:32:31-06:00:00</published>
        <updated>2008-11-06T05:26:11Z</updated>
        <content type="html">&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;u&gt;Make Coding Assumptions Explicit and Tool Discoverable&lt;/u&gt;. &lt;span style="COLOR: black"&gt;provide a language-agnostic way to express coding assumptions in .NET programs. The contracts take the form of &lt;u&gt;pre-conditions, post-conditions, and object invariants&lt;/u&gt;. Contracts act as &lt;u&gt;checked documentation of your external and internal APIs&lt;/u&gt;. The contracts are used to &lt;u&gt;improve testing via runtime checking, enable static contract verification, and documentation generation&lt;/u&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt; &lt;/span&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt; &lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;bring the advantages of &lt;u&gt;design-by-contract&lt;/u&gt; programming to all .NET programming languages. benefits: &lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 72pt"&gt;&lt;span&gt;o&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;span style="COLOR: black"&gt;Improved testability&lt;/span&gt;&lt;/u&gt;&lt;span style="COLOR: black"&gt; – A) &lt;/span&gt;&lt;u&gt;each contract acts as an oracle, giving a test run a pass/fail indication&lt;/u&gt;. B) &lt;u&gt;automatic testing tools, such as &lt;a href="http://research.microsoft.com/pex"&gt;&lt;span style="COLOR: #003399"&gt;Pex&lt;/span&gt;&lt;/a&gt;, can take advantage of contracts to generate more meaningful unit tests by filtering out meaningless test arguments that don't satisfy the pre-conditions&lt;/u&gt;. &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 72pt"&gt;&lt;span style="COLOR: black"&gt;o&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;span style="COLOR: black"&gt;Static verification&lt;/span&gt;&lt;/u&gt;&lt;span style="COLOR: black"&gt; - use contracts to &lt;u&gt;reduce false positives and produce more meaningful errors&lt;/u&gt;. &lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 72pt"&gt;&lt;span style="COLOR: black"&gt;o&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;span style="COLOR: black"&gt;API&lt;/span&gt;&lt;/u&gt;&lt;u&gt;&lt;span style="COLOR: black"&gt; documentation&lt;/span&gt;&lt;/u&gt;&lt;span style="COLOR: black"&gt; - The same contracts used for runtime testing and static verification can also be used to generate better API documentation, such as which parameters need to be non-null, etc. &lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt -0.35pt 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;consists of a [library|Contract Language] for writing pre-conditions, post-conditions, and object invariants. The use of a library has the advantage that all .NET languages can immediately take advantage of contracts. There is no need to write a special parser or compiler. Furthermore, the respective language &lt;u&gt;compilers naturally check the contracts for well-formedness (type checking and name resolution) and produce a compiled form of the contracts as MSIL&lt;/u&gt;. Authoring contracts in Visual Studio allows programmers to take advantage of the standard &lt;u&gt;intellisense&lt;/u&gt; provided by the language services. &lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;span style="COLOR: black"&gt;Previous approaches based on .NET attributes fall far short as they neither provide an expressive enough medium, nor can they take advantage of compile-time checks&lt;/span&gt;&lt;/u&gt;&lt;span style="COLOR: black"&gt;. &lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt -0.35pt 2.4pt 36pt"&gt;&lt;span&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: black"&gt;tools: 1) &lt;/span&gt;&lt;strong&gt;cccheck&lt;/strong&gt;, a static checker that verifies contracts at &lt;u&gt;compile-time&lt;/u&gt;. 2) &lt;strong&gt;ccrewrite&lt;/strong&gt;, for generating &lt;u&gt;runtime checking&lt;/u&gt; from the contracts. &lt;span style="COLOR: black"&gt;The plan is to add further tools for Automatic API documentation generation &amp;amp; Intellisense integration &lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;u&gt;&lt;span style="COLOR: black"&gt;Contracts&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;u&gt;&lt;span style="COLOR: black"&gt; are expressed using static method calls at method entries&lt;/span&gt;&lt;/u&gt;&lt;span style="COLOR: black"&gt;. Tools take care to interpret these &lt;strong&gt;declarative contracts&lt;/strong&gt; in the right places. These methods are found in the &lt;strong&gt;&lt;u&gt;System.Diagnostics.Contracts&lt;/u&gt;&lt;/strong&gt;&lt;u&gt; namespace&lt;/u&gt;. &lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 72pt"&gt;&lt;span style="COLOR: black"&gt;o&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="COLOR: black"&gt;Contract.Requires&lt;/span&gt;&lt;/strong&gt;&lt;span style="COLOR: black"&gt; takes a boolean condition and expresses a &lt;u&gt;pre-condition&lt;/u&gt; of the method. A pre-condition must be true on entry to the method. It is the caller's responsibility to make sure the pre-condition is met.&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 72pt"&gt;&lt;span style="COLOR: black"&gt;o&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="COLOR: black"&gt;Contract.Ensures&lt;/span&gt;&lt;/strong&gt;&lt;span style="COLOR: black"&gt; takes a boolean condition and expresses a &lt;u&gt;post-condition&lt;/u&gt; of the method. A post-condition must be true at all normal exit points of the method. It is the implementation's responsibility that the post-condition is met.&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;·&lt;span style="FONT: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;u&gt;Download&lt;/u&gt;&lt;strong&gt; - &lt;/strong&gt;&lt;span style="COLOR: black"&gt;At the moment, only a release for VS2008 with an academic license is available &lt;a href="http://research.microsoft.com/research/downloads/details/4ed7dd5f-490b-489e-8ca8-109324279968/details.aspx"&gt;&lt;span style="COLOR: #003399"&gt;here&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt; The devlab version for VS2010 is coming soon.  &lt;img width="300" height="450" alt="" src="/images/geekswithblogs_net/JoshReuben/dervish3.jpg" /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="TEXT-ALIGN: justify; LINE-HEIGHT: normal; TEXT-INDENT: -18pt; MARGIN: 2.4pt 0cm 2.4pt 36pt"&gt;&lt;span style="COLOR: black"&gt;&lt;/span&gt; &lt;/div&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/126504.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/126504.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/126504.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/126504.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Oslo Required!</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2008/10/24/oslo-required.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2008/10/24/oslo-required.aspx</id>
        <published>2008-10-24T19:07:33-05:00:00</published>
        <updated>2008-10-24T19:07:33Z</updated>
        <content type="html">&lt;ul&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;Limitations in workflows requiring workarounds:&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;Designer is slow – &lt;u&gt;make a coffee slow&lt;/u&gt;!&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;A &lt;strong&gt;setStateActivity&lt;/strong&gt; is not the end of the Workflow’s current flow!&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;In binding, how do you access the properties of dependnecy property sub-properties?&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;a dependency property custom activity for &lt;strong&gt;receieveactivity &lt;/strong&gt;binding must be inside the &lt;strong&gt;receiveactivity&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;In rule condition, you cannot reference a dependency property in a custom activity &lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;a code activity cannot work on an adjacent activity without explicitly specifying its name&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;declarative rules condition editor doesn’t support LINQ eg &lt;strong&gt;.contains&lt;/strong&gt; &lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;declarative rules condition editor doesn’t support constants&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;Copying an activity does not copy name for modification&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;No data flow, only control flow &lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;à&lt;/span&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt; requires a lot of code and tree traversal&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;No support for &lt;strong&gt;SendActivity&lt;/strong&gt; custom WCF bindings&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;Cannot use a &lt;strong&gt;DelayActivity&lt;/strong&gt; from inside an &lt;strong&gt;EventDrivenActivity&lt;/strong&gt; &lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;Instance versioning&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div style="MARGIN: 0cm 0cm 10pt"&gt;&lt;strong&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;RuleActionTrackingEvent&lt;/span&gt;&lt;/strong&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt; only works with &lt;strong&gt;PolicyActivity&lt;/strong&gt;, not &lt;strong&gt;IfElseActivity&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN: 0cm 0cm 10pt"&gt;&lt;span style="LINE-HEIGHT: 115%; FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/126086.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/126086.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/126086.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/126086.aspx</trackback:ping>
    </entry>
    <entry>
        <title>10 posts in 1</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2008/06/03/10-posts-in-1.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2008/06/03/10-posts-in-1.aspx</id>
        <published>2008-06-03T12:45:23-05:00:00</published>
        <updated>2008-06-03T12:50:58Z</updated>
        <content type="html">&lt;p&gt;  &lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Imagine that every project in codeplex had to be decomposed into codeplex hosted unit tested functions which complied to some xunit standard - that would go along way towards code reuse, and move away from reinventing the wheel.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH: 125px; HEIGHT: 232px" height="599" alt="" width="341" src="/images/geekswithblogs_net/JoshReuben/341px-Syzygy_Darklock.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;  &lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;worked on 2 Silverlight projects recently - see screenshots:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;img height="364" width="600" alt="" src="/images/geekswithblogs_net/JoshReuben/SilverllightTimeline.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;and &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;img height="364" width="600" alt="" src="/images/geekswithblogs_net/JoshReuben/SilverlightYouniversity.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"&gt;&lt;font face="Calibri" size="3"&gt;Last 3 months learned the following:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;NET Components revise&lt;/strong&gt; – reread Yuval Loweys book – revised best mechanism for interface usage, &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;delegates (circa .NET Framework 2.0), threading. The Interface stuff leads me to think upon the design patterns Decorator, Bridge and Proxy, and on the Unity AB IoC. The threading stuff is good – advises not to go low level – forget Monitor, Mutex, AutoResetEvent and just use Synchronization domains. Superseded by Pfx TPL and PLINQ&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Task and Future&amp;lt;T&amp;gt;. the delegate stuff was written before lambda expressions and OOB delegate types.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;WCF changes since NET Framework 3.5&lt;/strong&gt;: Web Programming – exposing Atom Syndication feeds, non SOAP endpoints (POST, GET) , JSON objects for AJAX clients&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;ASPNET MVC&lt;/strong&gt; – route engine is nice. I like the way Uris map to controller actions (whose return type is unit testable). Controllers then access models and load appropriate views. Seems to abandon the usage of classic ASP.NET server controls – a slight adoption problem. &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Silverlight 2&lt;/strong&gt; – covered everything. Some considerable differences from WPF – no property inheritance, no 3D support, binding syntax is different. Thought about a distributed Silverlight / WCF Grid computing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;FxCop Rule creation&lt;/strong&gt; – looked at the clunky introspection API (as opposed to reflection).&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;LINQ to Entities&lt;/strong&gt; – ObjectContext instead of DataContext. Differences: M-M support in the EDM, object services, lazy vs eager loading. Some stuff on precompiled queries. IUpdatable as a complement to IQueryable&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Unity AB&lt;/strong&gt; – Inversion of control / dependency injection. Basically via config or on demand can register types and instances. Used in Prism&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;C# revise&lt;/strong&gt; – always relearn something new (an anti-oxymoron!). yield statement, boxing&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;VSTO&lt;/strong&gt; – nothing useful here. In C# every VBA wrapper method must pass 50 nulls !&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Silverlight Services&lt;/strong&gt; – how to host a .xap file on the mesh&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Excel Services&lt;/strong&gt; – interesting. web services for accessing Sharepoint hosted spreadsheets – display in WebParts. Why is this coupled with MOSS?&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;VLinq&lt;/strong&gt; – an access like LINQ designer. I await OOB.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Read Book LINQ in Action&lt;/strong&gt; – interesting section was on predefined delegate types - Function, Action, Predicate, ExpressionTree – will dig more here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Book:ASP.NET Pageflakes&lt;/strong&gt; &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;- Ajax and ASP.NET caching &amp;amp; membership optimizations for a portal like site. However, I am more interested in Silverlight – ASP.NET &amp;amp; AJAX are passé &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Learn License theory&lt;/strong&gt; – one day I will drive in Israel – even though everybody else is on the wrong side of the road.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Windows HPC&lt;/strong&gt; – scale out Grid computing for embaressingly parallel algorithms (in compliance with Amdahl law) – especially for Financial Services – Distribute your Black-Scholes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;.&lt;strong&gt;NET Framework 3.5 sp1 changes&lt;/strong&gt; – Asp.NET Dynamic Data , SQL Server 2008 DATE &amp;amp; FILSTREAM datatype support, WPF optimizations&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Entity framework&lt;/strong&gt; – EDM 3 xml files (CSDL, SSDL and MSL)&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;supports M-M scenarios, MEST. WCF support. ESQL differences from TSQL (notion of association vs relation). ObjectServices – looks like LINQ to Entities but is actually extension methods that call ESQL with ObjectParameter params.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Data Services Framework&lt;/strong&gt; – like Workflow Services, this is an abstraction over WCF. Exposes Entity Framework via RESTful querystrings. Support for batching &amp;amp;concurrency&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Prism&lt;/strong&gt; – guidance for Modular WPF . AB utilizes Unity in Bootsrapper , modules use services and place views in regions. Would be nice if it leveraged some of the architecture of ASP.NET MVC.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;o:p&gt;I have been contemplating the concept of ratios and magnitude. the Pi ratio, the Riemann Sum and the definition of rational numbers vs irrational numbers. &lt;/o:p&gt;&lt;/p&gt;
&lt;p&gt;&lt;o:p&gt;Until PDC, .NET is in a plateau - while there are plenty of areas I would like to improve in (IIS 7, performance, debugging) I am taking a hiatus for 4 months from tech knowldege in order to dive down the mathematical rabbithole - calculus , linear algebra, probability and numerical methods.&lt;/o:p&gt;&lt;/p&gt;
&lt;/span&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/122575.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/122575.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/122575.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/122575.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Sharepoint Architecture </title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2008/03/03/sharepoint-architecture.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2008/03/03/sharepoint-architecture.aspx</id>
        <published>2008-03-03T05:34:45-06:00:00</published>
        <updated>2008-03-03T05:34:45Z</updated>
        <content type="html">&lt;p&gt;About 2 months ago, I had to evaluate MOSS / WSS - compare its features and capacity plan. I'm not sure i want I to go down the Sharepoint path - Its too restrictive, too meta-programmy , it doesnt give you OOTB AJAX enabled WebParts, and is a different path than Silverlight (maybe the next version will be &lt;strong&gt;SilverPoint&lt;/strong&gt; ?). On the flipside, the concepts of pluggable WebParts, InfoPath, &lt;strong&gt;Excel Services&lt;/strong&gt; and &lt;strong&gt;Sharepoint Workflows&lt;/strong&gt; are appealing.&lt;/p&gt;
&lt;p&gt;Basically, to learn sharepoint you have to read the following:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Sharepoint Planning Guide (1500 pages - did this) - &lt;font face="Arial"&gt;&lt;a href="http://office.microsoft.com/download/afile.aspx?AssetID=AM101638541033"&gt;http://office.microsoft.com/download/afile.aspx?AssetID=AM101638541033&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;Sharepoint Administration (500 pages) - &lt;font face="Arial"&gt;&lt;a href="http://office.microsoft.com/en-us/sharepointserver/FX101211721033.aspx"&gt;http://office.microsoft.com/en-us/sharepointserver/FX101211721033.aspx&lt;/a&gt; &lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;MOSD doco (500 pages)&lt;/li&gt;
    &lt;li&gt;WSS SDK - &lt;span class="a"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=05E0DD12-8394-402B-8936-A07FE8AFAFFD"&gt;www.microsoft.com/downloads/details.&lt;wbr&gt;&lt;/wbr&gt;aspx?FamilyId=05E0DD12-8394-402B-8936-A07FE8AFAFFD&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;MOSS SDK - &lt;span class="a"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6D94E307-67D9-41AC-B2D6-0074D6286FA9"&gt;www.microsoft.com/downloads/details.&lt;wbr&gt;&lt;/wbr&gt;aspx?FamilyId=6D94E307-67D9-41AC-B2D6-0074D6286FA9&lt;/a&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/120148.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/120148.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/120148.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/120148.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Knowledge accumulation</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2008/02/08/knowledge-accumulation.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2008/02/08/knowledge-accumulation.aspx</id>
        <published>2008-02-08T06:19:53-06:00:00</published>
        <updated>2008-02-08T06:19:53Z</updated>
        <content type="html">&lt;p&gt;Read 3 good books this month:&lt;/p&gt;
&lt;p&gt;&lt;u&gt;1) the Emotion Machine&lt;/u&gt; - by Marvin Minsky - postulates how emotional states are a mechanism for changing the priority weighting of our cognitive machinary in regards to goals and tasks. A fair bit of conjecture as opposed to experimentally backed up theorum, and some rehash of his previous work 'The Society of Mind'.&lt;/p&gt;
&lt;p&gt;&lt;img height="130" width="130" alt="" src="/images/geekswithblogs_net/JoshReuben/the emotion machine.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;2) MultiAgent Systems&lt;/u&gt; - Wooldridge - design of distributed workflow services that have different goals and tasks, and often which must compete , communcate and coordinate. Alot of different ideas on modal logic, game theory and auctions. Alot of the communication protocols are redundant with WCF. strangely, no mention of probabibilistic models.&lt;/p&gt;
&lt;p&gt;&lt;img height="130" width="130" alt="" src="/images/geekswithblogs_net/JoshReuben/multiagent systems.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;3) Programming the Universe&lt;/u&gt; - Seth Loyd - a fascinating introduction to the science of quantum computing. unlike PLINQ where parallel threads must run tasks that doent interfere with each others resources, quantum computing is actually optimized for massively parallel tasks that contain side effects! Eg searching for the 2 prime factors that make up a public encryption key. Postulates the universe may be a quntum computer computing itself - 'it from bit'. &lt;/p&gt;
&lt;p&gt;&lt;img height="130" width="130" alt="" src="/images/geekswithblogs_net/JoshReuben/Programming the universe.jpg" /&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/119389.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/119389.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/119389.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/119389.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Workflow services</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2008/01/21/workflow-services.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2008/01/21/workflow-services.aspx</id>
        <published>2008-01-21T06:14:24-06:00:00</published>
        <updated>2008-01-21T06:14:24Z</updated>
        <content type="html">&lt;div style="MARGIN: 1pt 0cm; VERTICAL-ALIGN: top"&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Workflow services, new for 3.5, are services that are authored using workflows. Durable services are services that use a persistence provider to persist state information after an operation has completed. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; The implementation of the service contract is handled through one or more &lt;strong&gt;ReceiveActivity&lt;/strong&gt; activities, which are sequence activities that support either one-way or request/response message exchanges with a client. The client invokes operations through &lt;strong&gt;SendActivity&lt;/strong&gt; activities, which are basic activities that support the same message exchange scenarios as the workflow service.&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 1pt 0cm; VERTICAL-ALIGN: top"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style="MARGIN: 1pt 0cm; VERTICAL-ALIGN: top"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt; COLOR: black"&gt;Workflow Services Samples&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style="MARGIN: 1pt 0cm 1pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb410782.aspx"&gt;Calculator Client Sample&lt;/a&gt; - the client application that is used with the calculator state machine service.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 1pt 0cm 1pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb410767.aspx"&gt;Durable Service Sample&lt;/a&gt; - implement a basic calculator as a durable service.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 1pt 0cm 1pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb410781.aspx"&gt;Sequential Workflow Service Sample&lt;/a&gt; - create a workflow service by using a sequential workflow &amp;amp; create a service contract in place.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 1pt 0cm 1pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb410774.aspx"&gt;State Machine Workflow Service Sample&lt;/a&gt; - Demonstrates how to create a workflow service by using a state machine workflow. implement a basic calculator by using a state machine workflow.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 1pt 0cm 1pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb410773.aspx"&gt;Workflow First and Security Sample&lt;/a&gt; - Demonstrates the "workflow first" method of authoring services as well as security features within workflow services.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb410775.aspx"&gt;Conversations Sample&lt;/a&gt; - Demonstrates how a workflow service can have parallel conversations with multiple clients over the same contract.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb410772.aspx"&gt;Duplex Workflow Service Sample&lt;/a&gt; - Demonstrates how to perform asynchronous duplex communication between two communicating services. Also demonstrates how to perform localhost-to-workflow communication by using messages.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; VERTICAL-ALIGN: top; TEXT-INDENT: -18.15pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb410771.aspx"&gt;Workflow Service Utilities&lt;/a&gt; - Contains all the utilities that the other samples in this section use to manipulate the context and create the listener infrastructure for local services.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/118734.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/118734.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/118734.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/118734.aspx</trackback:ping>
    </entry>
    <entry>
        <title>List of thought processes</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2008/01/13/list-of-thought-processes.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2008/01/13/list-of-thought-processes.aspx</id>
        <published>2008-01-13T06:25:39-06:00:00</published>
        <updated>2008-01-13T06:25:39Z</updated>
        <content type="html">&lt;p&gt;Heres an interesting Wikipedia topic - &lt;font face="Arial"&gt;&lt;a href="http://en.wikipedia.org/wiki/List_of_thought_processes"&gt;http://en.wikipedia.org/wiki/List_of_thought_processes&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;This is a list of &lt;a title="Cognitive style" href="http://en.wikipedia.org/wiki/Cognitive_style"&gt;thinking styles&lt;/a&gt;, methods of thinking (thinking skills), and types of &lt;a title="Thought" href="http://en.wikipedia.org/wiki/Thought"&gt;thought&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I wonder how many of these have been abstracted into algorithms and computational models?&lt;/p&gt;
&lt;p&gt;I've read 2/3 of Norvig's AI book, and i can see that serious attempts have been made at problem solving, reasoning, planning, reasoning under uncertainty and learning. I've also looked into the problem of Attention.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/118498.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/118498.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/118498.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/118498.aspx</trackback:ping>
    </entry>
    <entry>
        <title>SSAS DM Algorithms</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/JoshReuben/archive/2007/12/31/ssas-dm-algorithms.aspx" />
        <id>http://geekswithblogs.net/JoshReuben/archive/2007/12/31/ssas-dm-algorithms.aspx</id>
        <published>2007-12-31T06:19:28-06:00:00</published>
        <updated>2007-12-31T06:22:40Z</updated>
        <content type="html">&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;font size="3"&gt; DM a&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;font face="Times New Roman" size="3"&gt;lgorithms&lt;/font&gt; that come with SSAS&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Decision Trees Algorithm:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; uses the values, or states, of the designated “input columns” to predict the states of the column that was designated as “predictable”. It identifies the attribute tree that best predicts the result. allows for interplay between attributes and provides a hierarchy of attribute definitions that can be used to take a decision.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Clustering Algorithm:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;u&gt;grouping of the cases that contain similar characteristics&lt;/u&gt;. Identifies how the data forms subgroups and how these subgroups are different from each other. finds patterns without a specific target result.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Naive Bayes Algorithm: &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Identifies the attribute that is most likely to predict the result&lt;/span&gt;&lt;/u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;. &lt;u&gt;less computationally intense&lt;/u&gt; than others - useful for quickly generating a DMM to discover relationships between input columns and predictable columns. Use to do initial explorations of data, and then later apply the results to create additional DMMs with other algorithms that are more computationally intense and more sophisticated.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Association Algorithm:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; Association models are built on datasets that contain identifiers both for individual cases and item set that the cases contain. An association model is made up of a series of item sets and the &lt;u&gt;rules that describe how those items are grouped together within the cases&lt;/u&gt;. The rules that the algorithm identifies can be used to predict a customer's likely future purchases, based on the items that already exist in the customer's shopping cart. It basically &lt;u&gt;identifies the subgroup of data that participates in a specific transaction&lt;/u&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Sequence Clustering Algorithm: &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;u&gt;Identifies the event that is likely to happen next&lt;/u&gt;. takes a sequence of events as input parameter and is well suited for click stream. similar to the Clustering Algorithm. However, instead of finding clusters of cases that contain similar attributes, this algorithm &lt;u&gt;finds clusters of cases that contain similar paths&lt;/u&gt; in a sequence.   &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Time Series Algorithm: &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; for predicting &lt;u&gt;continuous&lt;/u&gt; columns such as product sales. While other Microsoft algorithms create models, time series model is based only on the trends that the algorithm derives from the original dataset to create a forecast model. It basically identifies the trends that are happening and predicting future from the current data.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Neural Network Algorithm: &lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; Similar to the Decision Trees algorithm, this algorithm also Identifies attribute tree that best predicts the result, &lt;u&gt;but involves more than 2 attributes analyzed at a time&lt;/u&gt;. probabilities for each possible state of the input attribute when given each state of the predictable attribute. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Logistic Regression Algorithm:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; a &lt;u&gt;variation of the Neural Network algorithm&lt;/u&gt;, where the HIDDEN_NODE_RATIO parameter is set to 0. This setting &lt;u&gt;will create a neural network model that does not contain a hidden layer, and that therefore is equivalent to logistic regression&lt;/u&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Linear Regression Algorithm:&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; &lt;u&gt;variation of the Decision Trees algorithm&lt;/u&gt;, where the MINIMUM_LEAF_CASES parameter is set to be greater than or equal to the total number of cases in the dataset that the algorithm uses to train.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;DM strategies&lt;/span&gt;&lt;/u&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - &lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;2 main kinds of models: predictive &amp;amp; descriptive &lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="MARGIN: 2.4pt 0cm; TEXT-ALIGN: justify"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Predictive Models&lt;/span&gt;&lt;/u&gt;&lt;span style="FONT-SIZE: 10pt"&gt; -classification, regression, time series analysis, prediction. can be used to forecast explicit values, based on patterns determined from known results.&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Classification algorithms&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - predict one or more &lt;u&gt;discrete&lt;/u&gt; variables, based on the other attributes in the dataset. E.g. Decision Trees Algorithm. &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Regression algorithms&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - predict one or more &lt;u&gt;continuous&lt;/u&gt; variables, based on other attributes in the dataset. e.g. Regression Algorithm.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Time Series algorithms&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - forecast the patterns based on the current set of &lt;u&gt;continuous&lt;/u&gt; predictable attributes. e.g. Time Series algorithm &lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Prediction&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - the estimation of future outcomes. works on &lt;u&gt;continuous&lt;/u&gt; attribute set. Time Series and Decision Trees Algorithms.&lt;/span&gt;&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0cm" type="disc"&gt;
    &lt;li style="MARGIN: 2.4pt 0cm; TEXT-ALIGN: justify"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Descriptive Models&lt;/span&gt;&lt;/u&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - clustering, summarization, association rules, sequence discovery. describe patterns in existing data, and are generally used to &lt;u&gt;create meaningful subgroups&lt;/u&gt; such as demographic clusters.&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Segmentation algorithms&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - divide data into groups, or clusters, of items that have similar properties. e.g. Clustering Algorithm.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Summarization algorithms&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - similar to clustering algorithm but &lt;u&gt;instead of grouping the data, it would quantify the members of the group&lt;/u&gt;, such as group 1 has more number of line items available and it has most probability of occurring. e.g. Clustering Algorithm.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Association algorithms&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - find correlations between different attributes in a dataset. creating association rules, which can be used in a market basket analysis. e.g. Association Algorithm.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Sequence analysis algorithms&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - summarize frequent sequences or episodes in data, such as a Web path flow.  e.g. Sequence Clustering Algorithm.&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 36pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;·&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Choosing the right algorithm to use for a specific business task&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - can be a challenge. While you can use different algorithms to perform the same business task, each algorithm produces a different result, and some algorithms can produce more than one type of result. E.g. you can use the Microsoft Decision Trees algorithm not only for prediction, but also as a way to reduce the number of columns in a dataset, because the decision tree can identify columns that do not affect the final DMM.&lt;/span&gt; &lt;/li&gt;
    &lt;li&gt;
    &lt;div&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Combining algorithms&lt;/span&gt;&lt;/u&gt;&lt;span style="FONT-SIZE: 10pt"&gt; - can use different algorithms to perform the same business task and each algorithm produces a different result. &lt;u&gt;Lift charts&lt;/u&gt; check the accuracy of the DMMs once built on the input data. Use more than one algorithm to produce results and analyze the results for choosing the right one. Different algorithms produce different results. The choosing of the algorithms is based on the accuracy and on the business need. &lt;u&gt;Use algorithms together&lt;/u&gt; – use some algorithms to explore data, and then use other algorithms to predict a specific outcome based on that data. E.g. you can use a clustering algorithm, which recognizes patterns, to break data into groups that are more or less homogeneous, and then use the results to create a better decision tree model. &lt;u&gt;Use multiple algorithms within one solution to perform separate tasks&lt;/u&gt; - E.g. regression tree algorithm can be used to obtain financial forecasting information, and a rule-based algorithm to perform a market basket analysis.&lt;/span&gt;&lt;/div&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li style="MARGIN: 2.4pt 0cm; TEXT-ALIGN: justify"&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;The bottom line - Task &amp;amp; algorithms to use &lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Predicting a discrete attribute&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;. E.g. to predict whether the recipient of a targeted mailing campaign will buy a product. use: &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms175312.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Decision Trees &lt;/span&gt;&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/ms174806.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Naive Bayes &lt;/span&gt;&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/ms174879.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Clustering, &lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms174941.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Neural Network &lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Predicting a continuous attribute&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;. E.g. to forecast next year's sales. use: &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms175312.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Decision Trees, &lt;/span&gt;&lt;/a&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms174923.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Time Series &lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Predicting a sequence&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;. E.g. to perform a clickstream analysis of a company's Web site. use: &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms175462.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Sequence Clustering &lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Finding groups of common items in transactions&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;. E.g. to use market basket analysis to suggest additional products to a customer for purchase. use: &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms174916.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Association &lt;/span&gt;&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/ms175312.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Decision Trees &lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;o&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span dir="ltr"&gt;&lt;u&gt;&lt;span style="FONT-SIZE: 10pt"&gt;Finding groups of similar items&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt"&gt;. E.g. to segment demographic data into groups to better understand the relationships between attributes. use: &lt;strong&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms174879.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Clustering &lt;/span&gt;&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/library/ms175462.aspx"&gt;&lt;span style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none"&gt;Sequence Clustering &lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="MARGIN: 2.4pt 0cm 2.4pt 72pt; TEXT-INDENT: -18pt; TEXT-ALIGN: justify"&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;img height="471" alt="" width="500" src="/images/geekswithblogs_net/JoshReuben/01_008_fire_with_fleeing_ho.jpg" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://geekswithblogs.net/JoshReuben/aggbug/118077.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/JoshReuben/comments/118077.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/JoshReuben/comments/commentRss/118077.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/JoshReuben/services/trackbacks/118077.aspx</trackback:ping>
    </entry>
</feed>