<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Mohamed Mahmoud (El-Geish)</title><link>http://blogs.msdn.com/mohamedg/default.aspx</link><description>&lt;br /&gt;
&lt;script type="text/javascript" src="http://services.social.microsoft.com/widgets/bookmark.jss?type=1&amp;brand=Msdn&amp;locale=1033"&gt;&lt;/script&gt;
&lt;br /&gt;
&lt;a href="http://signup.alerts.live.com/alerts/login.do?PINID=42016282&amp;returnURL=http://blogs.msdn.com/mohamedg"&gt;&lt;img src="http://images.alerts.live.com/mcwebsite/graphics/blog/alert_signup_eng.gif" alt="Add to Windows Live Alerts" border="0"&gt;&lt;/a&gt;</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>WCF Service Throttling</title><link>http://blogs.msdn.com/mohamedg/archive/2009/11/08/wcf-service-throttling.aspx</link><pubDate>Sun, 08 Nov 2009 07:03:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919187</guid><dc:creator>mohamedg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9919187.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9919187</wfw:commentRss><description>Throttling, generally speaking, is tricky. Get the limits low and you may be prone to DoS and clients timing out trying to connect to your service in vain; Get them high and you may end up with an overloaded service that’s eating up machine resources...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/11/08/wcf-service-throttling.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919187" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/WCF/default.aspx">WCF</category></item><item><title>VSTS 2010 and .Net 4.0 Beta 2</title><link>http://blogs.msdn.com/mohamedg/archive/2009/10/24/vsts-2010-and-net-4-0-beta-2.aspx</link><pubDate>Sun, 25 Oct 2009 00:20:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9912519</guid><dc:creator>mohamedg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9912519.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9912519</wfw:commentRss><description>Beta 2 is here , give it a try and let us know what do you think. div#widget { position: relative; width: 250px; height: 155px; } body ul#cntdwn { width: 250px; height: 80px; background: transparent url(http://toysfortweets.com/visualstudiowidget/cntdwn-bg.png)...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/10/24/vsts-2010-and-net-4-0-beta-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9912519" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx">VSTF</category></item><item><title>C++: Calling a virtual function from a constructor is not polymorphic</title><link>http://blogs.msdn.com/mohamedg/archive/2009/09/05/c-calling-a-virtual-function-from-a-constructor-is-not-polymorphic.aspx</link><pubDate>Sat, 05 Sep 2009 19:59:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9891801</guid><dc:creator>mohamedg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9891801.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9891801</wfw:commentRss><description>In C++, if you call a virtual function form a constructor, it won’t be polymorphic, meaning that the following code won’t behave as you may have expected: class &amp;#160; Foo &amp;#160; { public : &amp;#160;&amp;#160;&amp;#160; Foo() &amp;#160; { &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/09/05/c-calling-a-virtual-function-from-a-constructor-is-not-polymorphic.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9891801" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/C_2B002B00_/default.aspx">C++</category></item><item><title>Selection of Majority in O(n)</title><link>http://blogs.msdn.com/mohamedg/archive/2009/08/16/selection-of-majority-in-o-n.aspx</link><pubDate>Sun, 16 Aug 2009 08:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9871394</guid><dc:creator>mohamedg</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9871394.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9871394</wfw:commentRss><description>Selection algorithms are very useful in many instances, like finding the majority. Given an array of size n that contains a majority item (an item that's repeated more than n/2 times), we can find that item in O(n). Basically, we can consider it as a...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/08/16/selection-of-majority-in-o-n.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9871394" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Algorithms/default.aspx">Algorithms</category></item><item><title>Passing C++ Arrays by Value</title><link>http://blogs.msdn.com/mohamedg/archive/2009/08/08/passing-c-arrays-by-value.aspx</link><pubDate>Sat, 08 Aug 2009 10:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9861087</guid><dc:creator>mohamedg</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9861087.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9861087</wfw:commentRss><description>Just in case you needed to, you can wrap an array into a struct/class and pass it by value to a function: template &amp;lt; typename T, int N&amp;gt; struct array { T value[N]; T &amp;amp; operator []( int i) { return value[i]; } }; template &amp;lt; typename T, int...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/08/08/passing-c-arrays-by-value.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9861087" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/C_2B002B00_/default.aspx">C++</category></item><item><title>Proxy Design Pattern</title><link>http://blogs.msdn.com/mohamedg/archive/2009/07/18/proxy-design-pattern.aspx</link><pubDate>Sun, 19 Jul 2009 06:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9839467</guid><dc:creator>mohamedg</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9839467.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9839467</wfw:commentRss><description>One of the useful design patterns is the proxy design pattern, it allows you to control access to an object via a proxy and also saves you the startup and cleanup overheads as you instantiate only what you use upon request (lazy initialization). Take...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/07/18/proxy-design-pattern.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9839467" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx">Development</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/C_2B002B00_/default.aspx">C++</category></item><item><title>Test Patterns</title><link>http://blogs.msdn.com/mohamedg/archive/2009/05/14/test-patterns.aspx</link><pubDate>Thu, 14 May 2009 08:53:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9614296</guid><dc:creator>mohamedg</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9614296.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9614296</wfw:commentRss><description>Just like design patterns, the use of test patterns will make your life easier. A lot of the common testing methods can be reused. Along with the benefits of reuse, using patterns makes it easier to explain to others what you are going to do in a word...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/05/14/test-patterns.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9614296" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Testing/default.aspx">Testing</category></item><item><title>How to: Query all labels on a folder recursively?</title><link>http://blogs.msdn.com/mohamedg/archive/2009/04/30/how-to-query-all-labels-on-a-folder-recursively.aspx</link><pubDate>Thu, 30 Apr 2009 07:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9578483</guid><dc:creator>mohamedg</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9578483.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9578483</wfw:commentRss><description>To do this, you can't call query labels with a wildcard character, you need to do the following: - Get all items blow $/Dir1 using GetItems - Loop through them calling QueryLabels on each one. Here's a code snippet: VersionControlServer sc = tfs.GetService&amp;lt;...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/04/30/how-to-query-all-labels-on-a-folder-recursively.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9578483" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx">VSTF</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx">Source Control</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx">How To</category></item><item><title>How to: Move a shelveset to another branch?</title><link>http://blogs.msdn.com/mohamedg/archive/2009/04/30/how-to-move-a-shelveset-to-another-branch.aspx</link><pubDate>Thu, 30 Apr 2009 07:46:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9578413</guid><dc:creator>mohamedg</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9578413.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9578413</wfw:commentRss><description>A very handy power tool is tfpt unshelve. It’s capable of migrating a shelveset from a branch to another, it does that by performing a baseless merge, so you will need to resolve the conflicts produced. The syntax of the command looks like the following:...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/04/30/how-to-move-a-shelveset-to-another-branch.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9578413" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx">VSTF</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx">Source Control</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx">How To</category></item><item><title>How to: Receive daily email notifications?</title><link>http://blogs.msdn.com/mohamedg/archive/2009/04/21/how-to-receive-daily-email-notifications.aspx</link><pubDate>Wed, 22 Apr 2009 05:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9561004</guid><dc:creator>mohamedg</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9561004.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9561004</wfw:commentRss><description>You can receive a daily email that has a compiled list of notifications, but you will need to subscribe programmatically: IEventService eventService = ( IEventService ) new TeamFoundationServer ( "http://tfs:8080" ).GetService( typeof ( IEventService...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/04/21/how-to-receive-daily-email-notifications.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9561004" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx">VSTF</category></item><item><title>Cartoon #7: Protected</title><link>http://blogs.msdn.com/mohamedg/archive/2009/04/20/cartoon-7-protected.aspx</link><pubDate>Tue, 21 Apr 2009 05:42:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9558041</guid><dc:creator>mohamedg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9558041.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9558041</wfw:commentRss><description>protected (C# Reference)...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/04/20/cartoon-7-protected.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9558041" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Cartoon/default.aspx">Cartoon</category></item><item><title>How to: Diff shelved files?</title><link>http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-diff-shelved-files.aspx</link><pubDate>Sat, 18 Apr 2009 10:34:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9554899</guid><dc:creator>mohamedg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9554899.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9554899</wfw:commentRss><description>You can run: tf diff /shelveset:shelvesetName;DOMAIN\ownerUserName Please note that this will diff the shelved changes against the unmodified version, not necessarily the latest version, just like what the you get from clicking compare in the shelveset...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-diff-shelved-files.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9554899" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx">VSTF</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx">Source Control</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx">How To</category></item><item><title>How to: List changesets between two labeled versions?</title><link>http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-list-changesets-between-two-labeled-versions.aspx</link><pubDate>Sat, 18 Apr 2009 10:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9554894</guid><dc:creator>mohamedg</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9554894.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9554894</wfw:commentRss><description>You can achieve that behavior by running: tf hist rootItemSpec /r /version:LstartLabel~LendLabel Here’s my scenario: tf hist /i File.cs Changeset Change User Date Comment --------- -------------------------- ------------- ---------- -------- 65 edit mohamedg...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-list-changesets-between-two-labeled-versions.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9554894" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx">VSTF</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx">Source Control</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx">How To</category></item><item><title>How to: View history of an item across branches?</title><link>http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-view-history-of-an-item-across-branches.aspx</link><pubDate>Sat, 18 Apr 2009 10:01:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9554889</guid><dc:creator>mohamedg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9554889.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9554889</wfw:commentRss><description>You can use tfpt history /followbranches to follow the history of an item across branches. We are looking into supporting this in the history dialog in the next version . You can see which versions are ported over during the merge operation if you use...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-view-history-of-an-item-across-branches.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9554889" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx">VSTF</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx">Source Control</category></item><item><title>How to: Switch between TFS and VSS in old IDEs?</title><link>http://blogs.msdn.com/mohamedg/archive/2009/04/16/how-to-switch-between-tfs-and-vss-in-old-ides.aspx</link><pubDate>Thu, 16 Apr 2009 07:41:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9552167</guid><dc:creator>mohamedg</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mohamedg/comments/9552167.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mohamedg/commentrss.aspx?PostID=9552167</wfw:commentRss><description>If you have an IDE that uses the MSSCCI provider, like VS 2003 or VB6, and you want to switch between TFS and VSS because you have projects on both systems, you will have to change the provider every time you switch. The thing is that setting is stored...(&lt;a href="http://blogs.msdn.com/mohamedg/archive/2009/04/16/how-to-switch-between-tfs-and-vss-in-old-ides.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9552167" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx">VSTF</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx">Source Control</category><category domain="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx">How To</category></item></channel></rss>