<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Technical Thoughts</title>
	<atom:link href="http://modeeb.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://modeeb.me</link>
	<description>by Mohamed El-Deeb</description>
	<lastBuildDate>Sat, 30 Mar 2013 01:57:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='modeeb.me' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/f6981012ec6c9b606fc7a8899416582c?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Technical Thoughts</title>
		<link>http://modeeb.me</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://modeeb.me/osd.xml" title="Technical Thoughts" />
	<atom:link rel='hub' href='http://modeeb.me/?pushpress=hub'/>
		<item>
		<title>The art of debugging</title>
		<link>http://modeeb.me/2010/09/16/the-art-of-debugging/</link>
		<comments>http://modeeb.me/2010/09/16/the-art-of-debugging/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 10:49:15 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/?p=106</guid>
		<description><![CDATA[I was reading &#8220;How to think like a computer scientist&#8221; and I liked a quote describing the art of debugging by elimination of impossible scenarios&#8230; When you have eliminated the impossible, whatever remains, however improbable, must be the truth. &#160; &#160; Sherlock Holmes (The sign of four) The story behind reading that book is that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=106&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I was reading &#8220;<a href="http://openbookproject.net/thinkcs/python/english2e/" target="_blank">How to think like a computer scientist</a>&#8221; and I liked a quote describing the art of debugging by elimination of impossible scenarios&#8230;</p>
<div>
<blockquote><p><img class="alignright" title="The Sign of Four" src="http://ecx.images-amazon.com/images/I/51QHY4Ojm1L._SL500_AA300_.jpg" alt="" width="126" height="126" />When you have eliminated the impossible, whatever remains, however improbable, must be the truth.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Sherlock Holmes (<a class="zem_slink" title="The Sign of Four (Penguin Classics)" href="http://www.amazon.com/Sign-Four-Penguin-Classics/dp/0140439072%3FSubscriptionId%3D0G81C5DAZ03ZR9WH9X82%26tag%3Dzemanta-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0140439072" rel="amazon">The sign of four</a>)</p></blockquote>
<p>The story behind reading that book is that I was interested to learn <a class="zem_slink" title="Python (programming language)" href="http://www.python.org/" rel="homepage">Python</a>, just for the fun of it, and I found that book which is aimed for 1st year computer science students. I thought it would be interesting too to join the ride and start learning a new language assuming I had no experience too. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>
<br />Filed under: <a href='http://modeeb.me/category/craftsmanship/'>Craftsmanship</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=106&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2010/09/16/the-art-of-debugging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>

		<media:content url="http://ecx.images-amazon.com/images/I/51QHY4Ojm1L._SL500_AA300_.jpg" medium="image">
			<media:title type="html">The Sign of Four</media:title>
		</media:content>
	</item>
		<item>
		<title>Movies that inspired Software</title>
		<link>http://modeeb.me/2009/09/27/movies-that-inspired-software/</link>
		<comments>http://modeeb.me/2009/09/27/movies-that-inspired-software/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 22:18:31 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/?p=116</guid>
		<description><![CDATA[Antitrust I will start first with the movies that inspired me at the beginning of my career as a programmer, it was Antitrust. Adapted from the story of Microsoft Antitrust case, the movie is based around a tycoon in software (NURV) with its CEO (who happened to look like Bill Gates ) and a genius [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=128&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><strong>Antitrust</strong></p>
<p><img class="alignright" title="NURV" src="http://m0vie.files.wordpress.com/2011/04/antitrust2.jpg?w=280&#038;h=260&#038;h=182" alt="" width="280" height="182" /></p>
<p>I will start first with the movies that inspired me at the beginning of my career as a programmer, it was Antitrust. Adapted from the story of <a class="zem_slink" title="United States v. Microsoft" href="http://en.wikipedia.org/wiki/United_States_v._Microsoft" rel="wikipedia">Microsoft Antitrust case</a>, the movie is based around a tycoon in software (NURV) with its CEO (who happened to look like Bill Gates <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) and a genius computer science graduate who was offered a job at NURV.</p>
<p>I enjoyed the movies because of its programmers&#8217; appeal, credits written in coding style with &lt;html&gt; tags and // Comments, opening soundtrack was amazing, and cast well chosen. Despite the fact that in NURV (Microsoft) code was written in Java, but most details were taken care of.</p>
<p>The point I liked much was when the young boy was contacted by (Bill Gates) in person and offered his dream job that he didn&#8217;t even apply for. I liked the feeling of excelling in your field that jobs search for you not the opposite, the excitement of a young boy joining the company he never imagined he could join. The words that really inspired me for years later, was the welcome speech of the CEO when he said about software business:</p>
<blockquote><p><em>This business is binary, you are a one or a zero, alive or dead. There is no second place</em>.</p></blockquote>
<p>You can watch this part <a title="Antitrust" href="http://youtu.be/QYMn6pXOmJU" target="_blank">here</a></p>
<p><strong>Monty Python</strong></p>
<p>I didn&#8217;t know about this British comic band of the 70&#8242;s before a few months ago; that was when I discovered how their <a class="zem_slink" title="Monty Python" href="http://www.pythonline.com/" rel="homepage">Monty Python&#8217;s Flying Circus</a> was a favorite for many programmers at that time. For a beginning, <a class="zem_slink" title="Python (programming language)" href="http://www.python.org/" rel="homepage">Python language</a> was named after this show because programming with the language was supposed to be as much fun as the show was. One of the famous sketches of this show was the <a class="zem_slink" title="Spam (Monty Python)" href="http://en.wikipedia.org/wiki/Spam_%28Monty_Python%29" rel="wikipedia">Spam sketch</a> below.</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='549' height='339' src='http://www.youtube.com/embed/anwy2MPT5RE?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>In this sketch the word &#8220;spam&#8221; and &#8220;spam with eggs&#8221; was introduced frequently in a restaurant menu as an undesired ingredient and later all along the sketch, even the end credits. From this sketch came the word spam that describes unwanted mails. The words &#8220;spam&#8221; and &#8220;eggs&#8221; are also used in Python literature. I used to think that Python packages are named eggs because &#8220;pythons&#8221; are conceived in &#8220;eggs&#8221; but I think it has also to do with the show.</p>
<p>I don&#8217;t know if other movies or shows have inspired software or not but that was the ones I thought of.</p>
<br />Posted in Community Tagged: Community, Creativity <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=128&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/09/27/movies-that-inspired-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>

		<media:content url="http://m0vie.files.wordpress.com/2011/04/antitrust2.jpg?w=400&#38;h=260" medium="image">
			<media:title type="html">NURV</media:title>
		</media:content>
	</item>
		<item>
		<title>Composite WPF and the Ribbon Control</title>
		<link>http://modeeb.me/2009/08/27/composite-wpf-and-the-ribbon-control/</link>
		<comments>http://modeeb.me/2009/08/27/composite-wpf-and-the-ribbon-control/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 18:46:21 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[Extensible Application Markup Language]]></category>
		<category><![CDATA[Microsoft Visual Studio]]></category>
		<category><![CDATA[Model-View-ViewModel]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[User interface]]></category>
		<category><![CDATA[Windows Presentation Foundation]]></category>

		<guid isPermaLink="false">http://icodeforliving.com/?p=135</guid>
		<description><![CDATA[While working for WPF and Composite Application Library (CAL) for the first time, I had some difficulty both understanding their concepts and apply them in the optimal way, but I tried harder. One of the benefits of CAL I found was the Command Binding which truly facilitates complying to the Model-View-ViewModel UI Design Architecture. But finding [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=135&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>While working for WPF and Composite Application Library (CAL) for the first time, I had some difficulty both understanding their concepts and apply them in the optimal way, but I tried harder.</p>
<p>One of the benefits of CAL I found was the Command Binding which truly facilitates complying to the <a class="zem_slink" title="Model View ViewModel" href="http://en.wikipedia.org/wiki/Model_View_ViewModel" rel="wikipedia">Model-View-ViewModel</a> UI Design Architecture. But finding an easy implementation for them in all the desired control was not as easy as with default menu items and tool bars. A <a title="WPF - Is this a fit? Composite WPF (Prism), multiple screens/controls &amp; 3rd Party Controls (Docking, Ribbon)" href="http://stackoverflow.com/q/687319/74138" target="_blank">question</a> on stackoverflow was asking about implementing the Command Binding with the WPF Ribbon which is downloadable within the WPF Futures, and not included in the out-of-box visual studio installation.</p>
<p>The trick was to make custom region adapters as those of menu and tool bar. I have found samples of  RibbonRegionAdapter.</p>
<p>To comply with CAL and Model-View-ViewModel,  the View containing the Ribbon will be be bound to a ViewModel containing all commands. These commands would be exposed publicly and available to other modules to attach Executed and CanExecute handlers. It is possible also to expose a generic method to add commands at run time by providing their image and location on the ribbon.</p>
<p>I found also open source implementation for binding the docking manager. The Composite WPF Contrib Project on <a class="zem_slink" title="CodePlex" href="http://www.codeplex.com/" rel="homepage">CodePlex</a> contains a <strong>TabGroupPaneRegionAdapter</strong> for Infragistics TabGroupPane.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f04%2f29%2fcomposite-wpf-and-the-ribbon-control"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f04%2f29%2fcomposite-wpf-and-the-ribbon-control" alt="kick it on DotNetKicks.com" border="0" /></a></p>
<br />Posted in Framework Tagged: .NET Framework, Extensible Application Markup Language, Microsoft Visual Studio, Model-View-ViewModel, Programming, User interface, Windows Presentation Foundation <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=135&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/08/27/composite-wpf-and-the-ribbon-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>

		<media:content url="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f04%2f29%2fcomposite-wpf-and-the-ribbon-control" medium="image">
			<media:title type="html">kick it on DotNetKicks.com</media:title>
		</media:content>
	</item>
		<item>
		<title>Augmented Reality</title>
		<link>http://modeeb.me/2009/05/27/augmented-reality/</link>
		<comments>http://modeeb.me/2009/05/27/augmented-reality/#comments</comments>
		<pubDate>Wed, 27 May 2009 14:57:25 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/?p=100</guid>
		<description><![CDATA[Every great magic trick consists of three parts or acts. The first part is called &#8220;The Pledge&#8221;. The magician shows you something ordinary: a deck of cards, a bird or a man. He shows you this object. Perhaps he asks you to inspect it to see if it is indeed real, unaltered, normal. But of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=100&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<blockquote><p>Every great magic trick consists of three parts or acts. The first part is called &#8220;The Pledge&#8221;. The magician shows you something ordinary: a deck of cards, a bird or a man. He shows you this object. Perhaps he asks you to inspect it to see if it is indeed real, unaltered, normal. But of course&#8230; it probably isn&#8217;t. The second act is called &#8220;The Turn&#8221;. The magician takes the ordinary something and makes it do something extraordinary. Now you&#8217;re looking for the secret&#8230; but you won&#8217;t find it, because of course you&#8217;re not really looking. You don&#8217;t really want to know. You want to be fooled. But you wouldn&#8217;t clap yet. Because making something disappear isn&#8217;t enough; you have to bring it back. That&#8217;s why every magic trick has a third act, the hardest part, the part we call &#8220;<a class="zem_slink" title="The Prestige (film)" href="http://www.imdb.com/title/tt0482571/" rel="imdb">The Prestige</a>&#8220;</p>
<p>From the movie &#8220;The Prestige&#8221;</p></blockquote>
<p><img class="alignright" title="GE Power Grid" src="http://icodeforliving.files.wordpress.com/2009/05/geaugmentedreality.png?w=280&#038;h=279" alt="" width="280" height="279" />I had that feeling when I read an article about <a class="zem_slink" title="Augmented reality" href="http://en.wikipedia.org/wiki/Augmented_reality" rel="wikipedia">Augmented Reality</a> which I haven&#8217;t heard of before.</p>
<p>The article mentioned a <a href="http://ge.ecomagination.com/smartgrid/#/augmented_reality" target="_blank">page developed by General Electric</a> as an example</p>
<p>I went directly to the video and my eyes and mouth were wide open for 5 minutes until I realized what it is</p>
<p>Here is another video showing the &#8220;making&#8221; &#8230;</p>
<p><a href="http://www.gotoandlearn.com/play?id=105">http://www.gotoandlearn.com/play?id=105</a></p>
<p>And now after being “enlightened” , I can tell the “trick”</p>
<p>We all know that we can render 3D graphics and change the viewpoint by changing the position (x, y, and z) of the camera object</p>
<p>We also know that with computer vision, we can detect the position and the rotation of a certain pattern on all axis</p>
<p>Combining the two concepts, we can use the computer camera to detect the position of the viewer (the human) relative to the position and rotation of the pattern and then render the 3D graphics respectively</p>
<p>So simple isn&#8217;t it, but yet amazing</p>
<br />Posted in Uncategorized Tagged: Augmented Reality, Flash <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=100&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/05/27/augmented-reality/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>

		<media:content url="http://icodeforliving.files.wordpress.com/2009/05/geaugmentedreality.png?w=280" medium="image">
			<media:title type="html">GE Power Grid</media:title>
		</media:content>
	</item>
		<item>
		<title>Historical Debugger and Test Impact Analysis in Visual Studio Team System 2010</title>
		<link>http://modeeb.me/2009/04/29/historical-debugger-and-test-impact-analysis-in-visual-studio-team-system-2010/</link>
		<comments>http://modeeb.me/2009/04/29/historical-debugger-and-test-impact-analysis-in-visual-studio-team-system-2010/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 12:54:19 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[IDE and Tools]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/?p=98</guid>
		<description><![CDATA[I was browsing some of the awaited-for Visual Studio 2010 and I found a video about two interesting features related to what we do everyday (and I do not mean coding ) The first feature is related to debugging “history”. Normally, when you find a bug while running your program, you insert multiple breakpoints on the statements [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=98&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I was browsing some of the awaited-for Visual Studio 2010 and I found a video  about two interesting features related to what we do everyday (and I do not  mean coding <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p>The first feature is related to debugging “history”. Normally, when you find  a bug while running your program, you insert multiple breakpoints on the  statements you suspect might caused it, and repeat the scenario or restart the  debug session.</p>
<p>With history debugging, you don’t need to do so, since the history debugger  “logs” every event in your application, so you can “pause” running and inspect  all the previous events and may be check if there were “swallowed”  exceptions.</p>
<p>The second feature, is when you want to modify some “unit-tested” code either  for bug fixing or refactoring, and you want to re-run the impacted tests.  Normally it is hard to determine which tests are affected so you run all of  them, but with Test Impact Analysis in VS 2010, you can get the impacted tests  once you save your modifications, so you can either commit your changes or  undo.</p>
<p>Here is the 19 minutes video showing these two features on Channel 9</p>
<p><a href="http://channel9.msdn.com/posts/VisualStudio/Historical-Debugger-and-Test-Impact-Analysis-in-Visual-Studio-Team-System-2010/">Historical  Debugger and Test Impact Analysis in Visual Studio Team System 2010</a></p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f04%2f29%2fhistorical-debugger-and-test-impact-analysis-in-visual-studio-team-system-2010"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f04%2f29%2fhistorical-debugger-and-test-impact-analysis-in-visual-studio-team-system-2010" border="0" alt="kick it on DotNetKicks.com" /></a></p>
<br />Posted in IDE and Tools Tagged: Debugging, Development, IDE and Tools, Microsoft, Refactoring, Testing <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=98&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/04/29/historical-debugger-and-test-impact-analysis-in-visual-studio-team-system-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>

		<media:content url="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f04%2f29%2fhistorical-debugger-and-test-impact-analysis-in-visual-studio-team-system-2010" medium="image">
			<media:title type="html">kick it on DotNetKicks.com</media:title>
		</media:content>
	</item>
		<item>
		<title>C# 4.0: What&#8217;s next</title>
		<link>http://modeeb.me/2009/04/08/c-40-whats-next/</link>
		<comments>http://modeeb.me/2009/04/08/c-40-whats-next/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 00:16:52 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Covariance & Contravariance]]></category>
		<category><![CDATA[Dynamic Typing]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/?p=93</guid>
		<description><![CDATA[Since I have talked before about Visual Studio 2010 and Dynamic Typing, it is now time to talk about the upcoming C# 4.0 which we are expecting soon. To understand how C# evolved and what is the paradigm of C# 4.0, let’s get a quick overview of previous versions. In 1998 the C# began as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=93&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Since I have talked before about <a href="http://modeeb.me/2008/10/01/visual-studio-2010-rosario/" target="_blank">Visual Studio 2010</a> and <a href="http://modeeb.me/2008/12/06/dynamic-typing/" target="_blank">Dynamic Typing</a>, it is now time to talk about the upcoming C# 4.0 which we are expecting soon.</p>
<p>To understand how C# evolved and what is the paradigm of C# 4.0, let’s get a quick overview of previous versions.</p>
<p>In 1998 the C# began as a simple, modern, object-oriented, and type-safe programming language for the .NET platform. Since launched in the summer of 2000, C# has become one of the most popular programming languages in use today.</p>
<p>With version 2.0 the language evolved to provide support for generics, anonymous methods, iterators, partial types, and nullable types.</p>
<p>When designing version 3.0 of the language the emphasis was to enable LINQ (Language Integrated Query) which required the addition of:</p>
<ul>
<li>Implicitly Typed Local Variables.</li>
<li>Extension Methods.</li>
<li>Lambda Expressions.</li>
<li>Object and Collection Initializers.</li>
<li>Anonymous types.</li>
<li>Implicitly Typed Arrays.</li>
<li>Query Expressions and Expression Trees.</li>
</ul>
<p>Although C# is an object-oriented programming, but C# 3.0 included some capabilities of <a href="http://modeeb.me/2008/10/09/an-insight-on-functional-programming/" target="_blank">functional programming</a> to enable LINQ</p>
<p>In version 4.0 the C# programming language continues to evolve, although this time the C# team were inspired by dynamic languages such as Perl, Python, and Ruby.</p>
<p>Another paradigm that is driving language design and innovation is concurrency and that is a paradigm that has certainly influenced the development of Visual Studio 2010 and the .NET Framework 4.0.</p>
<p>Essentially the C# 4.0 language innovations include:</p>
<ul>
<li>Dynamically Typed Objects.</li>
<li>Optional and Named Parameters.</li>
<li>Improved COM Interoperability.</li>
<li>Safe Co-variance and Contra-variance.</li>
</ul>
<p>To show these features, I’ll show some examples posted by <a href="http://software.intel.com/en-us/blogs/author/doug-holland/">Doug Holland</a> on his <a href="http://software.intel.com/en-us/blogs/2009/03/30/the-c-programming-language-version-40/">The C# Programming Language Version 4.0</a> blog post…</p>
<p><span style="text-decoration:underline;"><strong>Dynamically Typed Objects</strong></span></p>
<p>In C# today you might need to get an instance of a class and then calls the <strong>Add</strong> method on that class to get the sum of two integers:</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
Calculator calc = GetCalculator();
int sum = calc.Add(10,20);
</pre>
<p>Our code gets all the more interesting if the <strong>Calculator</strong> class is not statically typed but rather is written in COM, Ruby, Python, or even JavaScript. Even if we knew that the <strong>Calculator</strong> class is a .NET <strong>object</strong> but we don&#8217;t know specifically which type it is then we would have to use reflection to discover attributes about the type at runtime and then dynamically invoke the <strong>Add</strong> method.</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
object calc = GetCalculator();
Type type = calc.GetType();
object result = type.InvokeMember(&quot;Add&quot;, BindingFlags.InvokeMethod, null,
    new object[] { 10, 20 });
int sum = Convert.ToInt32(result);
</pre>
<p>With the C# 4.0 we would simply write the following code:</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
dynamic calc = GetCalculator();
int sum = calc.Add(10,20);
</pre>
<p>In the above example we are declaring a variable, <strong>calc</strong>, whose static type is <strong>dynamic</strong>. We&#8217;ll then be using dynamic method invocation to call the <strong>Add </strong>method and then dynamic conversion to convert the result of the dynamic invocation to a statically typed integer.</p>
<p><span style="text-decoration:underline;"><strong>Optional and Named Parameters</strong></span></p>
<p>Another major benefit of using C# 4.0 is that the language now supports optional parameters (like C and C++) and named parameters.</p>
<p>One design pattern you&#8217;ll often see as that a particular method is overloaded because the method needs to be called with a variable number of parameters.</p>
<p>In C# 4.0 a method can be refactored to use optional parameters as the following example shows:</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
public StreamReader OpenTextFile(string path, Encoding encoding =  null, bool
    detectEncoding = false, int bufferSize = 1024) { }
</pre>
<p>Given this declaration it is now possible to call the <strong>OpenTextFile</strong> method omitting one or more of the optional parameters.</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
OpenTextFile(&quot;foo.txt&quot;, Encoding.UTF8);
</pre>
<p>It is also possible to use the C# 4.0 support for named parameters and as such the <strong>OpenTextFile</strong> method can be called omitting one or more of the optional parameters while also specifying another parameter by name.</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
OpenTextFile(&quot;foo.txt&quot;, Encoding.UTF8, bufferSize: 1024);
</pre>
<p>Named arguments must be provided last although when provided they can be provided in any order.</p>
<p><span style="text-decoration:underline;"><strong>Improved COM Interoperability</strong></span></p>
<p>When you work with COM interop methods, you had to pass a reference to <strong>Missing.Value</strong> for unneeded parameters, like the following:</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
object filename = &quot;test.docx&quot;;
object missing = System.Reflection.Missing.Value;

doc.SaveAs(ref filename,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing);
</pre>
<p>Now, in C# 4.0 you can only write:</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
doc.SaveAs(filename);
</pre>
<p>Notice that you are able to omit the <strong>ref</strong> modifier although the use of the <strong>ref</strong> modifier is still required when not performing COM interoperability.</p>
<p>Also it was necessary to ship a Primary Interop Assembly (PIA) along with your managed application. This is not necessary when using C# 4.0 because the compiler will instead inject the interop types directly into the assemblies of your managed application and will only inject those types you&#8217;re using and not all of the types found within the PIA.</p>
<p><span style="text-decoration:underline;"><strong>Safe Co-variance and Contra-variance</strong></span></p>
<p><em>Co-variance</em> means that an instance of a subclass can be used when an instance of a parent class is expected, while <em>Contra-variance</em> means that an instance of a super class can be used when an instance of a subclass is expected. When neither is possible, it is called <em>Invariance</em>.</p>
<p>Since version 1.0 arrays in .NET has been co-variant meaning that an array of <strong>string</strong> can be assigned to an array of <strong>object</strong>.</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
string[] strings = new string[] { &quot;Hello&quot; };
object[] objects = names;
</pre>
<p>Unfortunately arrays in .NET are not safely co-variant. Since <strong>objects</strong> variable <em>was</em> an array of <strong>string</strong> the following will succeed.</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
objects[0] = &quot;Hello World&quot;;
</pre>
<p>Although if an attempt is made to assign an <strong>integer</strong> to the <strong>objects </strong>array an <strong>ArrayTypeMismatchException </strong>is thrown.</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
objects[0] = 1024;
</pre>
<p>To achieve safety, both C# 2.0 and C# 3.0 generics are invariant and so a compiler error would result from the following code:</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
List strings= new List();
List&lt;object&gt; objects = strings;
</pre>
<p>For the <a href="http://www.objectmentor.com/resources/articles/lsp.pdf" target="_blank">Liskov Substitution Principle (LSP)</a> to be achieved, methods of a derived class need to have contra-variant inputs and co-variant outputs.</p>
<p>Generics with C# 4.0 now support safe co-variance and contra-variance through the use of the <strong>in </strong>(contra-variant) and <strong>out</strong> (co-variant) contextual keywords. Let&#8217;s take a look at how this changes the definition of the <strong>IEnumerable&lt;T&gt;</strong> and <strong>IEnumerator&lt;T&gt;</strong> interfaces.</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
public interface IEnumerable
{
    IEnumerator GetEnumerator();
}

public interface IEnumerator
{
    T Current { get; }
    bool MoveNext();
}
</pre>
<p>Given that an <strong>IEnumerable </strong>collection is read only, there is no ability specified within the interface to insert new elements, it is safe to treat a more derived element as something less derived. With the <strong>out</strong> contextual keyword we are contractually affirming that <strong>IEnumerable&lt;out T&gt;</strong> is safely co-variant. We can now write the following code without a compiler error:</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
IEnumerablestrings = GetStrings();
IEnumerable&lt;object&gt; objects = strings;
</pre>
<p>Using the <strong>in</strong> contextual keyword we can achieve safe contra-variance, that is treating something less derived as something more derived.</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
public interface IComparer
{
    int Compare(T x, T y);
}
</pre>
<p>Given that <strong>IComparer&lt;in T&gt;</strong> is safely contra-variant we can now write the following code:</p>
<pre class="brush: csharp; light: true; title: ; notranslate">
IComparer objectComparer = GetComparer();
IComparer stringComparer = objectComparer;
</pre>
<p>It is important to notice that co-variance in <strong>IEnumerable&lt;object&gt;</strong> refers to the fact that its <strong>Current</strong> property can return a <strong>string</strong> instead of an <strong>object</strong> as <em>output</em>, while contra-variance in <strong>IComparer&lt;string&gt;</strong> refers to the fact that its <strong>Compare</strong> method can accept an <strong>object </strong>instead of a <strong>string</strong> as <em>input</em>.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmodeeb.me%2f2009%2f04%2f08%2fc-40-whats-next%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f04%2f08%2fc-40-whats-next%2f" alt="kick it on DotNetKicks.com" border="0" /></a></p>
<br />Posted in Framework Tagged: C#, Covariance &amp; Contravariance, Dynamic Typing, Framework, Microsoft <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=93&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/04/08/c-40-whats-next/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>

		<media:content url="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f04%2f08%2fc-40-whats-next%2f" medium="image">
			<media:title type="html">kick it on DotNetKicks.com</media:title>
		</media:content>
	</item>
		<item>
		<title>Agile and CMMI</title>
		<link>http://modeeb.me/2009/03/31/agile-and-cmmi/</link>
		<comments>http://modeeb.me/2009/03/31/agile-and-cmmi/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 15:30:32 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Lessons]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/?p=83</guid>
		<description><![CDATA[I wanted to talk about this issue a long time ago, but I didn&#8217;t have much to share with you. My first trigger for this post was few months ago when Software Engineering Institute (SEI) of Carnegie Mellon University published a report under the name CMMI or Agile: Why not embrace both! which is a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=83&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I wanted to talk about this issue a long time ago, but I didn&#8217;t have much to share with you.</p>
<p>My first trigger for this post was few months ago when <a href="http://www.sei.cmu.edu/" target="_blank">Software Engineering Institute (SEI)</a> of Carnegie Mellon University published a report under the name <a href="http://www.sei.cmu.edu/publications/documents/08.reports/08tn003.html" target="_blank">CMMI or Agile: Why not embrace both!</a> which is a confirmation by CMMI authors that you can satisfy both requirements.</p>
<p>The report summarizes the history of both paradigms and why it is perceived that CMMI is waterfall while it isn&#8217;t. It also summarized the misconceptions in both ideas and how to overcome them. And it ends by a call for action for both practitioners and trainers to bridge the gap between both.</p>
<p>The report also addresses other issues such as:</p>
<ul>
<li>The Origins of Agile Methods </li>
<li>The Origins of CMMI </li>
<li>Lack of Accurate Information </li>
<li>Terminology Difficulties </li>
<li>There Is Value in Both Paradigms </li>
<li>Challenges When Using Agile </li>
<li>Challenges When Using CMMI </li>
<li>Problems Not Solved by CMMI nor Agile </li>
</ul>
<p>Yesterday, I have been in a 2-days workshop on the same issue where we have conducted some real life case studies to discover how we can come out with processes that satisfy both, and get useful feedback from experts in both schools.</p>
<p>If I can summarize what I have learnt in those 2 days, it is that you have to be first convinced why you need Agile and why you need CMMI, and when you do, you will be able to select to which level you want to embrace each, and what are the practices that would &quot;add value&quot; to your organization (not only individual projects)</p>
<p>Finally, I would like to refer you to this 2 years old post by Jeff Sutherland in which he says that <a href="http://scrum.jeffsutherland.com/2006/11/scrum-supports-cmmi-level-5.html" target="_blank">Scrum supports CMMI level 5</a></p>
<br />Posted in Agile Tagged: Agile, CMMI, Lessons, Scrum <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=83&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/03/31/agile-and-cmmi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>
	</item>
		<item>
		<title>Thinking out of the “box”</title>
		<link>http://modeeb.me/2009/03/23/thinking-out-of-the-box/</link>
		<comments>http://modeeb.me/2009/03/23/thinking-out-of-the-box/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 15:17:56 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[IDE and Tools]]></category>
		<category><![CDATA[Creativity]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Inspiration]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/2009/03/23/thinking-out-of-the-box/</guid>
		<description><![CDATA[Ever got into a dead-end with no one to ask for help, or new ideas to try? In 1975, one creative guy (not from an IT background) have came out with a “box” of ideas cards to give him clues whenever he gets puzzled and starts looking around without a purpose. He called it Oblique [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=81&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ever got into a dead-end with no one to ask for help, or new ideas to try?</p>
<p>In 1975, one creative guy (not from an IT background) have came out with a “box” of ideas cards to give him clues whenever he gets puzzled and starts looking around without a purpose. He called it Oblique Strategies.</p>
<p>These cards actually doesn’t include answers, rather, it has some phrases that can trigger your mind to try new solutions that you might have not thought of.</p>
<p>The funny thing is that you can use these cards in software engineering and yet you can find it really useful. Here is <a href="http://andersnoras.com/post/101033724/oblique-strategies">how</a>.</p>
<br />Posted in IDE and Tools Tagged: Creativity, Ideas, Inspiration <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=81&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/03/23/thinking-out-of-the-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL Server data types</title>
		<link>http://modeeb.me/2009/03/04/sql-server-data-types/</link>
		<comments>http://modeeb.me/2009/03/04/sql-server-data-types/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 14:27:23 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[Reference]]></category>
		<category><![CDATA[Data Type]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/?p=76</guid>
		<description><![CDATA[Actually I have thought to write this post mainly for me as I always forget the differences of the different (yet similar) data types in SQL Server Here is what I need to remember: numeric is the same as decimal and they are both exact decimal values float and real are approximate values fLoat(n) complies with ISO SQL, n [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=76&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Actually I have thought to write this post mainly for me as I always forget the differences of the different (yet similar) data types in SQL Server</p>
<p>Here is what I need to remember:</p>
<ul>
<li><strong>numeric </strong>is the same as <strong>d</strong><strong>ecimal </strong>and they are both <span style="text-decoration:underline;">exact</span> decimal values</li>
<li><strong>float</strong> and <strong>real</strong> are <span style="text-decoration:underline;">approximate</span> values</li>
<li><strong>fLoat(n) </strong>complies with ISO SQL, n is the mantissa digits</li>
<li>[f<strong>loat(25)</strong> - <strong>float(53)</strong>] are stored in 8 bytes while [<strong>float(1) - </strong><strong>float(24)</strong>] are stored in 4 bytes </li>
<li><strong>real</strong> is the same as <strong>float(24)</strong></li>
<li><strong>money</strong> is an <span style="text-decoration:underline;">exact</span> decimal value stored on 8 bytes</li>
<li><strong>nchar </strong>and <strong>nvarchar </strong>are the Unicode versions (2 bytes per character) while <strong>char</strong> and <strong>varchar</strong> use only 1 byte (so they can still accept UTF-8 characters but not UTF-16 like Japanese or Chinese)</li>
</ul>
<p>That was some short notes, for the full details you can check</p>
<p><a href="http://msdn.microsoft.com/en-us/library/ms187752.aspx">http://msdn.microsoft.com/en-us/library/ms187752.aspx</a></p>
<br />Posted in Reference Tagged: Data Type, Microsoft, SQL <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=76&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/03/04/sql-server-data-types/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>
	</item>
		<item>
		<title>StyleCop for ReSharper has been released</title>
		<link>http://modeeb.me/2009/02/22/stylecop-for-resharper-has-been-released/</link>
		<comments>http://modeeb.me/2009/02/22/stylecop-for-resharper-has-been-released/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 03:11:33 +0000</pubDate>
		<dc:creator>modeeb</dc:creator>
				<category><![CDATA[IDE and Tools]]></category>
		<category><![CDATA[Coding Style]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[ReSharper]]></category>
		<category><![CDATA[StyleCop]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://modeeb.wordpress.com/?p=72</guid>
		<description><![CDATA[StyleCop for ReSharper has been released last week as a plugin for ReSharper to bring StyleCop code styling issues to ReSharper real-time syntax highlighting, quick-fixes, and Code CleanUp. Although I personally don&#8217;t like many of StyleCop rules, but like ReSharper rules, they can be turned off individually. The plugin performance can also be customized from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=72&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="//www.codeplex.com/StyleCopForReSharper" target="_blank">StyleCop for ReSharper</a> has been released last week as a plugin for ReSharper to bring StyleCop code styling issues to ReSharper real-time syntax highlighting, quick-fixes, and Code CleanUp.</p>
<p>Although I personally don&#8217;t like many of StyleCop rules, but like ReSharper rules, they can be turned off individually. The plugin performance can also be customized from within the ReSharper options window.</p>
<p><strong>More about StyleCop:</strong></p>
<p><a href="http://stylecop.codeplex.com/" target="_blank"><img class="alignright" title="StyleCop" src="http://megakemp.files.wordpress.com/2009/03/stylecop.png?w=80&#038;h=80" alt="" width="80" height="80" />Microsoft StyleCop</a> analyzes C# source code to enforce a set of style and consistency rules. It can be run from inside of Visual Studio or integrated into an MSBuild project. It is another static analysis tool by Microsoft like <a href="http://msdn.microsoft.com/en-us/library/bb429476.aspx" target="_blank">FxCop</a>, but the later analyzes the compiled object code for design issues, not the source code.</p>
<p><strong>More about ReSharper:</strong></p>
<p><a href="http://www.jetbrains.com/resharper/index.html" target="_blank"><img class="alignright" style="background-color:white;" title="Resharper" src="http://www.jetbrains.com/img/icons/RS_big.gif" alt="" width="80" height="80" />ReSharper<sup>™</sup></a> is a Visual Studio add-in created by <a href="http://www.jetbrains.com" target="_blank">JetBrains</a> (the creator of many software productivity tools like <a href="http://www.jetbrains.com/idea/index.html" target="_blank">IntelliJ<sup>®</sup>IDEA</a> the Java IDE, <a href="http://www.jetbrains.com/teamcity/index.html" target="_blank">TeamCity™</a> the build integration server, and <a href="http://www.jetbrains.com/profiler/index.html" target="_blank">dotTrace<sup>™</sup> Profiler</a>)</p>
<p>I have been using ReSharper almost since I started using Visual Studio and it has always been a complement to it. Even when Visual Studio evolved from 2003 to 2005, and finally 2008, ReSharper has still much to add.</p>
<p>One of the features I like most in ReSharper is its ability to detect syntax and styling error while you type, refactor code quickly, suggest variable names based on classnames, highlight redundant code, make code more readible, find references and jump to it directly if only once.</p>
<p>There has been <a href="http://jameskovacs.com/2009/01/19/visual-studio-2010-visual-studio-2008-resharper/" target="_blank">some talks</a> that Visual Studio 2010 is actually 2008 + ReSharper because of a mistake they made when they posted some snapshots of Visual Studio 2010 with ReSharper menus and screens in it.</p>
<p>Microsoft on the other hand had been promoting one of ReSharper competitors and announced a cooperation with <a href="http://www.devexpress.com" target="_blank">DevExpress</a> to license a free version of <a href="http://msdn.microsoft.com/en-us/library/bb429476.aspx" target="_blank">CodeRush Express</a> exculsively for C# developers working on Visual Studio.</p>
<p><a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fmodeeb.wordpress.com%2f2009%2f02%2f22%2fstylecop-for-resharper-has-been-released%2f"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmodeeb.me%2f2009%2f02%2f22%2fstylecop-for-resharper-has-been-released%2f" alt="kick it on DotNetKicks.com" border="0" /></a></p>
<br />Posted in IDE and Tools Tagged: Coding Style, Development, IDE and Tools, Microsoft, Programming, Refactoring, ReSharper, StyleCop, Visual Studio <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/modeeb.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/modeeb.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=modeeb.me&#038;blog=5151139&#038;post=72&#038;subd=modeeb&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://modeeb.me/2009/02/22/stylecop-for-resharper-has-been-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/8178d7f029322d4b0bf9534365a575f6?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">modeeb</media:title>
		</media:content>

		<media:content url="http://megakemp.files.wordpress.com/2009/03/stylecop.png" medium="image">
			<media:title type="html">StyleCop</media:title>
		</media:content>

		<media:content url="http://www.jetbrains.com/img/icons/RS_big.gif" medium="image">
			<media:title type="html">Resharper</media:title>
		</media:content>

		<media:content url="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fmodeeb.me%2f2009%2f02%2f22%2fstylecop-for-resharper-has-been-released%2f" medium="image">
			<media:title type="html">kick it on DotNetKicks.com</media:title>
		</media:content>
	</item>
	</channel>
</rss>
