<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Mohamed Mahmoud (El-Geish)</title><subtitle type="html">&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;</subtitle><id>http://blogs.msdn.com/mohamedg/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/mohamedg/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-04-16T00:41:43Z</updated><entry><title>WCF Service Throttling</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/11/08/wcf-service-throttling.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/11/08/wcf-service-throttling.aspx</id><published>2009-11-08T07:03:29Z</published><updated>2009-11-08T07:03:29Z</updated><content type="html">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 until it crashes. There’s a sweet spot in between that will give you an optimum throughput and high availability at the same time. The ServiceThrottlingBehavior in WCF enables you to modify three important settings that you should consider tweaking to...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx" /><category term="WCF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/WCF/default.aspx" /></entry><entry><title>VSTS 2010 and .Net 4.0 Beta 2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/10/24/vsts-2010-and-net-4-0-beta-2.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/10/24/vsts-2010-and-net-4-0-beta-2.aspx</id><published>2009-10-25T00:20:37Z</published><updated>2009-10-25T00:20:37Z</updated><content type="html">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) no-repeat scroll left top; list-style-type: none; text-align: center; padding: 74px 0 0 0; margin: 0; font-family: "Helvetica Neue", helvetica, arial, sans-serif; } body ul#cntdwn li { float: left; margin: 0 8px 0 0; background: transparent...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="VSTF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx" /></entry><entry><title>C++: Calling a virtual function from a constructor is not polymorphic</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/09/05/c-calling-a-virtual-function-from-a-constructor-is-not-polymorphic.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/09/05/c-calling-a-virtual-function-from-a-constructor-is-not-polymorphic.aspx</id><published>2009-09-05T19:59:13Z</published><updated>2009-09-05T19:59:13Z</updated><content type="html">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; whoAmI() ; &amp;#160;&amp;#160;&amp;#160; } &amp;#160;&amp;#160;&amp;#160; virtual &amp;#160; void &amp;#160; whoAmI() &amp;#160; { &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cout &amp;#160; &amp;lt;&amp;lt; &amp;quot;Foo::whoAmI()&amp;quot; &amp;lt;&amp;lt; &amp;#160; endl ; &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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx" /><category term="C++" scheme="http://blogs.msdn.com/mohamedg/archive/tags/C_2B002B00_/default.aspx" /></entry><entry><title>Selection of Majority in O(n)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/08/16/selection-of-majority-in-o-n.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/08/16/selection-of-majority-in-o-n.aspx</id><published>2009-08-16T08:58:00Z</published><updated>2009-08-16T08:58:00Z</updated><content type="html">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 voting process, each occurrence is a vote and each item is a candidate. Since there's a constant pool of votes, each candidate is winning a vote when it appears and losing a vote when another candidate is appearing instead. If the number of votes becomes...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="Algorithms" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Algorithms/default.aspx" /></entry><entry><title>Passing C++ Arrays by Value</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/08/08/passing-c-arrays-by-value.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/08/08/passing-c-arrays-by-value.aspx</id><published>2009-08-08T10:01:00Z</published><updated>2009-08-08T10:01:00Z</updated><content type="html">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 N&amp;gt; void passByValue(array&amp;lt;T, N&amp;gt; a) { cout &amp;lt;&amp;lt; "Value in function:" &amp;lt;&amp;lt; endl; for ( int i = 0; i &amp;lt; N; i++) a[i] = 1, cout &amp;lt;&amp;lt; a[i] &amp;lt;&amp;lt; endl; // prints 1's } int main() { const int N = 5; array&amp;lt; int , N &amp;gt; a; for (...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx" /><category term="C++" scheme="http://blogs.msdn.com/mohamedg/archive/tags/C_2B002B00_/default.aspx" /></entry><entry><title>Proxy Design Pattern</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/07/18/proxy-design-pattern.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/07/18/proxy-design-pattern.aspx</id><published>2009-07-19T06:56:00Z</published><updated>2009-07-19T06:56:00Z</updated><content type="html">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 a look at the following example: #include&amp;lt;iostream&amp;gt; #include&amp;lt;string&amp;gt; using namespace std; class Base { // Interface public : virtual string run() = 0; }; class Worker : public Base { public : string run() { return "Worker" ; } }; class Proxy...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="Development" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Development/default.aspx" /><category term="C++" scheme="http://blogs.msdn.com/mohamedg/archive/tags/C_2B002B00_/default.aspx" /></entry><entry><title>Test Patterns</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/05/14/test-patterns.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/05/14/test-patterns.aspx</id><published>2009-05-14T08:53:46Z</published><updated>2009-05-14T08:53:46Z</updated><content type="html">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 or a two instead of telling the whole story. Moreover, test patterns provide guidelines for solving common test design problems and define measurable actionable methods of testing. Test patterns have certain attributes that shape the pattern. It has...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="Testing" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Testing/default.aspx" /></entry><entry><title>How to: Query all labels on a folder recursively?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/04/30/how-to-query-all-labels-on-a-folder-recursively.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/04/30/how-to-query-all-labels-on-a-folder-recursively.aspx</id><published>2009-04-30T07:49:00Z</published><updated>2009-04-30T07:49:00Z</updated><content type="html">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; VersionControlServer &gt;(); List &amp;lt; VersionControlLabel &gt; labels = new List &amp;lt; VersionControlLabel &gt;(); foreach ( Item i in sc.GetItems( "$/Proj" , RecursionType .Full).Items) { labels.AddRange(sc.QueryLabels( null , null , null , false ,...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="VSTF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx" /><category term="Source Control" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx" /><category term="How To" scheme="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx" /></entry><entry><title>How to: Move a shelveset to another branch?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/04/30/how-to-move-a-shelveset-to-another-branch.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/04/30/how-to-move-a-shelveset-to-another-branch.aspx</id><published>2009-04-30T07:46:41Z</published><updated>2009-04-30T07:46:41Z</updated><content type="html">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: tfpt unshelve shelvsetName /migrate /source:$/SourceBranch /target:$/TargetBranch...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="VSTF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx" /><category term="Source Control" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx" /><category term="How To" scheme="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx" /></entry><entry><title>How to: Receive daily email notifications?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/04/21/how-to-receive-daily-email-notifications.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/04/21/how-to-receive-daily-email-notifications.aspx</id><published>2009-04-22T05:14:00Z</published><updated>2009-04-22T05:14:00Z</updated><content type="html">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 )); string filter = "'Artifacts/Artifact[starts-with(translate(@ServerItem,\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\"abcdefghijklmnopqrstuvwxyz\"),\"$/TeamProject/Folder\")]' &amp;lt;&gt; null AND \"Committer\"&amp;lt;&gt; 'DOMAIN\\YourUserName'" ; DeliveryPreference dp =...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="VSTF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx" /></entry><entry><title>Cartoon #7: Protected</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/04/20/cartoon-7-protected.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/04/20/cartoon-7-protected.aspx</id><published>2009-04-21T05:42:46Z</published><updated>2009-04-21T05:42:46Z</updated><content type="html">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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="Cartoon" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Cartoon/default.aspx" /></entry><entry><title>How to: Diff shelved files?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-diff-shelved-files.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-diff-shelved-files.aspx</id><published>2009-04-18T10:34:52Z</published><updated>2009-04-18T10:34:52Z</updated><content type="html">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 details dialog. If you want to diff the shelved files programmatically against the latest version, you will need to write some code, please take a look at: http://blogs.msdn.com/mohamedg/archive/2009/03/08/how-to-diff-files-using-tfs-apis.aspx . If...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="VSTF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx" /><category term="Source Control" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx" /><category term="How To" scheme="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx" /></entry><entry><title>How to: List changesets between two labeled versions?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-list-changesets-between-two-labeled-versions.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-list-changesets-between-two-labeled-versions.aspx</id><published>2009-04-18T10:10:00Z</published><updated>2009-04-18T10:10:00Z</updated><content type="html">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 4/2/2009 63 edit mohamedg 4/2/2009 60 edit mohamedg 4/2/2009 59 edit mohamedg 4/2/2009 50 edit mohamedg 4/1/2009 49 edit mohamedg 4/1/2009 48 edit mohamedg 3/31/2009 47 add mohamedg 3/31/2009 tf label Rev1 File.cs;48 Created label Rev1@$/Proj...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="VSTF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx" /><category term="Source Control" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx" /><category term="How To" scheme="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx" /></entry><entry><title>How to: View history of an item across branches?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-view-history-of-an-item-across-branches.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/04/18/how-to-view-history-of-an-item-across-branches.aspx</id><published>2009-04-18T10:01:09Z</published><updated>2009-04-18T10:01:09Z</updated><content type="html">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 tf.exe: tf merge BranchA BranchB /r merge: $/mohamedg/blog/BranchA/File.cs;C663~C664 -&amp;gt; $/mohamedg/blog/BranchB/File.cs;C665 After the merge is done, you can look up the merge history to know what changesets were ported over, for example: tf merges...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="VSTF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx" /><category term="Source Control" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx" /></entry><entry><title>How to: Switch between TFS and VSS in old IDEs?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/mohamedg/archive/2009/04/16/how-to-switch-between-tfs-and-vss-in-old-ides.aspx" /><id>http://blogs.msdn.com/mohamedg/archive/2009/04/16/how-to-switch-between-tfs-and-vss-in-old-ides.aspx</id><published>2009-04-16T07:41:43Z</published><updated>2009-04-16T07:41:43Z</updated><content type="html">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 in the Windows registry, therefore, you will have to restart the IDE to enable the desired provider (just like most programs, unless they implement a registry watcher). There are some tools that can make the switch easier: http://www.codeproject.com/KB/applications/sccswitcher.aspx...(&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;</content><author><name>mohamedg</name><uri>http://blogs.msdn.com/members/mohamedg.aspx</uri></author><category term="VSTF" scheme="http://blogs.msdn.com/mohamedg/archive/tags/VSTF/default.aspx" /><category term="Source Control" scheme="http://blogs.msdn.com/mohamedg/archive/tags/Source+Control/default.aspx" /><category term="How To" scheme="http://blogs.msdn.com/mohamedg/archive/tags/How+To/default.aspx" /></entry></feed>